summaryrefslogtreecommitdiff
path: root/xsd-tests/cxx/tree/built-in
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-tests/cxx/tree/built-in')
-rw-r--r--xsd-tests/cxx/tree/built-in/.gitignore1
-rw-r--r--xsd-tests/cxx/tree/built-in/buildfile25
-rw-r--r--xsd-tests/cxx/tree/built-in/driver.cxx93
-rw-r--r--xsd-tests/cxx/tree/built-in/testscript394
-rw-r--r--xsd-tests/cxx/tree/built-in/types.xsd460
5 files changed, 973 insertions, 0 deletions
diff --git a/xsd-tests/cxx/tree/built-in/.gitignore b/xsd-tests/cxx/tree/built-in/.gitignore
new file mode 100644
index 0000000..f86b7a2
--- /dev/null
+++ b/xsd-tests/cxx/tree/built-in/.gitignore
@@ -0,0 +1 @@
+types.?xx
diff --git a/xsd-tests/cxx/tree/built-in/buildfile b/xsd-tests/cxx/tree/built-in/buildfile
new file mode 100644
index 0000000..8ee8585
--- /dev/null
+++ b/xsd-tests/cxx/tree/built-in/buildfile
@@ -0,0 +1,25 @@
+# file : cxx/tree/build-in/buildfile
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+import libs = libxsd%lib{xsd}
+import libs += libxerces-c%lib{xerces-c}
+
+exe{driver}: {hxx cxx}{* -types} {hxx ixx cxx}{types} $libs testscript
+
+<{hxx ixx cxx}{types}>: xsd{types} $xsd
+{{
+ diag xsd ($<[0]) # @@ TMP
+
+ $xsd cxx-tree --std c++11 \
+ --generate-inline \
+ --generate-ostream \
+ --generate-serialization \
+ --char-type char \
+ --generate-default-ctor \
+ --generate-from-base-ctor \
+ --root-element-all \
+ --output-dir $out_base \
+ $path($<[0])
+}}
+
+cxx.poptions =+ "-I$out_base"
diff --git a/xsd-tests/cxx/tree/built-in/driver.cxx b/xsd-tests/cxx/tree/built-in/driver.cxx
new file mode 100644
index 0000000..4141290
--- /dev/null
+++ b/xsd-tests/cxx/tree/built-in/driver.cxx
@@ -0,0 +1,93 @@
+// file : cxx/tree/built-in/driver.cxx
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+// Test built-in type mapping.
+//
+
+#include <memory> // std::auto_ptr/unique_ptr
+#include <sstream>
+#include <iostream>
+
+
+#include "types.hxx"
+
+using std::cerr;
+using std::endl;
+
+int
+main (int argc, char* argv[])
+{
+ if (argc != 4)
+ {
+ cerr << "usage: " << argv[0] << " elements.xml attributes.xml inherited.xml" << endl;
+ return 1;
+ }
+
+ XSD_AUTO_PTR<xmlns::test::Elements> elements (
+ xmlns::test::elements (argv[1]));
+
+ XSD_AUTO_PTR<xmlns::test::Attributes> attributes (
+ xmlns::test::attributes (argv[2]));
+
+ XSD_AUTO_PTR<xmlns::test::Inherited> inherited (
+ xmlns::test::inherited (argv[3]));
+
+ cerr << "elements:" << *elements << endl
+ << endl
+ << "attributes:" << *attributes << endl
+ << endl
+ << "inherited:" << *inherited << endl;
+
+ // Test parsing/serialization.
+ //
+
+ xml_schema::namespace_infomap map;
+
+ map["test"].name = "http://www.codesynthesis.com/xmlns/test";
+ map["test"].schema = "types.xsd";
+
+ {
+ std::ostringstream ostr;
+ xmlns::test::elements (ostr, *elements, map);
+
+ std::istringstream istr (ostr.str ());
+ XSD_AUTO_PTR<xmlns::test::Elements> elements1 (
+ xmlns::test::elements (istr));
+
+ std::ostringstream ostr1;
+ xmlns::test::elements (ostr1, *elements1, map);
+
+ if (ostr.str () != ostr1.str ())
+ return 1;
+ }
+
+ {
+ std::ostringstream ostr;
+ xmlns::test::attributes (ostr, *attributes, map);
+
+ std::istringstream istr (ostr.str ());
+ XSD_AUTO_PTR<xmlns::test::Attributes> attributes1 (
+ xmlns::test::attributes (istr));
+
+ std::ostringstream ostr1;
+ xmlns::test::attributes (ostr1, *attributes1, map);
+
+ if (ostr.str () != ostr1.str ())
+ return 1;
+ }
+
+ {
+ std::ostringstream ostr;
+ xmlns::test::inherited (ostr, *inherited, map);
+
+ std::istringstream istr (ostr.str ());
+ XSD_AUTO_PTR<xmlns::test::Inherited> inherited1 (
+ xmlns::test::inherited (istr));
+
+ std::ostringstream ostr1;
+ xmlns::test::inherited (ostr1, *inherited1, map);
+
+ if (ostr.str () != ostr1.str ())
+ return 1;
+ }
+}
diff --git a/xsd-tests/cxx/tree/built-in/testscript b/xsd-tests/cxx/tree/built-in/testscript
new file mode 100644
index 0000000..4dae039
--- /dev/null
+++ b/xsd-tests/cxx/tree/built-in/testscript
@@ -0,0 +1,394 @@
+# file : cxx/tree/any-type/testscript
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+: types
+:
+{
+ cat <<EOI >=elements.xml;
+ <?xml version="1.0" encoding="UTF-8"?>
+ <test:elements
+ xmlns:test="http://www.codesynthesis.com/xmlns/test"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.codesynthesis.com/xmlns/test types.xsd">
+
+ <!-- integers -->
+ <byte>65</byte>
+ <unsigned_byte>66</unsigned_byte>
+ <short>-222</short>
+ <unsigned_short>57005</unsigned_short>
+ <int>-57005</int>
+ <unsigned_int>3735928559</unsigned_int>
+ <long>-3735928559</long>
+ <unsigned_long>16045690984833335023</unsigned_long>
+ <integer>-3735928559</integer>
+ <non_positive_integer>-3735928559</non_positive_integer>
+ <non_negative_integer>3735928559</non_negative_integer>
+ <positive_integer>3735928559</positive_integer>
+ <negative_integer>-3735928559</negative_integer>
+
+
+ <!-- boolean -->
+ <boolean>true</boolean>
+
+
+ <!-- floats -->
+ <float>1234.1234</float>
+ <double>12345678.12345678</double>
+ <decimal>12345678.12345678</decimal>
+
+
+ <!-- strings -->
+ <string>string</string>
+ <normalized_string>normalized
+ string</normalized_string>
+ <token>
+ one
+ two three </token>
+ <name>name</name>
+ <name_token>name-token</name_token>
+ <name_tokens>name tokens</name_tokens>
+ <ncname>ncname</ncname>
+ <language>en-us</language>
+
+ <!-- qualified name -->
+ <qname>xsi:schemaLocation</qname>
+
+
+ <!-- ID/IDREF -->
+ <id>elements1</id>
+ <id>elements2</id>
+ <id_ref>elements1</id_ref>
+ <id_refs>elements1 elements2</id_refs>
+
+
+ <!-- URI -->
+ <any_uri>http://www.codesynthesis.com</any_uri>
+
+
+ <!-- binary -->
+ <base64_binary>YmFzZTY0IGJpbmFyeQ==</base64_binary>
+ <hex_binary>6865782052696E617279</hex_binary>
+
+
+ <!-- date/time -->
+ <date>2001-10-26+02:00</date>
+ <date_time>2001-10-26T21:32:52+02:00</date_time>
+ <duration>P1Y2M3DT5H20M30S</duration>
+ <day>---01+02:00</day>
+ <month>--11+02:00</month>
+ <month_day>--11-02+02:00</month_day>
+ <year>2001+02:00</year>
+ <year_month>2001-11+02:00</year_month>
+ <time>21:32:52+02:00</time>
+
+
+ <!-- entity -->
+ <!--
+ <entity>foo</entity>
+ <entities>foo bar</entities>
+ -->
+
+ </test:elements>
+ EOI
+
+ cat <<EOI >=attributes.xml;
+ <?xml version="1.0" encoding="UTF-8"?>
+ <test:attributes
+ xmlns:test="http://www.codesynthesis.com/xmlns/test"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.codesynthesis.com/xmlns/test types.xsd"
+
+
+ byte="65"
+ unsigned_byte="66"
+ short="-222"
+ unsigned_short="57005"
+ int="-57005"
+ unsigned_int="3735928559"
+ long="-3735928559"
+ unsigned_long="16045690984833335023"
+ integer="-3735928559"
+ non_positive_integer="-3735928559"
+ non_negative_integer="3735928559"
+ positive_integer="3735928559"
+ negative_integer="-3735928559"
+
+
+
+ boolean="false"
+
+
+
+ float="1234.1234"
+ double="12345678.12345678"
+ decimal="12345678.12345678"
+
+
+
+ string="string"
+ normalized_string="normalized string"
+ token=" one two three "
+ name="name"
+ name_token="name-token"
+ name_tokens="name tokens"
+ ncname="ncname"
+ language="en-us"
+
+
+ qname="xsi:schemaLocation"
+
+
+
+ id="attributes"
+ id_ref="attributes"
+ id_refs="attributes"
+
+
+
+ any_uri="http://www.codesynthesis.com"
+
+
+
+ base64_binary="YmFzZTY0IGJpbmFyeQ=="
+ hex_binary="6865782052696E617279"
+
+
+
+ date="2001-10-26+02:00"
+ date_time="2001-10-26T21:32:52+02:00"
+ duration="P1Y2M3DT5H20M30S"
+ day="---01+02:00"
+ month="--11+02:00"
+ month_day="--11-02+02:00"
+ year="2001+02:00"
+ year_month="2001-11+02:00"
+ time="21:32:52+02:00"
+
+ />
+ EOI
+
+ cat <<EOI >=inherited.xml;
+ <?xml version="1.0" encoding="UTF-8"?>
+ <test:inherited
+ xmlns:test="http://www.codesynthesis.com/xmlns/test"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.codesynthesis.com/xmlns/test types.xsd">
+
+ <!-- integers -->
+ <byte>65</byte>
+ <unsigned_byte>66</unsigned_byte>
+ <short>-222</short>
+ <unsigned_short>57005</unsigned_short>
+ <int>-57005</int>
+ <unsigned_int>3735928559</unsigned_int>
+ <long>-3735928559</long>
+ <unsigned_long>16045690984833335023</unsigned_long>
+ <integer>-3735928559</integer>
+ <non_positive_integer>-3735928559</non_positive_integer>
+ <non_negative_integer>3735928559</non_negative_integer>
+ <positive_integer>3735928559</positive_integer>
+ <negative_integer>-3735928559</negative_integer>
+
+
+ <!-- boolean -->
+ <boolean>true</boolean>
+
+
+ <!-- floats -->
+ <float>1234.1234</float>
+ <double>12345678.12345678</double>
+ <decimal>12345678.12345678</decimal>
+
+
+ <!-- strings -->
+ <string>string</string>
+ <normalized_string>normalized
+ string</normalized_string>
+ <token>
+ one
+ two three </token>
+ <name>name</name>
+ <name_token>name-token</name_token>
+ <name_tokens>name tokens</name_tokens>
+ <ncname>ncname</ncname>
+ <language>en-us</language>
+
+ <!-- qualified name -->
+ <qname>xsi:schemaLocation</qname>
+
+
+ <!-- ID/IDREF -->
+ <id>elements1</id>
+ <id>elements2</id>
+ <id_ref>elements1</id_ref>
+ <id_refs>elements1 elements2</id_refs>
+
+
+ <!-- URI -->
+ <any_uri>http://www.codesynthesis.com</any_uri>
+
+
+ <!-- binary -->
+ <base64_binary>YmFzZTY0IGJpbmFyeQ==</base64_binary>
+ <hex_binary>6865782052696E617279</hex_binary>
+
+
+ <!-- date/time -->
+ <date>2001-10-26+02:00</date>
+ <date_time>2001-10-26T21:32:52+02:00</date_time>
+ <duration>P1Y2M3DT5H20M30S</duration>
+ <day>---01+02:00</day>
+ <month>--11+02:00</month>
+ <month_day>--11-02+02:00</month_day>
+ <year>2001+02:00</year>
+ <year_month>2001-11+02:00</year_month>
+ <time>21:32:52+02:00</time>
+
+
+ <!-- entity -->
+ <!--
+ <entity>foo</entity>
+ <entities>foo bar</entities>
+ -->
+
+ </test:inherited>
+ EOI
+
+ ln -s $src_base/types.xsd ./;
+
+ $* elements.xml attributes.xml inherited.xml 2>>EOE
+ elements:
+ byte: A
+ unsigned_byte: B
+ short: -222
+ unsigned_short: 57005
+ int: -57005
+ unsigned_int: 3735928559
+ long: -3735928559
+ unsigned_long: 16045690984833335023
+ integer: -3735928559
+ non_positive_integer: -3735928559
+ non_negative_integer: 3735928559
+ positive_integer: 3735928559
+ negative_integer: -3735928559
+ boolean: 1
+ float: 1234.12
+ double: 1.23457e+07
+ decimal: 1.23457e+07
+ string: string
+ normalized_string: normalized string
+ token: one two three
+ name: name
+ name_token: name-token
+ name_tokens: name tokens
+ ncname: ncname
+ language: en-us
+ qname: http://www.w3.org/2001/XMLSchema-instance#schemaLocation
+ id: elements1
+ id: elements2
+ id_ref: elements1
+ id_refs: elements1 elements2
+ any_uri: http://www.codesynthesis.com
+ base64_binary: YmFzZTY0IGJpbmFyeQ==
+
+ hex_binary: 6865782052696E617279
+ date: 2001-10-26+02:00
+ date_time: 2001-10-26T21:32:52.000000+02:00
+ duration: P1Y2M3DT5H20M30.000000S
+ day: 01+02:00
+ month: 11+02:00
+ month_day: 11-02+02:00
+ year: 2001+02:00
+ year_month: 2001-11+02:00
+ time: 21:32:52.000000+02:00
+
+ attributes:
+ byte: A
+ unsigned_byte: B
+ short: -222
+ unsigned_short: 57005
+ int: -57005
+ unsigned_int: 3735928559
+ long: -3735928559
+ unsigned_long: 16045690984833335023
+ integer: -3735928559
+ non_positive_integer: -3735928559
+ non_negative_integer: 3735928559
+ positive_integer: 3735928559
+ negative_integer: -3735928559
+ boolean: 0
+ float: 1234.12
+ double: 1.23457e+07
+ decimal: 1.23457e+07
+ string: string
+ normalized_string: normalized string
+ token: one two three
+ name: name
+ name_token: name-token
+ name_tokens: name tokens
+ ncname: ncname
+ language: en-us
+ qname: http://www.w3.org/2001/XMLSchema-instance#schemaLocation
+ id: attributes
+ id_ref: attributes
+ id_refs: attributes
+ any_uri: http://www.codesynthesis.com
+ base64_binary: YmFzZTY0IGJpbmFyeQ==
+
+ hex_binary: 6865782052696E617279
+ date: 2001-10-26+02:00
+ date_time: 2001-10-26T21:32:52.000000+02:00
+ duration: P1Y2M3DT5H20M30.000000S
+ day: 01+02:00
+ month: 11+02:00
+ month_day: 11-02+02:00
+ year: 2001+02:00
+ year_month: 2001-11+02:00
+ time: 21:32:52.000000+02:00
+
+ inherited:
+ byte: A
+ unsigned_byte: B
+ short: -222
+ unsigned_short: 57005
+ int: -57005
+ unsigned_int: 3735928559
+ long: -3735928559
+ unsigned_long: 16045690984833335023
+ integer: -3735928559
+ non_positive_integer: -3735928559
+ non_negative_integer: 3735928559
+ positive_integer: 3735928559
+ negative_integer: -3735928559
+ boolean: 1
+ float: 1234.12
+ double: 1.23457e+07
+ decimal: 1.23457e+07
+ string: string
+ normalized_string: normalized string
+ token: one two three
+ name: name
+ name_token: name-token
+ name_tokens: name tokens
+ ncname: ncname
+ language: en-us
+ qname: http://www.w3.org/2001/XMLSchema-instance#schemaLocation
+ id: elements1
+ id: elements2
+ id_ref: elements1
+ id_refs: elements1 elements2
+ any_uri: http://www.codesynthesis.com
+ base64_binary: YmFzZTY0IGJpbmFyeQ==
+
+ hex_binary: 6865782052696E617279
+ date: 2001-10-26+02:00
+ date_time: 2001-10-26T21:32:52.000000+02:00
+ duration: P1Y2M3DT5H20M30.000000S
+ day: 01+02:00
+ month: 11+02:00
+ month_day: 11-02+02:00
+ year: 2001+02:00
+ year_month: 2001-11+02:00
+ time: 21:32:52.000000+02:00
+ EOE
+}
diff --git a/xsd-tests/cxx/tree/built-in/types.xsd b/xsd-tests/cxx/tree/built-in/types.xsd
new file mode 100644
index 0000000..22582cb
--- /dev/null
+++ b/xsd-tests/cxx/tree/built-in/types.xsd
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.w3.org/2001/XMLSchema XMLSchema.xsd"
+ xmlns="http://www.codesynthesis.com/xmlns/test"
+ targetNamespace="http://www.codesynthesis.com/xmlns/test">
+
+ <!-- elements -->
+
+ <xsd:complexType name="Elements">
+ <xsd:sequence>
+
+ <!-- integers -->
+ <xsd:element name="byte" type="xsd:byte"/>
+ <xsd:element name="unsigned_byte" type="xsd:unsignedByte"/>
+ <xsd:element name="short" type="xsd:short"/>
+ <xsd:element name="unsigned_short" type="xsd:unsignedShort"/>
+ <xsd:element name="int" type="xsd:int"/>
+ <xsd:element name="unsigned_int" type="xsd:unsignedInt"/>
+ <xsd:element name="long" type="xsd:long"/>
+ <xsd:element name="unsigned_long" type="xsd:unsignedLong"/>
+ <xsd:element name="integer" type="xsd:integer"/>
+ <xsd:element name="non_positive_integer" type="xsd:nonPositiveInteger"/>
+ <xsd:element name="non_negative_integer" type="xsd:nonNegativeInteger"/>
+ <xsd:element name="positive_integer" type="xsd:positiveInteger"/>
+ <xsd:element name="negative_integer" type="xsd:negativeInteger"/>
+
+
+ <!-- boolean -->
+ <xsd:element name="boolean" type="xsd:boolean"/>
+
+
+ <!-- floats -->
+ <xsd:element name="float" type="xsd:float"/>
+ <xsd:element name="double" type="xsd:double"/>
+ <xsd:element name="decimal" type="xsd:decimal"/>
+
+
+ <!-- strings -->
+ <xsd:element name="string" type="xsd:string"/>
+ <xsd:element name="normalized_string" type="xsd:normalizedString"/>
+ <xsd:element name="token" type="xsd:token"/>
+ <xsd:element name="name" type="xsd:Name"/>
+ <xsd:element name="name_token" type="xsd:NMTOKEN"/>
+ <xsd:element name="name_tokens" type="xsd:NMTOKENS"/>
+ <xsd:element name="ncname" type="xsd:NCName"/>
+ <xsd:element name="language" type="xsd:language"/>
+
+ <!-- qualified name -->
+ <xsd:element name="qname" type="xsd:QName"/>
+
+
+ <!-- ID/IDREF -->
+ <xsd:element name="id" maxOccurs="2" type="xsd:ID"/>
+ <xsd:element name="id_ref" type="xsd:IDREF"/>
+ <xsd:element name="id_refs" type="xsd:IDREFS"/>
+
+
+ <!-- URI -->
+ <xsd:element name="any_uri" type="xsd:anyURI"/>
+
+
+ <!-- binary -->
+ <xsd:element name="base64_binary" type="xsd:base64Binary"/>
+ <xsd:element name="hex_binary" type="xsd:hexBinary"/>
+
+
+ <!-- date/time -->
+ <xsd:element name="date" type="xsd:date"/>
+ <xsd:element name="date_time" type="xsd:dateTime"/>
+ <xsd:element name="duration" type="xsd:duration"/>
+ <xsd:element name="day" type="xsd:gDay"/>
+ <xsd:element name="month" type="xsd:gMonth"/>
+ <xsd:element name="month_day" type="xsd:gMonthDay"/>
+ <xsd:element name="year" type="xsd:gYear"/>
+ <xsd:element name="year_month" type="xsd:gYearMonth"/>
+ <xsd:element name="time" type="xsd:time"/>
+
+
+ <!-- entity -->
+ <!--
+ <xsd:element name="entity" type="xsd:ENTITY"/>
+ <xsd:element name="entities" type="xsd:ENTITIES"/>
+ -->
+
+
+ <!-- notation -->
+ <!-- xsd:element name="notation" type="xsd:NOTATION"/ -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="elements" type="Elements"/>
+
+
+
+ <!-- attributes -->
+
+ <xsd:complexType name="Attributes">
+ <!-- integers -->
+ <xsd:attribute name="byte" type="xsd:byte"/>
+ <xsd:attribute name="unsigned_byte" type="xsd:unsignedByte"/>
+ <xsd:attribute name="short" type="xsd:short"/>
+ <xsd:attribute name="unsigned_short" type="xsd:unsignedShort"/>
+ <xsd:attribute name="int" type="xsd:int"/>
+ <xsd:attribute name="unsigned_int" type="xsd:unsignedInt"/>
+ <xsd:attribute name="long" type="xsd:long"/>
+ <xsd:attribute name="unsigned_long" type="xsd:unsignedLong"/>
+ <xsd:attribute name="integer" type="xsd:integer"/>
+ <xsd:attribute name="non_positive_integer" type="xsd:nonPositiveInteger"/>
+ <xsd:attribute name="non_negative_integer" type="xsd:nonNegativeInteger"/>
+ <xsd:attribute name="positive_integer" type="xsd:positiveInteger"/>
+ <xsd:attribute name="negative_integer" type="xsd:negativeInteger"/>
+
+
+ <!-- boolean -->
+ <xsd:attribute name="boolean" type="xsd:boolean"/>
+
+
+ <!-- floats -->
+ <xsd:attribute name="float" type="xsd:float"/>
+ <xsd:attribute name="double" type="xsd:double"/>
+ <xsd:attribute name="decimal" type="xsd:decimal"/>
+
+
+ <!-- strings -->
+ <xsd:attribute name="string" type="xsd:string"/>
+ <xsd:attribute name="normalized_string" type="xsd:normalizedString"/>
+ <xsd:attribute name="token" type="xsd:token"/>
+ <xsd:attribute name="name" type="xsd:Name"/>
+ <xsd:attribute name="name_token" type="xsd:NMTOKEN"/>
+ <xsd:attribute name="name_tokens" type="xsd:NMTOKENS"/>
+ <xsd:attribute name="ncname" type="xsd:NCName"/>
+ <xsd:attribute name="language" type="xsd:language"/>
+
+ <!-- qualified name -->
+ <xsd:attribute name="qname" type="xsd:QName"/>
+
+
+ <!-- ID/IDREF -->
+ <xsd:attribute name="id" type="xsd:ID"/>
+ <xsd:attribute name="id_ref" type="xsd:IDREF"/>
+ <xsd:attribute name="id_refs" type="xsd:IDREFS"/>
+
+
+ <!-- URI -->
+ <xsd:attribute name="any_uri" type="xsd:anyURI"/>
+
+
+ <!-- binary -->
+ <xsd:attribute name="base64_binary" type="xsd:base64Binary"/>
+ <xsd:attribute name="hex_binary" type="xsd:hexBinary"/>
+
+
+ <!-- date/time -->
+ <xsd:attribute name="date" type="xsd:date"/>
+ <xsd:attribute name="date_time" type="xsd:dateTime"/>
+ <xsd:attribute name="duration" type="xsd:duration"/>
+ <xsd:attribute name="day" type="xsd:gDay"/>
+ <xsd:attribute name="month" type="xsd:gMonth"/>
+ <xsd:attribute name="month_day" type="xsd:gMonthDay"/>
+ <xsd:attribute name="year" type="xsd:gYear"/>
+ <xsd:attribute name="year_month" type="xsd:gYearMonth"/>
+ <xsd:attribute name="time" type="xsd:time"/>
+
+
+ <!-- entity -->
+ <!--
+ <xsd:attribute name="entity" type="xsd:ENTITY"/>
+ <xsd:attribute name="entities" type="xsd:ENTITIES"/>
+ -->
+
+
+ <!-- notation -->
+ <!-- xsd:element name="notation" type="xsd:NOTATION"/ -->
+ </xsd:complexType>
+
+ <xsd:element name="attributes" type="Attributes"/>
+
+
+ <!-- inheritance -->
+
+ <!-- integers -->
+ <xsd:simpleType name="Byte">
+ <xsd:restriction base="xsd:byte"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="UnsignedByte">
+ <xsd:restriction base="xsd:unsignedByte"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Short">
+ <xsd:restriction base="xsd:short"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="UnsignedShort">
+ <xsd:restriction base="xsd:unsignedShort"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Int">
+ <xsd:restriction base="xsd:int"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="UnsignedInt">
+ <xsd:restriction base="xsd:unsignedInt"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Long">
+ <xsd:restriction base="xsd:long"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="UnsignedLong">
+ <xsd:restriction base="xsd:unsignedLong"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Integer">
+ <xsd:restriction base="xsd:integer"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NonPositiveInteger">
+ <xsd:restriction base="xsd:nonPositiveInteger"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NonNegativeInteger">
+ <xsd:restriction base="xsd:nonNegativeInteger"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="PositiveInteger">
+ <xsd:restriction base="xsd:positiveInteger"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NegativeInteger">
+ <xsd:restriction base="xsd:negativeInteger"/>
+ </xsd:simpleType>
+
+
+ <!-- boolean -->
+ <xsd:simpleType name="Boolean">
+ <xsd:restriction base="xsd:boolean"/>
+ </xsd:simpleType>
+
+
+ <!-- floats -->
+ <xsd:simpleType name="Float">
+ <xsd:restriction base="xsd:float"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Double">
+ <xsd:restriction base="xsd:double"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Decimal">
+ <xsd:restriction base="xsd:decimal"/>
+ </xsd:simpleType>
+
+
+ <!-- strings -->
+ <xsd:simpleType name="String">
+ <xsd:restriction base="xsd:string"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NormalizedString">
+ <xsd:restriction base="xsd:normalizedString"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Token">
+ <xsd:restriction base="xsd:token"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Name">
+ <xsd:restriction base="xsd:Name"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NameToken">
+ <xsd:restriction base="xsd:NMTOKEN"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NameTokens">
+ <xsd:restriction base="xsd:NMTOKENS"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="NCName">
+ <xsd:restriction base="xsd:NCName"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Language">
+ <xsd:restriction base="xsd:language"/>
+ </xsd:simpleType>
+
+
+ <!-- qualified name -->
+ <xsd:simpleType name="QName">
+ <xsd:restriction base="xsd:QName"/>
+ </xsd:simpleType>
+
+
+ <!-- ID/IDREF -->
+ <xsd:simpleType name="Id">
+ <xsd:restriction base="xsd:ID"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="IdRef">
+ <xsd:restriction base="xsd:IDREF"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="IdRefs">
+ <xsd:restriction base="xsd:IDREFS"/>
+ </xsd:simpleType>
+
+
+ <!-- URI -->
+ <xsd:simpleType name="URI">
+ <xsd:restriction base="xsd:anyURI"/>
+ </xsd:simpleType>
+
+
+ <!-- binary -->
+ <xsd:simpleType name="Base64Binary">
+ <xsd:restriction base="xsd:base64Binary"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="HexBinary">
+ <xsd:restriction base="xsd:hexBinary"/>
+ </xsd:simpleType>
+
+
+ <!-- date/time -->
+ <xsd:simpleType name="Date">
+ <xsd:restriction base="xsd:date"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="DateTime">
+ <xsd:restriction base="xsd:dateTime"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Duration">
+ <xsd:restriction base="xsd:duration"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Day">
+ <xsd:restriction base="xsd:gDay"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Month">
+ <xsd:restriction base="xsd:gMonth"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="MonthDay">
+ <xsd:restriction base="xsd:gMonthDay"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Year">
+ <xsd:restriction base="xsd:gYear"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="YearMonth">
+ <xsd:restriction base="xsd:gYearMonth"/>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="Time">
+ <xsd:restriction base="xsd:time"/>
+ </xsd:simpleType>
+
+
+ <!-- entity -->
+ <!--
+ <xsd:element name="entity" type="xsd:ENTITY"/>
+ <xsd:element name="entities" type="xsd:ENTITIES"/>
+ -->
+
+
+ <!-- notation -->
+ <!-- xsd:element name="notation" type="xsd:NOTATION"/ -->
+
+ <!-- elements -->
+
+ <xsd:complexType name="Inherited">
+ <xsd:sequence>
+
+ <!-- integers -->
+ <xsd:element name="byte" type="Byte"/>
+ <xsd:element name="unsigned_byte" type="UnsignedByte"/>
+ <xsd:element name="short" type="Short"/>
+ <xsd:element name="unsigned_short" type="UnsignedShort"/>
+ <xsd:element name="int" type="Int"/>
+ <xsd:element name="unsigned_int" type="UnsignedInt"/>
+ <xsd:element name="long" type="Long"/>
+ <xsd:element name="unsigned_long" type="UnsignedLong"/>
+ <xsd:element name="integer" type="Integer"/>
+ <xsd:element name="non_positive_integer" type="NonPositiveInteger"/>
+ <xsd:element name="non_negative_integer" type="NonNegativeInteger"/>
+ <xsd:element name="positive_integer" type="PositiveInteger"/>
+ <xsd:element name="negative_integer" type="NegativeInteger"/>
+
+
+ <!-- boolean -->
+ <xsd:element name="boolean" type="Boolean"/>
+
+
+ <!-- floats -->
+ <xsd:element name="float" type="Float"/>
+ <xsd:element name="double" type="Double"/>
+ <xsd:element name="decimal" type="Decimal"/>
+
+
+ <!-- strings -->
+ <xsd:element name="string" type="String"/>
+ <xsd:element name="normalized_string" type="NormalizedString"/>
+ <xsd:element name="token" type="Token"/>
+ <xsd:element name="name" type="Name"/>
+ <xsd:element name="name_token" type="NameToken"/>
+ <xsd:element name="name_tokens" type="NameTokens"/>
+ <xsd:element name="ncname" type="NCName"/>
+ <xsd:element name="language" type="Language"/>
+
+ <!-- qualified name -->
+ <xsd:element name="qname" type="QName"/>
+
+
+ <!-- ID/IDREF -->
+ <xsd:element name="id" maxOccurs="2" type="Id"/>
+ <xsd:element name="id_ref" type="IdRef"/>
+ <xsd:element name="id_refs" type="IdRefs"/>
+
+
+ <!-- URI -->
+ <xsd:element name="any_uri" type="URI"/>
+
+
+ <!-- binary -->
+ <xsd:element name="base64_binary" type="Base64Binary"/>
+ <xsd:element name="hex_binary" type="HexBinary"/>
+
+
+ <!-- date/time -->
+ <xsd:element name="date" type="Date"/>
+ <xsd:element name="date_time" type="DateTime"/>
+ <xsd:element name="duration" type="Duration"/>
+ <xsd:element name="day" type="Day"/>
+ <xsd:element name="month" type="Month"/>
+ <xsd:element name="month_day" type="MonthDay"/>
+ <xsd:element name="year" type="Year"/>
+ <xsd:element name="year_month" type="YearMonth"/>
+ <xsd:element name="time" type="Time"/>
+
+
+ <!-- entity -->
+ <!--
+ <xsd:element name="entity" type="xsd:ENTITY"/>
+ <xsd:element name="entities" type="xsd:ENTITIES"/>
+ -->
+
+
+ <!-- notation -->
+ <!-- xsd:element name="notation" type="xsd:NOTATION"/ -->
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="inherited" type="Inherited"/>
+
+</xsd:schema>