diff options
Diffstat (limited to 'test/schemas')
105 files changed, 2068 insertions, 0 deletions
diff --git a/test/schemas/.memdump b/test/schemas/.memdump new file mode 100644 index 0000000..0a6efc4 --- /dev/null +++ b/test/schemas/.memdump @@ -0,0 +1,4 @@ + 01:13:40 PM + + MEMORY ALLOCATED : 0, MAX was 28425 +BLOCK NUMBER SIZE TYPE diff --git a/test/schemas/all.xsd b/test/schemas/all.xsd new file mode 100644 index 0000000..b2e70e3 --- /dev/null +++ b/test/schemas/all.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:complexType name="PurchaseOrderType"> + <xsd:sequence> + <xsd:all> + <xsd:element name="shipTo" type="USAddress"/> + <xsd:element name="billTo" type="USAddress"/> + <xsd:element name="items" type="Items"/> + </xsd:all> + <xsd:sequence> + <xsd:element ref="comment" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:sequence> + <xsd:attribute name="orderDate" type="xsd:date"/> + </xsd:complexType> +</xsd:schema> diff --git a/test/schemas/all1_0.xml b/test/schemas/all1_0.xml new file mode 100644 index 0000000..f50088c --- /dev/null +++ b/test/schemas/all1_0.xml @@ -0,0 +1,4 @@ +<?xml version="1.0"?> +<a> + <b/> +</a> diff --git a/test/schemas/all1_0.xsd b/test/schemas/all1_0.xsd new file mode 100644 index 0000000..28fee0e --- /dev/null +++ b/test/schemas/all1_0.xsd @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="A"> + <xs:all> + <xs:element name="b" type="xs:string" minOccurs="0"/> + </xs:all> + </xs:complexType> + + <xs:element name="a" type="A"/> +</xs:schema> diff --git a/test/schemas/all_0.xml b/test/schemas/all_0.xml new file mode 100644 index 0000000..fb5b0fa --- /dev/null +++ b/test/schemas/all_0.xml @@ -0,0 +1 @@ +<doc><a/><b/><c/></doc> diff --git a/test/schemas/all_0.xsd b/test/schemas/all_0.xsd new file mode 100644 index 0000000..55c04ee --- /dev/null +++ b/test/schemas/all_0.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="doc"> + <xsd:complexType> + <xsd:all minOccurs="1"> + <xsd:element name="a"/> + <xsd:element name="b"/> + <xsd:element name="c"/> + </xsd:all> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/all_1.xml b/test/schemas/all_1.xml new file mode 100644 index 0000000..41d797e --- /dev/null +++ b/test/schemas/all_1.xml @@ -0,0 +1,2 @@ +<doc><b/><c/><a/></doc> + diff --git a/test/schemas/all_1.xsd b/test/schemas/all_1.xsd new file mode 100644 index 0000000..bc386f3 --- /dev/null +++ b/test/schemas/all_1.xsd @@ -0,0 +1,12 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="doc"> + <xsd:complexType> + <xsd:all minOccurs="0"> + <xsd:element name="a"/> + <xsd:element name="b"/> + <xsd:element name="c"/> + </xsd:all> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/all_2.xml b/test/schemas/all_2.xml new file mode 100644 index 0000000..cc1580b --- /dev/null +++ b/test/schemas/all_2.xml @@ -0,0 +1 @@ +<doc><b/><a/><c/></doc> diff --git a/test/schemas/all_2.xsd b/test/schemas/all_2.xsd new file mode 100644 index 0000000..630b0df --- /dev/null +++ b/test/schemas/all_2.xsd @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="doc"> + <xsd:complexType> + <xsd:all> + <xsd:element name="a"/> + <xsd:element minOccurs="0" name="b"/> + </xsd:all> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/all_3.xml b/test/schemas/all_3.xml new file mode 100644 index 0000000..c011b3f --- /dev/null +++ b/test/schemas/all_3.xml @@ -0,0 +1 @@ +<doc><a/><b/></doc> diff --git a/test/schemas/all_4.xml b/test/schemas/all_4.xml new file mode 100644 index 0000000..afa807c --- /dev/null +++ b/test/schemas/all_4.xml @@ -0,0 +1 @@ +<doc></doc> diff --git a/test/schemas/all_5.xml b/test/schemas/all_5.xml new file mode 100644 index 0000000..d68f321 --- /dev/null +++ b/test/schemas/all_5.xml @@ -0,0 +1 @@ +<doc><a/><b/><a/></doc> diff --git a/test/schemas/all_6.xml b/test/schemas/all_6.xml new file mode 100644 index 0000000..7dd71b1 --- /dev/null +++ b/test/schemas/all_6.xml @@ -0,0 +1 @@ +<doc><a/></doc> diff --git a/test/schemas/all_7.xml b/test/schemas/all_7.xml new file mode 100644 index 0000000..c011b3f --- /dev/null +++ b/test/schemas/all_7.xml @@ -0,0 +1 @@ +<doc><a/><b/></doc> diff --git a/test/schemas/attr0_0.xml b/test/schemas/attr0_0.xml new file mode 100644 index 0000000..cb5b1a6 --- /dev/null +++ b/test/schemas/attr0_0.xml @@ -0,0 +1 @@ +<foo id="abc"/> diff --git a/test/schemas/attr0_0.xsd b/test/schemas/attr0_0.xsd new file mode 100644 index 0000000..d2031ba --- /dev/null +++ b/test/schemas/attr0_0.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="foo"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> +</xsd:schema> + diff --git a/test/schemas/choice_0.xml b/test/schemas/choice_0.xml new file mode 100644 index 0000000..677b039 --- /dev/null +++ b/test/schemas/choice_0.xml @@ -0,0 +1,3 @@ +<doc> +<a/> +</doc> diff --git a/test/schemas/choice_0.xsd b/test/schemas/choice_0.xsd new file mode 100644 index 0000000..1491b6b --- /dev/null +++ b/test/schemas/choice_0.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="doc"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="1" maxOccurs="1"> + <xs:element name="a"/> + <xs:element name="b"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/choice_1.xml b/test/schemas/choice_1.xml new file mode 100644 index 0000000..d5c0dd1 --- /dev/null +++ b/test/schemas/choice_1.xml @@ -0,0 +1,3 @@ +<doc> +<b/> +</doc> diff --git a/test/schemas/choice_1.xsd b/test/schemas/choice_1.xsd new file mode 100644 index 0000000..00614d0 --- /dev/null +++ b/test/schemas/choice_1.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="doc"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element name="a"/> + <xs:element name="b"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/choice_2.xml b/test/schemas/choice_2.xml new file mode 100644 index 0000000..7b27f17 --- /dev/null +++ b/test/schemas/choice_2.xml @@ -0,0 +1,4 @@ +<doc> +<a/> +<b/> +</doc> diff --git a/test/schemas/choice_2.xsd b/test/schemas/choice_2.xsd new file mode 100644 index 0000000..9f2b094 --- /dev/null +++ b/test/schemas/choice_2.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="doc"> + <xs:complexType> + <xs:sequence> + <xs:choice minOccurs="1" maxOccurs="3"> + <xs:element name="a"/> + <xs:element name="b"/> + </xs:choice> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/choice_3.xml b/test/schemas/choice_3.xml new file mode 100644 index 0000000..0358109 --- /dev/null +++ b/test/schemas/choice_3.xml @@ -0,0 +1,4 @@ +<doc> +<a/> +<a/> +</doc> diff --git a/test/schemas/choice_4.xml b/test/schemas/choice_4.xml new file mode 100644 index 0000000..636923c --- /dev/null +++ b/test/schemas/choice_4.xml @@ -0,0 +1,2 @@ +<doc> +</doc> diff --git a/test/schemas/choice_5.xml b/test/schemas/choice_5.xml new file mode 100644 index 0000000..3345a68 --- /dev/null +++ b/test/schemas/choice_5.xml @@ -0,0 +1,6 @@ +<doc> +<a/> +<b/> +<a/> +</doc> + diff --git a/test/schemas/choice_6.xml b/test/schemas/choice_6.xml new file mode 100644 index 0000000..394153d --- /dev/null +++ b/test/schemas/choice_6.xml @@ -0,0 +1,7 @@ +<doc> +<a/> +<b/> +<a/> +<a/> +</doc> + diff --git a/test/schemas/date_0.xml b/test/schemas/date_0.xml new file mode 100644 index 0000000..fbef1e5 --- /dev/null +++ b/test/schemas/date_0.xml @@ -0,0 +1,25 @@ +<?xml version="1.0"?> +<date> + <time>01:02:59</time> + <time1>01:02:59</time1> + <time2>12:59:59.0001</time2> + <time2>12:00:00</time2> + <date1>1996-05-20</date1> + <date1>2002-05-18</date1> + <date2>1996-05-19Z</date2> + <date2>2002-05-19Z</date2> + <date1>2002-05-18Z</date1> + <date1>2000-05-18Z</date1> + <dt1>2000-05-18T00:00:00</dt1> + <dt2>2002-05-19T21:30:00.99</dt2> + <hol>--01-01</hol> + <hol>--07-04</hol> + <hol>--12-25</hol> + <year1>2002</year1> + <yearmon1>2002-05</yearmon1> + <mon1>--05Z</mon1> + <day1>---31</day1> + <monthday1>--02-28Z</monthday1> + <monthday1>--12-31-06:00</monthday1> + <dt2>2003-04-30T18:00:00-06:00</dt2> +</date> diff --git a/test/schemas/date_0.xsd b/test/schemas/date_0.xsd new file mode 100644 index 0000000..7247394 --- /dev/null +++ b/test/schemas/date_0.xsd @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Testing date/time data types + </xsd:documentation> + </xsd:annotation> + <xsd:element name="date"> + <xsd:complexType> + <xsd:sequence> + <xsd:choice minOccurs="1" maxOccurs="unbounded"> + <xsd:element name="time" type="xsd:time"/> + <xsd:element name="time1"> + <xsd:simpleType> + <xsd:restriction base="xsd:time"> + <xsd:maxInclusive value="23:59:59.9999999"/> + <xsd:minInclusive value="00:00:00"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="time2"> + <xsd:simpleType> + <xsd:restriction base="xsd:time"> + <xsd:maxInclusive value="13:50:50"/> + <xsd:minInclusive value="12:00:00"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="date1"> + <xsd:simpleType> + <xsd:restriction base="xsd:date"> + <xsd:maxExclusive value="2002-05-19"/> + <xsd:minExclusive value="1996-05-19"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="date2"> + <xsd:simpleType> + <xsd:restriction base="xsd:date"> + <xsd:maxInclusive value="2002-05-19Z"/> + <xsd:minInclusive value="1996-05-19Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="dt1"> + <xsd:simpleType> + <xsd:restriction base="xsd:dateTime"> + <xsd:maxExclusive value="2002-01-01T00:00:00Z"/> + <xsd:minExclusive value="1970-01-01T00:00:00Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="dt2"> + <xsd:simpleType> + <xsd:restriction base="xsd:dateTime"> + <xsd:maxInclusive value="2003-05-01T00:00:00Z"/> + <xsd:minInclusive value="1996-05-19T21:30:00Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="hol" type="holidays"/> + <xsd:element name="year1"> + <xsd:simpleType> + <xsd:restriction base="xsd:gYear"> + <xsd:maxInclusive value="2003Z"/> + <xsd:minInclusive value="1996Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="yearmon1"> + <xsd:simpleType> + <xsd:restriction base="xsd:gYearMonth"> + <xsd:maxInclusive value="2003-05Z"/> + <xsd:minInclusive value="1996-05Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="mon1"> + <xsd:simpleType> + <xsd:restriction base="xsd:gMonth"> + <xsd:minInclusive value="--01Z"/> + <xsd:maxInclusive value="--05Z"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="day1"> + <xsd:simpleType> + <xsd:restriction base="xsd:gDay"> + <xsd:minInclusive value="---28"/> + <xsd:maxInclusive value="---31"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="monthday1" type="xsd:gMonthDay"/> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:simpleType name='holidays'> + <xsd:annotation> + <xsd:documentation>some US holidays</xsd:documentation> + </xsd:annotation> + <xsd:restriction base='xsd:gMonthDay'> + <xsd:enumeration value='--01-01'> + <xsd:annotation> + <xsd:documentation>New Year's day</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value='--07-04'> + <xsd:annotation> + <xsd:documentation>4th of July</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + <xsd:enumeration value='--12-25'> + <xsd:annotation> + <xsd:documentation>Christmas</xsd:documentation> + </xsd:annotation> + </xsd:enumeration> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> + diff --git a/test/schemas/deter0_0.xml b/test/schemas/deter0_0.xml new file mode 100644 index 0000000..0ea1a41 --- /dev/null +++ b/test/schemas/deter0_0.xml @@ -0,0 +1,5 @@ +<book> + <odd-page>first page</odd-page> + <even-page>second page</even-page> + <odd-page>third page</odd-page> +</book> diff --git a/test/schemas/deter0_0.xsd b/test/schemas/deter0_0.xsd new file mode 100644 index 0000000..8b5da69 --- /dev/null +++ b/test/schemas/deter0_0.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:element name="odd-page" type="xs:string"/> + <xs:element name="even-page" type="xs:string"/> + <xs:element name="book"> + <xs:complexType> + <xs:sequence> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="odd-page"/> + <xs:element ref="even-page"/> + </xs:sequence> + <xs:element ref="odd-page" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/dur_0.xml b/test/schemas/dur_0.xml new file mode 100644 index 0000000..be84943 --- /dev/null +++ b/test/schemas/dur_0.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<duration> + <second1>PT0.9S</second1> + <second2>PT0.1S</second2> + <second2>PT0.999999S</second2> + <month1>P0Y27D</month1> + <month1>P27DT23H59M59S</month1> + <month2>P0Y</month2> + <year1>P367DT23H59M59S</year1> + <year1>P13M</year1> + <year2>P12M</year2> + <month3>PT86399S</month3> +</duration> diff --git a/test/schemas/dur_0.xsd b/test/schemas/dur_0.xsd new file mode 100644 index 0000000..374c038 --- /dev/null +++ b/test/schemas/dur_0.xsd @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Testing duration data types + </xsd:documentation> + </xsd:annotation> + <xsd:element name="duration"> + <xsd:complexType> + <xsd:sequence> + <xsd:choice minOccurs="1" maxOccurs="unbounded"> + <xsd:element name="second1"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxExclusive value="PT1S"/> + <xsd:minExclusive value="PT0.1S"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="second2"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxInclusive value="PT1S"/> + <xsd:minInclusive value="PT0.1S"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="month1"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxExclusive value="P1M"/> + <xsd:minExclusive value="P0M"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="month2"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxInclusive value="P1M"/> + <xsd:minInclusive value="P0M"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="month3" type="MSD"/> + <xsd:element name="year1"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxExclusive value="P2Y"/> + <xsd:minExclusive value="P1Y"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="year2"> + <xsd:simpleType> + <xsd:restriction base="xsd:duration"> + <xsd:maxInclusive value="P2Y"/> + <xsd:minInclusive value="P1Y"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:simpleType name="MSD"> + <xsd:restriction base="xsd:duration"> + <xsd:maxExclusive value="PT24H"/> + <xsd:minExclusive value="-PT24H"/> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> + diff --git a/test/schemas/elem0_0.xml b/test/schemas/elem0_0.xml new file mode 100644 index 0000000..f741c58 --- /dev/null +++ b/test/schemas/elem0_0.xml @@ -0,0 +1,3 @@ +<?xml version="1.0"?>
+<doc/>
+
diff --git a/test/schemas/elem0_0.xsd b/test/schemas/elem0_0.xsd new file mode 100644 index 0000000..2c5bf5f --- /dev/null +++ b/test/schemas/elem0_0.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:annotation> + <xsd:documentation> + Testing min and max occurance attributes on element + </xsd:documentation> + </xsd:annotation> + + <xsd:element name="doc"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name='a' minOccurs='0' maxOccurs='3'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/empty_0.xml b/test/schemas/empty_0.xml new file mode 100644 index 0000000..e9906b7 --- /dev/null +++ b/test/schemas/empty_0.xml @@ -0,0 +1 @@ +<internationalPrice currency="EUR" value="423.46"/> diff --git a/test/schemas/empty_0.xsd b/test/schemas/empty_0.xsd new file mode 100644 index 0000000..76e5f45 --- /dev/null +++ b/test/schemas/empty_0.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="internationalPrice"> + <xsd:complexType> + <xsd:complexContent> + <xsd:restriction base="xsd:anyType"> + <xsd:attribute name="currency" type="xsd:string"/> + <xsd:attribute name="value" type="xsd:decimal"/> + </xsd:restriction> + </xsd:complexContent> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/empty_1.xsd b/test/schemas/empty_1.xsd new file mode 100644 index 0000000..2c81c09 --- /dev/null +++ b/test/schemas/empty_1.xsd @@ -0,0 +1,9 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="internationalPrice"> + <xsd:complexType> + <xsd:attribute name="currency" type="xsd:string"/> + <xsd:attribute name="value" type="xsd:decimal"/> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/extension0_0.xml b/test/schemas/extension0_0.xml new file mode 100644 index 0000000..60dd348 --- /dev/null +++ b/test/schemas/extension0_0.xml @@ -0,0 +1,7 @@ +<?xml version="1.0"?> +<addressee> + <forename>Albert</forename> + <forename>Arnold</forename> + <surname>Gore</surname> + <generation>Jr</generation> +</addressee> diff --git a/test/schemas/extension0_0.xsd b/test/schemas/extension0_0.xsd new file mode 100644 index 0000000..d89751a --- /dev/null +++ b/test/schemas/extension0_0.xsd @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="personName"> + <xs:sequence> + <xs:element name="title" minOccurs="0"/> + <xs:element name="forename" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="surname"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="extendedName"> + <xs:complexContent> + <xs:extension base="personName"> + <xs:sequence> + <xs:element name="generation" minOccurs="0"/> + </xs:sequence> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:element name="addressee" type="extendedName"/> +</xs:schema> diff --git a/test/schemas/extension1_0.xml b/test/schemas/extension1_0.xml new file mode 100644 index 0000000..5c3a0c9 --- /dev/null +++ b/test/schemas/extension1_0.xml @@ -0,0 +1 @@ +<title lang="fr">salut</title> diff --git a/test/schemas/extension1_0.xsd b/test/schemas/extension1_0.xsd new file mode 100644 index 0000000..0a11e14 --- /dev/null +++ b/test/schemas/extension1_0.xsd @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:simpleType name="string255"> + <xs:restriction base="xs:token"> + <xs:maxLength value="255"/> + </xs:restriction> + </xs:simpleType> + <xs:element name="title"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="string255"> + <xs:attribute name="lang" type="xs:language"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/extension1_1.xml b/test/schemas/extension1_1.xml new file mode 100644 index 0000000..7780cf6 --- /dev/null +++ b/test/schemas/extension1_1.xml @@ -0,0 +1 @@ +<title langue="fr">salut</title> diff --git a/test/schemas/extension1_2.xml b/test/schemas/extension1_2.xml new file mode 100644 index 0000000..3d65bb0 --- /dev/null +++ b/test/schemas/extension1_2.xml @@ -0,0 +1 @@ +<title lang="fr"><salut/></title> diff --git a/test/schemas/group0_0.xml b/test/schemas/group0_0.xml new file mode 100644 index 0000000..bf58ba6 --- /dev/null +++ b/test/schemas/group0_0.xml @@ -0,0 +1,3 @@ +<author> + <name>Foo Bar</name> +</author> diff --git a/test/schemas/group0_0.xsd b/test/schemas/group0_0.xsd new file mode 100644 index 0000000..7dfa393 --- /dev/null +++ b/test/schemas/group0_0.xsd @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="utf-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:group name="name"> + <xs:choice> + <xs:element name="name" type="xs:string"/> + <xs:sequence> + <xs:element name="first-name" type="xs:string"/> + <xs:element name="middle-name" type="xs:string" minOccurs="0"/> + <xs:element name="last-name" type="xs:string"/> + </xs:sequence> + </xs:choice> + </xs:group> + <xs:element name="author"> + <xs:complexType> + <xs:group ref="name"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/hexbinary_0.xml b/test/schemas/hexbinary_0.xml new file mode 100644 index 0000000..9513445 --- /dev/null +++ b/test/schemas/hexbinary_0.xml @@ -0,0 +1,20 @@ +<?xml version="1.0"?> +<xsd_hexBinary> + <hex>00</hex> + <hex>0123456789ABCDEF</hex> + <hex>abcdef0123456789</hex> + <hex>0123456789abcdef</hex> + <hex>0123456789ABCDEF</hex> + <hex>0123456789abcdef0123456789ABCDEF</hex> + <hex>0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF0123456789abcdef0123456789ABCDEF</hex> + <hex>01234567899876543210</hex> + <hex>00112233445566778899aAbBcCdDeEfF</hex> + <hex>A0B1C2D3E4F5</hex> + <!-- minLength and maxLength --> + <hex2>00</hex2> + <hex2>0000000000000000</hex2> + <hex2>1122334455667788</hex2> + <!-- length --> + <hex3>abcd</hex3> + <hex3>0ed0</hex3> +</xsd_hexBinary> diff --git a/test/schemas/hexbinary_0.xsd b/test/schemas/hexbinary_0.xsd new file mode 100644 index 0000000..60a6bec --- /dev/null +++ b/test/schemas/hexbinary_0.xsd @@ -0,0 +1,35 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + elementFormDefault="unqualified" + attributeFormDefault="unqualified"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Testing hexBinary data types + </xsd:documentation> + </xsd:annotation> + <xsd:element name="xsd_hexBinary"> + <xsd:complexType> + <xsd:sequence> + <xsd:choice minOccurs="1" maxOccurs="unbounded"> + <xsd:element name="hex" type="xsd:hexBinary"/> + <xsd:element name="hex2"> + <xsd:simpleType> + <xsd:restriction base="xsd:hexBinary"> + <xsd:maxLength value="8"/> + <xsd:minLength value="1"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="hex3"> + <xsd:simpleType> + <xsd:restriction base="xsd:hexBinary"> + <xsd:length value="2"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:choice> + </xsd:sequence> + </xsd:complexType> + </xsd:element> +</xsd:schema> + diff --git a/test/schemas/hexbinary_1.xml b/test/schemas/hexbinary_1.xml new file mode 100644 index 0000000..b9d6923 --- /dev/null +++ b/test/schemas/hexbinary_1.xml @@ -0,0 +1,15 @@ +<?xml version="1.0"?> +<!-- all should fail to validate --> +<xsd_hexBinary> + <hex></hex> + <hex/> + <hex>0</hex> + <hex>0123456789ABCDEFGH</hex> + <hex>+abcdef0123456789</hex> + <hex>-0123456789abcdef</hex> + <!-- minLength and maxLength --> + <hex2>112233445566778899</hex2> + <!-- length --> + <hex3>ab</hex3> + <hex3>00fedc</hex3> +</xsd_hexBinary> diff --git a/test/schemas/import0_0.imp b/test/schemas/import0_0.imp new file mode 100644 index 0000000..ce446d8 --- /dev/null +++ b/test/schemas/import0_0.imp @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema targetNamespace="http://example.net/xmlschema2" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="http://example.net/xmlschema2" + elementFormDefault="qualified" attributeFormDefault="unqualified"> + +<xs:simpleType name="tfoo"> + <xs:restriction base="xs:NMTOKEN"> + <xs:maxLength value="2"/> + </xs:restriction> +</xs:simpleType> + +</xs:schema> diff --git a/test/schemas/import0_0.xml b/test/schemas/import0_0.xml new file mode 100644 index 0000000..5ba7e3f --- /dev/null +++ b/test/schemas/import0_0.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<bar xmlns="http://example.net/xmlschema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://example.net/xmlschema testImportTypes.xsd"> + <foo1> + xy + </foo1> +</bar> diff --git a/test/schemas/import0_0.xsd b/test/schemas/import0_0.xsd new file mode 100644 index 0000000..e973d64 --- /dev/null +++ b/test/schemas/import0_0.xsd @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema targetNamespace="http://example.net/xmlschema" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns:ns1="http://example.net/xmlschema" + xmlns:ns2="http://example.net/xmlschema2" + xmlns="http://example.net/xmlschema" + elementFormDefault="qualified" attributeFormDefault="unqualified"> + +<xs:import namespace="http://example.net/xmlschema2" + schemaLocation="import0_0.imp"/> + +<xs:element name="bar"> + <xs:complexType> + <xs:sequence> + <xs:element name="foo1" type="ns2:tfoo"/> + </xs:sequence> + </xs:complexType> +</xs:element> + + +</xs:schema> diff --git a/test/schemas/item_0.xml b/test/schemas/item_0.xml new file mode 100644 index 0000000..19d0790 --- /dev/null +++ b/test/schemas/item_0.xml @@ -0,0 +1,6 @@ +<Item partNum="926-AA" shipBy="air"> +<productName>foo</productName> +<quantity>2</quantity> +<USPrice>1.0</USPrice> +<comment>No comment !</comment> +</Item> diff --git a/test/schemas/item_0.xsd b/test/schemas/item_0.xsd new file mode 100644 index 0000000..3d95ef3 --- /dev/null +++ b/test/schemas/item_0.xsd @@ -0,0 +1,39 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="comment" type="xsd:string"/> + <!-- Stock Keeping Unit, a code for identifying products --> + <xsd:simpleType name="SKU"> + <xsd:restriction base="xsd:string"> + <xsd:pattern value="\d{3}-[A-Z]{2}"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:element name="Item" minOccurs="0" maxOccurs="unbounded"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="productName" type="xsd:string"/> + <xsd:element name="quantity"> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger"> + <xsd:maxExclusive value="100"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="USPrice" type="xsd:decimal"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="partNum" type="SKU" use="required"/> + <!-- add weightKg and shipBy attributes --> + <xsd:attribute name="weightKg" type="xsd:decimal"/> + <xsd:attribute name="shipBy"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="air"/> + <xsd:enumeration value="land"/> + <xsd:enumeration value="any"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/item_1.xsd b/test/schemas/item_1.xsd new file mode 100644 index 0000000..cea1f01 --- /dev/null +++ b/test/schemas/item_1.xsd @@ -0,0 +1,42 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:element name="comment" type="xsd:string"/> +<!-- Stock Keeping Unit, a code for identifying products --> + <xsd:simpleType name="SKU"> + <xsd:restriction base="xsd:string"> + <xsd:pattern value="\d{3}-[A-Z]{2}"/> + </xsd:restriction> + </xsd:simpleType> + <xsd:element name="Item" minOccurs="0" maxOccurs="unbounded"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="productName" type="xsd:string"/> + <xsd:element name="quantity"> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger"> + <xsd:maxExclusive value="100"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="USPrice" type="xsd:decimal"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> + </xsd:sequence> +<!-- attributeGroup replaces individual declarations --> + <xsd:attributeGroup ref="ItemDelivery"/> + </xsd:complexType> + </xsd:element> + <xsd:attributeGroup name="ItemDelivery"> + <xsd:attribute name="partNum" type="SKU" use="required"/> + <xsd:attribute name="weightKg" type="xsd:decimal"/> + <xsd:attribute name="shipBy"> + <xsd:simpleType> + <xsd:restriction base="xsd:string"> + <xsd:enumeration value="air"/> + <xsd:enumeration value="land"/> + <xsd:enumeration value="any"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:attribute> + </xsd:attributeGroup> +</xsd:schema> diff --git a/test/schemas/length1_0.xml b/test/schemas/length1_0.xml new file mode 100644 index 0000000..0a8cd3f --- /dev/null +++ b/test/schemas/length1_0.xml @@ -0,0 +1 @@ +<width unit="cm">25</width> diff --git a/test/schemas/length1_0.xsd b/test/schemas/length1_0.xsd new file mode 100644 index 0000000..8a1ba0f --- /dev/null +++ b/test/schemas/length1_0.xsd @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="length1"> + <xs:simpleContent> + <xs:extension base="xs:nonNegativeInteger"> + <xs:attribute name="unit" type="xs:NMTOKEN"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + <xs:element name="width" type="length1"/> +</xs:schema> diff --git a/test/schemas/length2_0.xml b/test/schemas/length2_0.xml new file mode 100644 index 0000000..5c851da --- /dev/null +++ b/test/schemas/length2_0.xml @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<depth> + <size>25</size> + <unit>cm</unit> +</depth> diff --git a/test/schemas/length2_0.xsd b/test/schemas/length2_0.xsd new file mode 100644 index 0000000..76d73c0 --- /dev/null +++ b/test/schemas/length2_0.xsd @@ -0,0 +1,14 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="length2"> + <xs:complexContent> + <xs:restriction base="xs:anyType"> + <xs:sequence> + <xs:element name="size" type="xs:nonNegativeInteger"/> + <xs:element name="unit" type="xs:NMTOKEN"/> + </xs:sequence> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:element name="depth" type="length2"/> +</xs:schema> diff --git a/test/schemas/length3_0.xml b/test/schemas/length3_0.xml new file mode 100644 index 0000000..5c851da --- /dev/null +++ b/test/schemas/length3_0.xml @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<depth> + <size>25</size> + <unit>cm</unit> +</depth> diff --git a/test/schemas/length3_0.xsd b/test/schemas/length3_0.xsd new file mode 100644 index 0000000..b97e688 --- /dev/null +++ b/test/schemas/length3_0.xsd @@ -0,0 +1,10 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="length3"> + <xs:sequence> + <xs:element name="size" type="xs:non-positive-integer"/> + <xs:element name="unit" type="xs:NMTOKEN"/> + </xs:sequence> + </xs:complexType> + <xs:element name="depth" type="length3"/> +</xs:schema> diff --git a/test/schemas/list0_0.xml b/test/schemas/list0_0.xml new file mode 100644 index 0000000..a58fe8b --- /dev/null +++ b/test/schemas/list0_0.xml @@ -0,0 +1,6 @@ +<test> + <string>hello world</string> + <string>hello world</string> + <string>hello world</string> + <string>hello world</string> +</test> diff --git a/test/schemas/list0_0.xsd b/test/schemas/list0_0.xsd new file mode 100644 index 0000000..33d7d66 --- /dev/null +++ b/test/schemas/list0_0.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xs:element name="test"> + <xs:annotation> + <xs:documentation>Comment describing your root element</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="string" type="xs:string" minOccurs="2" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/list0_1.xml b/test/schemas/list0_1.xml new file mode 100644 index 0000000..8878e5d --- /dev/null +++ b/test/schemas/list0_1.xml @@ -0,0 +1,3 @@ +<test> + <string>hello world</string> +</test> diff --git a/test/schemas/list0_1.xsd b/test/schemas/list0_1.xsd new file mode 100644 index 0000000..8966075 --- /dev/null +++ b/test/schemas/list0_1.xsd @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> + <xs:element name="test"> + <xs:annotation> + <xs:documentation>Comment describing your root element</xs:documentation> + </xs:annotation> + <xs:complexType> + <xs:sequence> + <xs:element name="string" type="xs:string" minOccurs="2" maxOccurs="3"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/list0_2.xml b/test/schemas/list0_2.xml new file mode 100644 index 0000000..e94d481 --- /dev/null +++ b/test/schemas/list0_2.xml @@ -0,0 +1,4 @@ +<test> + <string>hello world</string> + <string>hello world</string> +</test> diff --git a/test/schemas/mixed0_0.xml b/test/schemas/mixed0_0.xml new file mode 100644 index 0000000..5864343 --- /dev/null +++ b/test/schemas/mixed0_0.xml @@ -0,0 +1 @@ +<my>x</my> diff --git a/test/schemas/mixed0_0.xsd b/test/schemas/mixed0_0.xsd new file mode 100644 index 0000000..a82226e --- /dev/null +++ b/test/schemas/mixed0_0.xsd @@ -0,0 +1,5 @@ +<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:element name='my'> + <xs:complexType mixed='true'/> + </xs:element> +</xs:schema> diff --git a/test/schemas/mixed1_0.xml b/test/schemas/mixed1_0.xml new file mode 100644 index 0000000..d8cf633 --- /dev/null +++ b/test/schemas/mixed1_0.xml @@ -0,0 +1 @@ +<my myattr='y'>x</my> diff --git a/test/schemas/mixed1_0.xsd b/test/schemas/mixed1_0.xsd new file mode 100644 index 0000000..a9ea6cc --- /dev/null +++ b/test/schemas/mixed1_0.xsd @@ -0,0 +1,7 @@ +<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:element name='my'> + <xs:complexType mixed='true'> + <xs:attribute name='myattr' type='xs:string' use='required'/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/test/schemas/ns0_0.xml b/test/schemas/ns0_0.xml new file mode 100644 index 0000000..1cbaf1f --- /dev/null +++ b/test/schemas/ns0_0.xml @@ -0,0 +1,2 @@ +<foo xmlns="http://example.com/xsd/ns" id="abc"/> + diff --git a/test/schemas/ns0_0.xsd b/test/schemas/ns0_0.xsd new file mode 100644 index 0000000..38951d6 --- /dev/null +++ b/test/schemas/ns0_0.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://example.com/xsd/ns" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + <xsd:element name="foo"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> +</xsd:schema> + diff --git a/test/schemas/ns0_1.xml b/test/schemas/ns0_1.xml new file mode 100644 index 0000000..6550f5c --- /dev/null +++ b/test/schemas/ns0_1.xml @@ -0,0 +1,2 @@ +<n:foo xmlns:n="http://example.com/xsd/ns" id="abc"/> + diff --git a/test/schemas/ns0_1.xsd b/test/schemas/ns0_1.xsd new file mode 100644 index 0000000..df2e79a --- /dev/null +++ b/test/schemas/ns0_1.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://example.com/xsd/ns" + elementFormDefault="qualified" + attributeFormDefault="qualified"> + <xsd:element name="foo"> + <xsd:complexType> + <xsd:simpleContent> + <xsd:extension base="xsd:string"> + <xsd:attribute name="id" type="xsd:ID"/> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + </xsd:element> +</xsd:schema> + diff --git a/test/schemas/ns0_2.xml b/test/schemas/ns0_2.xml new file mode 100644 index 0000000..8f2bdba --- /dev/null +++ b/test/schemas/ns0_2.xml @@ -0,0 +1,2 @@ +<foo id="abc"/> + diff --git a/test/schemas/ns0_3.xml b/test/schemas/ns0_3.xml new file mode 100644 index 0000000..4c5c1e4 --- /dev/null +++ b/test/schemas/ns0_3.xml @@ -0,0 +1,2 @@ +<n:foo xmlns:n="http://example.com/xsd/ns" n:id="abc"/> + diff --git a/test/schemas/ns0_4.xml b/test/schemas/ns0_4.xml new file mode 100644 index 0000000..dcdd418 --- /dev/null +++ b/test/schemas/ns0_4.xml @@ -0,0 +1,3 @@ +<l:foo xmlns:l="http://example.com/xsd/ns" + xmlns:b="http://example.com/xsd/ns" b:id="abc"/> + diff --git a/test/schemas/ns1_0.xml b/test/schemas/ns1_0.xml new file mode 100644 index 0000000..410ed26 --- /dev/null +++ b/test/schemas/ns1_0.xml @@ -0,0 +1,2 @@ +<my xmlns='http://my.ns/' +>some</my> diff --git a/test/schemas/ns1_0.xsd b/test/schemas/ns1_0.xsd new file mode 100644 index 0000000..a77ec57 --- /dev/null +++ b/test/schemas/ns1_0.xsd @@ -0,0 +1,3 @@ +<schema xmlns='http://www.w3.org/2001/XMLSchema' targetNamespace='http://my.ns/'> + <element name='my' type='string'/> +</schema> diff --git a/test/schemas/ns2_0.xml b/test/schemas/ns2_0.xml new file mode 100644 index 0000000..c3bb126 --- /dev/null +++ b/test/schemas/ns2_0.xml @@ -0,0 +1 @@ +<m:my xmlns:m='http://my.ns/' m:other='1'>content</m:my> diff --git a/test/schemas/ns2_0.xsd b/test/schemas/ns2_0.xsd new file mode 100644 index 0000000..9393beb --- /dev/null +++ b/test/schemas/ns2_0.xsd @@ -0,0 +1,15 @@ +<schema xmlns:my='http://my.ns/' + xmlns='http://www.w3.org/2001/XMLSchema' + targetNamespace='http://my.ns/' + > + <attribute name='other' type='string'/> + <element name='my'> + <complexType> + <simpleContent> + <extension base='string'> + <attribute ref='my:other'/> + </extension> + </simpleContent> + </complexType> + </element> +</schema> diff --git a/test/schemas/po0_0.xml b/test/schemas/po0_0.xml new file mode 100644 index 0000000..387232d --- /dev/null +++ b/test/schemas/po0_0.xml @@ -0,0 +1,32 @@ +<?xml version="1.0"?> +<purchaseOrder orderDate="1999-10-20"> + <shipTo country="US"> + <name>Alice Smith</name> + <street>123 Maple Street</street> + <city>Mill Valley</city> + <state>CA</state> + <zip>90952</zip> + </shipTo> + <billTo country="US"> + <name>Robert Smith</name> + <street>8 Oak Avenue</street> + <city>Old Town</city> + <state>PA</state> + <zip>95819</zip> + </billTo> + <comment>Hurry, my lawn is going wild!</comment> + <items> + <item partNum="872-AA"> + <productName>Lawnmower</productName> + <quantity>1</quantity> + <USPrice>148.95</USPrice> + <comment>Confirm this is electric</comment> + </item> + <item partNum="926-AA"> + <productName>Baby Monitor</productName> + <quantity>1</quantity> + <USPrice>39.98</USPrice> + <shipDate>1999-05-21</shipDate> + </item> + </items> +</purchaseOrder> diff --git a/test/schemas/po0_0.xsd b/test/schemas/po0_0.xsd new file mode 100644 index 0000000..5a1e660 --- /dev/null +++ b/test/schemas/po0_0.xsd @@ -0,0 +1,59 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> +Purchase order schema for Example.com. + Copyright 2000 Example.com. All rights reserved. + </xsd:documentation> + </xsd:annotation> + <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> + <xsd:element name="comment" type="xsd:string"/> + <xsd:complexType name="PurchaseOrderType"> + <xsd:sequence> + <xsd:element name="shipTo" type="USAddress"/> + <xsd:element name="billTo" type="USAddress"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="items" type="Items"/> + </xsd:sequence> + <xsd:attribute name="orderDate" type="xsd:date"/> + </xsd:complexType> + <xsd:complexType name="USAddress"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="street" type="xsd:string"/> + <xsd:element name="city" type="xsd:string"/> + <xsd:element name="state" type="xsd:string"/> + <xsd:element name="zip" type="xsd:decimal"/> + </xsd:sequence> + <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> + </xsd:complexType> + <xsd:complexType name="Items"> + <xsd:sequence> + <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="productName" type="xsd:string"/> + <xsd:element name="quantity"> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger"> + <xsd:maxExclusive value="100"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="USPrice" type="xsd:decimal"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="partNum" type="SKU" use="required"/> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> +<!-- Stock Keeping Unit, a code for identifying products --> + <xsd:simpleType name="SKU"> + <xsd:restriction base="xsd:string"> + <xsd:pattern value="\d{3}-[A-Z]{2}"/> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> + diff --git a/test/schemas/po1_0.xml b/test/schemas/po1_0.xml new file mode 100644 index 0000000..eb8dac6 --- /dev/null +++ b/test/schemas/po1_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0"?> +<apo:purchaseOrder xmlns:apo="http://www.example.com/PO1" + orderDate="1999-10-20"> + <shipTo country="US"> + <name>Alice Smith</name> + <street>123 Maple Street</street> + <city>Mill Valley</city> + <state>CA</state> + <zip>90952</zip> + </shipTo> + <billTo country="US"> + <name>Robert Smith</name> + <street>8 Oak Avenue</street> + <city>Old Town</city> + <state>PA</state> + <zip>95819</zip> + </billTo> + <apo:comment>Hurry, my lawn is going wild!</apo:comment> + <items> + <item partNum="872-AA"> + <productName>Lawnmower</productName> + <quantity>1</quantity> + <USPrice>148.95</USPrice> + <comment>Confirm this is electric</comment> + </item> + <item partNum="926-AA"> + <productName>Baby Monitor</productName> + <quantity>1</quantity> + <USPrice>39.98</USPrice> + <shipDate>1999-05-21</shipDate> + </item> + </items> +</apo:purchaseOrder> diff --git a/test/schemas/po1_0.xsd b/test/schemas/po1_0.xsd new file mode 100644 index 0000000..84f45a7 --- /dev/null +++ b/test/schemas/po1_0.xsd @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:po="http://www.example.com/PO1" + targetNamespace="http://www.example.com/PO1" + elementFormDefault="unqualified" + attributeFormDefault="unqualified"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> +Purchase order schema for Example.com. + Copyright 2000 Example.com. All rights reserved. + </xsd:documentation> + </xsd:annotation> + <xsd:element name="purchaseOrder" type="po:PurchaseOrderType"/> + <xsd:element name="comment" type="xsd:string"/> + <xsd:complexType name="PurchaseOrderType"> + <xsd:sequence> + <xsd:element name="shipTo" type="po:USAddress"/> + <xsd:element name="billTo" type="po:USAddress"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="items" type="po:Items"/> + </xsd:sequence> + <xsd:attribute name="orderDate" type="xsd:date"/> + </xsd:complexType> + <xsd:complexType name="USAddress"> + <xsd:sequence> + <xsd:element name="name" type="xsd:string"/> + <xsd:element name="street" type="xsd:string"/> + <xsd:element name="city" type="xsd:string"/> + <xsd:element name="state" type="xsd:string"/> + <xsd:element name="zip" type="xsd:decimal"/> + </xsd:sequence> + <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> + </xsd:complexType> + <xsd:complexType name="Items"> + <xsd:sequence> + <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="productName" type="xsd:string"/> + <xsd:element name="quantity"> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger"> + <xsd:maxExclusive value="100"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="USPrice" type="xsd:decimal"/> + <xsd:element ref="comment" minOccurs="0"/> + <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> + </xsd:sequence> + <xsd:attribute name="partNum" type="po:SKU" use="required"/> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> +<!-- Stock Keeping Unit, a code for identifying products --> + <xsd:simpleType name="SKU"> + <xsd:restriction base="xsd:string"> + <xsd:pattern value="\d{3}-[A-Z]{2}"/> + </xsd:restriction> + </xsd:simpleType> +</xsd:schema> + diff --git a/test/schemas/restriction0_0.xml b/test/schemas/restriction0_0.xml new file mode 100644 index 0000000..8656d2c --- /dev/null +++ b/test/schemas/restriction0_0.xml @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<who> + <forename>Bill</forename> + <surname>Clinton</surname> +</who> diff --git a/test/schemas/restriction0_0.xsd b/test/schemas/restriction0_0.xsd new file mode 100644 index 0000000..6b35b9f --- /dev/null +++ b/test/schemas/restriction0_0.xsd @@ -0,0 +1,21 @@ +<?xml version="1.0"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="personName"> + <xs:sequence> + <xs:element name="title" minOccurs="0"/> + <xs:element name="forename" minOccurs="0" maxOccurs="unbounded"/> + <xs:element name="surname"/> + </xs:sequence> + </xs:complexType> + <xs:complexType name="simpleName"> + <xs:complexContent> + <xs:restriction base="personName"> + <xs:sequence> + <xs:element name="forename" minOccurs="1" maxOccurs="1"/> + <xs:element name="surname"/> + </xs:sequence> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:element name="who" type="simpleName"/> +</xs:schema> diff --git a/test/schemas/seq0_0.xml b/test/schemas/seq0_0.xml new file mode 100644 index 0000000..54b1c1c --- /dev/null +++ b/test/schemas/seq0_0.xml @@ -0,0 +1,61 @@ +<doc> + <!-- at least one present --> + <z-o> + <b/> + </z-o> + <o-o> + <c/> + </o-o> + <z-u> + <d/> + </z-u> + <o-u> + <e/> + </o-u> + <z-3> + <f/> + </z-3> + <o-3> + <g/> + </o-3> + <!-- more than one present when allowed --> + <z-o> + <b/> + </z-o> + <o-o> + <c/> + </o-o> + <z-u> + <d/> + <d/> + <d/> + </z-u> + <o-u> + <e/> + <e/> + <e/> + </o-u> + <z-3> + <f/> + <f/> + <f/> + </z-3> + <o-3> + <g/> + <g/> + <g/> + </o-3> + <!-- min 0 are not present --> + <z-o/> + <o-o> + <c/> + </o-o> + <z-u/> + <o-u> + <e/> + </o-u> + <z-3/> + <o-3> + <g/> + </o-3> +</doc> diff --git a/test/schemas/seq0_0.xsd b/test/schemas/seq0_0.xsd new file mode 100644 index 0000000..34d3a78 --- /dev/null +++ b/test/schemas/seq0_0.xsd @@ -0,0 +1,64 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <xsd:annotation> + <xsd:documentation> + Testing min and max occurance attributes on sequences + </xsd:documentation> + </xsd:annotation> + + <xsd:element name="doc"> + <xsd:complexType> + <xsd:sequence minOccurs='0' maxOccurs='unbounded'> + + <xsd:element name="z-o"> + <xsd:complexType> + <xsd:sequence minOccurs='0' maxOccurs='1'> + <xsd:element name='b'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="o-o"> + <xsd:complexType> + <xsd:sequence minOccurs='1' maxOccurs='1'> + <xsd:element name='c'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="z-u"> + <xsd:complexType> + <xsd:sequence minOccurs='0' maxOccurs='unbounded'> + <xsd:element name='d'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="o-u"> + <xsd:complexType> + <xsd:sequence minOccurs='1' maxOccurs='unbounded'> + <xsd:element name='e'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="z-3"> + <xsd:complexType> + <xsd:sequence minOccurs='0' maxOccurs='3'> + <xsd:element name='f'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="o-3"> + <xsd:complexType> + <xsd:sequence minOccurs='1' maxOccurs='3'> + <xsd:element name='g'/> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + </xsd:sequence> + </xsd:complexType> + </xsd:element> +</xsd:schema> diff --git a/test/schemas/vdv-complexTypes.xsd b/test/schemas/vdv-complexTypes.xsd new file mode 100644 index 0000000..c320e6d --- /dev/null +++ b/test/schemas/vdv-complexTypes.xsd @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-complexTypes.xsd,v 1.1 2003/11/25 15:38:59 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+
+ <xs:complexType name="elementWithID">
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ <xs:complexType name="bookTmp">
+ <xs:complexContent>
+ <xs:extension base="elementWithID">
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="available"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="personType">
+ <xs:complexContent>
+ <xs:extension base="elementWithID">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ <xs:element ref="qualification" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+</xs:schema>
diff --git a/test/schemas/vdv-first0_0.xml b/test/schemas/vdv-first0_0.xml new file mode 100644 index 0000000..7d4e662 --- /dev/null +++ b/test/schemas/vdv-first0_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first0_0.xml,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first0_0.xsd b/test/schemas/vdv-first0_0.xsd new file mode 100644 index 0000000..e58bed2 --- /dev/null +++ b/test/schemas/vdv-first0_0.xsd @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="qualification" type="xs:string"/>
+ <xs:element name="born" type="xs:date"/>
+ <xs:element name="dead" type="xs:date"/>
+ <xs:element name="isbn" type="xs:integer"/>
+
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ <xs:attribute name="lang" type="xs:language"/>
+
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="lang"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="book" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ <xs:attribute ref="available"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="character">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="qualification"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/test/schemas/vdv-first1_0.xml b/test/schemas/vdv-first1_0.xml new file mode 100644 index 0000000..10f0409 --- /dev/null +++ b/test/schemas/vdv-first1_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first1_0.xml,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first1_0.xsd b/test/schemas/vdv-first1_0.xsd new file mode 100644 index 0000000..c0d6f27 --- /dev/null +++ b/test/schemas/vdv-first1_0.xsd @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="book" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="isbn" type="xs:integer"/>
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="lang" type="xs:language"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="author" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="born" type="xs:date"/>
+ <xs:element name="dead" type="xs:date"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:ID"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="character" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="born" type="xs:date"/>
+ <xs:element name="qualification" type="xs:string"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:ID"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/test/schemas/vdv-first2_0.xml b/test/schemas/vdv-first2_0.xml new file mode 100644 index 0000000..b652536 --- /dev/null +++ b/test/schemas/vdv-first2_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first2_0.xml,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first2_0.xsd b/test/schemas/vdv-first2_0.xsd new file mode 100644 index 0000000..5e34e33 --- /dev/null +++ b/test/schemas/vdv-first2_0.xsd @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first2_0.xsd,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:simpleType name="string255">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="255"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="string32">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="32"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="isbn">
+ <xs:restriction base="xs:unsignedLong">
+ <xs:totalDigits value="10"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="supportedLanguages">
+ <xs:restriction base="xs:language">
+ <xs:enumeration value="en"/>
+ <xs:enumeration value="es"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="name" type="string32"/>
+ <xs:element name="qualification" type="string255"/>
+ <xs:element name="born" type="xs:date"/>
+ <xs:element name="dead" type="xs:date"/>
+ <xs:element name="isbn" type="isbn"/>
+
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ <xs:attribute name="lang" type="supportedLanguages"/>
+
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="string255">
+ <xs:attribute ref="lang"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="book" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ <xs:attribute ref="available"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="character">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="qualification"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/test/schemas/vdv-first3_0.xml b/test/schemas/vdv-first3_0.xml new file mode 100644 index 0000000..0b2d7e2 --- /dev/null +++ b/test/schemas/vdv-first3_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first3_0.xml,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first3_0.xsd b/test/schemas/vdv-first3_0.xsd new file mode 100644 index 0000000..6fd44d6 --- /dev/null +++ b/test/schemas/vdv-first3_0.xsd @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first3_0.xsd,v 1.1 2003/11/22 20:37:51 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="name" type="xs:token"/>
+ <xs:element name="qualification" type="xs:token"/>
+ <xs:element name="born" type="xs:date"/>
+ <xs:element name="dead" type="xs:date"/>
+ <xs:element name="isbn" type="xs:unsignedLong"/>
+
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ <xs:attribute name="lang" type="xs:language"/>
+
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:token">
+ <xs:attribute ref="lang"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="book" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ <xs:attribute ref="available"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="character">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="qualification"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/test/schemas/vdv-first4_0.xml b/test/schemas/vdv-first4_0.xml new file mode 100644 index 0000000..b44164d --- /dev/null +++ b/test/schemas/vdv-first4_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first4_0.xml,v 1.1 2003/11/24 13:04:35 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first4_0.xsd b/test/schemas/vdv-first4_0.xsd new file mode 100644 index 0000000..913a310 --- /dev/null +++ b/test/schemas/vdv-first4_0.xsd @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first4_0.xsd,v 1.1 2003/11/24 13:04:35 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:simpleType name="string255">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="255"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="string32">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="32"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="isbn">
+ <xs:restriction base="xs:unsignedLong">
+ <xs:totalDigits value="10"/>
+ <xs:pattern value="\d{10}"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="bookID">
+ <xs:restriction base="xs:ID">
+ <xs:pattern value="b\d{10}"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="supportedLanguages">
+ <xs:restriction base="xs:language">
+ <xs:enumeration value="en"/>
+ <xs:enumeration value="es"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="date">
+ <xs:restriction base="xs:date">
+ <xs:pattern value="[^:Z]*"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="name" type="string32"/>
+ <xs:element name="qualification" type="string255"/>
+ <xs:element name="born" type="date"/>
+ <xs:element name="dead" type="date"/>
+ <xs:element name="isbn" type="isbn"/>
+
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ <xs:attribute name="lang" type="supportedLanguages"/>
+
+ <xs:complexType name="elementWithID">
+ <xs:attribute ref="id"/>
+ </xs:complexType>
+
+ <xs:complexType name="bookTmp">
+ <xs:complexContent>
+ <xs:extension base="elementWithID">
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="available"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="personType">
+ <xs:complexContent>
+ <xs:extension base="elementWithID">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ <xs:element ref="qualification" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="string255">
+ <xs:attribute ref="lang"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="book" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="bookTmp">
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="bookID"/>
+ <xs:attribute ref="available"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="personType">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+
+ <xs:element name="character">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="personType">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="qualification"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/test/schemas/vdv-first4_1.xml b/test/schemas/vdv-first4_1.xml new file mode 100644 index 0000000..535b48f --- /dev/null +++ b/test/schemas/vdv-first4_1.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first4_1.xml,v 1.1 2003/11/24 13:04:35 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>196T6-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first4_2.xml b/test/schemas/vdv-first4_2.xml new file mode 100644 index 0000000..29b2c0e --- /dev/null +++ b/test/schemas/vdv-first4_2.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first4_2.xml,v 1.1 2003/11/24 13:04:35 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>2000-01-20Z</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first5_0.xml b/test/schemas/vdv-first5_0.xml new file mode 100644 index 0000000..1404219 --- /dev/null +++ b/test/schemas/vdv-first5_0.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first5_0.xml,v 1.1 2003/11/25 15:38:59 veillard Exp $ -->
+<library>
+ <book id="b0836217462" available="true">
+ <isbn>0836217462</isbn>
+ <title lang="en">Being a Dog Is a Full-Time Job</title>
+ <author id="CMS">
+ <name>Charles M Schulz</name>
+ <born>1922-11-26</born>
+ <dead>2000-02-12</dead>
+ </author>
+ <character id="PP">
+ <name>Peppermint Patty</name>
+ <born>1966-08-22</born>
+ <qualification>bold, brash and tomboyish</qualification>
+ </character>
+ <character id="Snoopy">
+ <name>Snoopy</name>
+ <born>1950-10-04</born>
+ <qualification>extroverted beagle</qualification>
+ </character>
+ <character id="Schroeder">
+ <name>Schroeder</name>
+ <born>1951-05-30</born>
+ <qualification>brought classical music to the Peanuts strip</qualification>
+ </character>
+ <character id="Lucy">
+ <name>Lucy</name>
+ <born>1952-03-03</born>
+ <qualification>bossy, crabby and selfish</qualification>
+ </character>
+ </book>
+</library>
diff --git a/test/schemas/vdv-first5_0.xsd b/test/schemas/vdv-first5_0.xsd new file mode 100644 index 0000000..bb9b7ef --- /dev/null +++ b/test/schemas/vdv-first5_0.xsd @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-first5_0.xsd,v 1.1 2003/11/25 15:38:59 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+<xs:include schemaLocation="vdv-simpleTypes.xsd"/>
+<xs:include schemaLocation="vdv-complexTypes.xsd"/>
+
+ <xs:element name="name" type="string32"/>
+ <xs:element name="qualification" type="string255"/>
+ <xs:element name="born" type="date"/>
+ <xs:element name="dead" type="date"/>
+ <xs:element name="isbn" type="isbn"/>
+
+ <xs:attribute name="id" type="xs:ID"/>
+ <xs:attribute name="available" type="xs:boolean"/>
+ <xs:attribute name="lang" type="supportedLanguages"/>
+
+
+ <xs:element name="title">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="string255">
+ <xs:attribute ref="lang"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="library">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="book" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="book">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="bookTmp">
+ <xs:sequence>
+ <xs:element ref="isbn"/>
+ <xs:element ref="title"/>
+ <xs:element ref="author" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="character" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="bookID"/>
+ <xs:attribute ref="available"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="author">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="personType">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="dead" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+
+ <xs:element name="character">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:restriction base="personType">
+ <xs:sequence>
+ <xs:element ref="name"/>
+ <xs:element ref="born"/>
+ <xs:element ref="qualification"/>
+ </xs:sequence>
+ <xs:attribute ref="id"/>
+ </xs:restriction>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>
diff --git a/test/schemas/vdv-simpleTypes.xsd b/test/schemas/vdv-simpleTypes.xsd new file mode 100644 index 0000000..68f7c82 --- /dev/null +++ b/test/schemas/vdv-simpleTypes.xsd @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Header: /cvs/gnome/gnome-xml/test/schemas/vdv-simpleTypes.xsd,v 1.1 2003/11/25 15:38:59 veillard Exp $ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:simpleType name="string255">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="255"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="string32">
+ <xs:restriction base="xs:token">
+ <xs:maxLength value="32"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="isbn">
+ <xs:restriction base="xs:unsignedLong">
+ <xs:totalDigits value="10"/>
+ <xs:pattern value="\d{10}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="bookID">
+ <xs:restriction base="xs:ID">
+ <xs:pattern value="b\d{10}"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="supportedLanguages">
+ <xs:restriction base="xs:language">
+ <xs:enumeration value="en"/>
+ <xs:enumeration value="es"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="date">
+ <xs:restriction base="xs:date">
+ <xs:pattern value="[^:Z]*"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+</xs:schema>
|