Home | History | Annotate | Download | only in xsdtest
      1 <?xml version="1.0" encoding="utf-8"?>
      2 <testSuite>
      3   <testSuite>
      4     <documentation>Datatype dateTime</documentation>
      5     <testCase>
      6       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
      7       <correct>
      8         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
      9           <data type="dateTime"/>
     10         </element>
     11       </correct>
     12       <valid>
     13         <doc>2001-12-01T19:45:00</doc>
     14       </valid>
     15       <valid>
     16         <doc>2001-12-01T19:45:00Z</doc>
     17       </valid>
     18       <valid>
     19         <doc>2001-12-01T19:45:00-11:59</doc>
     20       </valid>
     21       <valid>
     22         <doc>0001-01-12T00:00:00+12:00</doc>
     23       </valid>
     24       <invalid>
     25         <doc>2001-12-1T19:45:00+24:00</doc>
     26       </invalid>
     27       <invalid>
     28         <doc>2001-12-1T19:45:00</doc>
     29       </invalid>
     30     </testCase>
     31     <testCase>
     32       <correct>
     33         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
     34           <value type="dateTime">2001-12-01T19:45:00</value>
     35         </element>
     36       </correct>
     37       <valid>
     38         <doc>2001-12-01T19:45:00.00</doc>
     39       </valid>
     40       <invalid>
     41         <doc>2001-12-01T19:45:00Z</doc>
     42       </invalid>
     43       <invalid>
     44         <doc>2001-12-01T19:45:00.00Z</doc>
     45       </invalid>
     46       <invalid>
     47         <doc>2001-12-01T20:45:00+01:00</doc>
     48       </invalid>
     49     </testCase>
     50     <testCase>
     51       <correct>
     52         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
     53           <value type="dateTime">2001-12-01T19:45:00Z</value>
     54         </element>
     55       </correct>
     56       <valid>
     57         <doc>2001-12-01T19:45:00.00Z</doc>
     58       </valid>
     59       <valid>
     60         <doc>2001-12-01T20:45:00+01:00</doc>
     61       </valid>
     62       <invalid>
     63         <doc>2001-12-01T19:45:00</doc>
     64       </invalid>
     65       <invalid>
     66         <doc>2001-12-01T19:45:00.00</doc>
     67       </invalid>
     68     </testCase>
     69   </testSuite>
     70   <testSuite>
     71     <documentation>Datatype anyURI</documentation>
     72     <testCase>
     73       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
     74       <correct>
     75         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
     76           <data type="anyURI"/>
     77         </element>
     78       </correct>
     79       <valid>
     80         <doc>foobar</doc>
     81       </valid>
     82       <valid>
     83         <doc>http://www.example.com</doc>
     84       </valid>
     85       <valid>
     86         <doc>http://ji%6d@www.example.com</doc>
     87       </valid>
     88       <valid>
     89         <doc>http://www.example.co%6d</doc>
     90       </valid>
     91       <valid>
     92         <doc>nosuchscheme:stuff</doc>
     93       </valid>
     94       <invalid>
     95         <doc>foo$bar:stuff</doc>
     96       </invalid>
     97       <invalid>
     98         <doc>f%oobar</doc>
     99       </invalid>
    100     </testCase>
    101   </testSuite>
    102   <testSuite>
    103     <documentation>Datatype integer</documentation>
    104     <testCase>
    105       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
    106       <correct>
    107         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    108           <data type="integer"/>
    109         </element>
    110       </correct>
    111       <valid>
    112         <doc>10</doc>
    113       </valid>
    114       <valid>
    115         <doc>01</doc>
    116       </valid>
    117       <valid>
    118         <doc>0123456789</doc>
    119       </valid>
    120       <valid>
    121         <doc>+10</doc>
    122       </valid>
    123       <valid>
    124         <doc>-10</doc>
    125       </valid>
    126       <invalid>
    127         <doc>1.0</doc>
    128       </invalid>
    129       <invalid>
    130         <doc>.1</doc>
    131       </invalid>
    132       <valid>
    133         <doc>9999999999999999999999999999999</doc>
    134       </valid>
    135       <invalid>
    136         <doc>1.</doc>
    137       </invalid>
    138       <invalid>
    139         <doc>0.</doc>
    140       </invalid>
    141     </testCase>
    142     <testCase>
    143       <correct>
    144         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    145           <value type="integer">0</value>
    146         </element>
    147       </correct>
    148       <valid>
    149         <doc>+0</doc>
    150       </valid>
    151       <valid>
    152         <doc>-0</doc>
    153       </valid>
    154       <valid>
    155         <doc>00</doc>
    156       </valid>
    157       <invalid>
    158         <doc>10</doc>
    159       </invalid>
    160       <invalid>
    161         <doc>+10</doc>
    162       </invalid>
    163       <invalid>
    164         <doc>+0010</doc>
    165       </invalid>
    166       <invalid>
    167         <doc>010</doc>
    168       </invalid>
    169       <invalid>
    170         <doc>-10</doc>
    171       </invalid>
    172       <invalid>
    173         <doc>-0010</doc>
    174       </invalid>
    175       <invalid>
    176         <doc>-010</doc>
    177       </invalid>
    178     </testCase>
    179     <testCase>
    180       <correct>
    181         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    182           <value type="integer">10</value>
    183         </element>
    184       </correct>
    185       <valid>
    186         <doc>+10</doc>
    187       </valid>
    188       <valid>
    189         <doc>+0010</doc>
    190       </valid>
    191       <valid>
    192         <doc>010</doc>
    193       </valid>
    194       <invalid>
    195         <doc>0</doc>
    196       </invalid>
    197       <invalid>
    198         <doc>+0</doc>
    199       </invalid>
    200       <invalid>
    201         <doc>-0</doc>
    202       </invalid>
    203       <invalid>
    204         <doc>00</doc>
    205       </invalid>
    206       <invalid>
    207         <doc>-10</doc>
    208       </invalid>
    209       <invalid>
    210         <doc>-0010</doc>
    211       </invalid>
    212       <invalid>
    213         <doc>-010</doc>
    214       </invalid>
    215     </testCase>
    216     <testCase>
    217       <correct>
    218         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    219           <value type="integer">-10</value>
    220         </element>
    221       </correct>
    222       <valid>
    223         <doc>-0010</doc>
    224       </valid>
    225       <valid>
    226         <doc>-010</doc>
    227       </valid>
    228       <invalid>
    229         <doc>0</doc>
    230       </invalid>
    231       <invalid>
    232         <doc>+0</doc>
    233       </invalid>
    234       <invalid>
    235         <doc>-0</doc>
    236       </invalid>
    237       <invalid>
    238         <doc>00</doc>
    239       </invalid>
    240       <invalid>
    241         <doc>10</doc>
    242       </invalid>
    243       <invalid>
    244         <doc>+10</doc>
    245       </invalid>
    246       <invalid>
    247         <doc>+0010</doc>
    248       </invalid>
    249       <invalid>
    250         <doc>010</doc>
    251       </invalid>
    252     </testCase>
    253   </testSuite>
    254   <testSuite>
    255     <documentation>Datatype duration</documentation>
    256     <testCase>
    257       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
    258       <correct>
    259         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    260           <data type="duration"/>
    261         </element>
    262       </correct>
    263       <valid>
    264         <doc>P1Y</doc>
    265       </valid>
    266       <valid>
    267         <doc>P1Y0M2DT17H5M12S</doc>
    268       </valid>
    269       <valid>
    270         <doc>-P1Y</doc>
    271       </valid>
    272       <valid>
    273         <doc>P60D</doc>
    274       </valid>
    275       <valid>
    276         <doc>PT24H</doc>
    277       </valid>
    278       <valid>
    279         <doc>PT1.2S</doc>
    280       </valid>
    281       <invalid>
    282         <doc>P24h</doc>
    283       </invalid>
    284       <invalid>
    285         <doc>P24H</doc>
    286       </invalid>
    287       <invalid>
    288         <doc>P1YT</doc>
    289       </invalid>
    290       <invalid>
    291         <doc>P</doc>
    292       </invalid>
    293       <invalid>
    294         <doc>-P</doc>
    295       </invalid>
    296     </testCase>
    297     <testCase>
    298       <correct>
    299         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    300           <value type="duration">-P6M</value>
    301         </element>
    302       </correct>
    303       <invalid>
    304         <doc>P0Y</doc>
    305       </invalid>
    306       <invalid>
    307         <doc>-P0Y</doc>
    308       </invalid>
    309       <invalid>
    310         <doc>P1Y</doc>
    311       </invalid>
    312       <invalid>
    313         <doc>P001Y</doc>
    314       </invalid>
    315       <invalid>
    316         <doc>P001Y0M</doc>
    317       </invalid>
    318       <invalid>
    319         <doc>P1Y0M0DT0H0M0.0S</doc>
    320       </invalid>
    321       <invalid>
    322         <doc>P6M</doc>
    323       </invalid>
    324       <invalid>
    325         <doc>PT6M</doc>
    326       </invalid>
    327       <invalid>
    328         <doc>PT1S</doc>
    329       </invalid>
    330       <invalid>
    331         <doc>PT1.0S</doc>
    332       </invalid>
    333     </testCase>
    334     <testCase>
    335       <correct>
    336         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    337           <value type="duration">P0Y</value>
    338         </element>
    339       </correct>
    340       <valid>
    341         <doc>-P0Y</doc>
    342       </valid>
    343       <invalid>
    344         <doc>-P6M</doc>
    345       </invalid>
    346       <invalid>
    347         <doc>P1Y</doc>
    348       </invalid>
    349       <invalid>
    350         <doc>P001Y</doc>
    351       </invalid>
    352       <invalid>
    353         <doc>P001Y0M</doc>
    354       </invalid>
    355       <invalid>
    356         <doc>P1Y0M0DT0H0M0.0S</doc>
    357       </invalid>
    358       <invalid>
    359         <doc>P6M</doc>
    360       </invalid>
    361       <invalid>
    362         <doc>PT6M</doc>
    363       </invalid>
    364       <invalid>
    365         <doc>PT1S</doc>
    366       </invalid>
    367       <invalid>
    368         <doc>PT1.0S</doc>
    369       </invalid>
    370     </testCase>
    371     <testCase>
    372       <correct>
    373         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    374           <value type="duration">P1Y</value>
    375         </element>
    376       </correct>
    377       <valid>
    378         <doc>P001Y</doc>
    379       </valid>
    380       <valid>
    381         <doc>P001Y0M</doc>
    382       </valid>
    383       <valid>
    384         <doc>P1Y0M0DT0H0M0.0S</doc>
    385       </valid>
    386       <invalid>
    387         <doc>-P6M</doc>
    388       </invalid>
    389       <invalid>
    390         <doc>P0Y</doc>
    391       </invalid>
    392       <invalid>
    393         <doc>-P0Y</doc>
    394       </invalid>
    395       <invalid>
    396         <doc>P6M</doc>
    397       </invalid>
    398       <invalid>
    399         <doc>PT6M</doc>
    400       </invalid>
    401       <invalid>
    402         <doc>PT1S</doc>
    403       </invalid>
    404       <invalid>
    405         <doc>PT1.0S</doc>
    406       </invalid>
    407     </testCase>
    408     <testCase>
    409       <correct>
    410         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    411           <value type="duration">P6M</value>
    412         </element>
    413       </correct>
    414       <invalid>
    415         <doc>-P6M</doc>
    416       </invalid>
    417       <invalid>
    418         <doc>P0Y</doc>
    419       </invalid>
    420       <invalid>
    421         <doc>-P0Y</doc>
    422       </invalid>
    423       <invalid>
    424         <doc>P1Y</doc>
    425       </invalid>
    426       <invalid>
    427         <doc>P001Y</doc>
    428       </invalid>
    429       <invalid>
    430         <doc>P001Y0M</doc>
    431       </invalid>
    432       <invalid>
    433         <doc>P1Y0M0DT0H0M0.0S</doc>
    434       </invalid>
    435       <invalid>
    436         <doc>PT6M</doc>
    437       </invalid>
    438       <invalid>
    439         <doc>PT1S</doc>
    440       </invalid>
    441       <invalid>
    442         <doc>PT1.0S</doc>
    443       </invalid>
    444     </testCase>
    445     <testCase>
    446       <correct>
    447         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    448           <value type="duration">PT6M</value>
    449         </element>
    450       </correct>
    451       <invalid>
    452         <doc>-P6M</doc>
    453       </invalid>
    454       <invalid>
    455         <doc>P0Y</doc>
    456       </invalid>
    457       <invalid>
    458         <doc>-P0Y</doc>
    459       </invalid>
    460       <invalid>
    461         <doc>P1Y</doc>
    462       </invalid>
    463       <invalid>
    464         <doc>P001Y</doc>
    465       </invalid>
    466       <invalid>
    467         <doc>P001Y0M</doc>
    468       </invalid>
    469       <invalid>
    470         <doc>P1Y0M0DT0H0M0.0S</doc>
    471       </invalid>
    472       <invalid>
    473         <doc>P6M</doc>
    474       </invalid>
    475       <invalid>
    476         <doc>PT1S</doc>
    477       </invalid>
    478       <invalid>
    479         <doc>PT1.0S</doc>
    480       </invalid>
    481     </testCase>
    482     <testCase>
    483       <correct>
    484         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    485           <value type="duration">PT1S</value>
    486         </element>
    487       </correct>
    488       <valid>
    489         <doc>PT1.0S</doc>
    490       </valid>
    491       <invalid>
    492         <doc>-P6M</doc>
    493       </invalid>
    494       <invalid>
    495         <doc>P0Y</doc>
    496       </invalid>
    497       <invalid>
    498         <doc>-P0Y</doc>
    499       </invalid>
    500       <invalid>
    501         <doc>P1Y</doc>
    502       </invalid>
    503       <invalid>
    504         <doc>P001Y</doc>
    505       </invalid>
    506       <invalid>
    507         <doc>P001Y0M</doc>
    508       </invalid>
    509       <invalid>
    510         <doc>P1Y0M0DT0H0M0.0S</doc>
    511       </invalid>
    512       <invalid>
    513         <doc>P6M</doc>
    514       </invalid>
    515       <invalid>
    516         <doc>PT6M</doc>
    517       </invalid>
    518     </testCase>
    519     <testCase>
    520       <correct>
    521         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    522           <data type="duration">
    523             <param name="minExclusive">PT1M</param>
    524           </data>
    525         </element>
    526       </correct>
    527       <valid>
    528         <doc>PT61S</doc>
    529       </valid>
    530       <invalid>
    531         <doc>PT1M</doc>
    532       </invalid>
    533     </testCase>
    534     <testCase>
    535       <correct>
    536         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    537           <data type="duration">
    538             <param name="minExclusive">PT61S</param>
    539           </data>
    540         </element>
    541       </correct>
    542       <invalid>
    543         <doc>PT1M</doc>
    544       </invalid>
    545       <invalid>
    546         <doc>PT61S</doc>
    547       </invalid>
    548     </testCase>
    549     <testCase>
    550       <correct>
    551         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    552           <data type="duration">
    553             <param name="minExclusive">PT59S</param>
    554           </data>
    555         </element>
    556       </correct>
    557       <valid>
    558         <doc>PT1M</doc>
    559       </valid>
    560       <invalid>
    561         <doc>PT59S</doc>
    562       </invalid>
    563     </testCase>
    564     <testCase>
    565       <correct>
    566         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    567           <data type="duration">
    568             <param name="minExclusive">PT1M</param>
    569           </data>
    570         </element>
    571       </correct>
    572       <invalid>
    573         <doc>PT59S</doc>
    574       </invalid>
    575       <invalid>
    576         <doc>PT1M</doc>
    577       </invalid>
    578     </testCase>
    579     <testCase>
    580       <correct>
    581         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    582           <data type="duration">
    583             <param name="minExclusive">PT60S</param>
    584           </data>
    585         </element>
    586       </correct>
    587       <invalid>
    588         <doc>PT1M</doc>
    589       </invalid>
    590       <invalid>
    591         <doc>PT60S</doc>
    592       </invalid>
    593     </testCase>
    594     <testCase>
    595       <correct>
    596         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    597           <data type="duration">
    598             <param name="minExclusive">PT1M</param>
    599           </data>
    600         </element>
    601       </correct>
    602       <invalid>
    603         <doc>PT60S</doc>
    604       </invalid>
    605       <invalid>
    606         <doc>PT1M</doc>
    607       </invalid>
    608     </testCase>
    609     <testCase>
    610       <correct>
    611         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    612           <data type="duration">
    613             <param name="minExclusive">PT1H</param>
    614           </data>
    615         </element>
    616       </correct>
    617       <valid>
    618         <doc>PT61M</doc>
    619       </valid>
    620       <invalid>
    621         <doc>PT1H</doc>
    622       </invalid>
    623     </testCase>
    624     <testCase>
    625       <correct>
    626         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    627           <data type="duration">
    628             <param name="minExclusive">PT61M</param>
    629           </data>
    630         </element>
    631       </correct>
    632       <invalid>
    633         <doc>PT1H</doc>
    634       </invalid>
    635       <invalid>
    636         <doc>PT61M</doc>
    637       </invalid>
    638     </testCase>
    639     <testCase>
    640       <correct>
    641         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    642           <data type="duration">
    643             <param name="minExclusive">PT59M</param>
    644           </data>
    645         </element>
    646       </correct>
    647       <valid>
    648         <doc>PT1H</doc>
    649       </valid>
    650       <invalid>
    651         <doc>PT59M</doc>
    652       </invalid>
    653     </testCase>
    654     <testCase>
    655       <correct>
    656         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    657           <data type="duration">
    658             <param name="minExclusive">PT1H</param>
    659           </data>
    660         </element>
    661       </correct>
    662       <invalid>
    663         <doc>PT59M</doc>
    664       </invalid>
    665       <invalid>
    666         <doc>PT1H</doc>
    667       </invalid>
    668     </testCase>
    669     <testCase>
    670       <correct>
    671         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    672           <data type="duration">
    673             <param name="minExclusive">PT60M</param>
    674           </data>
    675         </element>
    676       </correct>
    677       <invalid>
    678         <doc>PT1H</doc>
    679       </invalid>
    680       <invalid>
    681         <doc>PT60M</doc>
    682       </invalid>
    683     </testCase>
    684     <testCase>
    685       <correct>
    686         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    687           <data type="duration">
    688             <param name="minExclusive">PT1H</param>
    689           </data>
    690         </element>
    691       </correct>
    692       <invalid>
    693         <doc>PT60M</doc>
    694       </invalid>
    695       <invalid>
    696         <doc>PT1H</doc>
    697       </invalid>
    698     </testCase>
    699     <testCase>
    700       <correct>
    701         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    702           <data type="duration">
    703             <param name="minExclusive">P1D</param>
    704           </data>
    705         </element>
    706       </correct>
    707       <valid>
    708         <doc>PT25H</doc>
    709       </valid>
    710       <invalid>
    711         <doc>P1D</doc>
    712       </invalid>
    713     </testCase>
    714     <testCase>
    715       <correct>
    716         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    717           <data type="duration">
    718             <param name="minExclusive">PT25H</param>
    719           </data>
    720         </element>
    721       </correct>
    722       <invalid>
    723         <doc>P1D</doc>
    724       </invalid>
    725       <invalid>
    726         <doc>PT25H</doc>
    727       </invalid>
    728     </testCase>
    729     <testCase>
    730       <correct>
    731         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    732           <data type="duration">
    733             <param name="minExclusive">PT23H</param>
    734           </data>
    735         </element>
    736       </correct>
    737       <valid>
    738         <doc>P1D</doc>
    739       </valid>
    740       <invalid>
    741         <doc>PT23H</doc>
    742       </invalid>
    743     </testCase>
    744     <testCase>
    745       <correct>
    746         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    747           <data type="duration">
    748             <param name="minExclusive">P1D</param>
    749           </data>
    750         </element>
    751       </correct>
    752       <invalid>
    753         <doc>PT23H</doc>
    754       </invalid>
    755       <invalid>
    756         <doc>P1D</doc>
    757       </invalid>
    758     </testCase>
    759     <testCase>
    760       <correct>
    761         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    762           <data type="duration">
    763             <param name="minExclusive">P1D</param>
    764           </data>
    765         </element>
    766       </correct>
    767       <invalid>
    768         <doc>PT24H</doc>
    769       </invalid>
    770       <invalid>
    771         <doc>P1D</doc>
    772       </invalid>
    773     </testCase>
    774     <testCase>
    775       <correct>
    776         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    777           <data type="duration">
    778             <param name="minExclusive">PT24H</param>
    779           </data>
    780         </element>
    781       </correct>
    782       <invalid>
    783         <doc>P1D</doc>
    784       </invalid>
    785       <invalid>
    786         <doc>PT24H</doc>
    787       </invalid>
    788     </testCase>
    789     <testCase>
    790       <correct>
    791         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    792           <data type="duration">
    793             <param name="minExclusive">P1Y</param>
    794           </data>
    795         </element>
    796       </correct>
    797       <valid>
    798         <doc>P13M</doc>
    799       </valid>
    800       <invalid>
    801         <doc>P1Y</doc>
    802       </invalid>
    803     </testCase>
    804     <testCase>
    805       <correct>
    806         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    807           <data type="duration">
    808             <param name="minExclusive">P13M</param>
    809           </data>
    810         </element>
    811       </correct>
    812       <invalid>
    813         <doc>P1Y</doc>
    814       </invalid>
    815       <invalid>
    816         <doc>P13M</doc>
    817       </invalid>
    818     </testCase>
    819     <testCase>
    820       <correct>
    821         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    822           <data type="duration">
    823             <param name="minExclusive">P11M</param>
    824           </data>
    825         </element>
    826       </correct>
    827       <valid>
    828         <doc>P1Y</doc>
    829       </valid>
    830       <invalid>
    831         <doc>P11M</doc>
    832       </invalid>
    833     </testCase>
    834     <testCase>
    835       <correct>
    836         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    837           <data type="duration">
    838             <param name="minExclusive">P1Y</param>
    839           </data>
    840         </element>
    841       </correct>
    842       <invalid>
    843         <doc>P11M</doc>
    844       </invalid>
    845       <invalid>
    846         <doc>P1Y</doc>
    847       </invalid>
    848     </testCase>
    849     <testCase>
    850       <correct>
    851         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    852           <data type="duration">
    853             <param name="minExclusive">P12M</param>
    854           </data>
    855         </element>
    856       </correct>
    857       <invalid>
    858         <doc>P1Y</doc>
    859       </invalid>
    860       <invalid>
    861         <doc>P12M</doc>
    862       </invalid>
    863     </testCase>
    864     <testCase>
    865       <correct>
    866         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    867           <data type="duration">
    868             <param name="minExclusive">P1Y</param>
    869           </data>
    870         </element>
    871       </correct>
    872       <invalid>
    873         <doc>P12M</doc>
    874       </invalid>
    875       <invalid>
    876         <doc>P1Y</doc>
    877       </invalid>
    878     </testCase>
    879     <testCase>
    880       <correct>
    881         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    882           <data type="duration">
    883             <param name="minExclusive">P364D</param>
    884           </data>
    885         </element>
    886       </correct>
    887       <valid>
    888         <doc>P1Y</doc>
    889       </valid>
    890       <invalid>
    891         <doc>P364D</doc>
    892       </invalid>
    893     </testCase>
    894     <testCase>
    895       <correct>
    896         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    897           <data type="duration">
    898             <param name="minExclusive">P1Y</param>
    899           </data>
    900         </element>
    901       </correct>
    902       <invalid>
    903         <doc>P364D</doc>
    904       </invalid>
    905       <invalid>
    906         <doc>P1Y</doc>
    907       </invalid>
    908     </testCase>
    909     <testCase>
    910       <correct>
    911         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    912           <data type="duration">
    913             <param name="minExclusive">P1Y</param>
    914           </data>
    915         </element>
    916       </correct>
    917       <invalid>
    918         <doc>P365D</doc>
    919       </invalid>
    920       <invalid>
    921         <doc>P1Y</doc>
    922       </invalid>
    923     </testCase>
    924     <testCase>
    925       <correct>
    926         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    927           <data type="duration">
    928             <param name="minExclusive">P365D</param>
    929           </data>
    930         </element>
    931       </correct>
    932       <invalid>
    933         <doc>P1Y</doc>
    934       </invalid>
    935       <invalid>
    936         <doc>P365D</doc>
    937       </invalid>
    938     </testCase>
    939     <testCase>
    940       <correct>
    941         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    942           <data type="duration">
    943             <param name="minExclusive">P1Y</param>
    944           </data>
    945         </element>
    946       </correct>
    947       <invalid>
    948         <doc>P366D</doc>
    949       </invalid>
    950       <invalid>
    951         <doc>P1Y</doc>
    952       </invalid>
    953     </testCase>
    954     <testCase>
    955       <correct>
    956         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    957           <data type="duration">
    958             <param name="minExclusive">P366D</param>
    959           </data>
    960         </element>
    961       </correct>
    962       <invalid>
    963         <doc>P1Y</doc>
    964       </invalid>
    965       <invalid>
    966         <doc>P366D</doc>
    967       </invalid>
    968     </testCase>
    969     <testCase>
    970       <correct>
    971         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    972           <data type="duration">
    973             <param name="minExclusive">P1Y</param>
    974           </data>
    975         </element>
    976       </correct>
    977       <valid>
    978         <doc>P367D</doc>
    979       </valid>
    980       <invalid>
    981         <doc>P1Y</doc>
    982       </invalid>
    983     </testCase>
    984     <testCase>
    985       <correct>
    986         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
    987           <data type="duration">
    988             <param name="minExclusive">P367D</param>
    989           </data>
    990         </element>
    991       </correct>
    992       <invalid>
    993         <doc>P1Y</doc>
    994       </invalid>
    995       <invalid>
    996         <doc>P367D</doc>
    997       </invalid>
    998     </testCase>
    999     <testCase>
   1000       <correct>
   1001         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1002           <data type="duration">
   1003             <param name="minExclusive">P149D</param>
   1004           </data>
   1005         </element>
   1006       </correct>
   1007       <valid>
   1008         <doc>P5M</doc>
   1009       </valid>
   1010       <invalid>
   1011         <doc>P149D</doc>
   1012       </invalid>
   1013     </testCase>
   1014     <testCase>
   1015       <correct>
   1016         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1017           <data type="duration">
   1018             <param name="minExclusive">P5M</param>
   1019           </data>
   1020         </element>
   1021       </correct>
   1022       <invalid>
   1023         <doc>P149D</doc>
   1024       </invalid>
   1025       <invalid>
   1026         <doc>P5M</doc>
   1027       </invalid>
   1028     </testCase>
   1029     <testCase>
   1030       <correct>
   1031         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1032           <data type="duration">
   1033             <param name="minExclusive">P150D</param>
   1034           </data>
   1035         </element>
   1036       </correct>
   1037       <invalid>
   1038         <doc>P5M</doc>
   1039       </invalid>
   1040       <invalid>
   1041         <doc>P150D</doc>
   1042       </invalid>
   1043     </testCase>
   1044     <testCase>
   1045       <correct>
   1046         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1047           <data type="duration">
   1048             <param name="minExclusive">P5M</param>
   1049           </data>
   1050         </element>
   1051       </correct>
   1052       <invalid>
   1053         <doc>P150D</doc>
   1054       </invalid>
   1055       <invalid>
   1056         <doc>P5M</doc>
   1057       </invalid>
   1058     </testCase>
   1059     <testCase>
   1060       <correct>
   1061         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1062           <data type="duration">
   1063             <param name="minExclusive">P151D</param>
   1064           </data>
   1065         </element>
   1066       </correct>
   1067       <invalid>
   1068         <doc>P5M</doc>
   1069       </invalid>
   1070       <invalid>
   1071         <doc>P151D</doc>
   1072       </invalid>
   1073     </testCase>
   1074     <testCase>
   1075       <correct>
   1076         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1077           <data type="duration">
   1078             <param name="minExclusive">P5M</param>
   1079           </data>
   1080         </element>
   1081       </correct>
   1082       <invalid>
   1083         <doc>P151D</doc>
   1084       </invalid>
   1085       <invalid>
   1086         <doc>P5M</doc>
   1087       </invalid>
   1088     </testCase>
   1089     <testCase>
   1090       <correct>
   1091         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1092           <data type="duration">
   1093             <param name="minExclusive">P152D</param>
   1094           </data>
   1095         </element>
   1096       </correct>
   1097       <invalid>
   1098         <doc>P5M</doc>
   1099       </invalid>
   1100       <invalid>
   1101         <doc>P152D</doc>
   1102       </invalid>
   1103     </testCase>
   1104     <testCase>
   1105       <correct>
   1106         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1107           <data type="duration">
   1108             <param name="minExclusive">P5M</param>
   1109           </data>
   1110         </element>
   1111       </correct>
   1112       <invalid>
   1113         <doc>P152D</doc>
   1114       </invalid>
   1115       <invalid>
   1116         <doc>P5M</doc>
   1117       </invalid>
   1118     </testCase>
   1119     <testCase>
   1120       <correct>
   1121         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1122           <data type="duration">
   1123             <param name="minExclusive">P153D</param>
   1124           </data>
   1125         </element>
   1126       </correct>
   1127       <invalid>
   1128         <doc>P5M</doc>
   1129       </invalid>
   1130       <invalid>
   1131         <doc>P153D</doc>
   1132       </invalid>
   1133     </testCase>
   1134     <testCase>
   1135       <correct>
   1136         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1137           <data type="duration">
   1138             <param name="minExclusive">P5M</param>
   1139           </data>
   1140         </element>
   1141       </correct>
   1142       <invalid>
   1143         <doc>P153D</doc>
   1144       </invalid>
   1145       <invalid>
   1146         <doc>P5M</doc>
   1147       </invalid>
   1148     </testCase>
   1149     <testCase>
   1150       <correct>
   1151         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1152           <data type="duration">
   1153             <param name="minExclusive">P5M</param>
   1154           </data>
   1155         </element>
   1156       </correct>
   1157       <valid>
   1158         <doc>P154D</doc>
   1159       </valid>
   1160       <invalid>
   1161         <doc>P5M</doc>
   1162       </invalid>
   1163     </testCase>
   1164     <testCase>
   1165       <correct>
   1166         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1167           <data type="duration">
   1168             <param name="minExclusive">P154D</param>
   1169           </data>
   1170         </element>
   1171       </correct>
   1172       <invalid>
   1173         <doc>P5M</doc>
   1174       </invalid>
   1175       <invalid>
   1176         <doc>P154D</doc>
   1177       </invalid>
   1178     </testCase>
   1179     <testCase>
   1180       <correct>
   1181         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1182           <data type="duration">
   1183             <param name="minExclusive">P27D</param>
   1184           </data>
   1185         </element>
   1186       </correct>
   1187       <valid>
   1188         <doc>P1M</doc>
   1189       </valid>
   1190       <invalid>
   1191         <doc>P27D</doc>
   1192       </invalid>
   1193     </testCase>
   1194     <testCase>
   1195       <correct>
   1196         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1197           <data type="duration">
   1198             <param name="minExclusive">P1M</param>
   1199           </data>
   1200         </element>
   1201       </correct>
   1202       <invalid>
   1203         <doc>P27D</doc>
   1204       </invalid>
   1205       <invalid>
   1206         <doc>P1M</doc>
   1207       </invalid>
   1208     </testCase>
   1209     <testCase>
   1210       <correct>
   1211         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1212           <data type="duration">
   1213             <param name="minExclusive">P28D</param>
   1214           </data>
   1215         </element>
   1216       </correct>
   1217       <invalid>
   1218         <doc>P1M</doc>
   1219       </invalid>
   1220       <invalid>
   1221         <doc>P28D</doc>
   1222       </invalid>
   1223     </testCase>
   1224     <testCase>
   1225       <correct>
   1226         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1227           <data type="duration">
   1228             <param name="minExclusive">P1M</param>
   1229           </data>
   1230         </element>
   1231       </correct>
   1232       <invalid>
   1233         <doc>P28D</doc>
   1234       </invalid>
   1235       <invalid>
   1236         <doc>P1M</doc>
   1237       </invalid>
   1238     </testCase>
   1239     <testCase>
   1240       <correct>
   1241         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1242           <data type="duration">
   1243             <param name="minExclusive">P29D</param>
   1244           </data>
   1245         </element>
   1246       </correct>
   1247       <invalid>
   1248         <doc>P1M</doc>
   1249       </invalid>
   1250       <invalid>
   1251         <doc>P29D</doc>
   1252       </invalid>
   1253     </testCase>
   1254     <testCase>
   1255       <correct>
   1256         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1257           <data type="duration">
   1258             <param name="minExclusive">P1M</param>
   1259           </data>
   1260         </element>
   1261       </correct>
   1262       <invalid>
   1263         <doc>P29D</doc>
   1264       </invalid>
   1265       <invalid>
   1266         <doc>P1M</doc>
   1267       </invalid>
   1268     </testCase>
   1269     <testCase>
   1270       <correct>
   1271         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1272           <data type="duration">
   1273             <param name="minExclusive">P30D</param>
   1274           </data>
   1275         </element>
   1276       </correct>
   1277       <invalid>
   1278         <doc>P1M</doc>
   1279       </invalid>
   1280       <invalid>
   1281         <doc>P30D</doc>
   1282       </invalid>
   1283     </testCase>
   1284     <testCase>
   1285       <correct>
   1286         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1287           <data type="duration">
   1288             <param name="minExclusive">P1M</param>
   1289           </data>
   1290         </element>
   1291       </correct>
   1292       <invalid>
   1293         <doc>P30D</doc>
   1294       </invalid>
   1295       <invalid>
   1296         <doc>P1M</doc>
   1297       </invalid>
   1298     </testCase>
   1299     <testCase>
   1300       <correct>
   1301         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1302           <data type="duration">
   1303             <param name="minExclusive">P31D</param>
   1304           </data>
   1305         </element>
   1306       </correct>
   1307       <invalid>
   1308         <doc>P1M</doc>
   1309       </invalid>
   1310       <invalid>
   1311         <doc>P31D</doc>
   1312       </invalid>
   1313     </testCase>
   1314     <testCase>
   1315       <correct>
   1316         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1317           <data type="duration">
   1318             <param name="minExclusive">P1M</param>
   1319           </data>
   1320         </element>
   1321       </correct>
   1322       <invalid>
   1323         <doc>P31D</doc>
   1324       </invalid>
   1325       <invalid>
   1326         <doc>P1M</doc>
   1327       </invalid>
   1328     </testCase>
   1329     <testCase>
   1330       <correct>
   1331         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1332           <data type="duration">
   1333             <param name="minExclusive">P1M</param>
   1334           </data>
   1335         </element>
   1336       </correct>
   1337       <valid>
   1338         <doc>P32D</doc>
   1339       </valid>
   1340       <invalid>
   1341         <doc>P1M</doc>
   1342       </invalid>
   1343     </testCase>
   1344     <testCase>
   1345       <correct>
   1346         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1347           <data type="duration">
   1348             <param name="minExclusive">P32D</param>
   1349           </data>
   1350         </element>
   1351       </correct>
   1352       <invalid>
   1353         <doc>P1M</doc>
   1354       </invalid>
   1355       <invalid>
   1356         <doc>P32D</doc>
   1357       </invalid>
   1358     </testCase>
   1359   </testSuite>
   1360   <testSuite>
   1361     <documentation>Datatype time</documentation>
   1362     <testCase>
   1363       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1364       <correct>
   1365         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1366           <data type="time"/>
   1367         </element>
   1368       </correct>
   1369       <valid>
   1370         <doc>12:45:00</doc>
   1371       </valid>
   1372       <valid>
   1373         <doc>12:45:00Z</doc>
   1374       </valid>
   1375     </testCase>
   1376   </testSuite>
   1377   <testSuite>
   1378     <documentation>Datatype date</documentation>
   1379     <testCase>
   1380       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1381       <correct>
   1382         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1383           <data type="date"/>
   1384         </element>
   1385       </correct>
   1386       <valid>
   1387         <doc>1886-12-01</doc>
   1388       </valid>
   1389       <valid>
   1390         <doc>1886-12-01Z</doc>
   1391       </valid>
   1392     </testCase>
   1393     <testCase>
   1394       <correct>
   1395         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1396           <data type="date">
   1397             <param name="minExclusive">1066-12-31</param>
   1398           </data>
   1399         </element>
   1400       </correct>
   1401       <valid>
   1402         <doc>1900-01-01</doc>
   1403       </valid>
   1404       <invalid>
   1405         <doc>1066-12-31</doc>
   1406       </invalid>
   1407     </testCase>
   1408     <testCase>
   1409       <correct>
   1410         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1411           <data type="date">
   1412             <param name="minExclusive">1900-01-01</param>
   1413           </data>
   1414         </element>
   1415       </correct>
   1416       <invalid>
   1417         <doc>1066-12-31</doc>
   1418       </invalid>
   1419       <invalid>
   1420         <doc>1900-01-01</doc>
   1421       </invalid>
   1422     </testCase>
   1423     <testCase>
   1424       <correct>
   1425         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1426           <data type="date">
   1427             <param name="minExclusive">1900-01-01</param>
   1428           </data>
   1429         </element>
   1430       </correct>
   1431       <valid>
   1432         <doc>1900-01-02</doc>
   1433       </valid>
   1434       <invalid>
   1435         <doc>1900-01-01</doc>
   1436       </invalid>
   1437     </testCase>
   1438     <testCase>
   1439       <correct>
   1440         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1441           <data type="date">
   1442             <param name="minExclusive">1900-01-02</param>
   1443           </data>
   1444         </element>
   1445       </correct>
   1446       <invalid>
   1447         <doc>1900-01-01</doc>
   1448       </invalid>
   1449       <invalid>
   1450         <doc>1900-01-02</doc>
   1451       </invalid>
   1452     </testCase>
   1453   </testSuite>
   1454   <testSuite>
   1455     <documentation>Datatype gYearMonth</documentation>
   1456     <testCase>
   1457       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1458       <correct>
   1459         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1460           <data type="gYearMonth"/>
   1461         </element>
   1462       </correct>
   1463       <valid>
   1464         <doc>1996-12</doc>
   1465       </valid>
   1466       <valid>
   1467         <doc>1996-01</doc>
   1468       </valid>
   1469       <valid>
   1470         <doc>1996-01Z</doc>
   1471       </valid>
   1472       <invalid>
   1473         <doc>1996-00</doc>
   1474       </invalid>
   1475     </testCase>
   1476     <testCase>
   1477       <correct>
   1478         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1479           <value type="gYearMonth">1996-01</value>
   1480         </element>
   1481       </correct>
   1482       <invalid>
   1483         <doc>1996-01Z</doc>
   1484       </invalid>
   1485       <invalid>
   1486         <doc>1996-01+00:00</doc>
   1487       </invalid>
   1488       <invalid>
   1489         <doc>1996-01-00:00</doc>
   1490       </invalid>
   1491       <invalid>
   1492         <doc>1996-01+01:00</doc>
   1493       </invalid>
   1494       <invalid>
   1495         <doc>1996-01-01:00</doc>
   1496       </invalid>
   1497     </testCase>
   1498     <testCase>
   1499       <correct>
   1500         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1501           <value type="gYearMonth">1996-01Z</value>
   1502         </element>
   1503       </correct>
   1504       <valid>
   1505         <doc>1996-01+00:00</doc>
   1506       </valid>
   1507       <valid>
   1508         <doc>1996-01-00:00</doc>
   1509       </valid>
   1510       <invalid>
   1511         <doc>1996-01</doc>
   1512       </invalid>
   1513       <invalid>
   1514         <doc>1996-01+01:00</doc>
   1515       </invalid>
   1516       <invalid>
   1517         <doc>1996-01-01:00</doc>
   1518       </invalid>
   1519     </testCase>
   1520     <testCase>
   1521       <correct>
   1522         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1523           <value type="gYearMonth">1996-01+01:00</value>
   1524         </element>
   1525       </correct>
   1526       <invalid>
   1527         <doc>1996-01</doc>
   1528       </invalid>
   1529       <invalid>
   1530         <doc>1996-01Z</doc>
   1531       </invalid>
   1532       <invalid>
   1533         <doc>1996-01+00:00</doc>
   1534       </invalid>
   1535       <invalid>
   1536         <doc>1996-01-00:00</doc>
   1537       </invalid>
   1538       <invalid>
   1539         <doc>1996-01-01:00</doc>
   1540       </invalid>
   1541     </testCase>
   1542     <testCase>
   1543       <correct>
   1544         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1545           <value type="gYearMonth">1996-01-01:00</value>
   1546         </element>
   1547       </correct>
   1548       <invalid>
   1549         <doc>1996-01</doc>
   1550       </invalid>
   1551       <invalid>
   1552         <doc>1996-01Z</doc>
   1553       </invalid>
   1554       <invalid>
   1555         <doc>1996-01+00:00</doc>
   1556       </invalid>
   1557       <invalid>
   1558         <doc>1996-01-00:00</doc>
   1559       </invalid>
   1560       <invalid>
   1561         <doc>1996-01+01:00</doc>
   1562       </invalid>
   1563     </testCase>
   1564   </testSuite>
   1565   <testSuite>
   1566     <documentation>Datatype gYear</documentation>
   1567     <testCase>
   1568       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1569       <correct>
   1570         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1571           <data type="gYear"/>
   1572         </element>
   1573       </correct>
   1574       <valid>
   1575         <doc>2001</doc>
   1576       </valid>
   1577       <valid>
   1578         <doc>2001Z</doc>
   1579       </valid>
   1580     </testCase>
   1581     <testCase>
   1582       <correct>
   1583         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1584           <data type="gYear">
   1585             <param name="minExclusive">1999</param>
   1586           </data>
   1587         </element>
   1588       </correct>
   1589       <valid>
   1590         <doc>2000</doc>
   1591       </valid>
   1592       <invalid>
   1593         <doc>1999</doc>
   1594       </invalid>
   1595     </testCase>
   1596     <testCase>
   1597       <correct>
   1598         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1599           <data type="gYear">
   1600             <param name="minExclusive">2000</param>
   1601           </data>
   1602         </element>
   1603       </correct>
   1604       <invalid>
   1605         <doc>1999</doc>
   1606       </invalid>
   1607       <invalid>
   1608         <doc>2000</doc>
   1609       </invalid>
   1610     </testCase>
   1611     <testCase>
   1612       <correct>
   1613         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1614           <data type="gYear">
   1615             <param name="minExclusive">1999+07:00</param>
   1616           </data>
   1617         </element>
   1618       </correct>
   1619       <valid>
   1620         <doc>2000+07:00</doc>
   1621       </valid>
   1622       <invalid>
   1623         <doc>1999+07:00</doc>
   1624       </invalid>
   1625     </testCase>
   1626     <testCase>
   1627       <correct>
   1628         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1629           <data type="gYear">
   1630             <param name="minExclusive">2000+07:00</param>
   1631           </data>
   1632         </element>
   1633       </correct>
   1634       <invalid>
   1635         <doc>1999+07:00</doc>
   1636       </invalid>
   1637       <invalid>
   1638         <doc>2000+07:00</doc>
   1639       </invalid>
   1640     </testCase>
   1641   </testSuite>
   1642   <testSuite>
   1643     <documentation>Datatype gMonthDay</documentation>
   1644     <testCase>
   1645       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1646       <correct>
   1647         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1648           <data type="gMonthDay"/>
   1649         </element>
   1650       </correct>
   1651       <valid>
   1652         <doc>--12-01</doc>
   1653       </valid>
   1654       <valid>
   1655         <doc>--12-01Z</doc>
   1656       </valid>
   1657     </testCase>
   1658     <testCase>
   1659       <correct>
   1660         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1661           <data type="gMonthDay">
   1662             <param name="minExclusive">--12-01</param>
   1663           </data>
   1664         </element>
   1665       </correct>
   1666       <valid>
   1667         <doc>--12-04</doc>
   1668       </valid>
   1669       <invalid>
   1670         <doc>--12-01</doc>
   1671       </invalid>
   1672     </testCase>
   1673     <testCase>
   1674       <correct>
   1675         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1676           <data type="gMonthDay">
   1677             <param name="minExclusive">--12-04</param>
   1678           </data>
   1679         </element>
   1680       </correct>
   1681       <invalid>
   1682         <doc>--12-01</doc>
   1683       </invalid>
   1684       <invalid>
   1685         <doc>--12-04</doc>
   1686       </invalid>
   1687     </testCase>
   1688     <testCase>
   1689       <correct>
   1690         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1691           <data type="gMonthDay">
   1692             <param name="minExclusive">--11-17</param>
   1693           </data>
   1694         </element>
   1695       </correct>
   1696       <valid>
   1697         <doc>--12-04</doc>
   1698       </valid>
   1699       <invalid>
   1700         <doc>--11-17</doc>
   1701       </invalid>
   1702     </testCase>
   1703     <testCase>
   1704       <correct>
   1705         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1706           <data type="gMonthDay">
   1707             <param name="minExclusive">--12-04</param>
   1708           </data>
   1709         </element>
   1710       </correct>
   1711       <invalid>
   1712         <doc>--11-17</doc>
   1713       </invalid>
   1714       <invalid>
   1715         <doc>--12-04</doc>
   1716       </invalid>
   1717     </testCase>
   1718   </testSuite>
   1719   <testSuite>
   1720     <documentation>Datatype gDay</documentation>
   1721     <testCase>
   1722       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1723       <correct>
   1724         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1725           <data type="gDay"/>
   1726         </element>
   1727       </correct>
   1728       <valid>
   1729         <doc>---20</doc>
   1730       </valid>
   1731       <valid>
   1732         <doc>---20Z</doc>
   1733       </valid>
   1734     </testCase>
   1735     <testCase>
   1736       <correct>
   1737         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1738           <data type="gDay">
   1739             <param name="minExclusive">---01</param>
   1740           </data>
   1741         </element>
   1742       </correct>
   1743       <valid>
   1744         <doc>---31</doc>
   1745       </valid>
   1746       <invalid>
   1747         <doc>---01</doc>
   1748       </invalid>
   1749     </testCase>
   1750     <testCase>
   1751       <correct>
   1752         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1753           <data type="gDay">
   1754             <param name="minExclusive">---31</param>
   1755           </data>
   1756         </element>
   1757       </correct>
   1758       <invalid>
   1759         <doc>---01</doc>
   1760       </invalid>
   1761       <invalid>
   1762         <doc>---31</doc>
   1763       </invalid>
   1764     </testCase>
   1765   </testSuite>
   1766   <testSuite>
   1767     <documentation>Datatype gMonth</documentation>
   1768     <testCase>
   1769       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1770       <correct>
   1771         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1772           <data type="gMonth"/>
   1773         </element>
   1774       </correct>
   1775       <valid>
   1776         <doc>--12</doc>
   1777       </valid>
   1778       <valid>
   1779         <doc>--01</doc>
   1780       </valid>
   1781       <valid>
   1782         <doc>--01Z</doc>
   1783       </valid>
   1784       <valid>
   1785         <doc> --12 </doc>
   1786       </valid>
   1787       <invalid>
   1788         <doc>---01</doc>
   1789       </invalid>
   1790       <invalid>
   1791         <doc>--00</doc>
   1792       </invalid>
   1793       <invalid>
   1794         <doc>--13</doc>
   1795       </invalid>
   1796       <invalid>
   1797         <doc>- -13</doc>
   1798       </invalid>
   1799     </testCase>
   1800     <testCase>
   1801       <correct>
   1802         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1803           <data type="gMonth">
   1804             <param name="minExclusive">--01</param>
   1805           </data>
   1806         </element>
   1807       </correct>
   1808       <valid>
   1809         <doc>--12</doc>
   1810       </valid>
   1811       <invalid>
   1812         <doc>--01</doc>
   1813       </invalid>
   1814     </testCase>
   1815     <testCase>
   1816       <correct>
   1817         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1818           <data type="gMonth">
   1819             <param name="minExclusive">--12</param>
   1820           </data>
   1821         </element>
   1822       </correct>
   1823       <invalid>
   1824         <doc>--01</doc>
   1825       </invalid>
   1826       <invalid>
   1827         <doc>--12</doc>
   1828       </invalid>
   1829     </testCase>
   1830     <testCase>
   1831       <correct>
   1832         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1833           <data type="gMonth">
   1834             <param name="minExclusive">--01</param>
   1835           </data>
   1836         </element>
   1837       </correct>
   1838       <valid>
   1839         <doc>--02</doc>
   1840       </valid>
   1841       <invalid>
   1842         <doc>--01</doc>
   1843       </invalid>
   1844     </testCase>
   1845     <testCase>
   1846       <correct>
   1847         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1848           <data type="gMonth">
   1849             <param name="minExclusive">--02</param>
   1850           </data>
   1851         </element>
   1852       </correct>
   1853       <invalid>
   1854         <doc>--01</doc>
   1855       </invalid>
   1856       <invalid>
   1857         <doc>--02</doc>
   1858       </invalid>
   1859     </testCase>
   1860   </testSuite>
   1861   <testSuite>
   1862     <documentation>Datatype boolean</documentation>
   1863     <testCase>
   1864       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1865       <correct>
   1866         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1867           <data type="boolean"/>
   1868         </element>
   1869       </correct>
   1870       <valid>
   1871         <doc>true</doc>
   1872       </valid>
   1873       <valid>
   1874         <doc>false</doc>
   1875       </valid>
   1876       <valid>
   1877         <doc>0</doc>
   1878       </valid>
   1879       <valid>
   1880         <doc>1</doc>
   1881       </valid>
   1882       <invalid>
   1883         <doc>00</doc>
   1884       </invalid>
   1885       <invalid>
   1886         <doc>00</doc>
   1887       </invalid>
   1888       <invalid>
   1889         <doc>01</doc>
   1890       </invalid>
   1891     </testCase>
   1892     <testCase>
   1893       <correct>
   1894         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1895           <value type="boolean">true</value>
   1896         </element>
   1897       </correct>
   1898       <valid>
   1899         <doc>1</doc>
   1900       </valid>
   1901       <invalid>
   1902         <doc>false</doc>
   1903       </invalid>
   1904       <invalid>
   1905         <doc>0</doc>
   1906       </invalid>
   1907     </testCase>
   1908     <testCase>
   1909       <correct>
   1910         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1911           <value type="boolean">false</value>
   1912         </element>
   1913       </correct>
   1914       <valid>
   1915         <doc>0</doc>
   1916       </valid>
   1917       <invalid>
   1918         <doc>true</doc>
   1919       </invalid>
   1920       <invalid>
   1921         <doc>1</doc>
   1922       </invalid>
   1923     </testCase>
   1924   </testSuite>
   1925   <testSuite>
   1926     <documentation>Datatype base64Binary</documentation>
   1927     <testCase>
   1928       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   1929       <correct>
   1930         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   1931           <data type="base64Binary"/>
   1932         </element>
   1933       </correct>
   1934       <valid>
   1935         <doc>AAAA</doc>
   1936       </valid>
   1937       <valid>
   1938         <doc>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR
   1939 STUV WXYZ 0123 4567 89+/</doc>
   1940       </valid>
   1941       <valid>
   1942         <doc>BA==</doc>
   1943       </valid>
   1944       <valid>
   1945         <doc></doc>
   1946       </valid>
   1947       <valid>
   1948         <doc>BA==</doc>
   1949       </valid>
   1950       <valid>
   1951         <doc>BQ==</doc>
   1952       </valid>
   1953       <valid>
   1954         <doc>Bg==</doc>
   1955       </valid>
   1956       <valid>
   1957         <doc>Bw==</doc>
   1958       </valid>
   1959       <valid>
   1960         <doc>BBA=</doc>
   1961       </valid>
   1962       <valid>
   1963         <doc>BBA=</doc>
   1964       </valid>
   1965       <valid>
   1966         <doc>BBE=</doc>
   1967       </valid>
   1968       <valid>
   1969         <doc>BBI=</doc>
   1970       </valid>
   1971       <valid>
   1972         <doc>BBM=</doc>
   1973       </valid>
   1974       <valid>
   1975         <doc>BBQ=</doc>
   1976       </valid>
   1977       <valid>
   1978         <doc>BBU=</doc>
   1979       </valid>
   1980       <valid>
   1981         <doc>BBY=</doc>
   1982       </valid>
   1983       <valid>
   1984         <doc>BBc=</doc>
   1985       </valid>
   1986       <valid>
   1987         <doc>BBg=</doc>
   1988       </valid>
   1989       <valid>
   1990         <doc>BBk=</doc>
   1991       </valid>
   1992       <valid>
   1993         <doc>BBo=</doc>
   1994       </valid>
   1995       <valid>
   1996         <doc>BBs=</doc>
   1997       </valid>
   1998       <valid>
   1999         <doc>BBw=</doc>
   2000       </valid>
   2001       <valid>
   2002         <doc>BB0=</doc>
   2003       </valid>
   2004       <valid>
   2005         <doc>BB4=</doc>
   2006       </valid>
   2007       <valid>
   2008         <doc>BB8=</doc>
   2009       </valid>
   2010       <invalid>
   2011         <doc>====</doc>
   2012       </invalid>
   2013       <invalid>
   2014         <doc>BB==</doc>
   2015       </invalid>
   2016       <invalid>
   2017         <doc>BBB=</doc>
   2018       </invalid>
   2019       <invalid>
   2020         <doc>B===</doc>
   2021       </invalid>
   2022       <invalid>
   2023         <doc>B</doc>
   2024       </invalid>
   2025     </testCase>
   2026     <testCase>
   2027       <correct>
   2028         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2029           <value type="base64Binary">deadbeef</value>
   2030         </element>
   2031       </correct>
   2032       <valid>
   2033         <doc>d
   2034 &#13;	e a d
   2035 b eef </doc>
   2036       </valid>
   2037       <invalid>
   2038         <doc>DEADBEEF</doc>
   2039       </invalid>
   2040       <invalid>
   2041         <doc>D
   2042 &#13;	E A D
   2043 B EEF </doc>
   2044       </invalid>
   2045     </testCase>
   2046     <testCase>
   2047       <correct>
   2048         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2049           <value type="base64Binary">DEADBEEF</value>
   2050         </element>
   2051       </correct>
   2052       <valid>
   2053         <doc>D
   2054 &#13;	E A D
   2055 B EEF </doc>
   2056       </valid>
   2057       <invalid>
   2058         <doc>deadbeef</doc>
   2059       </invalid>
   2060       <invalid>
   2061         <doc>d
   2062 &#13;	e a d
   2063 b eef </doc>
   2064       </invalid>
   2065     </testCase>
   2066     <testCase>
   2067       <correct>
   2068         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2069           <data type="base64Binary">
   2070             <param name="length">0</param>
   2071           </data>
   2072         </element>
   2073       </correct>
   2074       <valid>
   2075         <doc></doc>
   2076       </valid>
   2077     </testCase>
   2078     <testCase>
   2079       <correct>
   2080         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2081           <data type="base64Binary">
   2082             <param name="length">1</param>
   2083           </data>
   2084         </element>
   2085       </correct>
   2086       <invalid>
   2087         <doc></doc>
   2088       </invalid>
   2089     </testCase>
   2090     <testCase>
   2091       <correct>
   2092         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2093           <data type="base64Binary">
   2094             <param name="length">6</param>
   2095           </data>
   2096         </element>
   2097       </correct>
   2098       <valid>
   2099         <doc>deadbeef</doc>
   2100       </valid>
   2101     </testCase>
   2102     <testCase>
   2103       <correct>
   2104         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2105           <data type="base64Binary">
   2106             <param name="length">7</param>
   2107           </data>
   2108         </element>
   2109       </correct>
   2110       <invalid>
   2111         <doc>deadbeef</doc>
   2112       </invalid>
   2113     </testCase>
   2114     <testCase>
   2115       <correct>
   2116         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2117           <data type="base64Binary">
   2118             <param name="length">5</param>
   2119           </data>
   2120         </element>
   2121       </correct>
   2122       <invalid>
   2123         <doc>deadbeef</doc>
   2124       </invalid>
   2125     </testCase>
   2126     <testCase>
   2127       <correct>
   2128         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2129           <data type="base64Binary">
   2130             <param name="length">1</param>
   2131           </data>
   2132         </element>
   2133       </correct>
   2134       <valid>
   2135         <doc>BA==</doc>
   2136       </valid>
   2137     </testCase>
   2138     <testCase>
   2139       <correct>
   2140         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2141           <data type="base64Binary">
   2142             <param name="length">2</param>
   2143           </data>
   2144         </element>
   2145       </correct>
   2146       <invalid>
   2147         <doc>BA==</doc>
   2148       </invalid>
   2149     </testCase>
   2150     <testCase>
   2151       <correct>
   2152         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2153           <data type="base64Binary">
   2154             <param name="length">0</param>
   2155           </data>
   2156         </element>
   2157       </correct>
   2158       <invalid>
   2159         <doc>BA==</doc>
   2160       </invalid>
   2161     </testCase>
   2162     <testCase>
   2163       <correct>
   2164         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2165           <data type="base64Binary">
   2166             <param name="length">2</param>
   2167           </data>
   2168         </element>
   2169       </correct>
   2170       <valid>
   2171         <doc>BBA=</doc>
   2172       </valid>
   2173     </testCase>
   2174     <testCase>
   2175       <correct>
   2176         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2177           <data type="base64Binary">
   2178             <param name="length">3</param>
   2179           </data>
   2180         </element>
   2181       </correct>
   2182       <invalid>
   2183         <doc>BBA=</doc>
   2184       </invalid>
   2185     </testCase>
   2186     <testCase>
   2187       <correct>
   2188         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2189           <data type="base64Binary">
   2190             <param name="length">1</param>
   2191           </data>
   2192         </element>
   2193       </correct>
   2194       <invalid>
   2195         <doc>BBA=</doc>
   2196       </invalid>
   2197     </testCase>
   2198     <testCase>
   2199       <correct>
   2200         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2201           <data type="base64Binary">
   2202             <param name="length">3</param>
   2203           </data>
   2204         </element>
   2205       </correct>
   2206       <valid>
   2207         <doc>dead</doc>
   2208       </valid>
   2209     </testCase>
   2210     <testCase>
   2211       <correct>
   2212         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2213           <data type="base64Binary">
   2214             <param name="length">4</param>
   2215           </data>
   2216         </element>
   2217       </correct>
   2218       <invalid>
   2219         <doc>dead</doc>
   2220       </invalid>
   2221     </testCase>
   2222     <testCase>
   2223       <correct>
   2224         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2225           <data type="base64Binary">
   2226             <param name="length">2</param>
   2227           </data>
   2228         </element>
   2229       </correct>
   2230       <invalid>
   2231         <doc>dead</doc>
   2232       </invalid>
   2233     </testCase>
   2234     <testCase>
   2235       <correct>
   2236         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2237           <data type="base64Binary">
   2238             <param name="length">4</param>
   2239           </data>
   2240         </element>
   2241       </correct>
   2242       <valid>
   2243         <doc>deadBA==</doc>
   2244       </valid>
   2245     </testCase>
   2246     <testCase>
   2247       <correct>
   2248         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2249           <data type="base64Binary">
   2250             <param name="length">5</param>
   2251           </data>
   2252         </element>
   2253       </correct>
   2254       <invalid>
   2255         <doc>deadBA==</doc>
   2256       </invalid>
   2257     </testCase>
   2258     <testCase>
   2259       <correct>
   2260         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2261           <data type="base64Binary">
   2262             <param name="length">3</param>
   2263           </data>
   2264         </element>
   2265       </correct>
   2266       <invalid>
   2267         <doc>deadBA==</doc>
   2268       </invalid>
   2269     </testCase>
   2270   </testSuite>
   2271   <testSuite>
   2272     <documentation>Datatype hexBinary</documentation>
   2273     <testCase>
   2274       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   2275       <correct>
   2276         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2277           <data type="hexBinary"/>
   2278         </element>
   2279       </correct>
   2280       <valid>
   2281         <doc>deadbeef</doc>
   2282       </valid>
   2283       <valid>
   2284         <doc></doc>
   2285       </valid>
   2286       <valid>
   2287         <doc>0123456789ABCDEFabcdef</doc>
   2288       </valid>
   2289       <invalid>
   2290         <doc>00 00</doc>
   2291       </invalid>
   2292       <invalid>
   2293         <doc>00.00</doc>
   2294       </invalid>
   2295       <invalid>
   2296         <doc>0G</doc>
   2297       </invalid>
   2298     </testCase>
   2299     <testCase>
   2300       <correct>
   2301         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2302           <value type="hexBinary">00</value>
   2303         </element>
   2304       </correct>
   2305       <valid>
   2306         <doc>
   2307 	00
   2308    </doc>
   2309       </valid>
   2310       <invalid>
   2311         <doc>01</doc>
   2312       </invalid>
   2313       <invalid>
   2314         <doc>10</doc>
   2315       </invalid>
   2316       <invalid>
   2317         <doc>0a</doc>
   2318       </invalid>
   2319       <invalid>
   2320         <doc>0A</doc>
   2321       </invalid>
   2322     </testCase>
   2323     <testCase>
   2324       <correct>
   2325         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2326           <value type="hexBinary">01</value>
   2327         </element>
   2328       </correct>
   2329       <invalid>
   2330         <doc>00</doc>
   2331       </invalid>
   2332       <invalid>
   2333         <doc>
   2334 	00
   2335    </doc>
   2336       </invalid>
   2337       <invalid>
   2338         <doc>10</doc>
   2339       </invalid>
   2340       <invalid>
   2341         <doc>0a</doc>
   2342       </invalid>
   2343       <invalid>
   2344         <doc>0A</doc>
   2345       </invalid>
   2346     </testCase>
   2347     <testCase>
   2348       <correct>
   2349         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2350           <value type="hexBinary">10</value>
   2351         </element>
   2352       </correct>
   2353       <invalid>
   2354         <doc>00</doc>
   2355       </invalid>
   2356       <invalid>
   2357         <doc>
   2358 	00
   2359    </doc>
   2360       </invalid>
   2361       <invalid>
   2362         <doc>01</doc>
   2363       </invalid>
   2364       <invalid>
   2365         <doc>0a</doc>
   2366       </invalid>
   2367       <invalid>
   2368         <doc>0A</doc>
   2369       </invalid>
   2370     </testCase>
   2371     <testCase>
   2372       <correct>
   2373         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2374           <value type="hexBinary">0a</value>
   2375         </element>
   2376       </correct>
   2377       <valid>
   2378         <doc>0A</doc>
   2379       </valid>
   2380       <invalid>
   2381         <doc>00</doc>
   2382       </invalid>
   2383       <invalid>
   2384         <doc>
   2385 	00
   2386    </doc>
   2387       </invalid>
   2388       <invalid>
   2389         <doc>01</doc>
   2390       </invalid>
   2391       <invalid>
   2392         <doc>10</doc>
   2393       </invalid>
   2394     </testCase>
   2395     <testCase>
   2396       <correct>
   2397         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2398           <data type="hexBinary">
   2399             <param name="length">0</param>
   2400           </data>
   2401         </element>
   2402       </correct>
   2403       <valid>
   2404         <doc></doc>
   2405       </valid>
   2406     </testCase>
   2407     <testCase>
   2408       <correct>
   2409         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2410           <data type="hexBinary">
   2411             <param name="length">1</param>
   2412           </data>
   2413         </element>
   2414       </correct>
   2415       <invalid>
   2416         <doc></doc>
   2417       </invalid>
   2418     </testCase>
   2419     <testCase>
   2420       <correct>
   2421         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2422           <data type="hexBinary">
   2423             <param name="length">1</param>
   2424           </data>
   2425         </element>
   2426       </correct>
   2427       <valid>
   2428         <doc>00</doc>
   2429       </valid>
   2430     </testCase>
   2431     <testCase>
   2432       <correct>
   2433         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2434           <data type="hexBinary">
   2435             <param name="length">2</param>
   2436           </data>
   2437         </element>
   2438       </correct>
   2439       <invalid>
   2440         <doc>00</doc>
   2441       </invalid>
   2442     </testCase>
   2443     <testCase>
   2444       <correct>
   2445         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2446           <data type="hexBinary">
   2447             <param name="length">0</param>
   2448           </data>
   2449         </element>
   2450       </correct>
   2451       <invalid>
   2452         <doc>00</doc>
   2453       </invalid>
   2454     </testCase>
   2455     <testCase>
   2456       <correct>
   2457         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2458           <data type="hexBinary">
   2459             <param name="length">2</param>
   2460           </data>
   2461         </element>
   2462       </correct>
   2463       <valid>
   2464         <doc>0000</doc>
   2465       </valid>
   2466     </testCase>
   2467     <testCase>
   2468       <correct>
   2469         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2470           <data type="hexBinary">
   2471             <param name="length">3</param>
   2472           </data>
   2473         </element>
   2474       </correct>
   2475       <invalid>
   2476         <doc>0000</doc>
   2477       </invalid>
   2478     </testCase>
   2479     <testCase>
   2480       <correct>
   2481         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2482           <data type="hexBinary">
   2483             <param name="length">1</param>
   2484           </data>
   2485         </element>
   2486       </correct>
   2487       <invalid>
   2488         <doc>0000</doc>
   2489       </invalid>
   2490     </testCase>
   2491     <testCase>
   2492       <correct>
   2493         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2494           <data type="hexBinary">
   2495             <param name="length">2</param>
   2496           </data>
   2497         </element>
   2498       </correct>
   2499       <valid>
   2500         <doc> 0000 </doc>
   2501       </valid>
   2502     </testCase>
   2503     <testCase>
   2504       <correct>
   2505         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2506           <data type="hexBinary">
   2507             <param name="length">3</param>
   2508           </data>
   2509         </element>
   2510       </correct>
   2511       <invalid>
   2512         <doc> 0000 </doc>
   2513       </invalid>
   2514     </testCase>
   2515     <testCase>
   2516       <correct>
   2517         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2518           <data type="hexBinary">
   2519             <param name="length">1</param>
   2520           </data>
   2521         </element>
   2522       </correct>
   2523       <invalid>
   2524         <doc> 0000 </doc>
   2525       </invalid>
   2526     </testCase>
   2527     <testCase>
   2528       <correct>
   2529         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2530           <data type="hexBinary">
   2531             <param name="length">2</param>
   2532           </data>
   2533         </element>
   2534       </correct>
   2535       <valid>
   2536         <doc>AAAA</doc>
   2537       </valid>
   2538     </testCase>
   2539     <testCase>
   2540       <correct>
   2541         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2542           <data type="hexBinary">
   2543             <param name="length">3</param>
   2544           </data>
   2545         </element>
   2546       </correct>
   2547       <invalid>
   2548         <doc>AAAA</doc>
   2549       </invalid>
   2550     </testCase>
   2551     <testCase>
   2552       <correct>
   2553         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2554           <data type="hexBinary">
   2555             <param name="length">1</param>
   2556           </data>
   2557         </element>
   2558       </correct>
   2559       <invalid>
   2560         <doc>AAAA</doc>
   2561       </invalid>
   2562     </testCase>
   2563   </testSuite>
   2564   <testSuite>
   2565     <documentation>Datatype float</documentation>
   2566     <testCase>
   2567       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   2568       <correct>
   2569         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2570           <data type="float"/>
   2571         </element>
   2572       </correct>
   2573       <valid>
   2574         <doc>1.0</doc>
   2575       </valid>
   2576       <valid>
   2577         <doc>1.</doc>
   2578       </valid>
   2579       <valid>
   2580         <doc>.1</doc>
   2581       </valid>
   2582       <invalid>
   2583         <doc>- 1</doc>
   2584       </invalid>
   2585       <invalid>
   2586         <doc>1 .0</doc>
   2587       </invalid>
   2588       <invalid>
   2589         <doc>+INF</doc>
   2590       </invalid>
   2591       <invalid>
   2592         <doc>+NaN</doc>
   2593       </invalid>
   2594       <invalid>
   2595         <doc>-NaN</doc>
   2596       </invalid>
   2597     </testCase>
   2598     <testCase>
   2599       <correct>
   2600         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2601           <value type="float">0</value>
   2602         </element>
   2603       </correct>
   2604       <valid>
   2605         <doc>-0</doc>
   2606       </valid>
   2607       <valid>
   2608         <doc>+0</doc>
   2609       </valid>
   2610       <valid>
   2611         <doc> 0 </doc>
   2612       </valid>
   2613       <valid>
   2614         <doc> 0. </doc>
   2615       </valid>
   2616       <valid>
   2617         <doc> .0 </doc>
   2618       </valid>
   2619       <valid>
   2620         <doc> 0.0 </doc>
   2621       </valid>
   2622       <valid>
   2623         <doc> 0e0 </doc>
   2624       </valid>
   2625       <valid>
   2626         <doc> 0E0 </doc>
   2627       </valid>
   2628       <valid>
   2629         <doc> 0E+0 </doc>
   2630       </valid>
   2631       <valid>
   2632         <doc> 0E-0 </doc>
   2633       </valid>
   2634       <invalid>
   2635         <doc>1E0</doc>
   2636       </invalid>
   2637       <invalid>
   2638         <doc>0.1E1</doc>
   2639       </invalid>
   2640       <invalid>
   2641         <doc>10E-1</doc>
   2642       </invalid>
   2643       <invalid>
   2644         <doc>+1</doc>
   2645       </invalid>
   2646       <invalid>
   2647         <doc>-1</doc>
   2648       </invalid>
   2649       <invalid>
   2650         <doc>INF</doc>
   2651       </invalid>
   2652       <invalid>
   2653         <doc>INF </doc>
   2654       </invalid>
   2655       <invalid>
   2656         <doc>-INF</doc>
   2657       </invalid>
   2658       <invalid>
   2659         <doc>-INF </doc>
   2660       </invalid>
   2661       <invalid>
   2662         <doc>NaN</doc>
   2663       </invalid>
   2664       <invalid>
   2665         <doc> NaN </doc>
   2666       </invalid>
   2667     </testCase>
   2668     <testCase>
   2669       <correct>
   2670         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2671           <value type="float">1E0</value>
   2672         </element>
   2673       </correct>
   2674       <valid>
   2675         <doc>0.1E1</doc>
   2676       </valid>
   2677       <valid>
   2678         <doc>10E-1</doc>
   2679       </valid>
   2680       <valid>
   2681         <doc>+1</doc>
   2682       </valid>
   2683       <invalid>
   2684         <doc>0</doc>
   2685       </invalid>
   2686       <invalid>
   2687         <doc>-0</doc>
   2688       </invalid>
   2689       <invalid>
   2690         <doc>+0</doc>
   2691       </invalid>
   2692       <invalid>
   2693         <doc> 0 </doc>
   2694       </invalid>
   2695       <invalid>
   2696         <doc> 0. </doc>
   2697       </invalid>
   2698       <invalid>
   2699         <doc> .0 </doc>
   2700       </invalid>
   2701       <invalid>
   2702         <doc> 0.0 </doc>
   2703       </invalid>
   2704       <invalid>
   2705         <doc> 0e0 </doc>
   2706       </invalid>
   2707       <invalid>
   2708         <doc> 0E0 </doc>
   2709       </invalid>
   2710       <invalid>
   2711         <doc> 0E+0 </doc>
   2712       </invalid>
   2713       <invalid>
   2714         <doc> 0E-0 </doc>
   2715       </invalid>
   2716       <invalid>
   2717         <doc>-1</doc>
   2718       </invalid>
   2719       <invalid>
   2720         <doc>INF</doc>
   2721       </invalid>
   2722       <invalid>
   2723         <doc>INF </doc>
   2724       </invalid>
   2725       <invalid>
   2726         <doc>-INF</doc>
   2727       </invalid>
   2728       <invalid>
   2729         <doc>-INF </doc>
   2730       </invalid>
   2731       <invalid>
   2732         <doc>NaN</doc>
   2733       </invalid>
   2734       <invalid>
   2735         <doc> NaN </doc>
   2736       </invalid>
   2737     </testCase>
   2738     <testCase>
   2739       <correct>
   2740         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2741           <value type="float">-1</value>
   2742         </element>
   2743       </correct>
   2744       <invalid>
   2745         <doc>0</doc>
   2746       </invalid>
   2747       <invalid>
   2748         <doc>-0</doc>
   2749       </invalid>
   2750       <invalid>
   2751         <doc>+0</doc>
   2752       </invalid>
   2753       <invalid>
   2754         <doc> 0 </doc>
   2755       </invalid>
   2756       <invalid>
   2757         <doc> 0. </doc>
   2758       </invalid>
   2759       <invalid>
   2760         <doc> .0 </doc>
   2761       </invalid>
   2762       <invalid>
   2763         <doc> 0.0 </doc>
   2764       </invalid>
   2765       <invalid>
   2766         <doc> 0e0 </doc>
   2767       </invalid>
   2768       <invalid>
   2769         <doc> 0E0 </doc>
   2770       </invalid>
   2771       <invalid>
   2772         <doc> 0E+0 </doc>
   2773       </invalid>
   2774       <invalid>
   2775         <doc> 0E-0 </doc>
   2776       </invalid>
   2777       <invalid>
   2778         <doc>1E0</doc>
   2779       </invalid>
   2780       <invalid>
   2781         <doc>0.1E1</doc>
   2782       </invalid>
   2783       <invalid>
   2784         <doc>10E-1</doc>
   2785       </invalid>
   2786       <invalid>
   2787         <doc>+1</doc>
   2788       </invalid>
   2789       <invalid>
   2790         <doc>INF</doc>
   2791       </invalid>
   2792       <invalid>
   2793         <doc>INF </doc>
   2794       </invalid>
   2795       <invalid>
   2796         <doc>-INF</doc>
   2797       </invalid>
   2798       <invalid>
   2799         <doc>-INF </doc>
   2800       </invalid>
   2801       <invalid>
   2802         <doc>NaN</doc>
   2803       </invalid>
   2804       <invalid>
   2805         <doc> NaN </doc>
   2806       </invalid>
   2807     </testCase>
   2808     <testCase>
   2809       <correct>
   2810         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2811           <value type="float">INF</value>
   2812         </element>
   2813       </correct>
   2814       <valid>
   2815         <doc>INF </doc>
   2816       </valid>
   2817       <invalid>
   2818         <doc>0</doc>
   2819       </invalid>
   2820       <invalid>
   2821         <doc>-0</doc>
   2822       </invalid>
   2823       <invalid>
   2824         <doc>+0</doc>
   2825       </invalid>
   2826       <invalid>
   2827         <doc> 0 </doc>
   2828       </invalid>
   2829       <invalid>
   2830         <doc> 0. </doc>
   2831       </invalid>
   2832       <invalid>
   2833         <doc> .0 </doc>
   2834       </invalid>
   2835       <invalid>
   2836         <doc> 0.0 </doc>
   2837       </invalid>
   2838       <invalid>
   2839         <doc> 0e0 </doc>
   2840       </invalid>
   2841       <invalid>
   2842         <doc> 0E0 </doc>
   2843       </invalid>
   2844       <invalid>
   2845         <doc> 0E+0 </doc>
   2846       </invalid>
   2847       <invalid>
   2848         <doc> 0E-0 </doc>
   2849       </invalid>
   2850       <invalid>
   2851         <doc>1E0</doc>
   2852       </invalid>
   2853       <invalid>
   2854         <doc>0.1E1</doc>
   2855       </invalid>
   2856       <invalid>
   2857         <doc>10E-1</doc>
   2858       </invalid>
   2859       <invalid>
   2860         <doc>+1</doc>
   2861       </invalid>
   2862       <invalid>
   2863         <doc>-1</doc>
   2864       </invalid>
   2865       <invalid>
   2866         <doc>-INF</doc>
   2867       </invalid>
   2868       <invalid>
   2869         <doc>-INF </doc>
   2870       </invalid>
   2871       <invalid>
   2872         <doc>NaN</doc>
   2873       </invalid>
   2874       <invalid>
   2875         <doc> NaN </doc>
   2876       </invalid>
   2877     </testCase>
   2878     <testCase>
   2879       <correct>
   2880         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2881           <value type="float">-INF</value>
   2882         </element>
   2883       </correct>
   2884       <valid>
   2885         <doc>-INF </doc>
   2886       </valid>
   2887       <invalid>
   2888         <doc>0</doc>
   2889       </invalid>
   2890       <invalid>
   2891         <doc>-0</doc>
   2892       </invalid>
   2893       <invalid>
   2894         <doc>+0</doc>
   2895       </invalid>
   2896       <invalid>
   2897         <doc> 0 </doc>
   2898       </invalid>
   2899       <invalid>
   2900         <doc> 0. </doc>
   2901       </invalid>
   2902       <invalid>
   2903         <doc> .0 </doc>
   2904       </invalid>
   2905       <invalid>
   2906         <doc> 0.0 </doc>
   2907       </invalid>
   2908       <invalid>
   2909         <doc> 0e0 </doc>
   2910       </invalid>
   2911       <invalid>
   2912         <doc> 0E0 </doc>
   2913       </invalid>
   2914       <invalid>
   2915         <doc> 0E+0 </doc>
   2916       </invalid>
   2917       <invalid>
   2918         <doc> 0E-0 </doc>
   2919       </invalid>
   2920       <invalid>
   2921         <doc>1E0</doc>
   2922       </invalid>
   2923       <invalid>
   2924         <doc>0.1E1</doc>
   2925       </invalid>
   2926       <invalid>
   2927         <doc>10E-1</doc>
   2928       </invalid>
   2929       <invalid>
   2930         <doc>+1</doc>
   2931       </invalid>
   2932       <invalid>
   2933         <doc>-1</doc>
   2934       </invalid>
   2935       <invalid>
   2936         <doc>INF</doc>
   2937       </invalid>
   2938       <invalid>
   2939         <doc>INF </doc>
   2940       </invalid>
   2941       <invalid>
   2942         <doc>NaN</doc>
   2943       </invalid>
   2944       <invalid>
   2945         <doc> NaN </doc>
   2946       </invalid>
   2947     </testCase>
   2948     <testCase>
   2949       <correct>
   2950         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   2951           <value type="float">NaN</value>
   2952         </element>
   2953       </correct>
   2954       <valid>
   2955         <doc> NaN </doc>
   2956       </valid>
   2957       <invalid>
   2958         <doc>0</doc>
   2959       </invalid>
   2960       <invalid>
   2961         <doc>-0</doc>
   2962       </invalid>
   2963       <invalid>
   2964         <doc>+0</doc>
   2965       </invalid>
   2966       <invalid>
   2967         <doc> 0 </doc>
   2968       </invalid>
   2969       <invalid>
   2970         <doc> 0. </doc>
   2971       </invalid>
   2972       <invalid>
   2973         <doc> .0 </doc>
   2974       </invalid>
   2975       <invalid>
   2976         <doc> 0.0 </doc>
   2977       </invalid>
   2978       <invalid>
   2979         <doc> 0e0 </doc>
   2980       </invalid>
   2981       <invalid>
   2982         <doc> 0E0 </doc>
   2983       </invalid>
   2984       <invalid>
   2985         <doc> 0E+0 </doc>
   2986       </invalid>
   2987       <invalid>
   2988         <doc> 0E-0 </doc>
   2989       </invalid>
   2990       <invalid>
   2991         <doc>1E0</doc>
   2992       </invalid>
   2993       <invalid>
   2994         <doc>0.1E1</doc>
   2995       </invalid>
   2996       <invalid>
   2997         <doc>10E-1</doc>
   2998       </invalid>
   2999       <invalid>
   3000         <doc>+1</doc>
   3001       </invalid>
   3002       <invalid>
   3003         <doc>-1</doc>
   3004       </invalid>
   3005       <invalid>
   3006         <doc>INF</doc>
   3007       </invalid>
   3008       <invalid>
   3009         <doc>INF </doc>
   3010       </invalid>
   3011       <invalid>
   3012         <doc>-INF</doc>
   3013       </invalid>
   3014       <invalid>
   3015         <doc>-INF </doc>
   3016       </invalid>
   3017     </testCase>
   3018     <testCase>
   3019       <correct>
   3020         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3021           <data type="float">
   3022             <param name="minExclusive">-INF</param>
   3023           </data>
   3024         </element>
   3025       </correct>
   3026       <valid>
   3027         <doc>-1000</doc>
   3028       </valid>
   3029       <invalid>
   3030         <doc>-INF</doc>
   3031       </invalid>
   3032     </testCase>
   3033     <testCase>
   3034       <correct>
   3035         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3036           <data type="float">
   3037             <param name="minExclusive">-1000</param>
   3038           </data>
   3039         </element>
   3040       </correct>
   3041       <invalid>
   3042         <doc>-INF</doc>
   3043       </invalid>
   3044       <invalid>
   3045         <doc>-1000</doc>
   3046       </invalid>
   3047     </testCase>
   3048     <testCase>
   3049       <correct>
   3050         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3051           <data type="float">
   3052             <param name="minExclusive">1000</param>
   3053           </data>
   3054         </element>
   3055       </correct>
   3056       <valid>
   3057         <doc>INF</doc>
   3058       </valid>
   3059       <invalid>
   3060         <doc>1000</doc>
   3061       </invalid>
   3062     </testCase>
   3063     <testCase>
   3064       <correct>
   3065         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3066           <data type="float">
   3067             <param name="minExclusive">INF</param>
   3068           </data>
   3069         </element>
   3070       </correct>
   3071       <invalid>
   3072         <doc>1000</doc>
   3073       </invalid>
   3074       <invalid>
   3075         <doc>INF</doc>
   3076       </invalid>
   3077     </testCase>
   3078     <testCase>
   3079       <correct>
   3080         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3081           <data type="float">
   3082             <param name="minExclusive">-1</param>
   3083           </data>
   3084         </element>
   3085       </correct>
   3086       <valid>
   3087         <doc>1</doc>
   3088       </valid>
   3089       <invalid>
   3090         <doc>-1</doc>
   3091       </invalid>
   3092     </testCase>
   3093     <testCase>
   3094       <correct>
   3095         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3096           <data type="float">
   3097             <param name="minExclusive">1</param>
   3098           </data>
   3099         </element>
   3100       </correct>
   3101       <invalid>
   3102         <doc>-1</doc>
   3103       </invalid>
   3104       <invalid>
   3105         <doc>1</doc>
   3106       </invalid>
   3107     </testCase>
   3108     <testCase>
   3109       <correct>
   3110         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3111           <data type="float">
   3112             <param name="minExclusive">0</param>
   3113           </data>
   3114         </element>
   3115       </correct>
   3116       <valid>
   3117         <doc>1</doc>
   3118       </valid>
   3119       <invalid>
   3120         <doc>0</doc>
   3121       </invalid>
   3122     </testCase>
   3123     <testCase>
   3124       <correct>
   3125         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3126           <data type="float">
   3127             <param name="minExclusive">1</param>
   3128           </data>
   3129         </element>
   3130       </correct>
   3131       <invalid>
   3132         <doc>0</doc>
   3133       </invalid>
   3134       <invalid>
   3135         <doc>1</doc>
   3136       </invalid>
   3137     </testCase>
   3138     <testCase>
   3139       <correct>
   3140         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3141           <data type="float">
   3142             <param name="minExclusive">-1</param>
   3143           </data>
   3144         </element>
   3145       </correct>
   3146       <valid>
   3147         <doc>0</doc>
   3148       </valid>
   3149       <invalid>
   3150         <doc>-1</doc>
   3151       </invalid>
   3152     </testCase>
   3153     <testCase>
   3154       <correct>
   3155         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3156           <data type="float">
   3157             <param name="minExclusive">0</param>
   3158           </data>
   3159         </element>
   3160       </correct>
   3161       <invalid>
   3162         <doc>-1</doc>
   3163       </invalid>
   3164       <invalid>
   3165         <doc>0</doc>
   3166       </invalid>
   3167     </testCase>
   3168   </testSuite>
   3169   <testSuite>
   3170     <documentation>Datatype double</documentation>
   3171     <testCase>
   3172       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   3173       <correct>
   3174         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3175           <data type="double"/>
   3176         </element>
   3177       </correct>
   3178       <valid>
   3179         <doc>1.0</doc>
   3180       </valid>
   3181       <valid>
   3182         <doc>1.</doc>
   3183       </valid>
   3184       <valid>
   3185         <doc>.1</doc>
   3186       </valid>
   3187       <invalid>
   3188         <doc>- 1</doc>
   3189       </invalid>
   3190       <invalid>
   3191         <doc>1 .0</doc>
   3192       </invalid>
   3193       <invalid>
   3194         <doc>+INF</doc>
   3195       </invalid>
   3196       <invalid>
   3197         <doc>+NaN</doc>
   3198       </invalid>
   3199       <invalid>
   3200         <doc>-NaN</doc>
   3201       </invalid>
   3202     </testCase>
   3203     <testCase>
   3204       <correct>
   3205         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3206           <value type="double">0</value>
   3207         </element>
   3208       </correct>
   3209       <valid>
   3210         <doc>-0</doc>
   3211       </valid>
   3212       <valid>
   3213         <doc>+0</doc>
   3214       </valid>
   3215       <valid>
   3216         <doc> 0 </doc>
   3217       </valid>
   3218       <valid>
   3219         <doc> 0. </doc>
   3220       </valid>
   3221       <valid>
   3222         <doc> .0 </doc>
   3223       </valid>
   3224       <valid>
   3225         <doc> 0.0 </doc>
   3226       </valid>
   3227       <valid>
   3228         <doc> 0e0 </doc>
   3229       </valid>
   3230       <valid>
   3231         <doc> 0E0 </doc>
   3232       </valid>
   3233       <valid>
   3234         <doc> 0E+0 </doc>
   3235       </valid>
   3236       <valid>
   3237         <doc> 0E-0 </doc>
   3238       </valid>
   3239       <invalid>
   3240         <doc>1E0</doc>
   3241       </invalid>
   3242       <invalid>
   3243         <doc>0.1E1</doc>
   3244       </invalid>
   3245       <invalid>
   3246         <doc>10E-1</doc>
   3247       </invalid>
   3248       <invalid>
   3249         <doc>+1</doc>
   3250       </invalid>
   3251       <invalid>
   3252         <doc>-1</doc>
   3253       </invalid>
   3254       <invalid>
   3255         <doc>INF</doc>
   3256       </invalid>
   3257       <invalid>
   3258         <doc>INF </doc>
   3259       </invalid>
   3260       <invalid>
   3261         <doc>-INF</doc>
   3262       </invalid>
   3263       <invalid>
   3264         <doc>-INF </doc>
   3265       </invalid>
   3266       <invalid>
   3267         <doc>NaN</doc>
   3268       </invalid>
   3269       <invalid>
   3270         <doc> NaN </doc>
   3271       </invalid>
   3272     </testCase>
   3273     <testCase>
   3274       <correct>
   3275         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3276           <value type="double">1E0</value>
   3277         </element>
   3278       </correct>
   3279       <valid>
   3280         <doc>0.1E1</doc>
   3281       </valid>
   3282       <valid>
   3283         <doc>10E-1</doc>
   3284       </valid>
   3285       <valid>
   3286         <doc>+1</doc>
   3287       </valid>
   3288       <invalid>
   3289         <doc>0</doc>
   3290       </invalid>
   3291       <invalid>
   3292         <doc>-0</doc>
   3293       </invalid>
   3294       <invalid>
   3295         <doc>+0</doc>
   3296       </invalid>
   3297       <invalid>
   3298         <doc> 0 </doc>
   3299       </invalid>
   3300       <invalid>
   3301         <doc> 0. </doc>
   3302       </invalid>
   3303       <invalid>
   3304         <doc> .0 </doc>
   3305       </invalid>
   3306       <invalid>
   3307         <doc> 0.0 </doc>
   3308       </invalid>
   3309       <invalid>
   3310         <doc> 0e0 </doc>
   3311       </invalid>
   3312       <invalid>
   3313         <doc> 0E0 </doc>
   3314       </invalid>
   3315       <invalid>
   3316         <doc> 0E+0 </doc>
   3317       </invalid>
   3318       <invalid>
   3319         <doc> 0E-0 </doc>
   3320       </invalid>
   3321       <invalid>
   3322         <doc>-1</doc>
   3323       </invalid>
   3324       <invalid>
   3325         <doc>INF</doc>
   3326       </invalid>
   3327       <invalid>
   3328         <doc>INF </doc>
   3329       </invalid>
   3330       <invalid>
   3331         <doc>-INF</doc>
   3332       </invalid>
   3333       <invalid>
   3334         <doc>-INF </doc>
   3335       </invalid>
   3336       <invalid>
   3337         <doc>NaN</doc>
   3338       </invalid>
   3339       <invalid>
   3340         <doc> NaN </doc>
   3341       </invalid>
   3342     </testCase>
   3343     <testCase>
   3344       <correct>
   3345         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3346           <value type="double">-1</value>
   3347         </element>
   3348       </correct>
   3349       <invalid>
   3350         <doc>0</doc>
   3351       </invalid>
   3352       <invalid>
   3353         <doc>-0</doc>
   3354       </invalid>
   3355       <invalid>
   3356         <doc>+0</doc>
   3357       </invalid>
   3358       <invalid>
   3359         <doc> 0 </doc>
   3360       </invalid>
   3361       <invalid>
   3362         <doc> 0. </doc>
   3363       </invalid>
   3364       <invalid>
   3365         <doc> .0 </doc>
   3366       </invalid>
   3367       <invalid>
   3368         <doc> 0.0 </doc>
   3369       </invalid>
   3370       <invalid>
   3371         <doc> 0e0 </doc>
   3372       </invalid>
   3373       <invalid>
   3374         <doc> 0E0 </doc>
   3375       </invalid>
   3376       <invalid>
   3377         <doc> 0E+0 </doc>
   3378       </invalid>
   3379       <invalid>
   3380         <doc> 0E-0 </doc>
   3381       </invalid>
   3382       <invalid>
   3383         <doc>1E0</doc>
   3384       </invalid>
   3385       <invalid>
   3386         <doc>0.1E1</doc>
   3387       </invalid>
   3388       <invalid>
   3389         <doc>10E-1</doc>
   3390       </invalid>
   3391       <invalid>
   3392         <doc>+1</doc>
   3393       </invalid>
   3394       <invalid>
   3395         <doc>INF</doc>
   3396       </invalid>
   3397       <invalid>
   3398         <doc>INF </doc>
   3399       </invalid>
   3400       <invalid>
   3401         <doc>-INF</doc>
   3402       </invalid>
   3403       <invalid>
   3404         <doc>-INF </doc>
   3405       </invalid>
   3406       <invalid>
   3407         <doc>NaN</doc>
   3408       </invalid>
   3409       <invalid>
   3410         <doc> NaN </doc>
   3411       </invalid>
   3412     </testCase>
   3413     <testCase>
   3414       <correct>
   3415         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3416           <value type="double">INF</value>
   3417         </element>
   3418       </correct>
   3419       <valid>
   3420         <doc>INF </doc>
   3421       </valid>
   3422       <invalid>
   3423         <doc>0</doc>
   3424       </invalid>
   3425       <invalid>
   3426         <doc>-0</doc>
   3427       </invalid>
   3428       <invalid>
   3429         <doc>+0</doc>
   3430       </invalid>
   3431       <invalid>
   3432         <doc> 0 </doc>
   3433       </invalid>
   3434       <invalid>
   3435         <doc> 0. </doc>
   3436       </invalid>
   3437       <invalid>
   3438         <doc> .0 </doc>
   3439       </invalid>
   3440       <invalid>
   3441         <doc> 0.0 </doc>
   3442       </invalid>
   3443       <invalid>
   3444         <doc> 0e0 </doc>
   3445       </invalid>
   3446       <invalid>
   3447         <doc> 0E0 </doc>
   3448       </invalid>
   3449       <invalid>
   3450         <doc> 0E+0 </doc>
   3451       </invalid>
   3452       <invalid>
   3453         <doc> 0E-0 </doc>
   3454       </invalid>
   3455       <invalid>
   3456         <doc>1E0</doc>
   3457       </invalid>
   3458       <invalid>
   3459         <doc>0.1E1</doc>
   3460       </invalid>
   3461       <invalid>
   3462         <doc>10E-1</doc>
   3463       </invalid>
   3464       <invalid>
   3465         <doc>+1</doc>
   3466       </invalid>
   3467       <invalid>
   3468         <doc>-1</doc>
   3469       </invalid>
   3470       <invalid>
   3471         <doc>-INF</doc>
   3472       </invalid>
   3473       <invalid>
   3474         <doc>-INF </doc>
   3475       </invalid>
   3476       <invalid>
   3477         <doc>NaN</doc>
   3478       </invalid>
   3479       <invalid>
   3480         <doc> NaN </doc>
   3481       </invalid>
   3482     </testCase>
   3483     <testCase>
   3484       <correct>
   3485         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3486           <value type="double">-INF</value>
   3487         </element>
   3488       </correct>
   3489       <valid>
   3490         <doc>-INF </doc>
   3491       </valid>
   3492       <invalid>
   3493         <doc>0</doc>
   3494       </invalid>
   3495       <invalid>
   3496         <doc>-0</doc>
   3497       </invalid>
   3498       <invalid>
   3499         <doc>+0</doc>
   3500       </invalid>
   3501       <invalid>
   3502         <doc> 0 </doc>
   3503       </invalid>
   3504       <invalid>
   3505         <doc> 0. </doc>
   3506       </invalid>
   3507       <invalid>
   3508         <doc> .0 </doc>
   3509       </invalid>
   3510       <invalid>
   3511         <doc> 0.0 </doc>
   3512       </invalid>
   3513       <invalid>
   3514         <doc> 0e0 </doc>
   3515       </invalid>
   3516       <invalid>
   3517         <doc> 0E0 </doc>
   3518       </invalid>
   3519       <invalid>
   3520         <doc> 0E+0 </doc>
   3521       </invalid>
   3522       <invalid>
   3523         <doc> 0E-0 </doc>
   3524       </invalid>
   3525       <invalid>
   3526         <doc>1E0</doc>
   3527       </invalid>
   3528       <invalid>
   3529         <doc>0.1E1</doc>
   3530       </invalid>
   3531       <invalid>
   3532         <doc>10E-1</doc>
   3533       </invalid>
   3534       <invalid>
   3535         <doc>+1</doc>
   3536       </invalid>
   3537       <invalid>
   3538         <doc>-1</doc>
   3539       </invalid>
   3540       <invalid>
   3541         <doc>INF</doc>
   3542       </invalid>
   3543       <invalid>
   3544         <doc>INF </doc>
   3545       </invalid>
   3546       <invalid>
   3547         <doc>NaN</doc>
   3548       </invalid>
   3549       <invalid>
   3550         <doc> NaN </doc>
   3551       </invalid>
   3552     </testCase>
   3553     <testCase>
   3554       <correct>
   3555         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3556           <value type="double">NaN</value>
   3557         </element>
   3558       </correct>
   3559       <valid>
   3560         <doc> NaN </doc>
   3561       </valid>
   3562       <invalid>
   3563         <doc>0</doc>
   3564       </invalid>
   3565       <invalid>
   3566         <doc>-0</doc>
   3567       </invalid>
   3568       <invalid>
   3569         <doc>+0</doc>
   3570       </invalid>
   3571       <invalid>
   3572         <doc> 0 </doc>
   3573       </invalid>
   3574       <invalid>
   3575         <doc> 0. </doc>
   3576       </invalid>
   3577       <invalid>
   3578         <doc> .0 </doc>
   3579       </invalid>
   3580       <invalid>
   3581         <doc> 0.0 </doc>
   3582       </invalid>
   3583       <invalid>
   3584         <doc> 0e0 </doc>
   3585       </invalid>
   3586       <invalid>
   3587         <doc> 0E0 </doc>
   3588       </invalid>
   3589       <invalid>
   3590         <doc> 0E+0 </doc>
   3591       </invalid>
   3592       <invalid>
   3593         <doc> 0E-0 </doc>
   3594       </invalid>
   3595       <invalid>
   3596         <doc>1E0</doc>
   3597       </invalid>
   3598       <invalid>
   3599         <doc>0.1E1</doc>
   3600       </invalid>
   3601       <invalid>
   3602         <doc>10E-1</doc>
   3603       </invalid>
   3604       <invalid>
   3605         <doc>+1</doc>
   3606       </invalid>
   3607       <invalid>
   3608         <doc>-1</doc>
   3609       </invalid>
   3610       <invalid>
   3611         <doc>INF</doc>
   3612       </invalid>
   3613       <invalid>
   3614         <doc>INF </doc>
   3615       </invalid>
   3616       <invalid>
   3617         <doc>-INF</doc>
   3618       </invalid>
   3619       <invalid>
   3620         <doc>-INF </doc>
   3621       </invalid>
   3622     </testCase>
   3623     <testCase>
   3624       <correct>
   3625         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3626           <data type="double">
   3627             <param name="minExclusive">-INF</param>
   3628           </data>
   3629         </element>
   3630       </correct>
   3631       <valid>
   3632         <doc>-1000</doc>
   3633       </valid>
   3634       <invalid>
   3635         <doc>-INF</doc>
   3636       </invalid>
   3637     </testCase>
   3638     <testCase>
   3639       <correct>
   3640         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3641           <data type="double">
   3642             <param name="minExclusive">-1000</param>
   3643           </data>
   3644         </element>
   3645       </correct>
   3646       <invalid>
   3647         <doc>-INF</doc>
   3648       </invalid>
   3649       <invalid>
   3650         <doc>-1000</doc>
   3651       </invalid>
   3652     </testCase>
   3653     <testCase>
   3654       <correct>
   3655         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3656           <data type="double">
   3657             <param name="minExclusive">1000</param>
   3658           </data>
   3659         </element>
   3660       </correct>
   3661       <valid>
   3662         <doc>INF</doc>
   3663       </valid>
   3664       <invalid>
   3665         <doc>1000</doc>
   3666       </invalid>
   3667     </testCase>
   3668     <testCase>
   3669       <correct>
   3670         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3671           <data type="double">
   3672             <param name="minExclusive">INF</param>
   3673           </data>
   3674         </element>
   3675       </correct>
   3676       <invalid>
   3677         <doc>1000</doc>
   3678       </invalid>
   3679       <invalid>
   3680         <doc>INF</doc>
   3681       </invalid>
   3682     </testCase>
   3683     <testCase>
   3684       <correct>
   3685         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3686           <data type="double">
   3687             <param name="minExclusive">-1</param>
   3688           </data>
   3689         </element>
   3690       </correct>
   3691       <valid>
   3692         <doc>1</doc>
   3693       </valid>
   3694       <invalid>
   3695         <doc>-1</doc>
   3696       </invalid>
   3697     </testCase>
   3698     <testCase>
   3699       <correct>
   3700         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3701           <data type="double">
   3702             <param name="minExclusive">1</param>
   3703           </data>
   3704         </element>
   3705       </correct>
   3706       <invalid>
   3707         <doc>-1</doc>
   3708       </invalid>
   3709       <invalid>
   3710         <doc>1</doc>
   3711       </invalid>
   3712     </testCase>
   3713     <testCase>
   3714       <correct>
   3715         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3716           <data type="double">
   3717             <param name="minExclusive">0</param>
   3718           </data>
   3719         </element>
   3720       </correct>
   3721       <valid>
   3722         <doc>1</doc>
   3723       </valid>
   3724       <invalid>
   3725         <doc>0</doc>
   3726       </invalid>
   3727     </testCase>
   3728     <testCase>
   3729       <correct>
   3730         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3731           <data type="double">
   3732             <param name="minExclusive">1</param>
   3733           </data>
   3734         </element>
   3735       </correct>
   3736       <invalid>
   3737         <doc>0</doc>
   3738       </invalid>
   3739       <invalid>
   3740         <doc>1</doc>
   3741       </invalid>
   3742     </testCase>
   3743     <testCase>
   3744       <correct>
   3745         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3746           <data type="double">
   3747             <param name="minExclusive">-1</param>
   3748           </data>
   3749         </element>
   3750       </correct>
   3751       <valid>
   3752         <doc>0</doc>
   3753       </valid>
   3754       <invalid>
   3755         <doc>-1</doc>
   3756       </invalid>
   3757     </testCase>
   3758     <testCase>
   3759       <correct>
   3760         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3761           <data type="double">
   3762             <param name="minExclusive">0</param>
   3763           </data>
   3764         </element>
   3765       </correct>
   3766       <invalid>
   3767         <doc>-1</doc>
   3768       </invalid>
   3769       <invalid>
   3770         <doc>0</doc>
   3771       </invalid>
   3772     </testCase>
   3773   </testSuite>
   3774   <testSuite>
   3775     <documentation>Datatype QName</documentation>
   3776     <testCase>
   3777       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   3778       <correct>
   3779         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3780           <data type="QName"/>
   3781         </element>
   3782       </correct>
   3783       <valid>
   3784         <doc>foo</doc>
   3785       </valid>
   3786       <valid>
   3787         <doc xmlns:x="http://www.example.com">x:foo</doc>
   3788       </valid>
   3789       <invalid>
   3790         <doc>y:foo</doc>
   3791       </invalid>
   3792     </testCase>
   3793     <testCase>
   3794       <correct>
   3795         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3796           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">foo</value>
   3797         </element>
   3798       </correct>
   3799       <valid>
   3800         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
   3801       </valid>
   3802       <invalid>
   3803         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
   3804       </invalid>
   3805       <invalid>
   3806         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
   3807       </invalid>
   3808       <invalid>
   3809         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
   3810       </invalid>
   3811       <invalid>
   3812         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
   3813       </invalid>
   3814       <invalid>
   3815         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
   3816       </invalid>
   3817       <invalid>
   3818         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
   3819       </invalid>
   3820       <invalid>
   3821         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
   3822       </invalid>
   3823     </testCase>
   3824     <testCase>
   3825       <correct>
   3826         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3827           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:foo</value>
   3828         </element>
   3829       </correct>
   3830       <valid>
   3831         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
   3832       </valid>
   3833       <valid>
   3834         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
   3835       </valid>
   3836       <invalid>
   3837         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
   3838       </invalid>
   3839       <invalid>
   3840         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
   3841       </invalid>
   3842       <invalid>
   3843         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
   3844       </invalid>
   3845       <invalid>
   3846         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
   3847       </invalid>
   3848       <invalid>
   3849         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
   3850       </invalid>
   3851       <invalid>
   3852         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
   3853       </invalid>
   3854     </testCase>
   3855     <testCase>
   3856       <correct>
   3857         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3858           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">x:bar</value>
   3859         </element>
   3860       </correct>
   3861       <valid>
   3862         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
   3863       </valid>
   3864       <invalid>
   3865         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
   3866       </invalid>
   3867       <invalid>
   3868         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
   3869       </invalid>
   3870       <invalid>
   3871         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
   3872       </invalid>
   3873       <invalid>
   3874         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
   3875       </invalid>
   3876       <invalid>
   3877         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
   3878       </invalid>
   3879       <invalid>
   3880         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
   3881       </invalid>
   3882       <invalid>
   3883         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
   3884       </invalid>
   3885     </testCase>
   3886     <testCase>
   3887       <correct>
   3888         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3889           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:foo</value>
   3890         </element>
   3891       </correct>
   3892       <invalid>
   3893         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
   3894       </invalid>
   3895       <invalid>
   3896         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
   3897       </invalid>
   3898       <invalid>
   3899         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
   3900       </invalid>
   3901       <invalid>
   3902         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
   3903       </invalid>
   3904       <invalid>
   3905         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
   3906       </invalid>
   3907       <invalid>
   3908         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
   3909       </invalid>
   3910       <invalid>
   3911         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
   3912       </invalid>
   3913       <invalid>
   3914         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:bar</doc>
   3915       </invalid>
   3916     </testCase>
   3917     <testCase>
   3918       <correct>
   3919         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3920           <value xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com" type="QName">y:bar</value>
   3921         </element>
   3922       </correct>
   3923       <invalid>
   3924         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">foo</doc>
   3925       </invalid>
   3926       <invalid>
   3927         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> foo</doc>
   3928       </invalid>
   3929       <invalid>
   3930         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:foo</doc>
   3931       </invalid>
   3932       <invalid>
   3933         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com"> x:foo </doc>
   3934       </invalid>
   3935       <invalid>
   3936         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:foo</doc>
   3937       </invalid>
   3938       <invalid>
   3939         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">x:bar</doc>
   3940       </invalid>
   3941       <invalid>
   3942         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">z:bar</doc>
   3943       </invalid>
   3944       <invalid>
   3945         <doc xmlns:z="http://www.example.com" xmlns:y="http://www.example.com/" xmlns:x="http://www.example.com">y:foo</doc>
   3946       </invalid>
   3947     </testCase>
   3948   </testSuite>
   3949   <testSuite>
   3950     <documentation>Datatype NOTATION</documentation>
   3951     <testCase>
   3952       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   3953       <correct>
   3954         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3955           <data type="NOTATION"/>
   3956         </element>
   3957       </correct>
   3958       <valid>
   3959         <doc>foo</doc>
   3960       </valid>
   3961       <valid>
   3962         <doc xmlns:x="http://www.example.com">x:foo</doc>
   3963       </valid>
   3964       <invalid>
   3965         <doc>y:foo</doc>
   3966       </invalid>
   3967     </testCase>
   3968   </testSuite>
   3969   <testSuite>
   3970     <documentation>Datatype decimal</documentation>
   3971     <testCase>
   3972       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   3973       <correct>
   3974         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   3975           <data type="decimal"/>
   3976         </element>
   3977       </correct>
   3978       <valid>
   3979         <doc>1.0</doc>
   3980       </valid>
   3981       <valid>
   3982         <doc>1.</doc>
   3983       </valid>
   3984       <valid>
   3985         <doc>.1</doc>
   3986       </valid>
   3987       <valid>
   3988         <doc>+1.0</doc>
   3989       </valid>
   3990       <valid>
   3991         <doc>-1.0</doc>
   3992       </valid>
   3993       <valid>
   3994         <doc> 1 </doc>
   3995       </valid>
   3996       <valid>
   3997         <doc>99999999999999999999999999999999999999999999999999999999999999999</doc>
   3998       </valid>
   3999       <valid>
   4000         <doc>-99999999999999999999999999999999999999999999999999999999999999999</doc>
   4001       </valid>
   4002       <invalid>
   4003         <doc>junk</doc>
   4004       </invalid>
   4005       <invalid>
   4006         <doc>--1</doc>
   4007       </invalid>
   4008       <invalid>
   4009         <doc>++1</doc>
   4010       </invalid>
   4011       <invalid>
   4012         <doc>+-1</doc>
   4013       </invalid>
   4014       <invalid>
   4015         <doc>1.2.</doc>
   4016       </invalid>
   4017       <invalid>
   4018         <doc>..1</doc>
   4019       </invalid>
   4020       <invalid>
   4021         <doc>1..</doc>
   4022       </invalid>
   4023       <invalid>
   4024         <doc>1 .2</doc>
   4025       </invalid>
   4026       <invalid>
   4027         <doc>1+</doc>
   4028       </invalid>
   4029       <invalid>
   4030         <doc>+ 1</doc>
   4031       </invalid>
   4032     </testCase>
   4033     <testCase>
   4034       <correct>
   4035         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4036           <data type="decimal">
   4037             <param name="minExclusive">0</param>
   4038           </data>
   4039         </element>
   4040       </correct>
   4041       <valid>
   4042         <doc>1</doc>
   4043       </valid>
   4044       <invalid>
   4045         <doc>0</doc>
   4046       </invalid>
   4047     </testCase>
   4048     <testCase>
   4049       <correct>
   4050         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4051           <data type="decimal">
   4052             <param name="minExclusive">1</param>
   4053           </data>
   4054         </element>
   4055       </correct>
   4056       <invalid>
   4057         <doc>0</doc>
   4058       </invalid>
   4059       <invalid>
   4060         <doc>1</doc>
   4061       </invalid>
   4062     </testCase>
   4063   </testSuite>
   4064   <testSuite>
   4065     <documentation>Datatype nonPositiveInteger</documentation>
   4066     <testCase>
   4067       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4068       <correct>
   4069         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4070           <data type="nonPositiveInteger"/>
   4071         </element>
   4072       </correct>
   4073       <valid>
   4074         <doc>-1</doc>
   4075       </valid>
   4076       <valid>
   4077         <doc>0</doc>
   4078       </valid>
   4079       <valid>
   4080         <doc>-0</doc>
   4081       </valid>
   4082       <invalid>
   4083         <doc>1</doc>
   4084       </invalid>
   4085     </testCase>
   4086   </testSuite>
   4087   <testSuite>
   4088     <documentation>Datatype nonNegativeInteger</documentation>
   4089     <testCase>
   4090       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4091       <correct>
   4092         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4093           <data type="nonNegativeInteger"/>
   4094         </element>
   4095       </correct>
   4096       <valid>
   4097         <doc>1</doc>
   4098       </valid>
   4099       <valid>
   4100         <doc>0</doc>
   4101       </valid>
   4102       <valid>
   4103         <doc>+1</doc>
   4104       </valid>
   4105       <valid>
   4106         <doc>+0</doc>
   4107       </valid>
   4108       <invalid>
   4109         <doc>-1</doc>
   4110       </invalid>
   4111     </testCase>
   4112   </testSuite>
   4113   <testSuite>
   4114     <documentation>Datatype positiveInteger</documentation>
   4115     <testCase>
   4116       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4117       <correct>
   4118         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4119           <data type="positiveInteger"/>
   4120         </element>
   4121       </correct>
   4122       <valid>
   4123         <doc>+1</doc>
   4124       </valid>
   4125       <valid>
   4126         <doc>1</doc>
   4127       </valid>
   4128       <invalid>
   4129         <doc>0</doc>
   4130       </invalid>
   4131       <invalid>
   4132         <doc>-1</doc>
   4133       </invalid>
   4134     </testCase>
   4135   </testSuite>
   4136   <testSuite>
   4137     <documentation>Datatype negativeInteger</documentation>
   4138     <testCase>
   4139       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4140       <correct>
   4141         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4142           <data type="negativeInteger"/>
   4143         </element>
   4144       </correct>
   4145       <valid>
   4146         <doc>-1</doc>
   4147       </valid>
   4148       <invalid>
   4149         <doc>+1</doc>
   4150       </invalid>
   4151       <invalid>
   4152         <doc>0</doc>
   4153       </invalid>
   4154     </testCase>
   4155   </testSuite>
   4156   <testSuite>
   4157     <documentation>Datatype long</documentation>
   4158     <testCase>
   4159       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4160       <correct>
   4161         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4162           <data type="long"/>
   4163         </element>
   4164       </correct>
   4165       <valid>
   4166         <doc>1</doc>
   4167       </valid>
   4168       <valid>
   4169         <doc>+1</doc>
   4170       </valid>
   4171       <valid>
   4172         <doc>0</doc>
   4173       </valid>
   4174       <valid>
   4175         <doc> 0 </doc>
   4176       </valid>
   4177       <invalid>
   4178         <doc>1 2</doc>
   4179       </invalid>
   4180       <invalid>
   4181         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
   4182       </invalid>
   4183       <valid>
   4184         <doc>9223372036854775807</doc>
   4185       </valid>
   4186       <valid>
   4187         <doc>-9223372036854775808</doc>
   4188       </valid>
   4189       <invalid>
   4190         <doc>9223372036854775808</doc>
   4191       </invalid>
   4192       <invalid>
   4193         <doc>-9223372036854775809</doc>
   4194       </invalid>
   4195       <invalid>
   4196         <doc></doc>
   4197       </invalid>
   4198     </testCase>
   4199   </testSuite>
   4200   <testSuite>
   4201     <documentation>Datatype int</documentation>
   4202     <testCase>
   4203       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4204       <correct>
   4205         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4206           <data type="int"/>
   4207         </element>
   4208       </correct>
   4209       <valid>
   4210         <doc>1</doc>
   4211       </valid>
   4212       <valid>
   4213         <doc>01</doc>
   4214       </valid>
   4215       <valid>
   4216         <doc> 1 </doc>
   4217       </valid>
   4218       <valid>
   4219         <doc>2147483647</doc>
   4220       </valid>
   4221       <valid>
   4222         <doc>-2147483648</doc>
   4223       </valid>
   4224       <invalid>
   4225         <doc>2147483648</doc>
   4226       </invalid>
   4227       <invalid>
   4228         <doc>-2147483649</doc>
   4229       </invalid>
   4230       <invalid>
   4231         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
   4232       </invalid>
   4233     </testCase>
   4234     <testCase>
   4235       <correct>
   4236         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4237           <value type="int">1</value>
   4238         </element>
   4239       </correct>
   4240       <valid>
   4241         <doc>+1</doc>
   4242       </valid>
   4243       <valid>
   4244         <doc> 1 </doc>
   4245       </valid>
   4246       <valid>
   4247         <doc>001</doc>
   4248       </valid>
   4249       <invalid>
   4250         <doc>-1</doc>
   4251       </invalid>
   4252       <invalid>
   4253         <doc> -1 </doc>
   4254       </invalid>
   4255       <invalid>
   4256         <doc>-001</doc>
   4257       </invalid>
   4258     </testCase>
   4259     <testCase>
   4260       <correct>
   4261         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4262           <value type="int">-1</value>
   4263         </element>
   4264       </correct>
   4265       <valid>
   4266         <doc> -1 </doc>
   4267       </valid>
   4268       <valid>
   4269         <doc>-001</doc>
   4270       </valid>
   4271       <invalid>
   4272         <doc>1</doc>
   4273       </invalid>
   4274       <invalid>
   4275         <doc>+1</doc>
   4276       </invalid>
   4277       <invalid>
   4278         <doc> 1 </doc>
   4279       </invalid>
   4280       <invalid>
   4281         <doc>001</doc>
   4282       </invalid>
   4283     </testCase>
   4284   </testSuite>
   4285   <testSuite>
   4286     <documentation>Datatype short</documentation>
   4287     <testCase>
   4288       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4289       <correct>
   4290         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4291           <data type="short"/>
   4292         </element>
   4293       </correct>
   4294       <valid>
   4295         <doc>1</doc>
   4296       </valid>
   4297       <valid>
   4298         <doc>32767</doc>
   4299       </valid>
   4300       <valid>
   4301         <doc>-32768</doc>
   4302       </valid>
   4303       <invalid>
   4304         <doc>32768</doc>
   4305       </invalid>
   4306       <invalid>
   4307         <doc>-32769</doc>
   4308       </invalid>
   4309       <invalid>
   4310         <doc>9999999999999999999999999999999999999999999999999999999999999999999999999</doc>
   4311       </invalid>
   4312     </testCase>
   4313     <testCase>
   4314       <correct>
   4315         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4316           <value type="short">1</value>
   4317         </element>
   4318       </correct>
   4319       <valid>
   4320         <doc>+1</doc>
   4321       </valid>
   4322       <valid>
   4323         <doc> 1 </doc>
   4324       </valid>
   4325       <valid>
   4326         <doc>001</doc>
   4327       </valid>
   4328       <invalid>
   4329         <doc>-1</doc>
   4330       </invalid>
   4331       <invalid>
   4332         <doc> -1 </doc>
   4333       </invalid>
   4334       <invalid>
   4335         <doc>-001</doc>
   4336       </invalid>
   4337     </testCase>
   4338     <testCase>
   4339       <correct>
   4340         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4341           <value type="short">-1</value>
   4342         </element>
   4343       </correct>
   4344       <valid>
   4345         <doc> -1 </doc>
   4346       </valid>
   4347       <valid>
   4348         <doc>-001</doc>
   4349       </valid>
   4350       <invalid>
   4351         <doc>1</doc>
   4352       </invalid>
   4353       <invalid>
   4354         <doc>+1</doc>
   4355       </invalid>
   4356       <invalid>
   4357         <doc> 1 </doc>
   4358       </invalid>
   4359       <invalid>
   4360         <doc>001</doc>
   4361       </invalid>
   4362     </testCase>
   4363   </testSuite>
   4364   <testSuite>
   4365     <documentation>Datatype byte</documentation>
   4366     <testCase>
   4367       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4368       <correct>
   4369         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4370           <data type="byte"/>
   4371         </element>
   4372       </correct>
   4373       <valid>
   4374         <doc>1</doc>
   4375       </valid>
   4376       <valid>
   4377         <doc>127</doc>
   4378       </valid>
   4379       <valid>
   4380         <doc>-128</doc>
   4381       </valid>
   4382       <invalid>
   4383         <doc>128</doc>
   4384       </invalid>
   4385       <invalid>
   4386         <doc>-129</doc>
   4387       </invalid>
   4388     </testCase>
   4389   </testSuite>
   4390   <testSuite>
   4391     <documentation>Datatype unsignedLong</documentation>
   4392     <testCase>
   4393       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4394       <correct>
   4395         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4396           <data type="unsignedLong"/>
   4397         </element>
   4398       </correct>
   4399       <valid>
   4400         <doc>1</doc>
   4401       </valid>
   4402       <valid>
   4403         <doc>+1</doc>
   4404       </valid>
   4405       <invalid>
   4406         <doc>-1</doc>
   4407       </invalid>
   4408       <valid>
   4409         <doc>0</doc>
   4410       </valid>
   4411       <valid>
   4412         <doc>18446744073709551615</doc>
   4413       </valid>
   4414       <invalid>
   4415         <doc>18446744073709551616</doc>
   4416       </invalid>
   4417       <invalid>
   4418         <doc>-1</doc>
   4419       </invalid>
   4420     </testCase>
   4421   </testSuite>
   4422   <testSuite>
   4423     <documentation>Datatype unsignedInt</documentation>
   4424     <testCase>
   4425       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4426       <correct>
   4427         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4428           <data type="unsignedInt"/>
   4429         </element>
   4430       </correct>
   4431       <valid>
   4432         <doc>1</doc>
   4433       </valid>
   4434       <valid>
   4435         <doc>+1</doc>
   4436       </valid>
   4437       <valid>
   4438         <doc>0</doc>
   4439       </valid>
   4440       <valid>
   4441         <doc>4294967295</doc>
   4442       </valid>
   4443       <invalid>
   4444         <doc>4294967296</doc>
   4445       </invalid>
   4446       <invalid>
   4447         <doc>-1</doc>
   4448       </invalid>
   4449     </testCase>
   4450   </testSuite>
   4451   <testSuite>
   4452     <documentation>Datatype unsignedShort</documentation>
   4453     <testCase>
   4454       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4455       <correct>
   4456         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4457           <data type="unsignedShort"/>
   4458         </element>
   4459       </correct>
   4460       <valid>
   4461         <doc>1</doc>
   4462       </valid>
   4463       <valid>
   4464         <doc>+1</doc>
   4465       </valid>
   4466       <valid>
   4467         <doc>0</doc>
   4468       </valid>
   4469       <valid>
   4470         <doc>65535</doc>
   4471       </valid>
   4472       <invalid>
   4473         <doc>65536</doc>
   4474       </invalid>
   4475       <invalid>
   4476         <doc>-1</doc>
   4477       </invalid>
   4478     </testCase>
   4479   </testSuite>
   4480   <testSuite>
   4481     <documentation>Datatype unsignedByte</documentation>
   4482     <testCase>
   4483       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4484       <correct>
   4485         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4486           <data type="unsignedByte"/>
   4487         </element>
   4488       </correct>
   4489       <valid>
   4490         <doc>1</doc>
   4491       </valid>
   4492       <valid>
   4493         <doc>+1</doc>
   4494       </valid>
   4495       <valid>
   4496         <doc>0</doc>
   4497       </valid>
   4498       <valid>
   4499         <doc>255</doc>
   4500       </valid>
   4501       <invalid>
   4502         <doc>256</doc>
   4503       </invalid>
   4504       <invalid>
   4505         <doc>-1</doc>
   4506       </invalid>
   4507     </testCase>
   4508   </testSuite>
   4509   <testSuite>
   4510     <documentation>Datatype string</documentation>
   4511     <testCase>
   4512       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4513       <correct>
   4514         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4515           <data type="string"/>
   4516         </element>
   4517       </correct>
   4518       <valid>
   4519         <doc>any thing at all!</doc>
   4520       </valid>
   4521     </testCase>
   4522   </testSuite>
   4523   <testSuite>
   4524     <documentation>Datatype normalizedString</documentation>
   4525     <testCase>
   4526       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4527       <correct>
   4528         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4529           <data type="normalizedString"/>
   4530         </element>
   4531       </correct>
   4532       <valid>
   4533         <doc>any thing at all!</doc>
   4534       </valid>
   4535     </testCase>
   4536   </testSuite>
   4537   <testSuite>
   4538     <documentation>Datatype token</documentation>
   4539     <testCase>
   4540       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4541       <correct>
   4542         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4543           <data type="token"/>
   4544         </element>
   4545       </correct>
   4546       <valid>
   4547         <doc>any thing at all!</doc>
   4548       </valid>
   4549     </testCase>
   4550     <testCase>
   4551       <correct>
   4552         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4553           <value type="token"></value>
   4554         </element>
   4555       </correct>
   4556       <valid>
   4557         <doc> </doc>
   4558       </valid>
   4559       <valid>
   4560         <doc>	
   4561 &#13; </doc>
   4562       </valid>
   4563       <invalid>
   4564         <doc>x </doc>
   4565       </invalid>
   4566       <invalid>
   4567         <doc>x
   4568 </doc>
   4569       </invalid>
   4570       <invalid>
   4571         <doc>x&#13;</doc>
   4572       </invalid>
   4573       <invalid>
   4574         <doc>x	</doc>
   4575       </invalid>
   4576       <invalid>
   4577         <doc> x</doc>
   4578       </invalid>
   4579       <invalid>
   4580         <doc>
   4581 x</doc>
   4582       </invalid>
   4583       <invalid>
   4584         <doc>&#13;x</doc>
   4585       </invalid>
   4586       <invalid>
   4587         <doc>	x</doc>
   4588       </invalid>
   4589       <invalid>
   4590         <doc>	
   4591 &#13; x	
   4592 &#13; </doc>
   4593       </invalid>
   4594       <invalid>
   4595         <doc>x y </doc>
   4596       </invalid>
   4597       <invalid>
   4598         <doc>x y
   4599 </doc>
   4600       </invalid>
   4601       <invalid>
   4602         <doc>x y&#13;</doc>
   4603       </invalid>
   4604       <invalid>
   4605         <doc>x y	</doc>
   4606       </invalid>
   4607       <invalid>
   4608         <doc>x y</doc>
   4609       </invalid>
   4610       <invalid>
   4611         <doc>x
   4612 y</doc>
   4613       </invalid>
   4614       <invalid>
   4615         <doc>x&#13;y</doc>
   4616       </invalid>
   4617       <invalid>
   4618         <doc>x	y</doc>
   4619       </invalid>
   4620       <invalid>
   4621         <doc> x y</doc>
   4622       </invalid>
   4623       <invalid>
   4624         <doc>
   4625 x y</doc>
   4626       </invalid>
   4627       <invalid>
   4628         <doc>&#13;x y</doc>
   4629       </invalid>
   4630       <invalid>
   4631         <doc>	x y</doc>
   4632       </invalid>
   4633       <invalid>
   4634         <doc>	
   4635 &#13; x	
   4636 &#13; y	
   4637 &#13; </doc>
   4638       </invalid>
   4639     </testCase>
   4640     <testCase>
   4641       <correct>
   4642         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4643           <value type="token">x </value>
   4644         </element>
   4645       </correct>
   4646       <valid>
   4647         <doc>x
   4648 </doc>
   4649       </valid>
   4650       <valid>
   4651         <doc>x&#13;</doc>
   4652       </valid>
   4653       <valid>
   4654         <doc>x	</doc>
   4655       </valid>
   4656       <valid>
   4657         <doc> x</doc>
   4658       </valid>
   4659       <valid>
   4660         <doc>
   4661 x</doc>
   4662       </valid>
   4663       <valid>
   4664         <doc>&#13;x</doc>
   4665       </valid>
   4666       <valid>
   4667         <doc>	x</doc>
   4668       </valid>
   4669       <valid>
   4670         <doc>	
   4671 &#13; x	
   4672 &#13; </doc>
   4673       </valid>
   4674       <invalid>
   4675         <doc></doc>
   4676       </invalid>
   4677       <invalid>
   4678         <doc> </doc>
   4679       </invalid>
   4680       <invalid>
   4681         <doc>	
   4682 &#13; </doc>
   4683       </invalid>
   4684       <invalid>
   4685         <doc>x y </doc>
   4686       </invalid>
   4687       <invalid>
   4688         <doc>x y
   4689 </doc>
   4690       </invalid>
   4691       <invalid>
   4692         <doc>x y&#13;</doc>
   4693       </invalid>
   4694       <invalid>
   4695         <doc>x y	</doc>
   4696       </invalid>
   4697       <invalid>
   4698         <doc>x y</doc>
   4699       </invalid>
   4700       <invalid>
   4701         <doc>x
   4702 y</doc>
   4703       </invalid>
   4704       <invalid>
   4705         <doc>x&#13;y</doc>
   4706       </invalid>
   4707       <invalid>
   4708         <doc>x	y</doc>
   4709       </invalid>
   4710       <invalid>
   4711         <doc> x y</doc>
   4712       </invalid>
   4713       <invalid>
   4714         <doc>
   4715 x y</doc>
   4716       </invalid>
   4717       <invalid>
   4718         <doc>&#13;x y</doc>
   4719       </invalid>
   4720       <invalid>
   4721         <doc>	x y</doc>
   4722       </invalid>
   4723       <invalid>
   4724         <doc>	
   4725 &#13; x	
   4726 &#13; y	
   4727 &#13; </doc>
   4728       </invalid>
   4729     </testCase>
   4730     <testCase>
   4731       <correct>
   4732         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4733           <value type="token">x y </value>
   4734         </element>
   4735       </correct>
   4736       <valid>
   4737         <doc>x y
   4738 </doc>
   4739       </valid>
   4740       <valid>
   4741         <doc>x y&#13;</doc>
   4742       </valid>
   4743       <valid>
   4744         <doc>x y	</doc>
   4745       </valid>
   4746       <valid>
   4747         <doc>x y</doc>
   4748       </valid>
   4749       <valid>
   4750         <doc>x
   4751 y</doc>
   4752       </valid>
   4753       <valid>
   4754         <doc>x&#13;y</doc>
   4755       </valid>
   4756       <valid>
   4757         <doc>x	y</doc>
   4758       </valid>
   4759       <valid>
   4760         <doc> x y</doc>
   4761       </valid>
   4762       <valid>
   4763         <doc>
   4764 x y</doc>
   4765       </valid>
   4766       <valid>
   4767         <doc>&#13;x y</doc>
   4768       </valid>
   4769       <valid>
   4770         <doc>	x y</doc>
   4771       </valid>
   4772       <valid>
   4773         <doc>	
   4774 &#13; x	
   4775 &#13; y	
   4776 &#13; </doc>
   4777       </valid>
   4778       <invalid>
   4779         <doc></doc>
   4780       </invalid>
   4781       <invalid>
   4782         <doc> </doc>
   4783       </invalid>
   4784       <invalid>
   4785         <doc>	
   4786 &#13; </doc>
   4787       </invalid>
   4788       <invalid>
   4789         <doc>x </doc>
   4790       </invalid>
   4791       <invalid>
   4792         <doc>x
   4793 </doc>
   4794       </invalid>
   4795       <invalid>
   4796         <doc>x&#13;</doc>
   4797       </invalid>
   4798       <invalid>
   4799         <doc>x	</doc>
   4800       </invalid>
   4801       <invalid>
   4802         <doc> x</doc>
   4803       </invalid>
   4804       <invalid>
   4805         <doc>
   4806 x</doc>
   4807       </invalid>
   4808       <invalid>
   4809         <doc>&#13;x</doc>
   4810       </invalid>
   4811       <invalid>
   4812         <doc>	x</doc>
   4813       </invalid>
   4814       <invalid>
   4815         <doc>	
   4816 &#13; x	
   4817 &#13; </doc>
   4818       </invalid>
   4819     </testCase>
   4820     <testCase>
   4821       <correct>
   4822         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4823           <data type="token">
   4824             <param name="length">0</param>
   4825           </data>
   4826         </element>
   4827       </correct>
   4828       <valid>
   4829         <doc></doc>
   4830       </valid>
   4831     </testCase>
   4832     <testCase>
   4833       <correct>
   4834         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4835           <data type="token">
   4836             <param name="length">1</param>
   4837           </data>
   4838         </element>
   4839       </correct>
   4840       <invalid>
   4841         <doc></doc>
   4842       </invalid>
   4843     </testCase>
   4844     <testCase>
   4845       <correct>
   4846         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4847           <data type="token">
   4848             <param name="length">1</param>
   4849           </data>
   4850         </element>
   4851       </correct>
   4852       <valid>
   4853         <doc>x</doc>
   4854       </valid>
   4855     </testCase>
   4856     <testCase>
   4857       <correct>
   4858         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4859           <data type="token">
   4860             <param name="length">2</param>
   4861           </data>
   4862         </element>
   4863       </correct>
   4864       <invalid>
   4865         <doc>x</doc>
   4866       </invalid>
   4867     </testCase>
   4868     <testCase>
   4869       <correct>
   4870         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4871           <data type="token">
   4872             <param name="length">0</param>
   4873           </data>
   4874         </element>
   4875       </correct>
   4876       <invalid>
   4877         <doc>x</doc>
   4878       </invalid>
   4879     </testCase>
   4880     <testCase>
   4881       <correct>
   4882         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4883           <data type="token">
   4884             <param name="length">1</param>
   4885           </data>
   4886         </element>
   4887       </correct>
   4888       <valid>
   4889         <doc> x </doc>
   4890       </valid>
   4891     </testCase>
   4892     <testCase>
   4893       <correct>
   4894         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4895           <data type="token">
   4896             <param name="length">2</param>
   4897           </data>
   4898         </element>
   4899       </correct>
   4900       <invalid>
   4901         <doc> x </doc>
   4902       </invalid>
   4903     </testCase>
   4904     <testCase>
   4905       <correct>
   4906         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4907           <data type="token">
   4908             <param name="length">0</param>
   4909           </data>
   4910         </element>
   4911       </correct>
   4912       <invalid>
   4913         <doc> x </doc>
   4914       </invalid>
   4915     </testCase>
   4916     <testCase>
   4917       <correct>
   4918         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4919           <data type="token">
   4920             <param name="length">1</param>
   4921           </data>
   4922         </element>
   4923       </correct>
   4924       <valid>
   4925         <doc></doc>
   4926       </valid>
   4927     </testCase>
   4928     <testCase>
   4929       <correct>
   4930         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4931           <data type="token">
   4932             <param name="length">2</param>
   4933           </data>
   4934         </element>
   4935       </correct>
   4936       <invalid>
   4937         <doc></doc>
   4938       </invalid>
   4939     </testCase>
   4940     <testCase>
   4941       <correct>
   4942         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4943           <data type="token">
   4944             <param name="length">0</param>
   4945           </data>
   4946         </element>
   4947       </correct>
   4948       <invalid>
   4949         <doc></doc>
   4950       </invalid>
   4951     </testCase>
   4952   </testSuite>
   4953   <testSuite>
   4954     <documentation>Datatype language</documentation>
   4955     <testCase>
   4956       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4957       <correct>
   4958         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4959           <data type="language"/>
   4960         </element>
   4961       </correct>
   4962       <valid>
   4963         <doc>en</doc>
   4964       </valid>
   4965       <valid>
   4966         <doc>en-UK</doc>
   4967       </valid>
   4968       <valid>
   4969         <doc>i-cherokee</doc>
   4970       </valid>
   4971       <valid>
   4972         <doc>x-klingon</doc>
   4973       </valid>
   4974       <valid>
   4975         <doc>en-uk-scotland</doc>
   4976       </valid>
   4977       <invalid>
   4978         <doc>en.UK</doc>
   4979       </invalid>
   4980     </testCase>
   4981   </testSuite>
   4982   <testSuite>
   4983     <documentation>Datatype Name</documentation>
   4984     <testCase>
   4985       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4986       <correct>
   4987         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4988           <data type="Name"/>
   4989         </element>
   4990       </correct>
   4991       <valid>
   4992         <doc>foo</doc>
   4993       </valid>
   4994       <valid>
   4995         <doc>_0123456789</doc>
   4996       </valid>
   4997       <invalid>
   4998         <doc>.</doc>
   4999       </invalid>
   5000       <valid>
   5001         <doc>:</doc>
   5002       </valid>
   5003       <invalid>
   5004         <doc>-</doc>
   5005       </invalid>
   5006       <invalid>
   5007         <doc>1234</doc>
   5008       </invalid>
   5009       <valid>
   5010         <doc> foo </doc>
   5011       </valid>
   5012     </testCase>
   5013   </testSuite>
   5014   <testSuite>
   5015     <documentation>Datatype NCName</documentation>
   5016     <testCase>
   5017       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5018       <correct>
   5019         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5020           <data type="NCName"/>
   5021         </element>
   5022       </correct>
   5023       <valid>
   5024         <doc>foo</doc>
   5025       </valid>
   5026       <invalid>
   5027         <doc>foo:bar</doc>
   5028       </invalid>
   5029       <invalid>
   5030         <doc>0foo</doc>
   5031       </invalid>
   5032     </testCase>
   5033     <testCase>
   5034       <correct>
   5035         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5036           <value type="NCName">foo</value>
   5037         </element>
   5038       </correct>
   5039       <valid>
   5040         <doc> foo </doc>
   5041       </valid>
   5042       <invalid>
   5043         <doc>FOO</doc>
   5044       </invalid>
   5045       <invalid>
   5046         <doc> FOO </doc>
   5047       </invalid>
   5048     </testCase>
   5049     <testCase>
   5050       <correct>
   5051         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5052           <value type="NCName">FOO</value>
   5053         </element>
   5054       </correct>
   5055       <valid>
   5056         <doc> FOO </doc>
   5057       </valid>
   5058       <invalid>
   5059         <doc>foo</doc>
   5060       </invalid>
   5061       <invalid>
   5062         <doc> foo </doc>
   5063       </invalid>
   5064     </testCase>
   5065   </testSuite>
   5066   <testSuite>
   5067     <documentation>Datatype NMTOKEN</documentation>
   5068     <testCase>
   5069       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5070       <correct>
   5071         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5072           <data type="NMTOKEN"/>
   5073         </element>
   5074       </correct>
   5075       <valid>
   5076         <doc>foo</doc>
   5077       </valid>
   5078       <valid>
   5079         <doc>_</doc>
   5080       </valid>
   5081       <valid>
   5082         <doc>.</doc>
   5083       </valid>
   5084       <valid>
   5085         <doc>:</doc>
   5086       </valid>
   5087       <valid>
   5088         <doc>-</doc>
   5089       </valid>
   5090       <valid>
   5091         <doc>1234</doc>
   5092       </valid>
   5093       <valid>
   5094         <doc> foo </doc>
   5095       </valid>
   5096     </testCase>
   5097     <testCase>
   5098       <correct>
   5099         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5100           <data type="NMTOKEN">
   5101             <param name="length">3</param>
   5102           </data>
   5103         </element>
   5104       </correct>
   5105       <valid>
   5106         <doc> foo </doc>
   5107       </valid>
   5108     </testCase>
   5109     <testCase>
   5110       <correct>
   5111         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5112           <data type="NMTOKEN">
   5113             <param name="length">4</param>
   5114           </data>
   5115         </element>
   5116       </correct>
   5117       <invalid>
   5118         <doc> foo </doc>
   5119       </invalid>
   5120     </testCase>
   5121     <testCase>
   5122       <correct>
   5123         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5124           <data type="NMTOKEN">
   5125             <param name="length">2</param>
   5126           </data>
   5127         </element>
   5128       </correct>
   5129       <invalid>
   5130         <doc> foo </doc>
   5131       </invalid>
   5132     </testCase>
   5133     <testCase>
   5134       <correct>
   5135         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5136           <data type="NMTOKEN">
   5137             <param name="length">2</param>
   5138           </data>
   5139         </element>
   5140       </correct>
   5141       <valid>
   5142         <doc>fo</doc>
   5143       </valid>
   5144     </testCase>
   5145     <testCase>
   5146       <correct>
   5147         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5148           <data type="NMTOKEN">
   5149             <param name="length">3</param>
   5150           </data>
   5151         </element>
   5152       </correct>
   5153       <invalid>
   5154         <doc>fo</doc>
   5155       </invalid>
   5156     </testCase>
   5157     <testCase>
   5158       <correct>
   5159         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5160           <data type="NMTOKEN">
   5161             <param name="length">1</param>
   5162           </data>
   5163         </element>
   5164       </correct>
   5165       <invalid>
   5166         <doc>fo</doc>
   5167       </invalid>
   5168     </testCase>
   5169     <testCase>
   5170       <correct>
   5171         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5172           <data type="NMTOKEN">
   5173             <param name="length">1</param>
   5174           </data>
   5175         </element>
   5176       </correct>
   5177       <valid>
   5178         <doc>f</doc>
   5179       </valid>
   5180     </testCase>
   5181     <testCase>
   5182       <correct>
   5183         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5184           <data type="NMTOKEN">
   5185             <param name="length">2</param>
   5186           </data>
   5187         </element>
   5188       </correct>
   5189       <invalid>
   5190         <doc>f</doc>
   5191       </invalid>
   5192     </testCase>
   5193     <testCase>
   5194       <correct>
   5195         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5196           <data type="NMTOKEN">
   5197             <param name="length">0</param>
   5198           </data>
   5199         </element>
   5200       </correct>
   5201       <invalid>
   5202         <doc>f</doc>
   5203       </invalid>
   5204     </testCase>
   5205   </testSuite>
   5206   <testSuite>
   5207     <documentation>Datatype NMTOKENS</documentation>
   5208     <testCase>
   5209       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5210       <correct>
   5211         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5212           <data type="NMTOKENS"/>
   5213         </element>
   5214       </correct>
   5215       <valid>
   5216         <doc>foo bar</doc>
   5217       </valid>
   5218       <invalid>
   5219         <doc></doc>
   5220       </invalid>
   5221       <valid>
   5222         <doc>1 2 3 4</doc>
   5223       </valid>
   5224     </testCase>
   5225   </testSuite>
   5226   <testSuite>
   5227     <documentation>Datatype ID</documentation>
   5228     <testCase>
   5229       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5230       <correct>
   5231         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5232           <data type="ID"/>
   5233         </element>
   5234       </correct>
   5235       <valid>
   5236         <doc>foobar</doc>
   5237       </valid>
   5238       <invalid>
   5239         <doc>foo:bar</doc>
   5240       </invalid>
   5241       <invalid>
   5242         <doc>foo bar</doc>
   5243       </invalid>
   5244     </testCase>
   5245   </testSuite>
   5246   <testSuite>
   5247     <documentation>Datatype ENTITY</documentation>
   5248     <testCase>
   5249       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5250       <correct>
   5251         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5252           <data type="ENTITY"/>
   5253         </element>
   5254       </correct>
   5255       <invalid>
   5256         <doc></doc>
   5257       </invalid>
   5258       <invalid>
   5259         <doc>foo</doc>
   5260       </invalid>
   5261       <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;&#10;]&gt;">
   5262         <doc>foo</doc>
   5263       </valid>
   5264     </testCase>
   5265   </testSuite>
   5266   <testSuite>
   5267     <documentation>Datatype ENTITIES</documentation>
   5268     <testCase>
   5269       <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   5270       <correct>
   5271         <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   5272           <data type="ENTITIES"/>
   5273         </element>
   5274       </correct>
   5275       <invalid>
   5276         <doc></doc>
   5277       </invalid>
   5278       <invalid>
   5279         <doc>foo</doc>
   5280       </invalid>
   5281       <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt; &#10;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg&gt; &#10;]&gt;">
   5282         <doc> foo bar </doc>
   5283       </valid>
   5284     </testCase>
   5285   </testSuite>
   5286 </testSuite>
   5287