Home | History | Annotate | Download | only in xsdtest
      1 <xsdtest>
      2 <datatype name="dateTime">
      3 <valid>2001-12-01T19:45:00</valid>
      4 <valid>2001-12-01T19:45:00Z</valid>
      5 <valid>2001-12-01T19:45:00-11:59</valid>
      6 <valid>0001-01-12T00:00:00+12:00</valid>
      7 <invalid>2001-12-1T19:45:00+24:00</invalid>
      8 <invalid>2001-12-1T19:45:00</invalid>
      9 <equiv>
     10 <class>
     11   <value>2001-12-01T19:45:00</value>
     12   <value>2001-12-01T19:45:00.00</value>
     13 </class>
     14 <class>
     15   <value>2001-12-01T19:45:00Z</value>
     16   <value>2001-12-01T19:45:00.00Z</value>
     17   <value>2001-12-01T20:45:00+01:00</value>
     18 </class>
     19 </equiv>
     20 </datatype>
     21 <datatype name="anyURI">
     22 <valid>foobar</valid>
     23 <valid>http://www.example.com</valid>
     24 <valid>http://ji%6d@www.example.com</valid>
     25 <valid>http://www.example.co%6d</valid>
     26 <valid>nosuchscheme:stuff</valid>
     27 <invalid>foo$bar:stuff</invalid>
     28 <invalid>f%oobar</invalid>
     29 </datatype>
     30 <datatype name="integer">
     31 <valid>10</valid>
     32 <valid>01</valid>
     33 <valid>0123456789</valid>
     34 <valid>+10</valid>
     35 <valid>-10</valid>
     36 <invalid>1.0</invalid>
     37 <invalid>.1</invalid>
     38 <valid>9999999999999999999999999999999</valid>
     39 <invalid>1.</invalid>
     40 <invalid>0.</invalid>
     41 <equiv>
     42 <class>
     43   <value>0</value>
     44   <value>+0</value>
     45   <value>-0</value>
     46   <value>00</value>
     47 </class>
     48 <class>
     49   <value>10</value>
     50   <value>+10</value>
     51   <value>+0010</value>
     52   <value>010</value>
     53 </class>
     54 <class>
     55   <value>-10</value>
     56   <value>-0010</value>
     57   <value>-010</value>
     58 </class>
     59 </equiv>
     60 </datatype>
     61 <datatype name="duration">
     62 <valid>P1Y</valid>
     63 <valid>P1Y0M2DT17H5M12S</valid>
     64 <valid>-P1Y</valid>
     65 <valid>P60D</valid>
     66 <valid>PT24H</valid>
     67 <valid>PT1.2S</valid>
     68 <invalid>P24h</invalid>
     69 <invalid>P24H</invalid>
     70 <invalid>P1YT</invalid>
     71 <invalid>P</invalid>
     72 <invalid>-P</invalid>
     73 <equiv>
     74   <class>
     75     <value>-P6M</value>
     76   </class>
     77   <class>
     78     <value>P0Y</value>
     79     <value>-P0Y</value>
     80   </class>
     81   <class>
     82     <value>P1Y</value>
     83     <value>P001Y</value>
     84     <value>P001Y0M</value>
     85     <value>P1Y0M0DT0H0M0.0S</value>
     86   </class>
     87   <class>
     88     <value>P6M</value>
     89   </class>
     90   <class>
     91     <value>PT6M</value>
     92   </class>
     93   <class>
     94     <value>PT1S</value>
     95     <value>PT1.0S</value>
     96   </class>
     97 </equiv>
     98 <lessThan>
     99   <value>PT1M</value>
    100   <value>PT61S</value>
    101 </lessThan>
    102 <lessThan>
    103   <value>PT59S</value>
    104   <value>PT1M</value>
    105 </lessThan>
    106 <incomparable>
    107   <value>PT60S</value>
    108   <value>PT1M</value>
    109 </incomparable>
    110 <lessThan>
    111   <value>PT1H</value>
    112   <value>PT61M</value>
    113 </lessThan>
    114 <lessThan>
    115   <value>PT59M</value>
    116   <value>PT1H</value>
    117 </lessThan>
    118 <incomparable>
    119   <value>PT60M</value>
    120   <value>PT1H</value>
    121 </incomparable>
    122 <lessThan>
    123   <value>P1D</value>
    124   <value>PT25H</value>
    125 </lessThan>
    126 <lessThan>
    127   <value>PT23H</value>
    128   <value>P1D</value>
    129 </lessThan>
    130 <incomparable>
    131   <value>P1D</value>
    132   <value>PT24H</value>
    133 </incomparable>
    134 <lessThan>
    135   <value>P1Y</value>
    136   <value>P13M</value>
    137 </lessThan>
    138 <lessThan>
    139   <value>P11M</value>
    140   <value>P1Y</value>
    141 </lessThan>
    142 <incomparable>
    143   <value>P12M</value>
    144   <value>P1Y</value>
    145 </incomparable>
    146 <lessThan>
    147   <value>P364D</value>
    148   <value>P1Y</value>
    149 </lessThan>
    150 <incomparable>
    151   <value>P1Y</value>
    152   <value>P365D</value>
    153 </incomparable>
    154 <incomparable>
    155   <value>P1Y</value>
    156   <value>P366D</value>
    157 </incomparable>
    158 <lessThan>
    159   <value>P1Y</value>
    160   <value>P367D</value>
    161 </lessThan>
    162 <lessThan>
    163   <value>P149D</value>
    164   <value>P5M</value>
    165 </lessThan>
    166 <incomparable>
    167   <value>P150D</value>
    168   <value>P5M</value>
    169 </incomparable>
    170 <incomparable>
    171   <value>P151D</value>
    172   <value>P5M</value>
    173 </incomparable>
    174 <incomparable>
    175   <value>P152D</value>
    176   <value>P5M</value>
    177 </incomparable>
    178 <incomparable>
    179   <value>P153D</value>
    180   <value>P5M</value>
    181 </incomparable>
    182 <lessThan>
    183   <value>P5M</value>
    184   <value>P154D</value>
    185 </lessThan>
    186 <lessThan>
    187   <value>P27D</value>
    188   <value>P1M</value>
    189 </lessThan>
    190 <incomparable>
    191   <value>P28D</value>
    192   <value>P1M</value>
    193 </incomparable>
    194 <incomparable>
    195   <value>P29D</value>
    196   <value>P1M</value>
    197 </incomparable>
    198 <incomparable>
    199   <value>P30D</value>
    200   <value>P1M</value>
    201 </incomparable>
    202 <incomparable>
    203   <value>P31D</value>
    204   <value>P1M</value>
    205 </incomparable>
    206 <lessThan>
    207   <value>P1M</value>
    208   <value>P32D</value>
    209 </lessThan>
    210 </datatype>
    211 <datatype name="time">
    212 <valid>12:45:00</valid>
    213 <valid>12:45:00Z</valid>
    214 </datatype>
    215 <datatype name="date">
    216 <valid>1886-12-01</valid>
    217 <valid>1886-12-01Z</valid>
    218 <lessThan>
    219   <value>1066-12-31</value>
    220   <value>1900-01-01</value>
    221 </lessThan>
    222 <lessThan>
    223   <value>1900-01-01</value>
    224   <value>1900-01-02</value>
    225 </lessThan>
    226 </datatype>
    227 <datatype name="gYearMonth">
    228 <valid>1996-12</valid>
    229 <valid>1996-01</valid>
    230 <valid>1996-01Z</valid>
    231 <invalid>1996-00</invalid>
    232 <equiv>
    233 <class><value>1996-01</value></class>
    234 <class>
    235   <value>1996-01Z</value>
    236   <value>1996-01+00:00</value>
    237   <value>1996-01-00:00</value>
    238 </class>
    239 <class><value>1996-01+01:00</value></class>
    240 <class><value>1996-01-01:00</value></class>
    241 </equiv>
    242 </datatype>
    243 <datatype name="gYear">
    244 <valid>2001</valid>
    245 <valid>2001Z</valid>
    246 <lessThan>
    247   <value>1999</value>
    248   <value>2000</value>
    249 </lessThan>
    250 <lessThan>
    251   <value>1999+07:00</value>
    252   <value>2000+07:00</value>
    253 </lessThan>
    254 </datatype>
    255 <datatype name="gMonthDay">
    256 <valid>--12-01</valid>
    257 <valid>--12-01Z</valid>
    258 <lessThan>
    259   <value>--12-01</value>
    260   <value>--12-04</value>
    261 </lessThan>
    262 <lessThan>
    263   <value>--11-17</value>
    264   <value>--12-04</value>
    265 </lessThan>
    266 </datatype>
    267 <datatype name="gDay">
    268 <valid>---20</valid>
    269 <valid>---20Z</valid>
    270 <lessThan>
    271   <value>---01</value>
    272   <value>---31</value>
    273 </lessThan>
    274 </datatype>
    275 <datatype name="gMonth">
    276 <valid>--12</valid>
    277 <valid>--01</valid>
    278 <valid>--01Z</valid>
    279 <valid> --12 </valid>
    280 <invalid>---01</invalid>
    281 <invalid>--00</invalid>
    282 <invalid>--13</invalid>
    283 <invalid>- -13</invalid>
    284 <lessThan>
    285   <value>--01</value>
    286   <value>--12</value>
    287 </lessThan>
    288 <lessThan>
    289   <value>--01</value>
    290   <value>--02</value>
    291 </lessThan>
    292 </datatype>
    293 <datatype name="boolean">
    294 <valid>true</valid>
    295 <valid>false</valid>
    296 <valid>0</valid>
    297 <valid>1</valid>
    298 <invalid>00</invalid>
    299 <invalid>00</invalid>
    300 <invalid>01</invalid>
    301 <equiv>
    302 <class><value>true</value><value>1</value></class>
    303 <class><value>false</value><value>0</value></class>
    304 </equiv>
    305 </datatype>
    306 <datatype name="base64Binary">
    307 <valid>AAAA</valid>
    308 <valid>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR
    309 STUV WXYZ 0123 4567 89+/</valid>
    310 <valid>BA==</valid>
    311 <valid></valid>
    312 <valid>BA==</valid>
    313 <valid>BQ==</valid>
    314 <valid>Bg==</valid>
    315 <valid>Bw==</valid>
    316 <valid>BBA=</valid>
    317 <valid>BBA=</valid>
    318 <valid>BBE=</valid>
    319 <valid>BBI=</valid>
    320 <valid>BBM=</valid>
    321 <valid>BBQ=</valid>
    322 <valid>BBU=</valid>
    323 <valid>BBY=</valid>
    324 <valid>BBc=</valid>
    325 <valid>BBg=</valid>
    326 <valid>BBk=</valid>
    327 <valid>BBo=</valid>
    328 <valid>BBs=</valid>
    329 <valid>BBw=</valid>
    330 <valid>BB0=</valid>
    331 <valid>BB4=</valid>
    332 <valid>BB8=</valid>
    333 <invalid>====</invalid>
    334 <invalid>BB==</invalid>
    335 <invalid>BBB=</invalid>
    336 <invalid>B===</invalid>
    337 <invalid>B</invalid>
    338 <equiv>
    339 <class>
    340 <value>deadbeef</value>
    341 <value>d&#xA;&#xD;&#x9;e a d
    342 b eef </value>
    343 </class>
    344 <class>
    345 <value>DEADBEEF</value>
    346 <value>D&#xA;&#xD;&#x9;E A D
    347 B EEF </value>
    348 </class>
    349 </equiv>
    350 <length value="0"></length>
    351 <length value="6">deadbeef</length>
    352 <length value="1">BA==</length>
    353 <length value="2">BBA=</length>
    354 <length value="3">dead</length>
    355 <length value="4">deadBA==</length>
    356 </datatype>
    357 <datatype name="hexBinary">
    358 <valid>deadbeef</valid>
    359 <valid></valid>
    360 <valid>0123456789ABCDEFabcdef</valid>
    361 <invalid>00 00</invalid>
    362 <invalid>00.00</invalid>
    363 <invalid>0G</invalid>
    364 <equiv>
    365  <class>
    366    <value>00</value>
    367    <value>
    368 	00
    369    </value>
    370  </class>
    371  <class>
    372    <value>01</value>
    373  </class>
    374  <class>
    375    <value>10</value>
    376  </class>
    377  <class>
    378    <value>0a</value>
    379    <value>0A</value>
    380  </class>
    381 </equiv>
    382 <length value="0"></length>
    383 <length value="1">00</length>
    384 <length value="2">0000</length>
    385 <length value="2"> 0000 </length>
    386 <length value="2">AAAA</length>
    387 </datatype>
    388 <datatype name="float">
    389 <valid>1.0</valid>
    390 <valid>1.</valid>
    391 <valid>.1</valid>
    392 <invalid>- 1</invalid>
    393 <invalid>1 .0</invalid>
    394 <invalid>+INF</invalid>
    395 <invalid>+NaN</invalid>
    396 <invalid>-NaN</invalid>
    397 <equiv>
    398 <class>
    399   <value>0</value>
    400   <value>-0</value>
    401   <value>+0</value>
    402   <value> 0 </value>
    403   <value> 0. </value>
    404   <value> .0 </value>
    405   <value> 0.0 </value>
    406   <value> 0e0 </value>
    407   <value> 0E0 </value>
    408   <value> 0E+0 </value>
    409   <value> 0E-0 </value>
    410 </class>
    411 <class>
    412   <value>1E0</value>
    413   <value>0.1E1</value>
    414   <value>10E-1</value>
    415   <value>+1</value>
    416 </class>
    417 <class>
    418   <value>-1</value>
    419 </class>
    420 <class>
    421   <value>INF</value>
    422   <value>INF </value>
    423 </class>
    424 <class>
    425   <value>-INF</value>
    426   <value>-INF </value>
    427 </class>
    428 <class>
    429   <value>NaN</value>
    430   <value> NaN </value>
    431 </class>
    432 </equiv>
    433 <lessThan>
    434   <value>-INF</value>
    435   <value>-1000</value>
    436 </lessThan>
    437 <lessThan>
    438   <value>1000</value>
    439   <value>INF</value>
    440 </lessThan>
    441 <lessThan>
    442   <value>-1</value>
    443   <value>1</value>
    444 </lessThan>
    445 <lessThan>
    446   <value>0</value>
    447   <value>1</value>
    448 </lessThan>
    449 <lessThan>
    450   <value>-1</value>
    451   <value>0</value>
    452 </lessThan>
    453 </datatype>
    454 <datatype name="double">
    455 <valid>1.0</valid>
    456 <valid>1.</valid>
    457 <valid>.1</valid>
    458 <invalid>- 1</invalid>
    459 <invalid>1 .0</invalid>
    460 <invalid>+INF</invalid>
    461 <invalid>+NaN</invalid>
    462 <invalid>-NaN</invalid>
    463 <equiv>
    464 <class>
    465   <value>0</value>
    466   <value>-0</value>
    467   <value>+0</value>
    468   <value> 0 </value>
    469   <value> 0. </value>
    470   <value> .0 </value>
    471   <value> 0.0 </value>
    472   <value> 0e0 </value>
    473   <value> 0E0 </value>
    474   <value> 0E+0 </value>
    475   <value> 0E-0 </value>
    476 </class>
    477 <class>
    478   <value>1E0</value>
    479   <value>0.1E1</value>
    480   <value>10E-1</value>
    481   <value>+1</value>
    482 </class>
    483 <class>
    484   <value>-1</value>
    485 </class>
    486 <class>
    487   <value>INF</value>
    488   <value>INF </value>
    489 </class>
    490 <class>
    491   <value>-INF</value>
    492   <value>-INF </value>
    493 </class>
    494 <class>
    495   <value>NaN</value>
    496   <value> NaN </value>
    497 </class>
    498 </equiv>
    499 <lessThan>
    500   <value>-INF</value>
    501   <value>-1000</value>
    502 </lessThan>
    503 <lessThan>
    504   <value>1000</value>
    505   <value>INF</value>
    506 </lessThan>
    507 <lessThan>
    508   <value>-1</value>
    509   <value>1</value>
    510 </lessThan>
    511 <lessThan>
    512   <value>0</value>
    513   <value>1</value>
    514 </lessThan>
    515 <lessThan>
    516   <value>-1</value>
    517   <value>0</value>
    518 </lessThan>
    519 </datatype>
    520 <datatype name="QName">
    521 <valid>foo</valid>
    522 <valid xmlns:x="http://www.example.com">x:foo</valid>
    523 <invalid>y:foo</invalid>
    524 <equiv xmlns:x="http://www.example.com"
    525        xmlns:y="http://www.example.com/"
    526        xmlns:z="http://www.example.com">
    527 <class>
    528   <value>foo</value>
    529   <value> foo</value>
    530 </class>
    531 <class>
    532   <value>x:foo</value>
    533   <value> x:foo </value>
    534   <value>z:foo</value>
    535 </class>
    536 <class>
    537   <value>x:bar</value>
    538   <value>z:bar</value>
    539 </class>
    540 <class>
    541   <value>y:foo</value>
    542 </class>
    543 <class>
    544   <value>y:bar</value>
    545 </class>
    546 </equiv>
    547 </datatype>
    548 <datatype name="NOTATION">
    549 <valid>foo</valid>
    550 <valid xmlns:x="http://www.example.com">x:foo</valid>
    551 <invalid>y:foo</invalid>
    552 </datatype>
    553 <datatype name="decimal">
    554 <valid>1.0</valid>
    555 <valid>1.</valid>
    556 <valid>.1</valid>
    557 <valid>+1.0</valid>
    558 <valid>-1.0</valid>
    559 <valid> 1 </valid>
    560 <valid>99999999999999999999999999999999999999999999999999999999999999999</valid>
    561 <valid>-99999999999999999999999999999999999999999999999999999999999999999</valid>
    562 <invalid>junk</invalid>
    563 <invalid>--1</invalid>
    564 <invalid>++1</invalid>
    565 <invalid>+-1</invalid>
    566 <invalid>1.2.</invalid>
    567 <invalid>..1</invalid>
    568 <invalid>1..</invalid>
    569 <invalid>1 .2</invalid>
    570 <invalid>1+</invalid>
    571 <invalid>+ 1</invalid>
    572 <lessThan>
    573   <value>0</value>
    574   <value>1</value>
    575 </lessThan>
    576 </datatype>
    577 <datatype name="nonPositiveInteger">
    578 <valid>-1</valid>
    579 <valid>0</valid>
    580 <valid>-0</valid>
    581 <invalid>1</invalid>
    582 </datatype>
    583 <datatype name="nonNegativeInteger">
    584 <valid>1</valid>
    585 <valid>0</valid>
    586 <valid>+1</valid>
    587 <valid>+0</valid>
    588 <invalid>-1</invalid>
    589 </datatype>
    590 <datatype name="positiveInteger">
    591 <valid>+1</valid>
    592 <valid>1</valid>
    593 <invalid>0</invalid>
    594 <invalid>-1</invalid>
    595 </datatype>
    596 <datatype name="negativeInteger">
    597 <valid>-1</valid>
    598 <invalid>+1</invalid>
    599 <invalid>0</invalid>
    600 </datatype>
    601 <datatype name="long">
    602 <valid>1</valid>
    603 <valid>+1</valid>
    604 <valid>0</valid>
    605 <valid> 0 </valid>
    606 <invalid>1 2</invalid>
    607 <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
    608 <valid>9223372036854775807</valid>
    609 <valid>-9223372036854775808</valid>
    610 <invalid>9223372036854775808</invalid>
    611 <invalid>-9223372036854775809</invalid>
    612 <invalid/>
    613 </datatype>
    614 <datatype name="int">
    615 <valid>1</valid>
    616 <valid>01</valid>
    617 <valid> 1 </valid>
    618 <valid>2147483647</valid>
    619 <valid>-2147483648</valid>
    620 <invalid>2147483648</invalid>
    621 <invalid>-2147483649</invalid>
    622 <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
    623 <equiv>
    624 <class>
    625  <value>1</value>
    626  <value>+1</value>
    627  <value> 1 </value>
    628  <value>001</value>
    629 </class>
    630 <class>
    631  <value>-1</value>
    632  <value> -1 </value>
    633  <value>-001</value>
    634 </class>
    635 </equiv>
    636 </datatype>
    637 <datatype name="short">
    638 <valid>1</valid>
    639 <valid>32767</valid>
    640 <valid>-32768</valid>
    641 <invalid>32768</invalid>
    642 <invalid>-32769</invalid>
    643 <invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid>
    644 <equiv>
    645 <class>
    646  <value>1</value>
    647  <value>+1</value>
    648  <value> 1 </value>
    649  <value>001</value>
    650 </class>
    651 <class>
    652  <value>-1</value>
    653  <value> -1 </value>
    654  <value>-001</value>
    655 </class>
    656 </equiv>
    657 </datatype>
    658 <datatype name="byte">
    659 <valid>1</valid>
    660 <valid>127</valid>
    661 <valid>-128</valid>
    662 <invalid>128</invalid>
    663 <invalid>-129</invalid>
    664 </datatype>
    665 <datatype name="unsignedLong">
    666 <valid>1</valid>
    667 <valid>+1</valid>
    668 <invalid>-1</invalid>
    669 <valid>0</valid>
    670 <valid>18446744073709551615</valid>
    671 <invalid>18446744073709551616</invalid>
    672 <invalid>-1</invalid>
    673 </datatype>
    674 <datatype name="unsignedInt">
    675 <valid>1</valid>
    676 <valid>+1</valid>
    677 <valid>0</valid>
    678 <valid>4294967295</valid>
    679 <invalid>4294967296</invalid>
    680 <invalid>-1</invalid>
    681 </datatype>
    682 <datatype name="unsignedShort">
    683 <valid>1</valid>
    684 <valid>+1</valid>
    685 <valid>0</valid>
    686 <valid>65535</valid>
    687 <invalid>65536</invalid>
    688 <invalid>-1</invalid>
    689 </datatype>
    690 <datatype name="unsignedByte">
    691 <valid>1</valid>
    692 <valid>+1</valid>
    693 <valid>0</valid>
    694 <valid>255</valid>
    695 <invalid>256</invalid>
    696 <invalid>-1</invalid>
    697 </datatype>
    698 <datatype name="string">
    699 <valid>any thing at all!</valid>
    700 </datatype>
    701 <datatype name="normalizedString">
    702 <valid>any thing at all!</valid>
    703 </datatype>
    704 <datatype name="token">
    705 <valid>any thing at all!</valid>
    706 <equiv>
    707 <class>
    708   <value/>
    709   <value> </value>
    710   <value>&#x9;&#xA;&#xD;&#x20;</value>
    711 </class>
    712 <class>
    713   <value>x&#x20;</value>
    714   <value>x&#xA;</value>
    715   <value>x&#xD;</value>
    716   <value>x&#x9;</value>
    717   <value>&#x20;x</value>
    718   <value>&#xA;x</value>
    719   <value>&#xD;x</value>
    720   <value>&#x9;x</value>
    721   <value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;</value>
    722 </class>
    723 <class>
    724   <value>x y&#x20;</value>
    725   <value>x y&#xA;</value>
    726   <value>x y&#xD;</value>
    727   <value>x y&#x9;</value>
    728   <value>x&#x20;y</value>
    729   <value>x&#xA;y</value>
    730   <value>x&#xD;y</value>
    731   <value>x&#x9;y</value>
    732   <value>&#x20;x y</value>
    733   <value>&#xA;x y</value>
    734   <value>&#xD;x y</value>
    735   <value>&#x9;x y</value>
    736   <value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;y&#x9;&#xA;&#xD;&#x20;</value>
    737 </class>
    738 </equiv>
    739 <length value="0"></length>
    740 <length value="1">x</length>
    741 <length value="1"> x </length>
    742 <length value="1">&#x10800;</length>
    743 </datatype>
    744 <datatype name="language">
    745 <valid>en</valid>
    746 <valid>en-UK</valid>
    747 <valid>i-cherokee</valid>
    748 <valid>x-klingon</valid>
    749 <valid>en-uk-scotland</valid>
    750 <invalid>en.UK</invalid>
    751 </datatype>
    752 <datatype name="Name">
    753 <valid>foo</valid>
    754 <valid>_0123456789</valid>
    755 <invalid>.</invalid>
    756 <valid>:</valid>
    757 <invalid>-</invalid>
    758 <invalid>1234</invalid>
    759 <valid> foo </valid>
    760 </datatype>
    761 <datatype name="NCName">
    762 <valid>foo</valid>
    763 <invalid>foo:bar</invalid>
    764 <invalid>0foo</invalid>
    765 <equiv>
    766 <class><value>foo</value><value> foo </value></class>
    767 <class><value>FOO</value><value> FOO </value></class>
    768 </equiv>
    769 </datatype>
    770 <datatype name="NMTOKEN">
    771 <valid>foo</valid>
    772 <valid>_</valid>
    773 <valid>.</valid>
    774 <valid>:</valid>
    775 <valid>-</valid>
    776 <valid>1234</valid>
    777 <valid> foo </valid>
    778 <length value="3"> foo </length>
    779 <length value="2">fo</length>
    780 <length value="1">f</length>
    781 </datatype>
    782 <datatype name="NMTOKENS">
    783 <valid>foo bar</valid>
    784 <invalid/>
    785 <valid>1 2 3 4</valid>
    786 </datatype>
    787 <datatype name="ID">
    788 <valid>foobar</valid>
    789 <invalid>foo:bar</invalid>
    790 <invalid>foo bar</invalid>
    791 </datatype>
    792 <datatype name="ENTITY">
    793 <invalid/>
    794 <invalid>foo</invalid>
    795 <valid internalSubset="&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg>"
    796 >foo</valid>
    797 </datatype>
    798 <datatype name="ENTITIES">
    799 <invalid></invalid>
    800 <invalid>foo</invalid>
    801 <valid internalSubset="&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg>
    802 &#xA;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg>
    803 "
    804 > foo bar </valid>
    805 </datatype>
    806 </xsdtest>
    807