2003-02-27 20:11:13 +00:00
<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>
2003-02-27 23:24:53 +00:00
<valid > http://ji%6d@www.example.com</valid>
2003-03-07 18:32:59 +00:00
<valid > http://www.example.co%6d</valid>
2003-02-27 20:11:13 +00:00
<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 f o o S Y S T E M ' w h a t e v e r ' N D A T A j p e g >

 < !ENTITY bar SYSTEM 'whatever' NDATA jpeg>
"
> foo bar </valid>
</datatype>
</xsdtest>