<xsdtest> <datatype name=“dateTime”> <valid>2001-12-01T19:45:00</valid> <valid>2001-12-01T19:45:00Z</valid> <valid>2001-12-01T19:45:00-11:59</valid> <valid>0001-01-12T00:00:00+12:00</valid> <invalid>2001-12-1T19:45:00+24:00</invalid> <invalid>2001-12-1T19:45:00</invalid> <equiv> <class>

<value>2001-12-01T19:45:00</value>
<value>2001-12-01T19:45:00.00</value>

</class> <class>

<value>2001-12-01T19:45:00Z</value>
<value>2001-12-01T19:45:00.00Z</value>
<value>2001-12-01T20:45:00+01:00</value>

</class> </equiv> </datatype> <datatype name=“anyURI”> <valid>foobar</valid> <valid>www.example.com> <valid>ji%6d@www.example.com> <valid>www.example.co%6d> <valid>nosuchscheme:stuff</valid> <invalid>foo$bar:stuff</invalid> <invalid>f%oobar</invalid> </datatype> <datatype name=“integer”> <valid>10</valid> <valid>01</valid> <valid>0123456789</valid> <valid>+10</valid> <valid>-10</valid> <invalid>1.0</invalid> <invalid>.1</invalid> <valid>9999999999999999999999999999999</valid> <invalid>1.</invalid> <invalid>0.</invalid> <equiv> <class>

<value>0</value>
<value>+0</value>
<value>-0</value>
<value>00</value>

</class> <class>

<value>10</value>
<value>+10</value>
<value>+0010</value>
<value>010</value>

</class> <class>

<value>-10</value>
<value>-0010</value>
<value>-010</value>

</class> </equiv> </datatype> <datatype name=“duration”> <valid>P1Y</valid> <valid>P1Y0M2DT17H5M12S</valid> <valid>-P1Y</valid> <valid>P60D</valid> <valid>PT24H</valid> <valid>PT1.2S</valid> <invalid>P24h</invalid> <invalid>P24H</invalid> <invalid>P1YT</invalid> <invalid>P</invalid> <invalid>-P</invalid> <equiv>

<class>
  <value>-P6M</value>
</class>
<class>
  <value>P0Y</value>
  <value>-P0Y</value>
</class>
<class>
  <value>P1Y</value>
  <value>P001Y</value>
  <value>P001Y0M</value>
  <value>P1Y0M0DT0H0M0.0S</value>
</class>
<class>
  <value>P6M</value>
</class>
<class>
  <value>PT6M</value>
</class>
<class>
  <value>PT1S</value>
  <value>PT1.0S</value>
</class>

</equiv> <lessThan>

<value>PT1M</value>
<value>PT61S</value>

</lessThan> <lessThan>

<value>PT59S</value>
<value>PT1M</value>

</lessThan> <incomparable>

<value>PT60S</value>
<value>PT1M</value>

</incomparable> <lessThan>

<value>PT1H</value>
<value>PT61M</value>

</lessThan> <lessThan>

<value>PT59M</value>
<value>PT1H</value>

</lessThan> <incomparable>

<value>PT60M</value>
<value>PT1H</value>

</incomparable> <lessThan>

<value>P1D</value>
<value>PT25H</value>

</lessThan> <lessThan>

<value>PT23H</value>
<value>P1D</value>

</lessThan> <incomparable>

<value>P1D</value>
<value>PT24H</value>

</incomparable> <lessThan>

<value>P1Y</value>
<value>P13M</value>

</lessThan> <lessThan>

<value>P11M</value>
<value>P1Y</value>

</lessThan> <incomparable>

<value>P12M</value>
<value>P1Y</value>

</incomparable> <lessThan>

<value>P364D</value>
<value>P1Y</value>

</lessThan> <incomparable>

<value>P1Y</value>
<value>P365D</value>

</incomparable> <incomparable>

<value>P1Y</value>
<value>P366D</value>

</incomparable> <lessThan>

<value>P1Y</value>
<value>P367D</value>

</lessThan> <lessThan>

<value>P149D</value>
<value>P5M</value>

</lessThan> <incomparable>

<value>P150D</value>
<value>P5M</value>

</incomparable> <incomparable>

<value>P151D</value>
<value>P5M</value>

</incomparable> <incomparable>

<value>P152D</value>
<value>P5M</value>

</incomparable> <incomparable>

<value>P153D</value>
<value>P5M</value>

</incomparable> <lessThan>

<value>P5M</value>
<value>P154D</value>

</lessThan> <lessThan>

<value>P27D</value>
<value>P1M</value>

</lessThan> <incomparable>

<value>P28D</value>
<value>P1M</value>

</incomparable> <incomparable>

<value>P29D</value>
<value>P1M</value>

</incomparable> <incomparable>

<value>P30D</value>
<value>P1M</value>

</incomparable> <incomparable>

<value>P31D</value>
<value>P1M</value>

</incomparable> <lessThan>

<value>P1M</value>
<value>P32D</value>

</lessThan> </datatype> <datatype name=“time”> <valid>12:45:00</valid> <valid>12:45:00Z</valid> </datatype> <datatype name=“date”> <valid>1886-12-01</valid> <valid>1886-12-01Z</valid> <lessThan>

<value>1066-12-31</value>
<value>1900-01-01</value>

</lessThan> <lessThan>

<value>1900-01-01</value>
<value>1900-01-02</value>

</lessThan> </datatype> <datatype name=“gYearMonth”> <valid>1996-12</valid> <valid>1996-01</valid> <valid>1996-01Z</valid> <invalid>1996-00</invalid> <equiv> <class><value>1996-01</value></class> <class>

<value>1996-01Z</value>
<value>1996-01+00:00</value>
<value>1996-01-00:00</value>

</class> <class><value>1996-01+01:00</value></class> <class><value>1996-01-01:00</value></class> </equiv> </datatype> <datatype name=“gYear”> <valid>2001</valid> <valid>2001Z</valid> <lessThan>

<value>1999</value>
<value>2000</value>

</lessThan> <lessThan>

<value>1999+07:00</value>
<value>2000+07:00</value>

</lessThan> </datatype> <datatype name=“gMonthDay”> <valid>–12-01</valid> <valid>–12-01Z</valid> <lessThan>

<value>--12-01</value>
<value>--12-04</value>

</lessThan> <lessThan>

<value>--11-17</value>
<value>--12-04</value>

</lessThan> </datatype> <datatype name=“gDay”> <valid>—20</valid> <valid>—20Z</valid> <lessThan>

<value>---01</value>
<value>---31</value>

</lessThan> </datatype> <datatype name=“gMonth”> <valid>–12</valid> <valid>–01</valid> <valid>–01Z</valid> <valid> –12 </valid> <invalid>—01</invalid> <invalid>–00</invalid> <invalid>–13</invalid> <invalid>- -13</invalid> <lessThan>

<value>--01</value>
<value>--12</value>

</lessThan> <lessThan>

<value>--01</value>
<value>--02</value>

</lessThan> </datatype> <datatype name=“boolean”> <valid>true</valid> <valid>false</valid> <valid>0</valid> <valid>1</valid> <invalid>00</invalid> <invalid>00</invalid> <invalid>01</invalid> <equiv> <class><value>true</value><value>1</value></class> <class><value>false</value><value>0</value></class> </equiv> </datatype> <datatype name=“base64Binary”> <valid>AAAA</valid> <valid>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR STUV WXYZ 0123 4567 89+/</valid> <valid>BA==</valid> <valid></valid> <valid>BA==</valid> <valid>BQ==</valid> <valid>Bg==</valid> <valid>Bw==</valid> <valid>BBA=</valid> <valid>BBA=</valid> <valid>BBE=</valid> <valid>BBI=</valid> <valid>BBM=</valid> <valid>BBQ=</valid> <valid>BBU=</valid> <valid>BBY=</valid> <valid>BBc=</valid> <valid>BBg=</valid> <valid>BBk=</valid> <valid>BBo=</valid> <valid>BBs=</valid> <valid>BBw=</valid> <valid>BB0=</valid> <valid>BB4=</valid> <valid>BB8=</valid> <invalid>====</invalid> <invalid>BB==</invalid> <invalid>BBB=</invalid> <invalid>B===</invalid> <invalid>B</invalid> <equiv> <class> <value>deadbeef</value> <value>d&#xA;&#xD;&#x9;e a d b eef </value> </class> <class> <value>DEADBEEF</value> <value>D&#xA;&#xD;&#x9;E A D B EEF </value> </class> </equiv> <length value=“0”></length> <length value=“6”>deadbeef</length> <length value=“1”>BA==</length> <length value=“2”>BBA=</length> <length value=“3”>dead</length> <length value=“4”>deadBA==</length> </datatype> <datatype name=“hexBinary”> <valid>deadbeef</valid> <valid></valid> <valid>0123456789ABCDEFabcdef</valid> <invalid>00 00</invalid> <invalid>00.00</invalid> <invalid>0G</invalid> <equiv>

<class>
  <value>00</value>
  <value>
       00
  </value>
</class>
<class>
  <value>01</value>
</class>
<class>
  <value>10</value>
</class>
<class>
  <value>0a</value>
  <value>0A</value>
</class>

</equiv> <length value=“0”></length> <length value=“1”>00</length> <length value=“2”>0000</length> <length value=“2”> 0000 </length> <length value=“2”>AAAA</length> </datatype> <datatype name=“float”> <valid>1.0</valid> <valid>1.</valid> <valid>.1</valid> <invalid>- 1</invalid> <invalid>1 .0</invalid> <invalid>+INF</invalid> <invalid>+NaN</invalid> <invalid>-NaN</invalid> <equiv> <class>

<value>0</value>
<value>-0</value>
<value>+0</value>
<value> 0 </value>
<value> 0. </value>
<value> .0 </value>
<value> 0.0 </value>
<value> 0e0 </value>
<value> 0E0 </value>
<value> 0E+0 </value>
<value> 0E-0 </value>

</class> <class>

<value>1E0</value>
<value>0.1E1</value>
<value>10E-1</value>
<value>+1</value>

</class> <class>

<value>-1</value>

</class> <class>

<value>INF</value>
<value>INF </value>

</class> <class>

<value>-INF</value>
<value>-INF </value>

</class> <class>

<value>NaN</value>
<value> NaN </value>

</class> </equiv> <lessThan>

<value>-INF</value>
<value>-1000</value>

</lessThan> <lessThan>

<value>1000</value>
<value>INF</value>

</lessThan> <lessThan>

<value>-1</value>
<value>1</value>

</lessThan> <lessThan>

<value>0</value>
<value>1</value>

</lessThan> <lessThan>

<value>-1</value>
<value>0</value>

</lessThan> </datatype> <datatype name=“double”> <valid>1.0</valid> <valid>1.</valid> <valid>.1</valid> <invalid>- 1</invalid> <invalid>1 .0</invalid> <invalid>+INF</invalid> <invalid>+NaN</invalid> <invalid>-NaN</invalid> <equiv> <class>

<value>0</value>
<value>-0</value>
<value>+0</value>
<value> 0 </value>
<value> 0. </value>
<value> .0 </value>
<value> 0.0 </value>
<value> 0e0 </value>
<value> 0E0 </value>
<value> 0E+0 </value>
<value> 0E-0 </value>

</class> <class>

<value>1E0</value>
<value>0.1E1</value>
<value>10E-1</value>
<value>+1</value>

</class> <class>

<value>-1</value>

</class> <class>

<value>INF</value>
<value>INF </value>

</class> <class>

<value>-INF</value>
<value>-INF </value>

</class> <class>

<value>NaN</value>
<value> NaN </value>

</class> </equiv> <lessThan>

<value>-INF</value>
<value>-1000</value>

</lessThan> <lessThan>

<value>1000</value>
<value>INF</value>

</lessThan> <lessThan>

<value>-1</value>
<value>1</value>

</lessThan> <lessThan>

<value>0</value>
<value>1</value>

</lessThan> <lessThan>

<value>-1</value>
<value>0</value>

</lessThan> </datatype> <datatype name=“QName”> <valid>foo</valid> <valid xmlns:x=“x:foowww.example.com”>x:foo> <invalid>y:foo</invalid> <equiv xmlns:x=“www.example.com

xmlns:y="http://www.example.com/"
xmlns:z="http://www.example.com">

<class>

<value>foo</value>
<value> foo</value>

</class> <class>

<value>x:foo</value>
<value> x:foo </value>
<value>z:foo</value>

</class> <class>

<value>x:bar</value>
<value>z:bar</value>

</class> <class>

<value>y:foo</value>

</class> <class>

<value>y:bar</value>

</class> </equiv> </datatype> <datatype name=“NOTATION”> <valid>foo</valid> <valid xmlns:x=“x:foowww.example.com”>x:foo> <invalid>y:foo</invalid> </datatype> <datatype name=“decimal”> <valid>1.0</valid> <valid>1.</valid> <valid>.1</valid> <valid>+1.0</valid> <valid>-1.0</valid> <valid> 1 </valid> <valid>99999999999999999999999999999999999999999999999999999999999999999</valid> <valid>-99999999999999999999999999999999999999999999999999999999999999999</valid> <invalid>junk</invalid> <invalid>–1</invalid> <invalid>++1</invalid> <invalid>+-1</invalid> <invalid>1.2.</invalid> <invalid>..1</invalid> <invalid>1..</invalid> <invalid>1 .2</invalid> <invalid>1+</invalid> <invalid>+ 1</invalid> <lessThan>

<value>0</value>
<value>1</value>

</lessThan> </datatype> <datatype name=“nonPositiveInteger”> <valid>-1</valid> <valid>0</valid> <valid>-0</valid> <invalid>1</invalid> </datatype> <datatype name=“nonNegativeInteger”> <valid>1</valid> <valid>0</valid> <valid>+1</valid> <valid>+0</valid> <invalid>-1</invalid> </datatype> <datatype name=“positiveInteger”> <valid>+1</valid> <valid>1</valid> <invalid>0</invalid> <invalid>-1</invalid> </datatype> <datatype name=“negativeInteger”> <valid>-1</valid> <invalid>+1</invalid> <invalid>0</invalid> </datatype> <datatype name=“long”> <valid>1</valid> <valid>+1</valid> <valid>0</valid> <valid> 0 </valid> <invalid>1 2</invalid> <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> <valid>9223372036854775807</valid> <valid>-9223372036854775808</valid> <invalid>9223372036854775808</invalid> <invalid>-9223372036854775809</invalid> <invalid/> </datatype> <datatype name=“int”> <valid>1</valid> <valid>01</valid> <valid> 1 </valid> <valid>2147483647</valid> <valid>-2147483648</valid> <invalid>2147483648</invalid> <invalid>-2147483649</invalid> <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> <equiv> <class>

<value>1</value>
<value>+1</value>
<value> 1 </value>
<value>001</value>

</class> <class>

<value>-1</value>
<value> -1 </value>
<value>-001</value>

</class> </equiv> </datatype> <datatype name=“short”> <valid>1</valid> <valid>32767</valid> <valid>-32768</valid> <invalid>32768</invalid> <invalid>-32769</invalid> <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> <equiv> <class>

<value>1</value>
<value>+1</value>
<value> 1 </value>
<value>001</value>

</class> <class>

<value>-1</value>
<value> -1 </value>
<value>-001</value>

</class> </equiv> </datatype> <datatype name=“byte”> <valid>1</valid> <valid>127</valid> <valid>-128</valid> <invalid>128</invalid> <invalid>-129</invalid> </datatype> <datatype name=“unsignedLong”> <valid>1</valid> <valid>+1</valid> <invalid>-1</invalid> <valid>0</valid> <valid>18446744073709551615</valid> <invalid>18446744073709551616</invalid> <invalid>-1</invalid> </datatype> <datatype name=“unsignedInt”> <valid>1</valid> <valid>+1</valid> <valid>0</valid> <valid>4294967295</valid> <invalid>4294967296</invalid> <invalid>-1</invalid> </datatype> <datatype name=“unsignedShort”> <valid>1</valid> <valid>+1</valid> <valid>0</valid> <valid>65535</valid> <invalid>65536</invalid> <invalid>-1</invalid> </datatype> <datatype name=“unsignedByte”> <valid>1</valid> <valid>+1</valid> <valid>0</valid> <valid>255</valid> <invalid>256</invalid> <invalid>-1</invalid> </datatype> <datatype name=“string”> <valid>any thing at all!</valid> </datatype> <datatype name=“normalizedString”> <valid>any thing at all!</valid> </datatype> <datatype name=“token”> <valid>any thing at all!</valid> <equiv> <class>

<value/>
<value> </value>
<value>&#x9;&#xA;&#xD;&#x20;</value>

</class> <class>

<value>x&#x20;</value>
<value>x&#xA;</value>
<value>x&#xD;</value>
<value>x&#x9;</value>
<value>&#x20;x</value>
<value>&#xA;x</value>
<value>&#xD;x</value>
<value>&#x9;x</value>
<value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;</value>

</class> <class>

<value>x y&#x20;</value>
<value>x y&#xA;</value>
<value>x y&#xD;</value>
<value>x y&#x9;</value>
<value>x&#x20;y</value>
<value>x&#xA;y</value>
<value>x&#xD;y</value>
<value>x&#x9;y</value>
<value>&#x20;x y</value>
<value>&#xA;x y</value>
<value>&#xD;x y</value>
<value>&#x9;x y</value>
<value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;y&#x9;&#xA;&#xD;&#x20;</value>

</class> </equiv> <length value=“0”></length> <length value=“1”>x</length> <length value=“1”> x </length> <length value=“1”>&#x10800;</length> </datatype> <datatype name=“language”> <valid>en</valid> <valid>en-UK</valid> <valid>i-cherokee</valid> <valid>x-klingon</valid> <valid>en-uk-scotland</valid> <invalid>en.UK</invalid> </datatype> <datatype name=“Name”> <valid>foo</valid> <valid>_0123456789</valid> <invalid>.</invalid> <valid>:</valid> <invalid>-</invalid> <invalid>1234</invalid> <valid> foo </valid> </datatype> <datatype name=“NCName”> <valid>foo</valid> <invalid>foo:bar</invalid> <invalid>0foo</invalid> <equiv> <class><value>foo</value><value> foo </value></class> <class><value>FOO</value><value> FOO </value></class> </equiv> </datatype> <datatype name=“NMTOKEN”> <valid>foo</valid> <valid>_</valid> <valid>.</valid> <valid>:</valid> <valid>-</valid> <valid>1234</valid> <valid> foo </valid> <length value=“3”> foo </length> <length value=“2”>fo</length> <length value=“1”>f</length> </datatype> <datatype name=“NMTOKENS”> <valid>foo bar</valid> <invalid/> <valid>1 2 3 4</valid> </datatype> <datatype name=“ID”> <valid>foobar</valid> <invalid>foo:bar</invalid> <invalid>foo bar</invalid> </datatype> <datatype name=“ENTITY”> <invalid/> <invalid>foo</invalid> <valid internalSubset=“&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg>” >foo</valid> </datatype> <datatype name=“ENTITIES”> <invalid></invalid> <invalid>foo</invalid> <valid internalSubset=“&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg> &#xA;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg> ” > foo bar </valid> </datatype> </xsdtest>