<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>http://www.example.com</valid> <valid>http://ji%6d@www.example.com</valid> <valid>http://www.example.co%6d</valid> <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

	e a d b eef </value> </class> <class> <value>DEADBEEF</value> <value>D

	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="http://www.example.com">x:foo</valid> <invalid>y:foo</invalid> <equiv xmlns:x="http://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="http://www.example.com">x:foo</valid> <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>	

 </value> </class> <class> <value>x </value> <value>x
</value> <value>x
</value> <value>x	</value> <value> x</value> <value>
x</value> <value>
x</value> <value>	x</value> <value>	

 x	

 </value> </class> <class> <value>x y </value> <value>x y
</value> <value>x y
</value> <value>x y	</value> <value>x y</value> <value>x
y</value> <value>x
y</value> <value>x	y</value> <value> x y</value> <value>
x y</value> <value>
x y</value> <value>	x y</value> <value>	

 x	

 y	

 </value> </class> </equiv> <length value="0"></length> <length value="1">x</length> <length value="1"> x </length> <length value="1">𐠀</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="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg>" >foo</valid> </datatype> <datatype name="ENTITIES"> <invalid></invalid> <invalid>foo</invalid> <valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg> 
<!ENTITY bar SYSTEM 'whatever' NDATA jpeg> " > foo bar </valid> </datatype> </xsdtest>