Home | History | Annotate | Download | only in OASIS
      1 <!DOCTYPE testSuite [
      2 <!ENTITY dii "<&#xE14;&#xE35;/>">
      3 ]>
      4 <testSuite>
      5 <author>James Clark</author>
      6 <email>jjc (a] jclark.com</email>
      7 <documentation>For October 26 version of the spec.</documentation>
      8 <testSuite>
      9 <section>3</section>
     10 <testSuite>
     11 <documentation>Various possible syntax errors.</documentation>
     12 <testCase>
     13 <section>3</section>
     14 <incorrect>
     15 <thisIsJunk/>
     16 </incorrect>
     17 </testCase>
     18 <testCase>
     19 <section>3</section>
     20 <incorrect>
     21 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
     22   <element name="foo">
     23     <empty/>
     24   </element>
     25   <start>
     26     <element name="foo">
     27       <empty/>
     28     </element>
     29   </start>
     30 </grammar>
     31 </incorrect>
     32 </testCase>
     33 <testCase>
     34 <section>3</section>
     35 <incorrect>
     36 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
     37   <define name="bar">
     38     <text/>
     39   </define>
     40   <text/>
     41 </element>
     42 </incorrect>
     43 </testCase>
     44 <testCase>
     45 <section>3</section>
     46 <incorrect>
     47 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
     48   <name>foo</name>
     49   <empty/>
     50 </element>
     51 </incorrect>
     52 </testCase>
     53 <testCase>
     54 <section>3</section>
     55 <incorrect>
     56 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
     57   <group>
     58     <name>bar</name>
     59   </group>
     60 </element>
     61 </incorrect>
     62 </testCase>
     63 <testCase>
     64 <section>3</section>
     65 <incorrect>
     66 <element xmlns="http://relaxng.org/ns/structure/1.0">
     67   <anyName>
     68     <except>
     69       <name>foo</name>
     70     </except>
     71     <except>
     72       <name>bar</name>
     73     </except>
     74   </anyName>
     75   <empty/>
     76 </element>
     77 </incorrect>
     78 </testCase>
     79 <testCase>
     80 <section>3</section>
     81 <incorrect>
     82 <element xmlns="http://relaxng.org/ns/structure/1.0">
     83   <nsName>
     84     <except>
     85       <name>foo</name>
     86     </except>
     87     <except>
     88       <name>bar</name>
     89     </except>
     90   </nsName>
     91   <empty/>
     92 </element>
     93 </incorrect>
     94 </testCase>
     95 <testCase>
     96 <section>3</section>
     97 <incorrect>
     98 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
     99   <data type="token">
    100     <except>
    101       <value>foo</value>
    102     </except>
    103     <except>
    104       <value>bar</value>
    105     </except>
    106   </data>
    107 </element>
    108 </incorrect>
    109 </testCase>
    110 <testCase>
    111 <section>3</section>
    112 <incorrect>
    113 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    114   <empty name="bar"/>
    115 </element>
    116 </incorrect>
    117 </testCase>
    118 <testCase>
    119 <section>3</section>
    120 <incorrect>
    121 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" extra="bar">
    122   <empty/>
    123 </element>
    124 </incorrect>
    125 </testCase>
    126 <testCase>
    127 <section>3</section>
    128 <incorrect>
    129 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    130   <empty>
    131     <empty/>
    132   </empty>
    133 </element>
    134 </incorrect>
    135 </testCase>
    136 <testCase>
    137 <section>3</section>
    138 <incorrect>
    139 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    140   <text>
    141     <empty/>
    142   </text>
    143 </element>
    144 </incorrect>
    145 </testCase>
    146 <testCase>
    147 <section>3</section>
    148 <incorrect>
    149 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    150   <choice>
    151     <text/>
    152     <notAllowed>
    153       <empty/>
    154     </notAllowed>
    155   </choice>
    156 </element>
    157 </incorrect>
    158 </testCase>
    159 <testCase>
    160 <section>3</section>
    161 <incorrect>
    162 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    163   <start>
    164     <ref name="foo">
    165       <empty/>
    166     </ref>
    167   </start>
    168   <define name="foo">
    169     <element name="foo">
    170       <empty/>
    171     </element>
    172   </define>
    173 </grammar>
    174 </incorrect>
    175 </testCase>
    176 <testCase>
    177 <section>3</section>
    178 <incorrect>
    179 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    180   <start>
    181     <grammar>
    182       <start>
    183         <parentRef name="foo">
    184           <empty/>
    185         </parentRef>
    186       </start>
    187     </grammar>
    188   </start>
    189   <define name="foo">
    190     <element name="foo">
    191       <empty/>
    192     </element>
    193   </define>
    194 </grammar>
    195 </incorrect>
    196 </testCase>
    197 </testSuite>
    198 <testSuite>
    199 <documentation>Tests for obsolete syntax</documentation>
    200 <testCase>
    201 <section>3</section>
    202 <incorrect>
    203 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    204   <start name="foo">
    205     <element name="foo">
    206       <empty/>
    207     </element>
    208   </start>
    209 </grammar>
    210 </incorrect>
    211 </testCase>
    212 <testCase>
    213 <section>3</section>
    214 <incorrect>
    215 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" ns="http://www.example.com">
    216   <attribute name="bar" global="true">
    217     <text/>
    218   </attribute>
    219 </element>
    220 </incorrect>
    221 </testCase>
    222 <testCase>
    223 <section>3</section>
    224 <incorrect>
    225 <element xmlns="http://relaxng.org/ns/structure/1.0">
    226   <not>
    227     <name>foo</name>
    228   </not>
    229   <empty/>
    230 </element>
    231 </incorrect>
    232 </testCase>
    233 <testCase>
    234 <section>3</section>
    235 <incorrect>
    236 <element xmlns="http://relaxng.org/ns/structure/1.0">
    237   <difference>
    238     <anyName/>
    239     <name>foo</name>
    240   </difference>
    241   <empty/>
    242 </element>
    243 </incorrect>
    244 </testCase>
    245 <testCase>
    246 <section>3</section>
    247 <incorrect>
    248 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    249   <data type="token" key="foo"/>
    250 </element>
    251 </incorrect>
    252 </testCase>
    253 <testCase>
    254 <section>3</section>
    255 <incorrect>
    256 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    257   <data type="token" keyRef="foo"/>
    258 </element>
    259 </incorrect>
    260 </testCase>
    261 <testCase>
    262 <section>3</section>
    263 <incorrect>
    264 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    265   <keyRef name="foo">
    266     <data type="token"/>
    267   </keyRef>
    268 </element>
    269 </incorrect>
    270 </testCase>
    271 <testCase>
    272 <section>3</section>
    273 <incorrect>
    274 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    275   <key name="foo">
    276     <data type="token"/>
    277   </key>
    278 </element>
    279 </incorrect>
    280 </testCase>
    281 </testSuite>
    282 <testSuite>
    283 <documentation>Tests for missing attributes and child elements</documentation>
    284 <testCase>
    285 <section>3</section>
    286 <incorrect>
    287 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    288 </element>
    289 </incorrect>
    290 </testCase>
    291 <testCase>
    292 <section>3</section>
    293 <incorrect>
    294 <element xmlns="http://relaxng.org/ns/structure/1.0">
    295   <name>foo</name>
    296 </element>
    297 </incorrect>
    298 </testCase>
    299 <testCase>
    300 <section>3</section>
    301 <incorrect>
    302 <element xmlns="http://relaxng.org/ns/structure/1.0">
    303 </element>
    304 </incorrect>
    305 </testCase>
    306 <testCase>
    307 <section>3</section>
    308 <incorrect>
    309 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    310   <attribute/>
    311 </element>
    312 </incorrect>
    313 </testCase>
    314 <testCase>
    315 <section>3</section>
    316 <incorrect>
    317 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    318   <group/>
    319 </element>
    320 </incorrect>
    321 </testCase>
    322 <testCase>
    323 <section>3</section>
    324 <incorrect>
    325 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    326   <interleave/>
    327 </element>
    328 </incorrect>
    329 </testCase>
    330 <testCase>
    331 <section>3</section>
    332 <incorrect>
    333 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    334   <choice/>
    335 </element>
    336 </incorrect>
    337 </testCase>
    338 <testCase>
    339 <section>3</section>
    340 <incorrect>
    341 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    342   <optional/>
    343 </element>
    344 </incorrect>
    345 </testCase>
    346 <testCase>
    347 <section>3</section>
    348 <incorrect>
    349 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    350   <zeroOrMore/>
    351 </element>
    352 </incorrect>
    353 </testCase>
    354 <testCase>
    355 <section>3</section>
    356 <incorrect>
    357 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    358   <oneOrMore/>
    359 </element>
    360 </incorrect>
    361 </testCase>
    362 <testCase>
    363 <section>3</section>
    364 <incorrect>
    365 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    366   <list/>
    367 </element>
    368 </incorrect>
    369 </testCase>
    370 <testCase>
    371 <section>3</section>
    372 <incorrect>
    373 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    374   <mixed/>
    375 </element>
    376 </incorrect>
    377 </testCase>
    378 <testCase>
    379 <section>3</section>
    380 <incorrect>
    381 <element xmlns="http://relaxng.org/ns/structure/1.0">
    382   <choice/>
    383   <empty/>
    384 </element>
    385 </incorrect>
    386 </testCase>
    387 <testCase>
    388 <section>3</section>
    389 <incorrect>
    390 <element xmlns="http://relaxng.org/ns/structure/1.0">
    391   <anyName>
    392     <except/>
    393   </anyName>
    394   <empty/>
    395 </element>
    396 </incorrect>
    397 </testCase>
    398 <testCase>
    399 <section>3</section>
    400 <incorrect>
    401 <element xmlns="http://relaxng.org/ns/structure/1.0">
    402   <nsName ns="">
    403     <except/>
    404   </nsName>
    405   <empty/>
    406 </element>
    407 </incorrect>
    408 </testCase>
    409 <testCase>
    410 <section>3</section>
    411 <incorrect>
    412 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    413   <data type="string">
    414     <except/>
    415   </data>
    416 </element>
    417 </incorrect>
    418 </testCase>
    419 <testCase>
    420 <section>3</section>
    421 <incorrect>
    422 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    423   <data/>
    424 </element>
    425 </incorrect>
    426 </testCase>
    427 <testCase>
    428 <section>3</section>
    429 <incorrect>
    430 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    431   <data type="string">
    432     <param/>
    433   </data>
    434 </element>
    435 </incorrect>
    436 </testCase>
    437 <testCase>
    438 <section>3</section>
    439 <incorrect>
    440 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    441   <grammar>
    442     <start/>
    443   </grammar>
    444 </element>
    445 </incorrect>
    446 </testCase>
    447 <testCase>
    448 <section>3</section>
    449 <incorrect>
    450 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    451   <start>
    452     <element name="bar">
    453       <empty/>
    454     </element>
    455   </start>
    456   <define name="baz"/>
    457 </grammar>
    458 </incorrect>
    459 </testCase>
    460 <testCase>
    461 <section>3</section>
    462 <incorrect>
    463 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    464   <externalRef/>
    465 </element>
    466 </incorrect>
    467 </testCase>
    468 <testCase>
    469 <section>3</section>
    470 <incorrect>
    471 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    472   <include/>
    473   <start>
    474     <element name="foo">
    475       <empty/>
    476     </element>
    477   </start>
    478 </grammar>
    479 </incorrect>
    480 </testCase>
    481 <testCase>
    482 <section>3</section>
    483 <incorrect>
    484 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    485   <start>
    486     <element name="foo">
    487       <empty/>
    488     </element>
    489   </start>
    490   <define>
    491     <element name="bar">
    492       <empty/>
    493     </element>
    494   </define>
    495 </grammar>
    496 </incorrect>
    497 </testCase>
    498 <testCase>
    499 <section>3</section>
    500 <incorrect>
    501 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    502   <start>
    503     <ref/>
    504   </start>
    505   <define name="foo">
    506     <element name="foo">
    507       <empty/>
    508     </element>
    509   </define>
    510 </grammar>
    511 </incorrect>
    512 </testCase>
    513 <testCase>
    514 <section>3</section>
    515 <incorrect>
    516 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    517   <start>
    518     <grammar>
    519       <start>
    520         <parentRef/>
    521       </start>
    522     </grammar>
    523   </start>
    524   <define name="foo">
    525     <element name="foo">
    526       <empty/>
    527     </element>
    528   </define>
    529 </grammar>
    530 </incorrect>
    531 </testCase>
    532 </testSuite>
    533 <testSuite>
    534 <documentation>Checking of ns attribute</documentation>
    535 <testCase>
    536 <section>3</section>
    537 <correct>
    538 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="">
    539   <empty/>
    540 </element>
    541 </correct>
    542 <valid>
    543 <foo/>
    544 </valid>
    545 </testCase>
    546 <testCase>
    547 <section>3</section>
    548 <documentation>No checking of ns attribute is performed</documentation>
    549 <correct>
    550 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="DAV:">
    551   <empty/>
    552 </element>
    553 </correct>
    554 <valid>
    555 <foo xmlns="DAV:"/>
    556 </valid>
    557 </testCase>
    558 <testCase>
    559 <section>3</section>
    560 <documentation>No checking of ns attribute is performed</documentation>
    561 <correct>
    562 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="xyzzy">
    563   <empty/>
    564 </element>
    565 </correct>
    566 </testCase>
    567 <testCase>
    568 <section>3</section>
    569 <documentation>No checking of ns attribute is performed</documentation>
    570 <correct>
    571 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="bad_scheme://">
    572   <empty/>
    573 </element>
    574 </correct>
    575 </testCase>
    576 </testSuite>
    577 <testSuite>
    578 <documentation>Checking of datatypeLibrary attribute</documentation>
    579 <testCase>
    580 <section>3</section>
    581 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    582 <incorrect>
    583 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo_bar:xyzzy">
    584   <empty/>
    585 </element>
    586 </incorrect>
    587 </testCase>
    588 <testCase>
    589 <section>3</section>
    590 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    591 <correct>
    592 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foobar:xyzzy">
    593   <empty/>
    594 </element>
    595 </correct>
    596 <valid>
    597 <foo/>
    598 </valid>
    599 </testCase>
    600 <testCase>
    601 <section>3</section>
    602 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    603 <correct>
    604 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http:ok">
    605   <empty/>
    606 </element>
    607 </correct>
    608 <valid>
    609 <foo/>
    610 </valid>
    611 </testCase>
    612 <testCase>
    613 <section>3</section>
    614 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    615 <incorrect>
    616 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo:">
    617   <empty/>
    618 </element>
    619 </incorrect>
    620 </testCase>
    621 <testCase>
    622 <section>3</section>
    623 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    624 <incorrect>
    625 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%">
    626   <empty/>
    627 </element>
    628 </incorrect>
    629 </testCase>
    630 <testCase>
    631 <section>3</section>
    632 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    633 <incorrect>
    634 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%xx">
    635   <empty/>
    636 </element>
    637 </incorrect>
    638 </testCase>
    639 <testCase>
    640 <section>3</section>
    641 <documentation>Value of datatypeLibrary attribute must conform to RFC 2396</documentation>
    642 <correct>
    643 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.example.com/%Aa">
    644   <empty/>
    645 </element>
    646 </correct>
    647 <valid>
    648 <foo/>
    649 </valid>
    650 </testCase>
    651 <testCase>
    652 <section>3</section>
    653 <documentation>Value of datatypeLibrary attribute must not be relative</documentation>
    654 <incorrect>
    655 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy">
    656   <empty/>
    657 </element>
    658 </incorrect>
    659 </testCase>
    660 <testCase>
    661 <section>3</section>
    662 <documentation>Value of datatypeLibrary attribute must not be relative</documentation>
    663 <incorrect>
    664 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy#foo:bar">
    665   <empty/>
    666 </element>
    667 </incorrect>
    668 </testCase>
    669 <testCase>
    670 <section>3</section>
    671 <documentation>Value of datatypeLibrary attribute must not be relative</documentation>
    672 <incorrect>
    673 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy?foo:bar">
    674   <empty/>
    675 </element>
    676 </incorrect>
    677 </testCase>
    678 <testCase>
    679 <section>3</section>
    680 <documentation>Value of datatypeLibrary attribute must not be relative</documentation>
    681 <incorrect>
    682 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="xyzzy/foo:bar">
    683   <empty/>
    684 </element>
    685 </incorrect>
    686 </testCase>
    687 <testCase>
    688 <section>3</section>
    689 <correct>
    690 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="foo:bar">
    691   <empty/>
    692 </element>
    693 </correct>
    694 <valid>
    695 <foo/>
    696 </valid>
    697 </testCase>
    698 <testCase>
    699 <section>3</section>
    700 <correct>
    701 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="">
    702   <empty/>
    703 </element>
    704 </correct>
    705 <valid>
    706 <foo/>
    707 </valid>
    708 </testCase>
    709 <testCase>
    710 <section>3</section>
    711 <correct>
    712 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    713   <data datatypeLibrary="" type="string"/>
    714 </element>
    715 </correct>
    716 <valid>
    717 <foo>x</foo>
    718 </valid>
    719 </testCase>
    720 <testCase>
    721 <section>3</section>
    722 <documentation>Value of datatypeLibrary attribute must not contain fragment identifier</documentation>
    723 <incorrect>
    724 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"
    725           datatypeLibrary="http://www.example.com#xyzzy">
    726   <empty/>
    727 </element>
    728 </incorrect>
    729 </testCase>
    730 <testCase>
    731 <section>3</section>
    732 <documentation>Value of datatypeLibrary attribute must not contain fragment identifier</documentation>
    733 <incorrect>
    734 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"
    735           datatypeLibrary="http://www.example.com#">
    736   <empty/>
    737 </element>
    738 </incorrect>
    739 </testCase>
    740 </testSuite>
    741 <testSuite>
    742 <documentation>Tests for QName and NCNames in schemas</documentation>
    743 <testCase>
    744 <section>3</section>
    745 <correct>
    746 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    747   <element name="&#xE14;&#xE35;">
    748     <empty/>
    749   </element>
    750 </element>
    751 </correct>
    752 <valid>
    753 <foo>&dii;</foo>
    754 </valid>
    755 </testCase>
    756 <testCase>
    757 <section>3</section>
    758 <incorrect>
    759 <element name="&#xE35;" xmlns="http://relaxng.org/ns/structure/1.0">
    760   <empty/>
    761 </element>
    762 </incorrect>
    763 </testCase>
    764 <testCase>
    765 <section>3</section>
    766 <incorrect>
    767 <element name="" xmlns="http://relaxng.org/ns/structure/1.0">
    768   <empty/>
    769 </element>
    770 </incorrect>
    771 </testCase>
    772 <testCase>
    773 <section>3</section>
    774 <incorrect>
    775 <element xmlns="http://relaxng.org/ns/structure/1.0">
    776   <name>&#xE35;</name>
    777   <empty/>
    778 </element>
    779 </incorrect>
    780 </testCase>
    781 <testCase>
    782 <section>3</section>
    783 <incorrect>
    784 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
    785   <attribute name="&#xE35;"/>
    786   <empty/>
    787 </element>
    788 </incorrect>
    789 </testCase>
    790 <testCase>
    791 <section>3</section>
    792 <incorrect>
    793 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    794   <start>
    795     <ref name="&#xE35;"/>
    796   </start>
    797   <define name="&#xE35;">
    798     <element name="foo">
    799       <empty/>
    800     </element>
    801   </define>
    802 </grammar>
    803 </incorrect>
    804 </testCase>
    805 <testCase>
    806 <section>3</section>
    807 <correct>
    808 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    809   <start>
    810     <ref name="&#xE14;&#xE35;"/>
    811   </start>
    812   <define name="&#xE14;&#xE35;">
    813     <element name="foo">
    814       <empty/>
    815     </element>
    816   </define>
    817 </grammar>
    818 </correct>
    819 <valid>
    820 <foo/>
    821 </valid>
    822 </testCase>
    823 <testCase>
    824 <section>3</section>
    825 <incorrect>
    826 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    827   <start>
    828     <ref name=""/>
    829   </start>
    830   <define name="">
    831     <element name="foo">
    832       <empty/>
    833     </element>
    834   </define>
    835 </grammar>
    836 </incorrect>
    837 </testCase>
    838 <testCase>
    839 <section>3</section>
    840 <incorrect>
    841 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    842   <start>
    843     <ref name="x y"/>
    844   </start>
    845   <define name="x y">
    846     <element name="foo">
    847       <empty/>
    848     </element>
    849   </define>
    850 </grammar>
    851 </incorrect>
    852 </testCase>
    853 <testCase>
    854 <section>3</section>
    855 <incorrect>
    856 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
    857          xmlns:x="http://www.example.com/x">
    858   <start>
    859     <ref name="x:y"/>
    860   </start>
    861   <define name="x:y">
    862     <element name="foo">
    863       <empty/>
    864     </element>
    865   </define>
    866 </grammar>
    867 </incorrect>
    868 </testCase>
    869 <testCase>
    870 <section>3</section>
    871 <incorrect>
    872 <element xmlns="http://relaxng.org/ns/structure/1.0"
    873          xmlns:x="http://www.example.com/x"
    874          name="x:&#xE35;">
    875   <empty/>
    876 </element>
    877 </incorrect>
    878 </testCase>
    879 <testCase>
    880 <section>3</section>
    881 <incorrect>
    882 <element xmlns="http://relaxng.org/ns/structure/1.0"
    883          xmlns:x="http://www.example.com/x"
    884          name="x:y:z">
    885   <empty/>
    886 </element>
    887 </incorrect>
    888 </testCase>
    889 <testCase>
    890 <section>3</section>
    891 <incorrect>
    892 <element xmlns="http://relaxng.org/ns/structure/1.0"
    893          xmlns:x="http://www.example.com/x"
    894          name="x:">
    895   <empty/>
    896 </element>
    897 </incorrect>
    898 </testCase>
    899 </testSuite>
    900 <testSuite>
    901 <documentation>Tests for elements that allow only a single pattern child.</documentation>
    902 <testCase>
    903 <section>3</section>
    904 <incorrect>
    905 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
    906   <start>
    907     <element name="foo">
    908       <empty/>
    909     </element>
    910     <empty/>
    911   </start>
    912 </grammar>
    913 </incorrect>
    914 </testCase>
    915 <testCase>
    916 <section>3</section>
    917 <incorrect>
    918 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    919   <attribute name="bar">
    920     <text/>
    921     <empty/>
    922   </attribute>
    923 </element>
    924 </incorrect>
    925 </testCase>
    926 <testCase>
    927 <section>3</section>
    928 <incorrect>
    929 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    930   <attribute>
    931     <name>bar</name>
    932     <text/>
    933     <empty/>
    934   </attribute>
    935 </element>
    936 </incorrect>
    937 </testCase>
    938 </testSuite>
    939 <testSuite>
    940 <documentation>Tests for foreign element and attribute handling.</documentation>
    941 <testCase>
    942 <section>3</section>
    943 <incorrect>
    944 <r:element name="foo" xmlns:r="http://relaxng.org/ns/structure/1.0" r:a="val">
    945   <r:empty/>
    946 </r:element>
    947 </incorrect>
    948 </testCase>
    949 <testCase>
    950 <section>3</section>
    951 <incorrect>
    952 <element xmlns="http://relaxng.org/ns/structure/1.0">
    953   <name>foo<eg:comment xmlns:eg="http://www.example.com"/></name>
    954   <empty/>
    955 </element>
    956 </incorrect>
    957 </testCase>
    958 <testCase>
    959 <section>3</section>
    960 <incorrect>
    961 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    962   <value>foo<eg:comment xmlns:eg="http://www.example.com"/></value>
    963 </element>
    964 </incorrect>
    965 </testCase>
    966 <testCase>
    967 <section>3</section>
    968 <correct>
    969 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    970   <data type="string"><eg:comment xmlns:eg="http://www.example.com"/></data>
    971 </element>
    972 </correct>
    973 <valid>
    974 <foo>X</foo>
    975 </valid>
    976 </testCase>
    977 <testCase>
    978 <section>3</section>
    979 <correct>
    980 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
    981   <empty>
    982     <ext xmlns="http://www.example.com">
    983       <element xmlns="http://relaxng.org/ns/structure/1.0"/>
    984     </ext>
    985   </empty>
    986 </element>
    987 </correct>
    988 <valid>
    989 <foo/>
    990 </valid>
    991 </testCase>
    992 <testCase>
    993 <section>3</section>
    994 <correct>
    995 <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:eg="http://www.example.com">
    996   <eg:comment/>
    997   <eg:comment/>
    998   <start>
    999     <eg:comment/>
   1000     <element>
   1001       <eg:comment/>
   1002       <eg:comment/>
   1003       <name>foo</name>
   1004       <eg:comment/>
   1005       <data type="string"/>
   1006       <eg:comment/>
   1007       <empty>
   1008         <eg:comment/>
   1009         <eg:comment/>
   1010       </empty>
   1011       <eg:comment/>
   1012       <eg:comment/>
   1013     </element>
   1014     <eg:comment/>
   1015   </start>
   1016   <eg:comment/>
   1017 </grammar>
   1018 </correct>
   1019 <valid>
   1020 <foo>X</foo>
   1021 </valid>
   1022 </testCase>
   1023 <testCase>
   1024 <section>3</section>
   1025 <correct>
   1026 <grammar xmlns="http://relaxng.org/ns/structure/1.0"  xmlns:eg="http://www.example.com"
   1027   eg:comment="">
   1028   <start eg:comment="">
   1029     <element eg:comment="">
   1030       <name eg:comment="">foo</name>
   1031       <data eg:comment="" type="string"/>
   1032       <empty eg:comment=""/>
   1033     </element>
   1034   </start>
   1035 </grammar>
   1036 </correct>
   1037 <valid>
   1038 <foo>X</foo>
   1039 </valid>
   1040 </testCase>
   1041 <testCase>
   1042 <section>3</section>
   1043 <correct>
   1044 <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns="http://www.example.com">
   1045   <comment/>
   1046   <comment/>
   1047   <rng:start>
   1048     <comment/>
   1049     <rng:element>
   1050       <comment/>
   1051       <comment/>
   1052       <rng:name>foo</rng:name>
   1053       <comment/>
   1054       <rng:data type="string"/>
   1055       <comment/>
   1056     </rng:element>
   1057     <comment/>
   1058   </rng:start>
   1059   <comment/>
   1060 </rng:grammar>
   1061 </correct>
   1062 <valid>
   1063 <foo>X</foo>
   1064 </valid>
   1065 </testCase>
   1066 <testCase>
   1067 <section>3</section>
   1068 <correct>
   1069 <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0">
   1070   <comment/>
   1071   <comment/>
   1072   <rng:start>
   1073     <comment/>
   1074     <rng:element>
   1075       <comment/>
   1076       <comment/>
   1077       <rng:name>foo</rng:name>
   1078       <comment/>
   1079       <rng:data type="string"/>
   1080       <comment/>
   1081     </rng:element>
   1082     <comment/>
   1083   </rng:start>
   1084   <comment/>
   1085 </rng:grammar>
   1086 </correct>
   1087 <valid>
   1088 <foo>X</foo>
   1089 </valid>
   1090 </testCase>
   1091 </testSuite>
   1092 </testSuite>
   1093 <testSuite>
   1094 <section>4</section>
   1095 <testSuite>
   1096 <section>4.2</section>
   1097 <testCase>
   1098 <section>4.2</section>
   1099 <correct>
   1100 <element name="&#xA;&#xD;&#x20;&#x9;foo&#xA;&#xD;&#x20;&#x9;" xmlns="http://relaxng.org/ns/structure/1.0">
   1101   <attribute name="&#xA;&#xD;&#x20;&#x9;bar&#xA;&#xD;&#x20;&#x9;"/>
   1102 </element>
   1103 </correct>
   1104 <valid>
   1105 <foo bar=""/>
   1106 </valid>
   1107 </testCase>
   1108 <testCase>
   1109 <section>4.2</section>
   1110 <correct>
   1111 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1112   <value type="&#xA;&#xD;&#x20;&#x9;string&#xA;&#xD;&#x20;&#x9;">bar</value>
   1113 </element>
   1114 </correct>
   1115 <valid>
   1116 <foo>bar</foo>
   1117 </valid>
   1118 <invalid>
   1119 <foo>bar </foo>
   1120 </invalid>
   1121 </testCase>
   1122 <testCase>
   1123 <section>4.2</section>
   1124 <correct>
   1125 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1126   <data type="&#xA;&#xD;&#x20;&#x9;string&#xA;&#xD;&#x20;&#x9;"/>
   1127 </element>
   1128 </correct>
   1129 <valid>
   1130 <foo>X</foo>
   1131 </valid>
   1132 </testCase>
   1133 <testCase>
   1134 <section>4.2</section>
   1135 <correct>
   1136 <element xmlns="http://relaxng.org/ns/structure/1.0">
   1137   <name>&#xA;&#xD;&#x20;&#x9;foo&#xA;&#xD;&#x20;&#x9;</name>
   1138   <attribute><name>&#xA;&#xD;&#x20;&#x9;bar&#xA;&#xD;&#x20;&#x9;</name></attribute>
   1139 </element>
   1140 </correct>
   1141 <valid>
   1142 <foo bar=""/>
   1143 </valid>
   1144 </testCase>
   1145 <testCase>
   1146 <section>4.2</section>
   1147 <correct>
   1148 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1149   <start combine="&#xA;&#xD;&#x20;&#x9;choice&#xA;&#xD;&#x20;&#x9;">
   1150     <ref name="&#xA;&#xD;&#x20;&#x9;x&#xA;&#xD;&#x20;&#x9;"/>
   1151   </start>
   1152   <define name="x">
   1153     <ref name="y"/>
   1154   </define>
   1155   <define name="&#xA;&#xD;&#x20;&#x9;y&#xA;&#xD;&#x20;&#x9;">
   1156     <grammar>
   1157       <start combine="&#xA;&#xD;&#x20;&#x9;interleave&#xA;&#xD;&#x20;&#x9;">
   1158         <parentRef name="&#xA;&#xD;&#x20;&#x9;z&#xA;&#xD;&#x20;&#x9;"/>
   1159       </start>
   1160     </grammar>
   1161   </define>
   1162   <define name="z">
   1163     <element name="foo">
   1164       <empty/>
   1165     </element>
   1166   </define>
   1167 </grammar>
   1168 </correct>
   1169 <valid>
   1170 <foo/>
   1171 </valid>
   1172 </testCase>
   1173 </testSuite>
   1174 <testCase>
   1175 <section>4.4</section>
   1176 <correct>
   1177 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1178   <value datatypeLibrary="http://www.example.com/this-does-not-exist">bar</value>
   1179 </element>
   1180 </correct>
   1181 <valid>
   1182 <foo>bar</foo>
   1183 </valid>
   1184 <valid>
   1185 <foo>
   1186 	bar
   1187 </foo>
   1188 </valid>
   1189 <valid>
   1190 <foo> bar </foo>
   1191 </valid>
   1192 <invalid>
   1193 <foo>baz</foo>
   1194 </invalid>
   1195 <invalid>
   1196 <foo>ba r</foo>
   1197 </invalid>
   1198 </testCase>
   1199 <testSuite>
   1200 <section>4.5</section>
   1201 <testCase>
   1202 <section>4.5</section>
   1203 <dir name="sub">
   1204 <resource name="x">
   1205 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1206   <empty/>
   1207 </element>
   1208 </resource>
   1209 </dir>
   1210 <correct>
   1211 <externalRef xmlns="http://relaxng.org/ns/structure/1.0"
   1212              xml:base="sub/y" href="x"/>
   1213 </correct>
   1214 <valid>
   1215 <foo/>
   1216 </valid>
   1217 <invalid>
   1218 <bar/>
   1219 </invalid>
   1220 </testCase>
   1221 <testCase>
   1222 <section>4.5</section>
   1223 <resource name="x">
   1224 <element xmlns="http://relaxng.org/ns/structure/1.0" name="bar">
   1225   <empty/>
   1226 </element>
   1227 </resource>
   1228 <dir name="sub1">
   1229 <resource name="x">
   1230 <element xmlns="http://relaxng.org/ns/structure/1.0" name="bar">
   1231   <empty/>
   1232 </element>
   1233 </resource>
   1234 <dir name="sub3">
   1235 <resource name="x">
   1236 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1237   <empty/>
   1238 </element>
   1239 </resource>
   1240 </dir>
   1241 </dir>
   1242 <correct>
   1243 <group xmlns="http://relaxng.org/ns/structure/1.0" xml:base="sub1/">
   1244   <group>
   1245     <group xml:base="sub2">
   1246       <group>
   1247          <group xml:base="sub3/y">
   1248            <externalRef href="x"/>
   1249          </group>
   1250       </group>
   1251     </group>
   1252   </group>
   1253 </group>
   1254 </correct>
   1255 <valid>
   1256 <foo/>
   1257 </valid>
   1258 <invalid>
   1259 <bar/>
   1260 </invalid>
   1261 </testCase>
   1262 <testCase>
   1263 <section>4.5</section>
   1264 <resource name="x">
   1265 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1266   <empty/>
   1267 </element>
   1268 </resource>
   1269 <incorrect>
   1270 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x#foo"/>
   1271 </incorrect>
   1272 </testCase>
   1273 </testSuite>
   1274 <testSuite>
   1275 <section>4.6</section>
   1276 <testCase>
   1277 <section>4.6</section>
   1278 <resource name="x">
   1279 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1280   <empty/>
   1281 </element>
   1282 </resource>
   1283 <correct>
   1284 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1285 </correct>
   1286 <valid>
   1287 <foo/>
   1288 </valid>
   1289 <invalid>
   1290 <bar/>
   1291 </invalid>
   1292 </testCase>
   1293 <testCase>
   1294 <section>4.6</section>
   1295 <resource name="x">
   1296 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1297   <empty/>
   1298 </element>
   1299 </resource>
   1300 <correct>
   1301 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x" ns="http://www.example.com"/>
   1302 </correct>
   1303 <valid>
   1304 <foo xmlns="http://www.example.com"/>
   1305 </valid>
   1306 <invalid>
   1307 <foo/>
   1308 </invalid>
   1309 </testCase>
   1310 <testCase>
   1311 <section>4.6</section>
   1312 <resource name="x">
   1313 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1314 </resource>
   1315 <incorrect>
   1316 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1317 </incorrect>
   1318 </testCase>
   1319 <testCase>
   1320 <section>4.6</section>
   1321 <resource name="x">
   1322 <start xmlns="http://relaxng.org/ns/structure/1.0">
   1323   <element name="foo">
   1324     <empty/>
   1325   </element>
   1326 </start>
   1327 </resource>
   1328 <incorrect>
   1329 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1330 </incorrect>
   1331 </testCase>
   1332 <testCase>
   1333 <section>4.6</section>
   1334 <resource name="x">
   1335 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="y"/>
   1336 </resource>
   1337 <resource name="y">
   1338 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1339 </resource>
   1340 <incorrect>
   1341 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="x"/>
   1342 </incorrect>
   1343 </testCase>
   1344 <testCase>
   1345 <section>4.6</section>
   1346 <documentation>Same value of href before resolution, but not a loop.</documentation>
   1347 <dir name="sub">
   1348 <resource name="x">
   1349 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="sub/x"/>
   1350 </resource>
   1351 <dir name="sub">
   1352 <resource name="x">
   1353 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1354   <empty/>
   1355 </element>
   1356 </resource>
   1357 </dir>
   1358 </dir>
   1359 <correct>
   1360 <externalRef xmlns="http://relaxng.org/ns/structure/1.0" href="sub/x"/>
   1361 </correct>
   1362 <valid>
   1363 <foo/>
   1364 </valid>
   1365 <invalid>
   1366 <bar/>
   1367 </invalid>
   1368 </testCase>
   1369 </testSuite>
   1370 <testSuite>
   1371 <section>4.7</section>
   1372 <testCase>
   1373 <section>4.7</section>
   1374 <resource name="x">
   1375 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1376   <start>
   1377     <element name="foo">
   1378       <empty/>
   1379     </element>
   1380   </start>
   1381 </grammar>
   1382 </resource>
   1383 <correct>
   1384 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1385   <include href="x"/>
   1386 </grammar>
   1387 </correct>
   1388 <valid>
   1389 <foo/>
   1390 </valid>
   1391 <invalid>
   1392 <bar/>
   1393 </invalid>
   1394 </testCase>
   1395 <testCase>
   1396 <section>4.7</section>
   1397 <resource name="x">
   1398 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1399   <start>
   1400     <element name="foo">
   1401       <empty/>
   1402     </element>
   1403   </start>
   1404 </grammar>
   1405 </resource>
   1406 <correct>
   1407 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1408   <include href="x" ns="http://www.example.com"/>
   1409 </grammar>
   1410 </correct>
   1411 <valid>
   1412 <foo xmlns="http://www.example.com"/>
   1413 </valid>
   1414 <invalid>
   1415 <foo/>
   1416 </invalid>
   1417 </testCase>
   1418 <testCase>
   1419 <section>4.7</section>
   1420 <resource name="x">
   1421 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1422   <include href="y"/>
   1423 </grammar>
   1424 </resource>
   1425 <resource name="y">
   1426 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1427   <start>
   1428     <element name="foo">
   1429       <empty/>
   1430     </element>
   1431   </start>
   1432 </grammar>
   1433 </resource>
   1434 <correct>
   1435 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1436   <include href="x"/>
   1437 </grammar>
   1438 </correct>
   1439 <valid>
   1440 <foo/>
   1441 </valid>
   1442 <invalid>
   1443 <bar/>
   1444 </invalid>
   1445 </testCase>
   1446 <testCase>
   1447 <section>4.7</section>
   1448 <resource name="x">
   1449 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1450   <empty/>
   1451 </element>
   1452 </resource>
   1453 <incorrect>
   1454 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1455   <include href="x"/>
   1456 </grammar>
   1457 </incorrect>
   1458 </testCase>
   1459 <testCase>
   1460 <section>4.7</section>
   1461 <resource name="x">
   1462 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1463   <include href="x"/>
   1464 </grammar>
   1465 </resource>
   1466 <incorrect>
   1467 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1468   <include href="x"/>
   1469 </grammar>
   1470 </incorrect>
   1471 </testCase>
   1472 <testCase>
   1473 <section>4.7</section>
   1474 <resource name="x">
   1475 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1476   <include href="y"/>
   1477 </grammar>
   1478 </resource>
   1479 <resource name="y">
   1480 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1481   <include href="x"/>
   1482 </grammar>
   1483 </resource>
   1484 <incorrect>
   1485 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1486   <include href="x"/>
   1487 </grammar>
   1488 </incorrect>
   1489 </testCase>
   1490 <testCase>
   1491 <section>4.7</section>
   1492 <dir name="sub">
   1493 <resource name="x">
   1494 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1495   <include href="sub/x"/>
   1496 </grammar>
   1497 </resource>
   1498 <dir name="sub">
   1499 <resource name="x">
   1500 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1501   <start>
   1502     <element name="foo">
   1503       <empty/>
   1504     </element>
   1505   </start>
   1506 </grammar>
   1507 </resource>
   1508 </dir>
   1509 </dir>
   1510 <correct>
   1511 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1512   <include href="sub/x"/>
   1513 </grammar>
   1514 </correct>
   1515 <valid>
   1516 <foo/>
   1517 </valid>
   1518 <invalid>
   1519 <bar/>
   1520 </invalid>
   1521 </testCase>
   1522 <testCase>
   1523 <section>4.7</section>
   1524 <resource name="x">
   1525 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1526   <define name="foo">
   1527     <element name="foo">
   1528       <empty/>
   1529     </element>
   1530   </define>
   1531 </grammar>
   1532 </resource>
   1533 <incorrect>
   1534 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1535   <include href="x">
   1536     <start>
   1537       <ref name="foo"/>
   1538     </start>
   1539   </include>
   1540 </grammar>
   1541 </incorrect>
   1542 </testCase>
   1543 <testCase>
   1544 <section>4.7</section>
   1545 <resource name="x">
   1546 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1547   <define name="foo">
   1548     <element name="foo">
   1549       <empty/>
   1550     </element>
   1551   </define>
   1552 </grammar>
   1553 </resource>
   1554 <correct>
   1555 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1556   <include href="x"/>
   1557   <start>
   1558     <ref name="foo"/>
   1559   </start>
   1560 </grammar>
   1561 </correct>
   1562 <valid><foo/></valid>
   1563 <invalid><bar/></invalid>
   1564 </testCase>
   1565 <testCase>
   1566 <section>4.7</section>
   1567 <resource name="x">
   1568 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1569   <start>
   1570     <ref name="foo"/>
   1571   </start>
   1572 </grammar>
   1573 </resource>
   1574 <incorrect>
   1575 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1576   <include href="x">
   1577     <define name="foo">
   1578       <element name="foo">
   1579         <empty/>
   1580       </element>
   1581     </define>
   1582   </include>
   1583 </grammar>
   1584 </incorrect>
   1585 </testCase>
   1586 <testCase>
   1587 <section>4.7</section>
   1588 <resource name="x">
   1589 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1590   <start>
   1591     <ref name="foo"/>
   1592   </start>
   1593 </grammar>
   1594 </resource>
   1595 <correct>
   1596 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1597   <include href="x"/>
   1598   <define name="foo">
   1599     <element name="foo">
   1600       <empty/>
   1601     </element>
   1602   </define>
   1603 </grammar>
   1604 </correct>
   1605 <valid><foo/></valid>
   1606 <invalid><bar/></invalid>
   1607 </testCase>
   1608 <testCase>
   1609 <section>4.7</section>
   1610 <resource name="x">
   1611 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1612   <define name="foo" combine="choice">
   1613     <element name="foo3">
   1614       <empty/>
   1615     </element>
   1616   </define>
   1617 </grammar>
   1618 </resource>
   1619 <correct>
   1620 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1621   <start>
   1622     <ref name="foo"/>
   1623   </start>
   1624   <include href="x">
   1625     <define name="foo" combine="choice">
   1626       <element name="foo1">
   1627 	<empty/>
   1628       </element>
   1629     </define>
   1630   </include>
   1631   <define name="foo">
   1632     <element name="foo2">
   1633       <empty/>
   1634     </element>
   1635   </define>
   1636 </grammar>
   1637 </correct>
   1638 <valid><foo1/></valid>
   1639 <valid><foo2/></valid>
   1640 <invalid><foo3/></invalid>
   1641 </testCase>
   1642 <testCase>
   1643 <section>4.7</section>
   1644 <resource name="level1.rng">
   1645 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1646 <include href="level2.rng">
   1647   <define name="foo">
   1648     <element name="bar">
   1649       <empty/>
   1650     </element>
   1651   </define>
   1652 </include>
   1653 </grammar>
   1654 </resource>
   1655 <resource name="level2.rng">
   1656 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1657   <define name="bar">
   1658     <element name="bar">
   1659       <empty/>
   1660     </element>
   1661   </define>
   1662 </grammar>
   1663 </resource>
   1664 <incorrect>
   1665 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1666 <start>
   1667   <ref name="foo"/>
   1668 </start>
   1669 <include href="level1.rng">
   1670   <define name="foo">
   1671     <element name="foo">
   1672       <empty/>
   1673     </element>
   1674   </define>
   1675 </include>
   1676 </grammar>
   1677 </incorrect>
   1678 </testCase>
   1679 </testSuite>
   1680 <testSuite>
   1681 <section>4.8</section>
   1682 <testCase>
   1683 <section>4.8</section>
   1684 <correct>
   1685 <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo">
   1686   <attribute name="bar" ns="http://www.example.com"/>
   1687 </element>
   1688 </correct>
   1689 <valid>
   1690 <eg:foo eg:bar="x" xmlns:eg="http://www.example.com"/>
   1691 </valid>
   1692 <invalid>
   1693 <eg:foo xmlns:eg="http://www.example.com" bar="x"/>
   1694 </invalid>
   1695 </testCase>
   1696 <testCase>
   1697 <section>4.8</section>
   1698 <correct>
   1699 <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo">
   1700   <attribute name="bar"/>
   1701 </element>
   1702 </correct>
   1703 <invalid>
   1704 <eg:foo xmlns:eg="http://www.example.com" eg:bar="x"/>
   1705 </invalid>
   1706 <valid>
   1707 <eg:foo xmlns:eg="http://www.example.com" bar="x"/>
   1708 </valid>
   1709 </testCase>
   1710 </testSuite>
   1711 <testSuite>
   1712 <section>4.9</section>
   1713 <testCase>
   1714 <section>4.9</section>
   1715 <correct>
   1716 <element xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.example.com" name="foo">
   1717   <attribute>
   1718     <name>bar</name>
   1719   </attribute>
   1720 </element>
   1721 </correct>
   1722 <valid>
   1723 <eg:foo xmlns:eg="http://www.example.com" eg:bar="x"/>
   1724 </valid>
   1725 <invalid>
   1726 <eg:foo xmlns:eg="http://www.example.com" bar="x"/>
   1727 </invalid>
   1728 </testCase>
   1729 <testCase>
   1730 <section>4.6</section>
   1731 <section>4.9</section>
   1732 <resource name="x">
   1733 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1734   <empty/>
   1735 </element>
   1736 </resource>
   1737 <correct>
   1738 <group ns="http://www.example.com" xmlns="http://relaxng.org/ns/structure/1.0" >
   1739 <externalRef href="x"/>
   1740 </group>
   1741 </correct>
   1742 <valid>
   1743 <foo xmlns="http://www.example.com"/>
   1744 </valid>
   1745 <invalid>
   1746 <foo/>
   1747 </invalid>
   1748 </testCase>
   1749 <testCase>
   1750 <correct>
   1751 <group xmlns="http://relaxng.org/ns/structure/1.0">
   1752   <element ns="http://www.example.com">
   1753     <name>foo</name>
   1754     <empty/>
   1755   </element>
   1756 </group>
   1757 </correct>
   1758 <valid><foo xmlns="http://www.example.com"/></valid>
   1759 <invalid><foo/></invalid>
   1760 </testCase>
   1761 <testCase>
   1762 <correct>
   1763 <element ns="http://www.example.com" xmlns="http://relaxng.org/ns/structure/1.0">
   1764   <name>foo</name>
   1765   <empty/>
   1766 </element>
   1767 </correct>
   1768 <valid><foo xmlns="http://www.example.com"/></valid>
   1769 <invalid><foo/></invalid>
   1770 </testCase>
   1771 <testCase>
   1772 <correct>
   1773 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1774   <attribute ns="http://www.example.com">
   1775     <name>bar</name>
   1776     <text/>
   1777   </attribute>
   1778 </element>
   1779 </correct>
   1780 <valid><foo xmlns:x="http://www.example.com" x:bar="whatever"/></valid>
   1781 <invalid><foo bar="whatever"/></invalid>
   1782 </testCase>
   1783 </testSuite>
   1784 <testSuite>
   1785 <section>4.10</section>
   1786 <testCase>
   1787 <section>4.10</section>
   1788 <incorrect>
   1789 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo:bar">
   1790   <empty/>
   1791 </element>
   1792 </incorrect>
   1793 </testCase>
   1794 <testCase>
   1795 <section>4.10</section>
   1796 <correct>
   1797 <element xmlns="http://relaxng.org/ns/structure/1.0" name="eg:foo" xmlns:eg="http://www.example.com">
   1798   <empty/>
   1799 </element>
   1800 </correct>
   1801 <valid>
   1802 <foo xmlns="http://www.example.com"/>
   1803 </valid>
   1804 <invalid>
   1805 <foo xmlns="http://www.example.com/"/>
   1806 </invalid>
   1807 </testCase>
   1808 <testCase>
   1809 <section>4.10</section>
   1810 <correct>
   1811 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo" xmlns:eg="http://www.example.com">
   1812   <attribute name="eg:bar"/>
   1813 </element>
   1814 </correct>
   1815 <valid>
   1816 <foo xmlns:ex="http://www.example.com" ex:bar="x"/>
   1817 </valid>
   1818 <invalid>
   1819 <foo xmlns:ex="http://www.example.com/" ex:bar="x"/>
   1820 </invalid>
   1821 </testCase>
   1822 <testCase>
   1823 <section>4.10</section>
   1824 <correct>
   1825 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   1826   <attribute name="xml:lang"/>
   1827 </element>
   1828 </correct>
   1829 <valid>
   1830 <foo xml:lang="en"/>
   1831 </valid>
   1832 <invalid>
   1833 <foo lang="en"/>
   1834 </invalid>
   1835 </testCase>
   1836 </testSuite>
   1837 <testSuite>
   1838 <section>4.11</section>
   1839 <testCase>
   1840 <section>4.11</section>
   1841 <correct>
   1842 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1843   <div ns="http://www.example.com">
   1844     <div>
   1845       <start>
   1846         <ref name="foo"/>
   1847       </start>
   1848     </div>
   1849     <define name="foo">
   1850       <element name="foo">
   1851         <empty/>
   1852       </element>
   1853     </define>
   1854   </div>
   1855   <div/>
   1856 </grammar>
   1857 </correct>
   1858 <valid>
   1859 <foo xmlns="http://www.example.com"/>
   1860 </valid>
   1861 <invalid>
   1862 <foo/>
   1863 </invalid>
   1864 </testCase>
   1865 </testSuite>
   1866 <testSuite>
   1867 <testCase>
   1868 <section>4.12</section>
   1869 <correct>
   1870 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   1871 
   1872 <start>
   1873   <element name="foo">
   1874     <ref name="bars"/>
   1875   </element>
   1876 </start>
   1877 
   1878 <define name="bars">
   1879   <element name="bar">
   1880     <empty/>
   1881   </element>
   1882   <element name="bar">
   1883     <empty/>
   1884   </element>
   1885   <element name="bar">
   1886     <empty/>
   1887   </element>
   1888 </define>
   1889 
   1890 </grammar>
   1891 </correct>
   1892 <valid>
   1893 <foo><bar/><bar/><bar/></foo>
   1894 </valid>
   1895 <invalid>
   1896 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   1897 </invalid>
   1898 <invalid>
   1899 <foo><bar/><bar/></foo>
   1900 </invalid>
   1901 <invalid>
   1902 <foo><bar/></foo>
   1903 </invalid>
   1904 <invalid>
   1905 <foo></foo>
   1906 </invalid>
   1907 <invalid>
   1908 <foo>X</foo>
   1909 </invalid>
   1910 <invalid>
   1911 <foo><bar/>X<bar/><bar/></foo>
   1912 </invalid>
   1913 <invalid>
   1914 <foo><bar/><bar/><bar/><bar/></foo>
   1915 </invalid>
   1916 </testCase>
   1917 <testCase>
   1918 <section>4.12</section>
   1919 <correct>
   1920 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1921   <oneOrMore>
   1922     <element name="bar">
   1923       <empty/>
   1924     </element>
   1925     <element name="bar">
   1926       <empty/>
   1927     </element>
   1928     <element name="bar">
   1929       <empty/>
   1930     </element>
   1931   </oneOrMore>
   1932 </element>
   1933 </correct>
   1934 <valid>
   1935 <foo><bar/><bar/><bar/></foo>
   1936 </valid>
   1937 <valid>
   1938 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   1939 </valid>
   1940 <invalid>
   1941 <foo><bar/><bar/></foo>
   1942 </invalid>
   1943 <invalid>
   1944 <foo><bar/></foo>
   1945 </invalid>
   1946 <invalid>
   1947 <foo></foo>
   1948 </invalid>
   1949 <invalid>
   1950 <foo>X</foo>
   1951 </invalid>
   1952 <invalid>
   1953 <foo><bar/>X<bar/><bar/></foo>
   1954 </invalid>
   1955 <invalid>
   1956 <foo><bar/><bar/><bar/><bar/></foo>
   1957 </invalid>
   1958 </testCase>
   1959 <testCase>
   1960 <section>4.12</section>
   1961 <section>4.15</section>
   1962 <correct>
   1963 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   1964   <zeroOrMore>
   1965     <element name="bar">
   1966       <empty/>
   1967     </element>
   1968     <element name="bar">
   1969       <empty/>
   1970     </element>
   1971     <element name="bar">
   1972       <empty/>
   1973     </element>
   1974   </zeroOrMore>
   1975 </element>
   1976 </correct>
   1977 <valid>
   1978 <foo><bar/><bar/><bar/></foo>
   1979 </valid>
   1980 <valid>
   1981 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   1982 </valid>
   1983 <invalid>
   1984 <foo><bar/><bar/></foo>
   1985 </invalid>
   1986 <invalid>
   1987 <foo><bar/></foo>
   1988 </invalid>
   1989 <valid>
   1990 <foo></foo>
   1991 </valid>
   1992 <invalid>
   1993 <foo>X</foo>
   1994 </invalid>
   1995 <invalid>
   1996 <foo><bar/>X<bar/><bar/></foo>
   1997 </invalid>
   1998 <invalid>
   1999 <foo><bar/><bar/><bar/><bar/></foo>
   2000 </invalid>
   2001 </testCase>
   2002 <testCase>
   2003 <section>4.12</section>
   2004 <section>4.14</section>
   2005 <correct>
   2006 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2007   <optional>
   2008     <element name="bar">
   2009       <empty/>
   2010     </element>
   2011     <element name="bar">
   2012       <empty/>
   2013     </element>
   2014     <element name="bar">
   2015       <empty/>
   2016     </element>
   2017   </optional>
   2018 </element>
   2019 </correct>
   2020 <valid>
   2021 <foo><bar/><bar/><bar/></foo>
   2022 </valid>
   2023 <invalid>
   2024 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   2025 </invalid>
   2026 <invalid>
   2027 <foo><bar/><bar/></foo>
   2028 </invalid>
   2029 <invalid>
   2030 <foo><bar/></foo>
   2031 </invalid>
   2032 <valid>
   2033 <foo></foo>
   2034 </valid>
   2035 <invalid>
   2036 <foo>X</foo>
   2037 </invalid>
   2038 <invalid>
   2039 <foo><bar/>X<bar/><bar/></foo>
   2040 </invalid>
   2041 <invalid>
   2042 <foo><bar/><bar/><bar/><bar/></foo>
   2043 </invalid>
   2044 </testCase>
   2045 <testCase>
   2046 <section>4.12</section>
   2047 <correct>
   2048 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2049   <list>
   2050     <value>x</value>
   2051     <value>y</value>
   2052     <value>z</value>
   2053   </list>
   2054 </element>
   2055 </correct>
   2056 <valid>
   2057 <foo>x y z</foo>
   2058 </valid>
   2059 <invalid>
   2060 <foo>x</foo>
   2061 </invalid>
   2062 </testCase>
   2063 <testCase>
   2064 <section>4.12</section>
   2065 <section>4.13</section>
   2066 <correct>
   2067 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2068   <mixed>
   2069     <element name="bar">
   2070       <empty/>
   2071     </element>
   2072     <element name="bar">
   2073       <empty/>
   2074     </element>
   2075     <element name="bar">
   2076       <empty/>
   2077     </element>
   2078   </mixed>
   2079 </element>
   2080 </correct>
   2081 <valid>
   2082 <foo><bar/><bar/><bar/></foo>
   2083 </valid>
   2084 <invalid>
   2085 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   2086 </invalid>
   2087 <invalid>
   2088 <foo><bar/><bar/></foo>
   2089 </invalid>
   2090 <invalid>
   2091 <foo><bar/></foo>
   2092 </invalid>
   2093 <invalid>
   2094 <foo></foo>
   2095 </invalid>
   2096 <valid>
   2097 <foo><bar/>X<bar/><bar/></foo>
   2098 </valid>
   2099 <invalid>
   2100 <foo>X</foo>
   2101 </invalid>
   2102 <invalid>
   2103 <foo><bar/><bar/><bar/><bar/></foo>
   2104 </invalid>
   2105 </testCase>
   2106 <testCase>
   2107 <section>4.12</section>
   2108 <correct>
   2109 <element xmlns="http://relaxng.org/ns/structure/1.0">
   2110   <name>foo</name>
   2111   <element name="bar">
   2112     <empty/>
   2113   </element>
   2114   <element name="bar">
   2115     <empty/>
   2116   </element>
   2117   <element name="bar">
   2118     <empty/>
   2119   </element>
   2120 </element>
   2121 </correct>
   2122 <valid>
   2123 <foo><bar/><bar/><bar/></foo>
   2124 </valid>
   2125 <invalid>
   2126 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   2127 </invalid>
   2128 <invalid>
   2129 <foo><bar/><bar/></foo>
   2130 </invalid>
   2131 <invalid>
   2132 <foo><bar/></foo>
   2133 </invalid>
   2134 <invalid>
   2135 <foo></foo>
   2136 </invalid>
   2137 <invalid>
   2138 <foo>X</foo>
   2139 </invalid>
   2140 <invalid>
   2141 <foo><bar/>X<bar/><bar/></foo>
   2142 </invalid>
   2143 <invalid>
   2144 <foo><bar/><bar/><bar/><bar/></foo>
   2145 </invalid>
   2146 </testCase>
   2147 <testCase>
   2148 <section>4.12</section>
   2149 <correct>
   2150 <element xmlns="http://relaxng.org/ns/structure/1.0">
   2151   <anyName>
   2152     <except>
   2153       <name>foo</name>
   2154       <name>bar</name>
   2155       <name>baz</name>
   2156     </except>
   2157   </anyName>
   2158   <empty/>
   2159 </element>
   2160 </correct>
   2161 <valid><xyzzy/></valid>
   2162 <invalid><foo/></invalid>
   2163 <invalid><bar/></invalid>
   2164 <invalid><baz/></invalid>
   2165 </testCase>
   2166 <testCase>
   2167 <section>4.12</section>
   2168 <correct>
   2169 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2170   <data type="token">
   2171     <except>
   2172       <value>x</value>
   2173       <value>y</value>
   2174       <value>z</value>
   2175     </except>
   2176   </data>
   2177 </element>
   2178 </correct>
   2179 <valid><foo/></valid>
   2180 <valid><foo>xyz</foo></valid>
   2181 <invalid><foo>x</foo></invalid>
   2182 <invalid><foo>y</foo></invalid>
   2183 <invalid><foo>y</foo></invalid>
   2184 </testCase>
   2185 <testCase>
   2186 <section>4.12</section>
   2187 <correct>
   2188 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2189   <attribute name="bar"/>
   2190 </element>
   2191 </correct>
   2192 <valid>
   2193 <foo bar=""/>
   2194 </valid>
   2195 <valid>
   2196 <foo bar="x"/>
   2197 </valid>
   2198 <invalid>
   2199 <foo/>
   2200 </invalid>
   2201 </testCase>
   2202 <testCase>
   2203 <section>4.12</section>
   2204 <correct>
   2205 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2206   <attribute>
   2207     <name>bar</name>
   2208   </attribute>
   2209 </element>
   2210 </correct>
   2211 <valid>
   2212 <foo bar=""/>
   2213 </valid>
   2214 <valid>
   2215 <foo bar="x"/>
   2216 </valid>
   2217 <invalid>
   2218 <foo/>
   2219 </invalid>
   2220 </testCase>
   2221 <testCase>
   2222 <section>4.12</section>
   2223 <correct>
   2224 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2225   <group>
   2226     <element name="bar">
   2227       <empty/>
   2228     </element>
   2229     <element name="bar">
   2230       <empty/>
   2231     </element>
   2232     <element name="bar">
   2233       <empty/>
   2234     </element>
   2235   </group>
   2236 </element>
   2237 </correct>
   2238 <valid>
   2239 <foo><bar/><bar/><bar/></foo>
   2240 </valid>
   2241 <invalid>
   2242 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   2243 </invalid>
   2244 <invalid>
   2245 <foo><bar/><bar/></foo>
   2246 </invalid>
   2247 <invalid>
   2248 <foo><bar/></foo>
   2249 </invalid>
   2250 <invalid>
   2251 <foo></foo>
   2252 </invalid>
   2253 <invalid>
   2254 <foo>X</foo>
   2255 </invalid>
   2256 <invalid>
   2257 <foo><bar/>X<bar/><bar/></foo>
   2258 </invalid>
   2259 <invalid>
   2260 <foo><bar/><bar/><bar/><bar/></foo>
   2261 </invalid>
   2262 </testCase>
   2263 <testCase>
   2264 <section>4.12</section>
   2265 <correct>
   2266 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2267   <choice>
   2268     <element name="bar1">
   2269       <empty/>
   2270     </element>
   2271     <element name="bar2">
   2272       <empty/>
   2273     </element>
   2274     <element name="bar3">
   2275       <empty/>
   2276     </element>
   2277   </choice>
   2278 </element>
   2279 </correct>
   2280 <valid><foo><bar1/></foo></valid>
   2281 <valid><foo><bar2/></foo></valid>
   2282 <valid><foo><bar3/></foo></valid>
   2283 <invalid><foo/></invalid>
   2284 </testCase>
   2285 <testCase>
   2286 <section>4.12</section>
   2287 <correct>
   2288 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2289   <interleave>
   2290     <element name="bar1">
   2291       <empty/>
   2292     </element>
   2293     <element name="bar2">
   2294       <empty/>
   2295     </element>
   2296     <element name="bar3">
   2297       <empty/>
   2298     </element>
   2299   </interleave>
   2300 </element>
   2301 </correct>
   2302 <valid><foo><bar1/><bar2/><bar3/></foo></valid>
   2303 <valid><foo><bar1/><bar3/><bar2/></foo></valid>
   2304 <valid><foo><bar2/><bar1/><bar3/></foo></valid>
   2305 <valid><foo><bar2/><bar3/><bar1/></foo></valid>
   2306 <valid><foo><bar3/><bar1/><bar2/></foo></valid>
   2307 <valid><foo><bar3/><bar2/><bar1/></foo></valid>
   2308 <invalid><foo><bar2/><bar1/></foo></invalid>
   2309 <invalid><foo><bar1/><bar3/><bar2/><bar1/></foo></invalid>
   2310 </testCase>
   2311 <testCase>
   2312 <section>4.12</section>
   2313 <correct>
   2314 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2315   <group>
   2316     <element name="bar">
   2317       <empty/>
   2318     </element>
   2319   </group>
   2320 </element>
   2321 </correct>
   2322 <valid><foo><bar/></foo></valid>
   2323 <invalid><foo/></invalid>
   2324 </testCase>
   2325 <testCase>
   2326 <section>4.12</section>
   2327 <correct>
   2328 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2329   <interleave>
   2330     <element name="bar">
   2331       <empty/>
   2332     </element>
   2333   </interleave>
   2334 </element>
   2335 </correct>
   2336 <valid><foo><bar/></foo></valid>
   2337 <invalid><foo/></invalid>
   2338 </testCase>
   2339 <testCase>
   2340 <section>4.12</section>
   2341 <correct>
   2342 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2343   <choice>
   2344     <element name="bar">
   2345       <empty/>
   2346     </element>
   2347   </choice>
   2348 </element>
   2349 </correct>
   2350 <valid><foo><bar/></foo></valid>
   2351 <invalid><foo/></invalid>
   2352 </testCase>
   2353 </testSuite>
   2354 <testSuite>
   2355 <section>4.13</section>
   2356 <testCase>
   2357 <section>4.13</section>
   2358 <correct>
   2359 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2360   <mixed>
   2361     <element name="bar">
   2362       <empty/>
   2363     </element>
   2364   </mixed>
   2365 </element>
   2366 </correct>
   2367 <valid><foo>x<bar/></foo></valid>
   2368 <valid><foo><bar/></foo></valid>
   2369 <valid><foo><bar/>x</foo></valid>
   2370 <valid><foo>x<bar/>y</foo></valid>
   2371 <invalid><foo/></invalid>
   2372 <invalid><foo><bar/><bar/></foo></invalid>
   2373 </testCase>
   2374 </testSuite>
   2375 <testSuite>
   2376 <section>4.14</section>
   2377 <testCase>
   2378 <section>4.14</section>
   2379 <correct>
   2380 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2381   <optional>
   2382     <element name="bar">
   2383       <empty/>
   2384     </element>
   2385   </optional>
   2386 </element>
   2387 </correct>
   2388 <valid><foo><bar/></foo></valid>
   2389 <valid><foo/></valid>
   2390 <invalid><foo>x<bar/></foo></invalid>
   2391 <invalid><foo><bar/><bar/></foo></invalid>
   2392 </testCase>
   2393 </testSuite>
   2394 <testSuite>
   2395 <section>4.15</section>
   2396 <testCase>
   2397 <section>4.15</section>
   2398 <correct>
   2399 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2400   <zeroOrMore>
   2401     <element name="bar">
   2402       <empty/>
   2403     </element>
   2404   </zeroOrMore>
   2405 </element>
   2406 </correct>
   2407 <valid><foo><bar/></foo></valid>
   2408 <valid><foo/></valid>
   2409 <invalid><foo>x<bar/></foo></invalid>
   2410 <invalid><foo><baz/></foo></invalid>
   2411 <valid><foo><bar/><bar/></foo></valid>
   2412 </testCase>
   2413 </testSuite>
   2414 <testSuite>
   2415 <section>4.16</section>
   2416 <testCase>
   2417 <section>4.16</section>
   2418 <incorrect>
   2419 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2420 <start>
   2421   <element>
   2422     <anyName>
   2423       <except>
   2424         <anyName/>
   2425       </except>
   2426     </anyName>
   2427     <empty/>
   2428   </element>
   2429 </start>
   2430 </grammar>
   2431 </incorrect>
   2432 </testCase>
   2433 <testCase>
   2434 <section>4.16</section>
   2435 <incorrect>
   2436 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2437 <start>
   2438   <element>
   2439     <anyName>
   2440       <except>
   2441         <choice>
   2442           <anyName/>
   2443           <name>foo</name>
   2444         </choice>
   2445       </except>
   2446     </anyName>
   2447     <empty/>
   2448   </element>
   2449 </start>
   2450 </grammar>
   2451 </incorrect>
   2452 </testCase>
   2453 <testCase>
   2454 <section>4.16</section>
   2455 <incorrect>
   2456 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2457 <start>
   2458   <element>
   2459     <nsName ns="">
   2460       <except>
   2461         <nsName ns=""/>
   2462       </except>
   2463     </nsName>
   2464     <empty/>
   2465   </element>
   2466 </start>
   2467 </grammar>
   2468 </incorrect>
   2469 </testCase>
   2470 <testCase>
   2471 <section>4.16</section>
   2472 <incorrect>
   2473 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2474 <start>
   2475   <element>
   2476     <nsName ns="">
   2477       <except>
   2478         <choice>
   2479           <nsName ns=""/>
   2480           <name>foo</name>
   2481         </choice>
   2482       </except>
   2483     </nsName>
   2484     <empty/>
   2485   </element>
   2486 </start>
   2487 </grammar>
   2488 </incorrect>
   2489 </testCase>
   2490 <testCase>
   2491 <section>4.16</section>
   2492 <incorrect>
   2493 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2494 <start>
   2495   <element>
   2496     <nsName ns="">
   2497       <except>
   2498         <anyName/>
   2499       </except>
   2500     </nsName>
   2501     <empty/>
   2502   </element>
   2503 </start>
   2504 </grammar>
   2505 </incorrect>
   2506 </testCase>
   2507 <testCase>
   2508 <section>4.16</section>
   2509 <incorrect>
   2510 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2511 <start>
   2512   <element>
   2513     <nsName ns="">
   2514       <except>
   2515         <choice>
   2516           <anyName/>
   2517           <name>foo</name>
   2518         </choice>
   2519       </except>
   2520     </nsName>
   2521     <empty/>
   2522   </element>
   2523 </start>
   2524 </grammar>
   2525 </incorrect>
   2526 </testCase>
   2527 <testCase>
   2528 <section>4.16</section>
   2529 <documentation>Tests that 4.16 is before 4.20.</documentation>
   2530 <incorrect>
   2531 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2532 <start>
   2533   <element name="foo">
   2534     <zeroOrMore>
   2535       <attribute>
   2536 	<anyName>
   2537 	  <except>
   2538 	    <anyName/>
   2539 	  </except>
   2540 	</anyName>
   2541 	<text/>
   2542       </attribute>
   2543       <notAllowed/>
   2544     </zeroOrMore>
   2545   </element>
   2546 </start>
   2547 </grammar>
   2548 </incorrect>
   2549 </testCase>
   2550 <testCase>
   2551 <section>4.16</section>
   2552 <documentation>Tests that 4.16 is before removal of unreachable definitions.</documentation>
   2553 <incorrect>
   2554 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2555 <start>
   2556   <element name="foo">
   2557     <empty/>
   2558   </element>
   2559 </start>
   2560 <define name="bar">
   2561   <element>
   2562     <anyName>
   2563       <except>
   2564 	<anyName/>
   2565       </except>
   2566     </anyName>
   2567     <empty/>
   2568   </element>
   2569 </define>
   2570 </grammar>
   2571 </incorrect>
   2572 </testCase>
   2573 <testCase>
   2574 <section>4.16</section>
   2575 <incorrect>
   2576 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2577   <attribute name="xmlns">
   2578     <text/>
   2579   </attribute>
   2580 </element>
   2581 </incorrect>
   2582 </testCase>
   2583 <testCase>
   2584 <section>4.16</section>
   2585 <correct>
   2586 <element name="xmlns" xmlns="http://relaxng.org/ns/structure/1.0">
   2587   <empty/>
   2588 </element>
   2589 </correct>
   2590 <valid><xmlns/></valid>
   2591 </testCase>
   2592 <testCase>
   2593 <section>4.16</section>
   2594 <incorrect>
   2595 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2596   <attribute name=" xmlns">
   2597     <text/>
   2598   </attribute>
   2599 </element>
   2600 </incorrect>
   2601 </testCase>
   2602 <testCase>
   2603 <section>4.16</section>
   2604 <incorrect>
   2605 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2606   <optional>
   2607     <notAllowed/>
   2608     <attribute name="xmlns">
   2609       <text/>
   2610     </attribute>
   2611   </optional>
   2612 </element>
   2613 </incorrect>
   2614 </testCase>
   2615 <testCase>
   2616 <section>4.16</section>
   2617 <incorrect>
   2618 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2619   <start>
   2620     <element name="foo">
   2621       <empty/>
   2622     </element>
   2623   </start>
   2624   <define name="foo">
   2625     <attribute name="xmlns">
   2626       <text/>
   2627     </attribute>
   2628   </define>
   2629 </grammar>
   2630 </incorrect>
   2631 </testCase>
   2632 <testCase>
   2633 <section>4.16</section>
   2634 <incorrect>
   2635 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2636   <attribute name="xmlns" ns="">
   2637     <text/>
   2638   </attribute>
   2639 </element>
   2640 </incorrect>
   2641 </testCase>
   2642 <testCase>
   2643 <section>4.16</section>
   2644 <incorrect>
   2645 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2646   <attribute>
   2647     <choice>
   2648       <name ns="">xmlns</name>
   2649       <name>foo</name>
   2650     </choice>
   2651     <text/>
   2652   </attribute>
   2653 </element>
   2654 </incorrect>
   2655 </testCase>
   2656 <testCase>
   2657 <section>4.16</section>
   2658 <incorrect>
   2659 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2660   <attribute>
   2661     <name ns="">xmlns</name>
   2662     <text/>
   2663   </attribute>
   2664 </element>
   2665 </incorrect>
   2666 </testCase>
   2667 <testCase>
   2668 <section>4.16</section>
   2669 <incorrect>
   2670 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2671   <attribute>
   2672     <name>xmlns</name>
   2673     <text/>
   2674   </attribute>
   2675 </element>
   2676 </incorrect>
   2677 </testCase>
   2678 <testCase>
   2679 <section>4.16</section>
   2680 <incorrect>
   2681 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2682   <attribute>
   2683     <name>
   2684       xmlns
   2685     </name>
   2686     <text/>
   2687   </attribute>
   2688 </element>
   2689 </incorrect>
   2690 </testCase>
   2691 <testCase>
   2692 <section>4.16</section>
   2693 <incorrect>
   2694 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2695   <attribute>
   2696     <choice>
   2697       <name>foo</name>
   2698       <name ns="">xmlns</name>
   2699     </choice>
   2700     <text/>
   2701   </attribute>
   2702 </element>
   2703 </incorrect>
   2704 </testCase>
   2705 <testCase>
   2706 <section>4.16</section>
   2707 <incorrect>
   2708 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2709   <oneOrMore>
   2710     <attribute>
   2711       <anyName>
   2712 	<except>
   2713 	  <name>xmlns</name>
   2714 	</except>
   2715       </anyName>
   2716       <text/>
   2717     </attribute>
   2718   </oneOrMore>
   2719 </element>
   2720 </incorrect>
   2721 </testCase>
   2722 <testCase>
   2723 <section>4.16</section>
   2724 <incorrect>
   2725 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2726   <oneOrMore>
   2727     <attribute>
   2728       <nsName ns="">
   2729 	<except>
   2730 	  <name>xmlns</name>
   2731 	</except>
   2732       </nsName>
   2733       <text/>
   2734     </attribute>
   2735   </oneOrMore>
   2736 </element>
   2737 </incorrect>
   2738 </testCase>
   2739 <testCase>
   2740 <section>4.16</section>
   2741 <incorrect>
   2742 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2743   <attribute ns="http://www.w3.org/2000/xmlns" name="bar">
   2744     <text/>
   2745   </attribute>
   2746 </element>
   2747 </incorrect>
   2748 </testCase>
   2749 <testCase>
   2750 <section>4.16</section>
   2751 <correct>
   2752 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0" ns="http://www.w3.org/2000/xmlns">
   2753   <empty/>
   2754 </element>
   2755 </correct>
   2756 <valid><foo xmlns="http://www.w3.org/2000/xmlns"/></valid>
   2757 </testCase>
   2758 <testCase>
   2759 <section>4.16</section>
   2760 <incorrect>
   2761 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2762   <data type="token">
   2763     <param name="minLength">2</param>
   2764   </data>
   2765 </element>
   2766 </incorrect>
   2767 </testCase>
   2768 <testCase>
   2769 <section>4.16</section>
   2770 <incorrect>
   2771 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2772   <data type="tok"/>
   2773 </element>
   2774 </incorrect>
   2775 </testCase>
   2776 <testCase>
   2777 <section>4.16</section>
   2778 <incorrect>
   2779 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2780   <value type="tok"/>
   2781 </element>
   2782 </incorrect>
   2783 </testCase>
   2784 <testCase>
   2785 <section>4.16</section>
   2786 <incorrect>
   2787 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2788   <optional>
   2789     <notAllowed/>
   2790     <data type="token">
   2791       <param name="minLength">2</param>
   2792     </data>
   2793   </optional>
   2794 </element>
   2795 </incorrect>
   2796 </testCase>
   2797 <testCase>
   2798 <section>4.16</section>
   2799 <incorrect>
   2800 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2801   <optional>
   2802     <notAllowed/>
   2803     <data type="tok"/>
   2804   </optional>
   2805 </element>
   2806 </incorrect>
   2807 </testCase>
   2808 <testCase>
   2809 <section>4.16</section>
   2810 <incorrect>
   2811 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   2812   <optional>
   2813     <notAllowed/>
   2814     <value type="tok"/>
   2815   </optional>
   2816 </element>
   2817 </incorrect>
   2818 </testCase>
   2819 <testCase>
   2820 <section>4.16</section>
   2821 <incorrect>
   2822 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2823 <start>
   2824   <element name="foo">
   2825     <empty/>
   2826   </element>
   2827 </start>
   2828 <define name="foo">
   2829   <data type="token">
   2830     <param name="minLength">2</param>
   2831   </data>
   2832 </define>
   2833 </grammar>
   2834 </incorrect>
   2835 </testCase>
   2836 <testCase>
   2837 <section>4.16</section>
   2838 <incorrect>
   2839 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2840 <start>
   2841   <element name="foo">
   2842     <empty/>
   2843   </element>
   2844 </start>
   2845 <define name="foo">
   2846   <data type="tok"/>
   2847 </define>
   2848 </grammar>
   2849 </incorrect>
   2850 </testCase>
   2851 <testCase>
   2852 <section>4.16</section>
   2853 <incorrect>
   2854 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2855 <start>
   2856   <element name="foo">
   2857     <empty/>
   2858   </element>
   2859 </start>
   2860 <define name="foo">
   2861   <value type="tok"/>
   2862 </define>
   2863 </grammar>
   2864 </incorrect>
   2865 </testCase>
   2866 </testSuite>
   2867 <testSuite>
   2868 <section>4.17</section>
   2869 <testCase>
   2870 <section>4.17</section>
   2871 <incorrect>
   2872 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2873 <start>
   2874   <ref name="x"/>
   2875 </start>
   2876 <define name="x">
   2877   <element name="foo1">
   2878     <empty/>
   2879   </element>
   2880 </define>
   2881 <define name="x" combine="choice">
   2882   <element name="foo2">
   2883     <empty/>
   2884   </element>
   2885 </define>
   2886 <define name="x">
   2887   <element name="foo3">
   2888     <empty/>
   2889   </element>
   2890 </define>
   2891 </grammar>
   2892 </incorrect>
   2893 </testCase>
   2894 <testCase>
   2895 <section>4.17</section>
   2896 <incorrect>
   2897 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2898 <start name="x">
   2899   <element name="foo1">
   2900     <empty/>
   2901   </element>
   2902 </start>
   2903 <start name="x" combine="choice">
   2904   <element name="foo2">
   2905     <empty/>
   2906   </element>
   2907 </start>
   2908 <start name="x">
   2909   <element name="foo3">
   2910     <empty/>
   2911   </element>
   2912 </start>
   2913 </grammar>
   2914 </incorrect>
   2915 </testCase>
   2916 <testCase>
   2917 <section>4.17</section>
   2918 <incorrect>
   2919 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2920 <start>
   2921   <ref name="x"/>
   2922 </start>
   2923 <define name="x">
   2924   <element name="foo1">
   2925     <empty/>
   2926   </element>
   2927 </define>
   2928 <define name="x">
   2929   <element name="foo2">
   2930     <empty/>
   2931   </element>
   2932 </define>
   2933 </grammar>
   2934 </incorrect>
   2935 </testCase>
   2936 <testCase>
   2937 <section>4.17</section>
   2938 <incorrect>
   2939 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2940 <start name="x">
   2941   <element name="foo1">
   2942     <empty/>
   2943   </element>
   2944 </start>
   2945 <start name="x">
   2946   <element name="foo2">
   2947     <empty/>
   2948   </element>
   2949 </start>
   2950 </grammar>
   2951 </incorrect>
   2952 </testCase>
   2953 <testCase>
   2954 <section>4.17</section>
   2955 <correct>
   2956 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2957 <start>
   2958   <ref name="x"/>
   2959 </start>
   2960 <define name="x" combine="choice">
   2961   <element name="foo1">
   2962     <empty/>
   2963   </element>
   2964 </define>
   2965 <define name="x" combine="choice">
   2966   <element name="foo2">
   2967     <empty/>
   2968   </element>
   2969 </define>
   2970 <define name="x">
   2971   <element name="foo3">
   2972     <empty/>
   2973   </element>
   2974 </define>
   2975 </grammar>
   2976 </correct>
   2977 <valid>
   2978 <foo1/>
   2979 </valid>
   2980 <valid>
   2981 <foo2/>
   2982 </valid>
   2983 <valid>
   2984 <foo3/>
   2985 </valid>
   2986 <invalid>
   2987 <foo4/>
   2988 </invalid>
   2989 </testCase>
   2990 <testCase>
   2991 <section>4.17</section>
   2992 <correct>
   2993 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   2994 <start combine="choice">
   2995   <element name="foo1">
   2996     <empty/>
   2997   </element>
   2998 </start>
   2999 <start combine="choice">
   3000   <element name="foo2">
   3001     <empty/>
   3002   </element>
   3003 </start>
   3004 <start>
   3005   <element name="foo3">
   3006     <empty/>
   3007   </element>
   3008 </start>
   3009 </grammar>
   3010 </correct>
   3011 <valid>
   3012 <foo1/>
   3013 </valid>
   3014 <valid>
   3015 <foo2/>
   3016 </valid>
   3017 <valid>
   3018 <foo3/>
   3019 </valid>
   3020 <invalid>
   3021 <foo4/>
   3022 </invalid>
   3023 </testCase>
   3024 <testCase>
   3025 <section>4.17</section>
   3026 <incorrect>
   3027 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3028 <start>
   3029   <element name="foo">
   3030     <ref name="x"/>
   3031   </element>
   3032 </start>
   3033 <define name="x" combine="choice">
   3034   <element name="bar1">
   3035     <empty/>
   3036   </element>
   3037 </define>
   3038 <define name="x">
   3039   <element name="bar2">
   3040     <empty/>
   3041   </element>
   3042 </define>
   3043 <define name="x" combine="interleave">
   3044   <element name="bar3">
   3045     <empty/>
   3046   </element>
   3047 </define>
   3048 </grammar>
   3049 </incorrect>
   3050 </testCase>
   3051 <testCase>
   3052 <section>4.17</section>
   3053 <incorrect>
   3054 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3055 <grammar>
   3056 <start name="x" combine="choice">
   3057   <element name="bar1">
   3058     <empty/>
   3059   </element>
   3060 </start>
   3061 <start name="x">
   3062   <element name="bar2">
   3063     <empty/>
   3064   </element>
   3065 </start>
   3066 <start name="x" combine="interleave">
   3067   <element name="bar3">
   3068     <empty/>
   3069   </element>
   3070 </start>
   3071 </grammar>
   3072 </element>
   3073 </incorrect>
   3074 </testCase>
   3075 <testCase>
   3076 <section>4.17</section>
   3077 <correct>
   3078 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3079 <start>
   3080   <element name="foo">
   3081     <ref name="x"/>
   3082   </element>
   3083 </start>
   3084 <define name="x" combine="interleave">
   3085   <element name="bar1">
   3086     <empty/>
   3087   </element>
   3088 </define>
   3089 <define name="x" combine="interleave">
   3090   <element name="bar2">
   3091     <empty/>
   3092   </element>
   3093 </define>
   3094 <define name="x">
   3095   <element name="bar3">
   3096     <empty/>
   3097   </element>
   3098 </define>
   3099 </grammar>
   3100 </correct>
   3101 <valid>
   3102 <foo><bar1/><bar2/><bar3/></foo>
   3103 </valid>
   3104 <valid>
   3105 <foo><bar1/><bar3/><bar2/></foo>
   3106 </valid>
   3107 <valid>
   3108 <foo><bar2/><bar3/><bar1/></foo>
   3109 </valid>
   3110 <invalid>
   3111 <foo><bar2/><bar3/><bar1/><bar2/></foo>
   3112 </invalid>
   3113 </testCase>
   3114 <testCase>
   3115 <section>4.17</section>
   3116 <correct>
   3117 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3118 <grammar>
   3119 <start combine="interleave">
   3120   <element name="bar1">
   3121     <empty/>
   3122   </element>
   3123 </start>
   3124 <start>
   3125   <element name="bar2">
   3126     <empty/>
   3127   </element>
   3128 </start>
   3129 <start combine="interleave">
   3130   <element name="bar3">
   3131     <empty/>
   3132   </element>
   3133 </start>
   3134 </grammar>
   3135 </element>
   3136 </correct>
   3137 <valid>
   3138 <foo><bar1/><bar2/><bar3/></foo>
   3139 </valid>
   3140 <valid>
   3141 <foo><bar1/><bar3/><bar2/></foo>
   3142 </valid>
   3143 <valid>
   3144 <foo><bar2/><bar3/><bar1/></foo>
   3145 </valid>
   3146 <invalid>
   3147 <foo><bar2/><bar3/><bar1/><bar2/></foo>
   3148 </invalid>
   3149 </testCase>
   3150 <testCase>
   3151 <section>4.17</section>
   3152 <incorrect>
   3153 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3154 <start>
   3155   <element name="foo">
   3156     <ref name="x"/>
   3157   </element>
   3158 </start>
   3159 <define name="x">
   3160   <element name="bar1">
   3161     <empty/>
   3162   </element>
   3163 </define>
   3164 <define name="x" combine="interleave">
   3165   <element name="bar2">
   3166     <empty/>
   3167   </element>
   3168 </define>
   3169 <define name="x">
   3170   <element name="bar3">
   3171     <empty/>
   3172   </element>
   3173 </define>
   3174 </grammar>
   3175 </incorrect>
   3176 </testCase>
   3177 <testCase>
   3178 <section>4.17</section>
   3179 <incorrect>
   3180 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0"> 
   3181 <grammar>
   3182 <start name="x">
   3183   <element name="bar1">
   3184     <empty/>
   3185   </element>
   3186 </start>
   3187 <start name="x" combine="interleave">
   3188   <element name="bar2">
   3189     <empty/>
   3190   </element>
   3191 </start>
   3192 <start name="x">
   3193   <element name="bar3">
   3194     <empty/>
   3195   </element>
   3196 </start>
   3197 </grammar>
   3198 </element>
   3199 </incorrect>
   3200 </testCase>
   3201 </testSuite>
   3202 <testSuite>
   3203 <section>4.18</section>
   3204 <testCase>
   3205 <section>4.18</section>
   3206 <documentation>grammar must have a start</documentation>
   3207 <incorrect>
   3208 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3209   <define name="foo">
   3210     <element name="foo">
   3211       <empty/>
   3212     </element>
   3213   </define>
   3214 </grammar>   
   3215 </incorrect>
   3216 </testCase>
   3217 <testCase>
   3218 <section>4.18</section>
   3219 <documentation>4.17 is before 4.18</documentation>
   3220 <incorrect>
   3221 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3222   <start>
   3223     <element name="foo">
   3224       <empty/>
   3225     </element>
   3226   </start>
   3227   <define name="bar">
   3228     <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3229       <define name="foo">
   3230 	<element name="foo">
   3231 	  <empty/>
   3232 	</element>
   3233       </define>
   3234     </grammar>   
   3235   </define>
   3236 </grammar>
   3237 </incorrect>
   3238 </testCase>
   3239 <testCase>
   3240 <section>4.18</section>
   3241 <documentation>4.17 is before 4.19</documentation>
   3242 <incorrect>
   3243 <choice xmlns="http://relaxng.org/ns/structure/1.0">
   3244   <element name="foo">
   3245     <empty/>
   3246   </element>
   3247   <group>
   3248     <notAllowed/>
   3249     <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3250       <define name="foo">
   3251 	<element name="foo">
   3252 	  <empty/>
   3253 	</element>
   3254       </define>
   3255     </grammar>   
   3256   </group>
   3257 </choice>
   3258 </incorrect>
   3259 </testCase>
   3260 <testCase>
   3261 <section>4.18</section>
   3262 <documentation>every ref must have a def</documentation>
   3263 <incorrect>
   3264 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3265   <start>
   3266     <ref name="foo"/>
   3267   </start>
   3268 </grammar>
   3269 </incorrect>
   3270 </testCase>
   3271 <testCase>
   3272 <section>4.18</section>
   3273 <documentation>4.17 is before 4.18</documentation>
   3274 <incorrect>
   3275 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3276   <start>
   3277     <element name="foo">
   3278       <empty/>
   3279     </element>
   3280   </start>
   3281   <define name="foo">
   3282     <ref name="bar"/>
   3283   </define>
   3284 </grammar>
   3285 </incorrect>
   3286 </testCase>
   3287 <testCase>
   3288 <section>4.18</section>
   3289 <documentation>4.17 is before 4.19</documentation>
   3290 <incorrect>
   3291 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3292   <start>
   3293     <choice>
   3294       <element name="foo">
   3295 	<empty/>
   3296       </element>
   3297       <group>
   3298         <notAllowed/>
   3299         <ref name="foo"/>
   3300       </group>
   3301     </choice>
   3302   </start>
   3303 </grammar>
   3304 </incorrect>
   3305 </testCase>
   3306 <testCase>
   3307 <section>4.18</section>
   3308 <documentation>every parentRef must have a def</documentation>
   3309 <incorrect>
   3310 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3311   <start>
   3312     <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3313       <start>
   3314 	<parentRef name="foo"/>
   3315       </start>
   3316       <define name="foo">
   3317         <element name="foo">
   3318           <empty/>
   3319         </element>
   3320       </define>
   3321     </grammar>
   3322   </start>
   3323 </grammar>
   3324 </incorrect>
   3325 </testCase>
   3326 <testCase>
   3327 <section>4.18</section>
   3328 <documentation>4.17 is before 4.18</documentation>
   3329 <incorrect>
   3330 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3331   <start>
   3332     <element name="foo">
   3333       <empty/>
   3334     </element>
   3335   </start>
   3336   <define name="bar">
   3337     <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3338       <start>
   3339 	<parentRef name="foo"/>
   3340       </start>
   3341       <define name="foo">
   3342         <element name="foo">
   3343           <empty/>
   3344         </element>
   3345       </define>
   3346     </grammar>
   3347   </define>
   3348 </grammar>
   3349 </incorrect>
   3350 </testCase>
   3351 <testCase>
   3352 <section>4.18</section>
   3353 <documentation>4.17 is before 4.19</documentation>
   3354 <incorrect>
   3355 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3356   <start>
   3357     <choice>
   3358       <element name="foo">
   3359 	<empty/>
   3360       </element>
   3361       <group>
   3362 	<notAllowed/>
   3363 	<grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3364 	  <start>
   3365 	    <parentRef name="foo"/>
   3366 	  </start>
   3367 	  <define name="foo">
   3368 	    <element name="foo">
   3369 	      <empty/>
   3370 	    </element>
   3371 	  </define>
   3372 	</grammar>
   3373       </group>
   3374     </choice>
   3375   </start>
   3376 </grammar>
   3377 </incorrect>
   3378 </testCase>
   3379 <testCase>
   3380 <section>4.18</section>
   3381 <incorrect>
   3382 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3383   <start>
   3384     <ref name="foo"/>
   3385   </start>
   3386   <define name="foo">
   3387     <choice>
   3388       <element name="foo">
   3389         <empty/>
   3390       </element>
   3391       <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3392         <start>
   3393 	  <parentRef name="foo"/>
   3394         </start>
   3395       </grammar>
   3396     </choice>
   3397   </define>
   3398 </grammar>
   3399 </incorrect>
   3400 </testCase>
   3401 <testCase>
   3402 <section>4.18</section>
   3403 <correct>
   3404 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3405   <start>
   3406     <ref name="foo"/>
   3407   </start>
   3408   <define name="foo">
   3409     <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3410       <start>
   3411 	<ref name="foo"/>
   3412       </start>
   3413       <define name="foo">
   3414 	<element name="foo">
   3415 	  <empty/>
   3416 	</element>
   3417       </define>
   3418     </grammar>
   3419   </define>
   3420 </grammar>
   3421 </correct>
   3422 <valid><foo/></valid>
   3423 </testCase>
   3424 <testCase>
   3425 <section>4.18</section>
   3426 <correct>
   3427 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3428   <start>
   3429     <grammar>
   3430       <start>
   3431         <ref name="foo"/>
   3432       </start>
   3433       <define name="foo">
   3434         <element name="innerFoo">
   3435            <parentRef name="foo"/>
   3436         </element>
   3437       </define>
   3438     </grammar>
   3439   </start>
   3440   <define name="foo">
   3441     <element name="outerFoo">
   3442       <empty/>
   3443     </element>
   3444   </define>
   3445 </grammar>
   3446 </correct>
   3447 <valid><innerFoo><outerFoo/></innerFoo></valid>
   3448 <invalid><outerFoo/></invalid>
   3449 </testCase>
   3450 <testCase>
   3451 <section>4.18</section>
   3452 <correct>
   3453 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3454   <start>
   3455     <ref name="foo"/>
   3456   </start>
   3457   <define name="foo">
   3458     <element name="outerFoo">
   3459       <grammar>
   3460 	<start>
   3461 	  <ref name="foo"/>
   3462 	</start>
   3463 	<define name="foo">
   3464 	  <element name="innerFoo">
   3465 	     <empty/>
   3466 	  </element>
   3467 	</define>
   3468       </grammar>
   3469     </element>
   3470   </define>
   3471 </grammar>
   3472 </correct>
   3473 <valid><outerFoo><innerFoo/></outerFoo></valid>
   3474 <invalid><innerFoo/></invalid>
   3475 </testCase>
   3476 </testSuite>
   3477 <testSuite>
   3478 <section>4.19</section>
   3479 <testCase>
   3480 <section>4.19</section>
   3481 <incorrect>
   3482 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3483   <start>
   3484     <element name="foo">
   3485       <ref name="bar"/>
   3486     </element>
   3487   </start>
   3488   <define name="bar">
   3489     <optional>
   3490       <element name="bar">
   3491         <empty/>
   3492       </element>
   3493       <ref name="bar"/>
   3494     </optional>
   3495   </define>
   3496 </grammar>
   3497 </incorrect>
   3498 </testCase>
   3499 <testCase>
   3500 <section>4.19</section>
   3501 <correct>
   3502 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3503   <start>
   3504     <element name="foo">
   3505       <ref name="bar"/>
   3506     </element>
   3507   </start>
   3508   <define name="bar">
   3509     <element name="bar">
   3510       <optional>
   3511         <ref name="bar"/>
   3512       </optional>
   3513     </element>
   3514   </define>
   3515 </grammar>
   3516 </correct>
   3517 <valid>
   3518 <foo><bar/></foo>
   3519 </valid>
   3520 <valid>
   3521 <foo><bar><bar/></bar></foo>
   3522 </valid>
   3523 <invalid>
   3524 <foo/>
   3525 </invalid>
   3526 </testCase>
   3527 <testCase>
   3528 <section>4.19</section>
   3529 <correct>
   3530 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3531   <start>
   3532     <element name="foo">
   3533       <empty/>
   3534     </element>
   3535   </start>
   3536   <define name="bar">
   3537     <ref name="bar"/>
   3538   </define>
   3539 </grammar>
   3540 </correct>
   3541 <valid><foo/></valid>
   3542 </testCase>
   3543 <testCase>
   3544 <section>4.19</section>
   3545 <section>4.20</section>
   3546 <documentation>Tests that recursion detection happens before
   3547 normalization of notAllowed.</documentation>
   3548 <incorrect>
   3549 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   3550   <start>
   3551     <choice>
   3552       <element name="foo">
   3553         <empty/>
   3554       </element>
   3555       <group>
   3556         <notAllowed/>
   3557         <ref name="bar"/>
   3558       </group>
   3559     </choice>
   3560   </start>
   3561   <define name="bar">
   3562     <element name="bar">
   3563       <empty/>
   3564     </element>
   3565     <optional>
   3566       <ref name="bar"/>
   3567     </optional>
   3568   </define>
   3569 </grammar>
   3570 </incorrect>
   3571 </testCase>
   3572 </testSuite>
   3573 </testSuite>
   3574 <testSuite>
   3575 <section>6</section>
   3576 <testSuite>
   3577 <section>6.1</section>
   3578 <testCase>
   3579 <section>6.1</section>
   3580 <correct>
   3581 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3582   <anyName/>
   3583   <empty/>
   3584 </element>
   3585 </correct>
   3586 <valid>
   3587 <foo/>
   3588 </valid>
   3589 <valid>
   3590 <foo xmlns="http://www.example.com"/>
   3591 </valid>
   3592 </testCase>
   3593 <testCase>
   3594 <section>6.1</section>
   3595 <correct>
   3596 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3597   <anyName>
   3598     <except>
   3599       <name ns="">foo</name>
   3600     </except>
   3601   </anyName>
   3602   <empty/>
   3603 </element>
   3604 </correct>
   3605 <invalid>
   3606 <foo/>
   3607 </invalid>
   3608 <valid>
   3609 <foo xmlns="http://www.example.com"/>
   3610 </valid>
   3611 <valid>
   3612 <bar/>
   3613 </valid>
   3614 </testCase>
   3615 <testCase>
   3616 <section>6.1</section>
   3617 <correct>
   3618 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3619   <anyName>
   3620     <except>
   3621       <nsName ns=""/>
   3622     </except>
   3623   </anyName>
   3624   <empty/>
   3625 </element>
   3626 </correct>
   3627 <invalid>
   3628 <foo/>
   3629 </invalid>
   3630 <valid>
   3631 <foo xmlns="http://www.example.com"/>
   3632 </valid>
   3633 </testCase>
   3634 <testCase>
   3635 <section>6.1</section>
   3636 <correct>
   3637 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3638   <nsName ns=""/>
   3639   <empty/>
   3640 </element>
   3641 </correct>
   3642 <valid>
   3643 <foo/>
   3644 </valid>
   3645 <invalid>
   3646 <foo xmlns="http://www.example.com"/>
   3647 </invalid>
   3648 </testCase>
   3649 <testCase>
   3650 <section>6.1</section>
   3651 <correct>
   3652 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3653   <nsName ns="http://www.example.com"/>
   3654   <empty/>
   3655 </element>
   3656 </correct>
   3657 <invalid>
   3658 <foo/>
   3659 </invalid>
   3660 <invalid>
   3661 <foo xmlns="HTTP://www.example.com"/>
   3662 </invalid>
   3663 <invalid>
   3664 <foo xmlns="http://www.example.com/"/>
   3665 </invalid>
   3666 <valid>
   3667 <foo xmlns="http://www.example.com"/>
   3668 </valid>
   3669 </testCase>
   3670 <testCase>
   3671 <section>6.1</section>
   3672 <correct>
   3673 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3674   <nsName ns="http://www.example.com">
   3675     <except>
   3676       <name ns="http://www.example.com">foo</name>
   3677     </except>
   3678   </nsName>
   3679   <empty/>
   3680 </element>
   3681 </correct>
   3682 <invalid>
   3683 <foo/>
   3684 </invalid>
   3685 <invalid>
   3686 <foo xmlns="http://www.example.com"/>
   3687 </invalid>
   3688 <valid>
   3689 <bar xmlns="http://www.example.com"/>
   3690 </valid>
   3691 </testCase>
   3692 <testCase>
   3693 <section>6.1</section>
   3694 <correct>
   3695 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3696   <nsName ns="http://www.example.com">
   3697     <except>
   3698       <name ns="">foo</name>
   3699     </except>
   3700   </nsName>
   3701   <empty/>
   3702 </element>
   3703 </correct>
   3704 <invalid>
   3705 <bar/>
   3706 </invalid>
   3707 <invalid>
   3708 <foo/>
   3709 </invalid>
   3710 <valid>
   3711 <foo xmlns="http://www.example.com"/>
   3712 </valid>
   3713 <valid>
   3714 <bar xmlns="http://www.example.com"/>
   3715 </valid>
   3716 </testCase>
   3717 <testCase>
   3718 <section>6.1</section>
   3719 <correct>
   3720 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3721   <name ns="http://www.example.com">foo</name>
   3722   <empty/>
   3723 </element>
   3724 </correct>
   3725 <valid>
   3726 <foo xmlns="http://www.example.com"/>
   3727 </valid>
   3728 <invalid>
   3729 <foo/>
   3730 </invalid>
   3731 <invalid>
   3732 <bar xmlns="http://www.example.com"/>
   3733 </invalid>
   3734 <invalid>
   3735 <foo xmlns="http://www.example.org"/>
   3736 </invalid>
   3737 </testCase>
   3738 <testCase>
   3739 <section>6.1</section>
   3740 <correct>
   3741 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3742   <name ns="">foo</name>
   3743   <empty/>
   3744 </element>
   3745 </correct>
   3746 <invalid>
   3747 <foo xmlns="http://www.example.com"/>
   3748 </invalid>
   3749 <valid>
   3750 <foo/>
   3751 </valid>
   3752 <invalid>
   3753 <bar xmlns="http://www.example.com"/>
   3754 </invalid>
   3755 <invalid>
   3756 <bar/>
   3757 </invalid>
   3758 </testCase>
   3759 <testCase>
   3760 <section>6.1</section>
   3761 <correct>
   3762 <element xmlns="http://relaxng.org/ns/structure/1.0">
   3763   <choice>
   3764     <name ns="">foo</name>
   3765     <name ns="">bar</name>
   3766   </choice>
   3767   <empty/>
   3768 </element>
   3769 </correct>
   3770 <invalid>
   3771 <baz/>
   3772 </invalid>
   3773 <valid>
   3774 <foo/>
   3775 </valid>
   3776 <valid>
   3777 <bar/>
   3778 </valid>
   3779 </testCase>
   3780 </testSuite>
   3781 <testSuite>
   3782 <section>6.2</section>
   3783 <testSuite>
   3784 <section>6.2.1</section>
   3785 <testCase>
   3786 <section>6.2.1</section>
   3787 <correct>
   3788 <choice xmlns="http://relaxng.org/ns/structure/1.0">
   3789   <element name="foo">
   3790     <empty/>
   3791   </element>
   3792   <element name="bar">
   3793     <empty/>
   3794   </element>
   3795 </choice>
   3796 </correct>
   3797 <valid>
   3798 <foo/>
   3799 </valid>
   3800 <valid>
   3801 <bar/>
   3802 </valid>
   3803 <invalid>
   3804 <baz/>
   3805 </invalid>
   3806 </testCase>
   3807 <testCase>
   3808 <section>6.2.1</section>
   3809 <correct>
   3810 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3811   <choice>
   3812     <group>
   3813       <element name="bar1">
   3814         <empty/>
   3815       </element>
   3816       <element name="bar2">
   3817         <empty/>
   3818       </element>
   3819     </group>
   3820     <group>
   3821       <element name="bar1">
   3822         <empty/>
   3823       </element>
   3824       <element name="bar3">
   3825         <empty/>
   3826       </element>
   3827     </group>
   3828   </choice>
   3829 </element>
   3830 </correct>
   3831 <valid>
   3832 <foo><bar1/><bar2/></foo>
   3833 </valid>
   3834 <valid>
   3835 <foo><bar1/><bar3/></foo>
   3836 </valid>
   3837 <invalid>
   3838 <foo><bar1/></foo>
   3839 </invalid>
   3840 <invalid>
   3841 <foo/>
   3842 </invalid>
   3843 <invalid>
   3844 <foo><bar2/></foo>
   3845 </invalid>
   3846 <invalid>
   3847 <foo><bar3/></foo>
   3848 </invalid>
   3849 <invalid>
   3850 <foo><bar1/><bar2/><bar3/></foo>
   3851 </invalid>
   3852 </testCase>
   3853 <testCase>
   3854 <section>6.2.1</section>
   3855 <correct>
   3856 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3857   <choice>
   3858     <group>
   3859       <attribute name="bar1">
   3860         <text/>
   3861       </attribute>
   3862       <attribute name="bar2">
   3863         <text/>
   3864       </attribute>
   3865     </group>
   3866     <group>
   3867       <attribute name="bar1">
   3868         <text/>
   3869       </attribute>
   3870       <attribute name="bar3">
   3871         <text/>
   3872       </attribute>
   3873     </group>
   3874   </choice>
   3875 </element>
   3876 </correct>
   3877 <valid>
   3878 <foo bar1="x" bar2="x"/>
   3879 </valid>
   3880 <valid>
   3881 <foo bar1="x" bar3="x"/>
   3882 </valid>
   3883 <invalid>
   3884 <foo/>
   3885 </invalid>
   3886 <invalid>
   3887 <foo bar1="x"/>
   3888 </invalid>
   3889 <invalid>
   3890 <foo bar2="x"/>
   3891 </invalid>
   3892 <invalid>
   3893 <foo bar3="x"/>
   3894 </invalid>
   3895 <invalid>
   3896 <foo bar1="x" bar2="x" bar3="x"/>
   3897 </invalid>
   3898 </testCase>
   3899 <testCase>
   3900 <section>6.2.1</section>
   3901 <correct>
   3902 <choice xmlns="http://relaxng.org/ns/structure/1.0">
   3903   <element name="foo">
   3904     <element name="bar">
   3905       <empty/>
   3906     </element>
   3907   </element>
   3908   <element name="foo">
   3909     <element name="baz">
   3910       <empty/>
   3911     </element>
   3912   </element>
   3913 </choice>
   3914 </correct>
   3915 <valid>
   3916 <foo><bar/></foo>
   3917 </valid>
   3918 <valid>
   3919 <foo><baz/></foo>
   3920 </valid>
   3921 <invalid>
   3922 <foo/>
   3923 </invalid>
   3924 <invalid>
   3925 <foo><bar/><bar/></foo>
   3926 </invalid>
   3927 <invalid>
   3928 <foo><foo/></foo>
   3929 </invalid>
   3930 <invalid>
   3931 <bar/>
   3932 </invalid>
   3933 <invalid>
   3934 <fobaz/>
   3935 </invalid>
   3936 </testCase>
   3937 </testSuite>
   3938 <testSuite>
   3939 <section>6.2.2</section>
   3940 <testCase>
   3941 <section>6.2.2</section>
   3942 <correct>
   3943 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3944   <group>
   3945     <element name="bar">
   3946       <empty/>
   3947     </element>
   3948     <element name="baz">
   3949       <empty/>
   3950     </element>
   3951   </group>
   3952 </element>
   3953 </correct>
   3954 <valid>
   3955 <foo><bar/><baz/></foo>
   3956 </valid>
   3957 <invalid>
   3958 <foo><baz/><bar/></foo>
   3959 </invalid>
   3960 <invalid>
   3961 <foo><bar/><baz/><bar/><baz/></foo>
   3962 </invalid>
   3963 <invalid>
   3964 <foo/>
   3965 </invalid>
   3966 <invalid>
   3967 <foo><bar/></foo>
   3968 </invalid>
   3969 <invalid>
   3970 <foo><baz/></foo>
   3971 </invalid>
   3972 </testCase>
   3973 <testCase>
   3974 <section>6.2.2</section>
   3975 <correct>
   3976 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3977   <group>
   3978     <attribute name="bar">
   3979       <text/>
   3980     </attribute>
   3981     <attribute name="baz">
   3982       <text/>
   3983     </attribute>
   3984   </group>
   3985 </element>
   3986 </correct>
   3987 <valid>
   3988 <foo bar="x" baz="x"/>
   3989 </valid>
   3990 <invalid>
   3991 <foo/>
   3992 </invalid>
   3993 </testCase>
   3994 <testCase>
   3995 <section>6.2.2</section>
   3996 <correct>
   3997 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   3998   <group>
   3999     <attribute name="bar">
   4000       <text/>
   4001     </attribute>
   4002     <attribute name="baz">
   4003       <text/>
   4004     </attribute>
   4005   </group>
   4006 </element>
   4007 </correct>
   4008 <valid>
   4009 <foo bar="x" baz="x"/>
   4010 </valid>
   4011 <invalid>
   4012 <foo/>
   4013 </invalid>
   4014 <invalid>
   4015 <foo bar="x"/>
   4016 </invalid>
   4017 <invalid>
   4018 <foo baz="x"/>
   4019 </invalid>
   4020 </testCase>
   4021 <testCase>
   4022 <section>6.2.2</section>
   4023 <correct>
   4024 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4025   <group>
   4026     <attribute name="baz">
   4027       <text/>
   4028     </attribute>
   4029     <attribute name="bar">
   4030       <text/>
   4031     </attribute>
   4032   </group>
   4033 </element>
   4034 </correct>
   4035 <valid>
   4036 <foo bar="x" baz="x"/>
   4037 </valid>
   4038 <invalid>
   4039 <foo/>
   4040 </invalid>
   4041 <invalid>
   4042 <foo bar="x"/>
   4043 </invalid>
   4044 <invalid>
   4045 <foo baz="x"/>
   4046 </invalid>
   4047 </testCase>
   4048 <testCase>
   4049 <section>6.2.2</section>
   4050 <correct>
   4051 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4052   <group>
   4053     <attribute name="bar">
   4054       <text/>
   4055     </attribute>
   4056     <element name="baz">
   4057       <empty/>
   4058     </element>
   4059   </group>
   4060 </element>
   4061 </correct>
   4062 <valid>
   4063 <foo bar="x"><baz/></foo>
   4064 </valid>
   4065 <invalid>
   4066 <foo><baz/></foo>
   4067 </invalid>
   4068 <invalid>
   4069 <foo bar="x"/>
   4070 </invalid>
   4071 <invalid>
   4072 <foo baz="x"><bar/></foo>
   4073 </invalid>
   4074 </testCase>
   4075 <testCase>
   4076 <section>6.2.2</section>
   4077 <correct>
   4078 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4079   <group>
   4080     <element name="baz">
   4081       <empty/>
   4082     </element>
   4083     <attribute name="bar">
   4084       <text/>
   4085     </attribute>
   4086   </group>
   4087 </element>
   4088 </correct>
   4089 <valid>
   4090 <foo bar="x"><baz/></foo>
   4091 </valid>
   4092 <invalid>
   4093 <foo><baz/></foo>
   4094 </invalid>
   4095 <invalid>
   4096 <foo bar="x"/>
   4097 </invalid>
   4098 <invalid>
   4099 <foo baz="x"><bar/></foo>
   4100 </invalid>
   4101 </testCase>
   4102 </testSuite>
   4103 <testSuite>
   4104 <section>6.2.3</section>
   4105 <testCase>
   4106 <section>6.2.3</section>
   4107 <correct>
   4108 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4109   <empty/>
   4110 </element>
   4111 </correct>
   4112 <valid>
   4113 <foo/>
   4114 </valid>
   4115 <valid>
   4116 <foo> </foo>
   4117 </valid>
   4118 <valid>
   4119 <foo>
   4120 
   4121 
   4122 </foo>
   4123 </valid>
   4124 <valid>
   4125 <foo>
   4126 <?target data?>
   4127 <?target data?>
   4128 <?target data?>
   4129 <?target data?>
   4130 </foo>
   4131 </valid>
   4132 <invalid>
   4133 <foo>x</foo>
   4134 </invalid>
   4135 <invalid>
   4136 <foo><bar/></foo>
   4137 </invalid>
   4138 <invalid>
   4139 <foo bar="x"/>
   4140 </invalid>
   4141 </testCase>
   4142 <testCase>
   4143 <section>6.2.3</section>
   4144 <correct>
   4145 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4146   <attribute name="bar">
   4147     <empty/>
   4148   </attribute>
   4149 </element>
   4150 </correct>
   4151 <valid><foo bar=""/></valid>
   4152 <valid><foo bar=" "/></valid>
   4153 <invalid><foo bar="x"/></invalid>
   4154 </testCase>
   4155 <testCase>
   4156 <section>6.2.3</section>
   4157 <correct>
   4158 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4159   <list>
   4160     <empty/>
   4161   </list>
   4162 </element>
   4163 </correct>
   4164 <valid><foo/></valid>
   4165 <valid><foo> </foo></valid>
   4166 <invalid><foo>x</foo></invalid>
   4167 <invalid><foo><bar/></foo></invalid>
   4168 <invalid><foo bar=""/></invalid>
   4169 </testCase>
   4170 <testCase>
   4171 <section>6.2.3</section>
   4172 <correct>
   4173 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4174   <attribute name="bar">
   4175     <list>
   4176       <empty/>
   4177     </list>
   4178   </attribute>
   4179 </element>
   4180 </correct>
   4181 <valid><foo bar=""/></valid>
   4182 <valid><foo bar=" "/></valid>
   4183 <invalid><foo bar="x"/></invalid>
   4184 </testCase>
   4185 <testCase>
   4186 <section>6.2.3</section>
   4187 <correct>
   4188 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4189   <group>
   4190     <element name="bar">
   4191       <empty/>
   4192     </element>
   4193     <choice>
   4194       <empty/>
   4195       <element name="baz">
   4196         <empty/>
   4197       </element>
   4198     </choice>
   4199   </group>
   4200 </element>
   4201 </correct>
   4202 <valid>
   4203 <foo><bar/><baz/></foo>
   4204 </valid>
   4205 <valid>
   4206 <foo><bar/></foo>
   4207 </valid>
   4208 <invalid>
   4209 <foo></foo>
   4210 </invalid>
   4211 <invalid>
   4212 <foo><bar/><baz/><baz/></foo>
   4213 </invalid>
   4214 </testCase>
   4215 <testCase>
   4216 <correct>
   4217 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4218   <choice>
   4219     <empty/>
   4220     <attribute name="bar">
   4221       <text/>
   4222     </attribute>
   4223   </choice>
   4224 </element>
   4225 </correct>
   4226 <valid>
   4227 <foo bar="x"/>
   4228 </valid>
   4229 <valid>
   4230 <foo/>
   4231 </valid>
   4232 <invalid>
   4233 <foo baz="x"/>
   4234 </invalid>
   4235 <invalid>
   4236 <foo><bar/></foo>
   4237 </invalid>
   4238 </testCase>
   4239 </testSuite>
   4240 <testSuite>
   4241 <section>6.2.4</section>
   4242 <testCase>
   4243 <section>6.2.4</section>
   4244 <correct>
   4245 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4246   <text/>
   4247 </element>
   4248 </correct>
   4249 <valid>
   4250 <foo/>
   4251 </valid>
   4252 <valid>
   4253 <foo> </foo>
   4254 </valid>
   4255 <valid>
   4256 <foo>x</foo>
   4257 </valid>
   4258 <valid>
   4259 <foo>
   4260 x
   4261 <?target data?>
   4262 y
   4263 </foo>
   4264 </valid>
   4265 <invalid>
   4266 <foo><bar/></foo>
   4267 </invalid>
   4268 </testCase>
   4269 <testCase>
   4270 <section>6.2.4</section>
   4271 <correct>
   4272 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4273   <group>
   4274     <text/>
   4275     <element name="bar">
   4276       <empty/>
   4277     </element>
   4278   </group>
   4279 </element>
   4280 </correct>
   4281 <valid>
   4282 <foo><bar/></foo>
   4283 </valid>
   4284 <valid>
   4285 <foo>
   4286 <bar/>
   4287 </foo>
   4288 </valid>
   4289 <valid>
   4290 <foo>
   4291 x
   4292 <bar/>
   4293 </foo>
   4294 </valid>
   4295 <valid>
   4296 <foo>
   4297 x
   4298 <?target data?>
   4299 y
   4300 <bar/></foo>
   4301 </valid>
   4302 <invalid>
   4303 <foo/>
   4304 </invalid>
   4305 <invalid>
   4306 <foo><bar/>x</foo>
   4307 </invalid>
   4308 </testCase>
   4309 <testCase>
   4310 <section>6.2.4</section>
   4311 <correct>
   4312 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4313   <group>
   4314     <element name="bar">
   4315       <empty/>
   4316     </element>
   4317     <text/>
   4318   </group>
   4319 </element>
   4320 </correct>
   4321 <valid>
   4322 <foo><bar/></foo>
   4323 </valid>
   4324 <valid>
   4325 <foo>
   4326 <bar/>
   4327 </foo>
   4328 </valid>
   4329 <invalid>
   4330 <foo>
   4331 x
   4332 <bar/>
   4333 </foo>
   4334 </invalid>
   4335 <valid>
   4336 <foo>
   4337 <bar/>
   4338 x
   4339 <?target data?>
   4340 y
   4341 </foo>
   4342 </valid>
   4343 <invalid>
   4344 <foo/>
   4345 </invalid>
   4346 <valid>
   4347 <foo><bar/>x</foo>
   4348 </valid>
   4349 </testCase>
   4350 <testCase>
   4351 <section>6.2.4</section>
   4352 <correct>
   4353 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4354   <interleave>
   4355     <element name="bar">
   4356       <empty/>
   4357     </element>
   4358     <text/>
   4359   </interleave>
   4360 </element>
   4361 </correct>
   4362 <valid>
   4363 <foo><bar/></foo>
   4364 </valid>
   4365 <valid>
   4366 <foo>
   4367 <bar/>
   4368 </foo>
   4369 </valid>
   4370 <valid>
   4371 <foo>
   4372 x
   4373 <bar/>
   4374 </foo>
   4375 </valid>
   4376 <valid>
   4377 <foo>
   4378 <bar/>
   4379 x
   4380 <?target data?>
   4381 y
   4382 </foo>
   4383 </valid>
   4384 <invalid>
   4385 <foo/>
   4386 </invalid>
   4387 <valid>
   4388 <foo><bar/>x</foo>
   4389 </valid>
   4390 <valid>
   4391 <foo>x<bar/>x</foo>
   4392 </valid>
   4393 <invalid>
   4394 <foo>x<bar/>x<bar/></foo>
   4395 </invalid>
   4396 </testCase>
   4397 <testCase>
   4398 <section>6.2.4</section>
   4399 <correct>
   4400 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4401   <attribute name="bar">
   4402     <text/>
   4403   </attribute>
   4404 </element>
   4405 </correct>
   4406 <valid>
   4407 <foo bar=""/>
   4408 </valid>
   4409 <valid>
   4410 <foo bar="x"/>
   4411 </valid>
   4412 <valid>
   4413 <foo bar=" "/>
   4414 </valid>
   4415 <invalid>
   4416 <foo/>
   4417 </invalid>
   4418 <invalid>
   4419 <foo><bar/>x<bar/></foo>
   4420 </invalid>
   4421 </testCase>
   4422 </testSuite>
   4423 <testSuite>
   4424 <section>6.2.5</section>
   4425 <testCase>
   4426 <section>6.2.5</section>
   4427 <correct>
   4428 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4429   <oneOrMore>
   4430     <element name="bar">
   4431       <empty/>
   4432     </element>
   4433   </oneOrMore>
   4434 </element>
   4435 </correct>
   4436 <valid>
   4437 <foo><bar/></foo>
   4438 </valid>
   4439 <valid>
   4440 <foo><bar/><bar/></foo>
   4441 </valid>
   4442 <valid>
   4443 <foo><bar/><bar/><bar/></foo>
   4444 </valid>
   4445 <invalid>
   4446 <foo/>
   4447 </invalid>
   4448 </testCase>
   4449 <testCase>
   4450 <section>6.2.5</section>
   4451 <correct>
   4452 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4453   <oneOrMore>
   4454     <group>
   4455       <element name="bar">
   4456 	<empty/>
   4457       </element>
   4458       <element name="bar">
   4459 	<empty/>
   4460       </element>
   4461     </group>
   4462   </oneOrMore>
   4463 </element>
   4464 </correct>
   4465 <valid>
   4466 <foo><bar/><bar/></foo>
   4467 </valid>
   4468 <valid>
   4469 <foo><bar/><bar/><bar/><bar/></foo>
   4470 </valid>
   4471 <valid>
   4472 <foo><bar/><bar/><bar/><bar/><bar/><bar/></foo>
   4473 </valid>
   4474 <invalid>
   4475 <foo><bar/></foo>
   4476 </invalid>
   4477 <invalid>
   4478 <foo/>
   4479 </invalid>
   4480 <invalid>
   4481 <foo><bar/><bar/><bar/></foo>
   4482 </invalid>
   4483 </testCase>
   4484 <testCase>
   4485 <section>6.2.5</section>
   4486 <correct>
   4487 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4488   <oneOrMore>
   4489     <attribute>
   4490       <nsName ns=""/>
   4491       <text/>
   4492     </attribute>
   4493   </oneOrMore>
   4494 </element>
   4495 </correct>
   4496 <valid>
   4497 <foo x=""/>
   4498 </valid>
   4499 <valid>
   4500 <foo x="" y=""/>
   4501 </valid>
   4502 <valid>
   4503 <foo x="" y="" z=""/>
   4504 </valid>
   4505 <invalid>
   4506 <foo/>
   4507 </invalid>
   4508 <invalid>
   4509 <foo xmlns:ns="http://www.example.com" ns:x=""/>
   4510 </invalid>
   4511 <invalid>
   4512 <foo x="" xmlns:ns="http://www.example.com" ns:x=""/>
   4513 </invalid>
   4514 </testCase>
   4515 <testCase>
   4516 <section>6.2.5</section>
   4517 <correct>
   4518 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4519   <oneOrMore>
   4520     <choice>
   4521       <attribute name="bar">
   4522         <text/>
   4523       </attribute>
   4524       <element name="bar">
   4525         <text/>
   4526       </element>
   4527     </choice>
   4528   </oneOrMore>
   4529 </element>
   4530 </correct>
   4531 <valid>
   4532 <foo bar=""><bar/><bar/></foo>
   4533 </valid>
   4534 <valid>
   4535 <foo><bar/></foo>
   4536 </valid>
   4537 <valid>
   4538 <foo bar=""/>
   4539 </valid>
   4540 <invalid>
   4541 <foo/>
   4542 </invalid>
   4543 </testCase>
   4544 </testSuite>
   4545 <testSuite>
   4546 <section>6.2.6</section>
   4547 <testCase>
   4548 <section>6.2.6</section>
   4549 <correct>
   4550 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4551   <interleave>
   4552     <element name="bar">
   4553       <empty/>
   4554     </element>
   4555     <element name="baz">
   4556       <empty/>
   4557     </element>
   4558   </interleave>
   4559 </element>
   4560 </correct>
   4561 <valid>
   4562 <foo><bar/><baz/></foo>
   4563 </valid>
   4564 <valid>
   4565 <foo><baz/><bar/></foo>
   4566 </valid>
   4567 <invalid>
   4568 <foo><bar/></foo>
   4569 </invalid>
   4570 <invalid>
   4571 <foo><baz/></foo>
   4572 </invalid>
   4573 <invalid>
   4574 <foo><bar/><bar/></foo>
   4575 </invalid>
   4576 <invalid>
   4577 <foo/>
   4578 </invalid>
   4579 </testCase>
   4580 <testCase>
   4581 <section>6.2.6</section>
   4582 <correct>
   4583 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4584   <interleave>
   4585     <group>
   4586       <element name="bar1">
   4587         <empty/>
   4588       </element>
   4589       <element name="bar2">
   4590         <empty/>
   4591       </element>
   4592     </group>
   4593     <element name="baz">
   4594       <empty/>
   4595     </element>
   4596   </interleave>
   4597 </element>
   4598 </correct>
   4599 <valid>
   4600 <foo><baz/><bar1/><bar2/></foo>
   4601 </valid>
   4602 <valid>
   4603 <foo><bar1/><baz/><bar2/></foo>
   4604 </valid>
   4605 <valid>
   4606 <foo><bar1/><bar2/><baz/></foo>
   4607 </valid>
   4608 <invalid>
   4609 <foo><baz/><bar2/><bar1/></foo>
   4610 </invalid>
   4611 <invalid>
   4612 <foo><bar2/><bar1/></foo>
   4613 </invalid>
   4614 <invalid>
   4615 <foo><baz/><bar2/><bar1/></foo>
   4616 </invalid>
   4617 <invalid>
   4618 <foo><baz/><bar1/></foo>
   4619 </invalid>
   4620 <invalid>
   4621 <foo><baz/><bar2/></foo>
   4622 </invalid>
   4623 </testCase>
   4624 <testCase>
   4625 <section>6.2.6</section>
   4626 <correct>
   4627 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4628   <interleave>
   4629     <attribute name="bar">
   4630       <text/>
   4631     </attribute>
   4632     <attribute name="baz">
   4633       <text/>
   4634     </attribute>
   4635   </interleave>
   4636 </element>
   4637 </correct>
   4638 <valid>
   4639 <foo bar="" baz=""/>
   4640 </valid>
   4641 <invalid>
   4642 <foo/>
   4643 </invalid>
   4644 <invalid>
   4645 <foo/>
   4646 </invalid>
   4647 <invalid>
   4648 <foo bar=""/>
   4649 </invalid>
   4650 <invalid>
   4651 <foo baz=""/>
   4652 </invalid>
   4653 </testCase>
   4654 <testCase>
   4655 <section>6.2.6</section>
   4656 <correct>
   4657 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4658   <interleave>
   4659     <element name="bar">
   4660       <empty/>
   4661     </element>
   4662     <attribute name="baz">
   4663       <text/>
   4664     </attribute>
   4665   </interleave>
   4666 </element>
   4667 </correct>
   4668 <valid>
   4669 <foo baz=""><bar/></foo>
   4670 </valid>
   4671 <invalid>
   4672 <foo/>
   4673 </invalid>
   4674 <invalid>
   4675 <foo bar=""/>
   4676 </invalid>
   4677 <invalid>
   4678 <foo bar=""><baz/><baz/></foo>
   4679 </invalid>
   4680 <invalid>
   4681 <foo><baz/><baz/></foo>
   4682 </invalid>
   4683 </testCase>
   4684 </testSuite>
   4685 <testSuite>
   4686 <section>6.2.7</section>
   4687 <testCase>
   4688 <section>6.2.7</section>
   4689 <correct>
   4690 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4691   <attribute>
   4692     <name ns="">bar</name>
   4693     <value type="string" datatypeLibrary="">baz</value>
   4694   </attribute>
   4695 </element>
   4696 </correct>
   4697 <valid>
   4698 <foo bar="baz"/>
   4699 </valid>
   4700 <invalid>
   4701 <foo bar=" baz"/>
   4702 </invalid>
   4703 <invalid>
   4704 <foo bar="b"/>
   4705 </invalid>
   4706 <invalid>
   4707 <foo bar=""/>
   4708 </invalid>
   4709 <invalid>
   4710 <foo bar=" "/>
   4711 </invalid>
   4712 <invalid>
   4713 <foo><bar>baz</bar></foo>
   4714 </invalid>
   4715 </testCase>
   4716 <testCase>
   4717 <section>6.2.7</section>
   4718 <correct>
   4719 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4720   <attribute>
   4721     <name ns="">bar</name>
   4722     <choice>
   4723       <value type="string" datatypeLibrary="">baz</value>
   4724       <empty/>
   4725     </choice>
   4726   </attribute>
   4727 </element>
   4728 </correct>
   4729 <valid>
   4730 <foo bar="baz"/>
   4731 </valid>
   4732 <valid>
   4733 <foo bar=""/>
   4734 </valid>
   4735 <invalid>
   4736 <foo bar=" baz"/>
   4737 </invalid>
   4738 <invalid>
   4739 <foo bar="b"/>
   4740 </invalid>
   4741 <invalid>
   4742 <foo><bar>baz</bar></foo>
   4743 </invalid>
   4744 <invalid>
   4745 <foo><bar/></foo>
   4746 </invalid>
   4747 <invalid>
   4748 <foo/>
   4749 </invalid>
   4750 </testCase>
   4751 <testCase>
   4752 <section>6.2.7</section>
   4753 <correct>
   4754 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4755   <attribute>
   4756     <name ns="">bar</name>
   4757     <value type="string"/>
   4758   </attribute>
   4759 </element>
   4760 </correct>
   4761 <valid>
   4762 <foo bar=""/>
   4763 </valid>
   4764 <invalid>
   4765 <foo bar=" "/>
   4766 </invalid>
   4767 <invalid>
   4768 <foo bar="x"/>
   4769 </invalid>
   4770 </testCase>
   4771 <testCase>
   4772 <section>6.2.7</section>
   4773 <correct>
   4774 <element xmlns="http://relaxng.org/ns/structure/1.0">
   4775   <name ns="">foo</name>
   4776   <group>
   4777     <element>
   4778       <name ns="">bar</name>
   4779       <empty/>
   4780     </element>
   4781     <element>
   4782       <name ns="">baz</name>
   4783       <empty/>
   4784     </element>
   4785   </group>
   4786 </element>
   4787 </correct>
   4788 <valid>
   4789 <foo><bar/><baz/></foo>
   4790 </valid>
   4791 <valid>
   4792 <foo>
   4793 <bar/>
   4794 <baz/>
   4795 </foo>
   4796 </valid>
   4797 <valid>
   4798 <foo>
   4799 <bar/>
   4800 &#xD;
   4801 <baz/>
   4802 </foo>
   4803 </valid>
   4804 <invalid>
   4805 <foo/>
   4806 </invalid>
   4807 <invalid>
   4808 <bar><bar/><baz/></bar>
   4809 </invalid>
   4810 </testCase>
   4811 <testCase>
   4812 <section>6.2.7</section>
   4813 <section>6.2.8</section>
   4814 <correct>
   4815 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4816   <value type="string"/>
   4817 </element>
   4818 </correct>
   4819 <valid><foo/></valid>
   4820 <invalid><foo> </foo></invalid>
   4821 <invalid><foo>x</foo></invalid>
   4822 </testCase>
   4823 <testCase>
   4824 <section>6.2.7</section>
   4825 <section>6.2.8</section>
   4826 <correct>
   4827 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4828   <choice>
   4829     <value type="string"/>
   4830     <empty/>
   4831   </choice>
   4832 </element>
   4833 </correct>
   4834 <valid><foo/></valid>
   4835 <valid><foo> </foo></valid>
   4836 <invalid><foo>x</foo></invalid>
   4837 </testCase>
   4838 <testCase>
   4839 <section>6.2.7</section>
   4840 <section>6.2.8</section>
   4841 <section>6.2.10</section>
   4842 <correct>
   4843 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4844   <list>
   4845     <data type="token"/>
   4846   </list>
   4847 </element>
   4848 </correct>
   4849 <invalid><foo/></invalid>
   4850 <invalid><foo> </foo></invalid>
   4851 <valid><foo>x</foo></valid>
   4852 <valid><foo> x </foo></valid>
   4853 <invalid><foo>x y</foo></invalid>
   4854 </testCase>
   4855 <testCase>
   4856 <section>6.2.7</section>
   4857 <section>6.2.8</section>
   4858 <requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
   4859 <correct>
   4860 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4861  <data type="string"
   4862        datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   4863    <param name="minLength">2</param>
   4864  </data>
   4865 </element>
   4866 </correct>
   4867 <valid><foo>xx</foo></valid>
   4868 <valid><foo>xxx</foo></valid>
   4869 <valid><foo>  </foo></valid>
   4870 <valid><foo>   </foo></valid>
   4871 <invalid><foo>x</foo></invalid>
   4872 <invalid><foo> </foo></invalid>
   4873 <invalid><foo/></invalid>
   4874 </testCase>
   4875 <testCase>
   4876 <section>6.2.7</section>
   4877 <section>6.2.8</section>
   4878 <correct>
   4879 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4880   <choice>
   4881     <value>x</value>
   4882     <element name="bar">
   4883       <empty/>
   4884     </element>
   4885   </choice>
   4886 </element>
   4887 </correct>
   4888 <valid><foo> x </foo></valid>
   4889 <valid><foo>x</foo></valid>
   4890 <invalid><foo>y</foo></invalid>
   4891 <valid><foo><bar/></foo></valid>
   4892 <valid>
   4893 <foo>
   4894 <bar/>
   4895 </foo>
   4896 </valid>
   4897 <invalid><foo>x<bar/></foo></invalid>
   4898 <invalid><foo/></invalid>
   4899 <invalid><foo><bar/>x</foo></invalid>
   4900 </testCase>
   4901 <testCase>
   4902 <section>6.2.7</section>
   4903 <section>6.2.8</section>
   4904 <correct>
   4905 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4906   <choice>
   4907     <value>x</value>
   4908     <mixed>
   4909       <element name="bar">
   4910         <empty/>
   4911       </element>
   4912     </mixed>
   4913   </choice>
   4914 </element>
   4915 </correct>
   4916 <valid><foo> x </foo></valid>
   4917 <valid><foo>x</foo></valid>
   4918 <invalid><foo>y</foo></invalid>
   4919 <valid><foo><bar/></foo></valid>
   4920 <valid>
   4921 <foo>
   4922 <bar/>
   4923 </foo>
   4924 </valid>
   4925 <valid><foo>x<bar/></foo></valid>
   4926 <invalid><foo/></invalid>
   4927 <valid><foo><bar/>x</foo></valid>
   4928 </testCase>
   4929 </testSuite>
   4930 <testSuite>
   4931 <section>6.2.8</section>
   4932 <testCase>
   4933 <section>6.2.8</section>
   4934 <correct>
   4935 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4936   <data type="string">
   4937     <except>
   4938       <choice>
   4939         <value>x</value>
   4940         <value>y</value>
   4941       </choice>
   4942     </except>
   4943   </data>
   4944 </element>
   4945 </correct>
   4946 <valid>
   4947 <foo>xyzzy</foo>
   4948 </valid>
   4949 <invalid>
   4950 <foo>x</foo>
   4951 </invalid>
   4952 <invalid>
   4953 <foo>y</foo>
   4954 </invalid>
   4955 <invalid>
   4956 <foo> x</foo>
   4957 </invalid>
   4958 </testCase>
   4959 <testCase>
   4960 <section>6.2.8</section>
   4961 <correct>
   4962 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4963   <data type="string"/>
   4964 </element>
   4965 </correct>
   4966 <valid>
   4967 <foo/>
   4968 </valid>
   4969 </testCase>
   4970 <testCase>
   4971 <section>6.2.8</section>
   4972 <correct>
   4973 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4974   <value/>
   4975 </element>
   4976 </correct>
   4977 <valid>
   4978 <foo/>
   4979 </valid>
   4980 </testCase>
   4981 <testCase>
   4982 <section>6.2.8</section>
   4983 <correct>
   4984 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   4985   <data type="string">
   4986     <except>
   4987       <value/>
   4988     </except>
   4989   </data>
   4990 </element>
   4991 </correct>
   4992 <invalid>
   4993 <foo/>
   4994 </invalid>
   4995 <valid>
   4996 <foo>x</foo>
   4997 </valid>
   4998 </testCase>
   4999 </testSuite>
   5000 <testSuite>
   5001 <section>6.2.9</section>
   5002 <testCase>
   5003 <section>6.2.9</section>
   5004 <correct>
   5005 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5006   <data type="string" datatypeLibrary=""/>
   5007 </element>
   5008 </correct>
   5009 <valid>
   5010 <foo>xyzzy</foo>
   5011 </valid>
   5012 <valid>
   5013 <foo>
   5014 x
   5015 <?target data?>
   5016 y
   5017 <?target data?>
   5018 z
   5019 </foo>
   5020 </valid>
   5021 <valid>
   5022 <foo></foo>
   5023 </valid>
   5024 <valid>
   5025 <foo>
   5026 </foo>
   5027 </valid>
   5028 <invalid>
   5029 <foo><bar/></foo>
   5030 </invalid>
   5031 <invalid>
   5032 <foo bar=""/>
   5033 </invalid>
   5034 </testCase>
   5035 <testCase>
   5036 <section>6.2.9</section>
   5037 <correct>
   5038 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5039   <data type="token" datatypeLibrary=""/>
   5040 </element>
   5041 </correct>
   5042 <valid>
   5043 <foo>xyzzy</foo>
   5044 </valid>
   5045 <valid>
   5046 <foo>
   5047 x
   5048 <?target data?>
   5049 y
   5050 <?target data?>
   5051 z
   5052 </foo>
   5053 </valid>
   5054 <valid>
   5055 <foo></foo>
   5056 </valid>
   5057 <valid>
   5058 <foo>
   5059 </foo>
   5060 </valid>
   5061 <invalid>
   5062 <foo><bar/></foo>
   5063 </invalid>
   5064 <invalid>
   5065 <foo bar=""/>
   5066 </invalid>
   5067 </testCase>
   5068 <testCase>
   5069 <section>6.2.9</section>
   5070 <correct>
   5071 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5072   <value type="string" datatypeLibrary="">x</value>
   5073 </element>
   5074 </correct>
   5075 <valid><foo>x</foo></valid>
   5076 <invalid><foo>xy</foo></invalid>
   5077 <invalid><foo> x</foo></invalid>
   5078 <invalid><foo/></invalid>
   5079 </testCase>
   5080 <testCase>
   5081 <section>6.2.9</section>
   5082 <correct>
   5083 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5084   <value type="string" datatypeLibrary=""> x</value>
   5085 </element>
   5086 </correct>
   5087 <valid><foo> x</foo></valid>
   5088 <invalid><foo> xy</foo></invalid>
   5089 <invalid><foo>x</foo></invalid>
   5090 <invalid><foo/></invalid>
   5091 </testCase>
   5092 <testCase>
   5093 <section>6.2.9</section>
   5094 <correct>
   5095 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5096   <value type="token" datatypeLibrary="">x</value>
   5097 </element>
   5098 </correct>
   5099 <valid><foo>x</foo></valid>
   5100 <valid><foo> x</foo></valid>
   5101 <valid><foo>x </foo></valid>
   5102 <valid><foo>&#xA;&#xD;&#x9;&#x20;x&#xA;&#xD;&#x9;&#x20;</foo></valid>
   5103 <invalid><foo/></invalid>
   5104 <invalid><foo>xy</foo></invalid>
   5105 </testCase>
   5106 <testCase>
   5107 <section>6.2.9</section>
   5108 <correct>
   5109 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5110   <value type="token" datatypeLibrary="">x y</value>
   5111 </element>
   5112 </correct>
   5113 <valid><foo>x y</foo></valid>
   5114 <valid><foo> x   y </foo></valid>
   5115 <valid><foo>x&#xA;&#xD;&#x9;&#x20;y</foo></valid>
   5116 <invalid><foo>xy</foo></invalid>
   5117 </testCase>
   5118 <testCase>
   5119 <section>6.2.9</section>
   5120 <correct>
   5121 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5122   <value type="token" datatypeLibrary="">&#xA;&#xD;&#x9;&#x20;x&#xA;&#xD;&#x9;&#x20;</value>
   5123 </element>
   5124 </correct>
   5125 <valid><foo>x</foo></valid>
   5126 <valid><foo> x</foo></valid>
   5127 <valid><foo>x </foo></valid>
   5128 <valid><foo>&#xD;&#x9;x&#x20;&#xA;</foo></valid>
   5129 <invalid><foo/></invalid>
   5130 <invalid><foo>xy</foo></invalid>
   5131 </testCase>
   5132 <testCase>
   5133 <section>6.2.9</section>
   5134 <correct>
   5135 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5136   <value type="token" datatypeLibrary="">x&#xA;&#xD;&#x9;&#x20;y</value>
   5137 </element>
   5138 </correct>
   5139 <valid><foo>x y</foo></valid>
   5140 <valid><foo>x  y</foo></valid>
   5141 <valid><foo> x y </foo></valid>
   5142 <valid><foo>x&#xD;&#x9;y</foo></valid>
   5143 <valid><foo>x&#x20;&#xA;y</foo></valid>
   5144 <invalid><foo/></invalid>
   5145 <invalid><foo>xy</foo></invalid>
   5146 </testCase>
   5147 <testCase>
   5148 <section>6.2.9</section>
   5149 <incorrect>
   5150 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5151   <data type="decimal" datatypeLibrary=""/>
   5152 </element>
   5153 </incorrect>
   5154 </testCase>
   5155 <testCase>
   5156 <section>6.2.9</section>
   5157 <incorrect>
   5158 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5159   <value type="decimal" datatypeLibrary=""/>
   5160 </element>
   5161 </incorrect>
   5162 </testCase>
   5163 <testCase>
   5164 <section>6.2.9</section>
   5165 <incorrect>
   5166 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5167   <data type="string" datatypeLibrary="">
   5168     <param name="length">2</param>
   5169   </data>
   5170 </element>
   5171 </incorrect>
   5172 </testCase>
   5173 <testCase>
   5174 <section>6.2.9</section>
   5175 <incorrect>
   5176 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5177   <data type="token" datatypeLibrary="">
   5178     <param name="length">2</param>
   5179   </data>
   5180 </element>
   5181 </incorrect>
   5182 </testCase>
   5183 </testSuite>
   5184 <testSuite>
   5185 <section>6.2.10</section>
   5186 <testCase>
   5187 <section>6.2.10</section>
   5188 <correct>
   5189 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5190   <list>
   5191     <value type="string">x</value>
   5192   </list>
   5193 </element>
   5194 </correct>
   5195 <valid>
   5196 <foo>x</foo>
   5197 </valid>
   5198 <valid>
   5199 <foo> x </foo>
   5200 </valid>
   5201 <invalid>
   5202 <foo>x x</foo>
   5203 </invalid>
   5204 </testCase>
   5205 <testCase>
   5206 <section>6.2.10</section>
   5207 <correct>
   5208 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5209   <list>
   5210     <oneOrMore>
   5211       <value type="string">x</value>
   5212     </oneOrMore>
   5213   </list>
   5214 </element>
   5215 </correct>
   5216 <valid>
   5217 <foo>x</foo>
   5218 </valid>
   5219 <valid>
   5220 <foo> x x x x </foo>
   5221 </valid>
   5222 <invalid>
   5223 <foo/>
   5224 </invalid>
   5225 <invalid>
   5226 <foo>x y</foo>
   5227 </invalid>
   5228 </testCase>
   5229 <testCase>
   5230 <section>6.2.10</section>
   5231 <correct>
   5232 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5233   <list>
   5234     <group>
   5235       <value type="string">x</value>
   5236       <value type="string">y</value>
   5237     </group>
   5238   </list>
   5239 </element>
   5240 </correct>
   5241 <valid>
   5242 <foo>x y</foo>
   5243 </valid>
   5244 <valid>
   5245 <foo>x  y</foo>
   5246 </valid>
   5247 <valid>
   5248 <foo>&#xD;x&#xA;y&#x9;</foo>
   5249 </valid>
   5250 <invalid>
   5251 <foo>x</foo>
   5252 </invalid>
   5253 </testCase>
   5254 <testCase>
   5255 <section>6.2.10</section>
   5256 <correct>
   5257 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5258   <list>
   5259     <group>
   5260       <data type="token"/>
   5261       <data type="token"/>
   5262     </group>
   5263   </list>
   5264 </element>
   5265 </correct>
   5266 <valid>
   5267 <foo>x y</foo>
   5268 </valid>
   5269 <invalid>
   5270 <foo/>
   5271 </invalid>
   5272 <invalid>
   5273 <foo>x y z</foo>
   5274 </invalid>
   5275 </testCase>
   5276 <testCase>
   5277 <section>6.2.10</section>
   5278 <correct>
   5279 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   5280   <list>
   5281     <value>x y</value>
   5282   </list>
   5283 </element>
   5284 </correct>
   5285 <invalid>
   5286 <foo>x y</foo>
   5287 </invalid>
   5288 </testCase>
   5289 </testSuite>
   5290 </testSuite>
   5291 </testSuite>
   5292 <testSuite>
   5293 <section>7</section>
   5294 <testSuite>
   5295 <section>7.1</section>
   5296 <testCase>
   5297 <section>7.1.1</section>
   5298 <incorrect>
   5299 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5300 <start>
   5301   <element name="foo">
   5302     <attribute name="bar">
   5303       <element name="baz">
   5304         <empty/>
   5305       </element>
   5306     </attribute>
   5307   </element>
   5308 </start>
   5309 </grammar>
   5310 </incorrect>
   5311 </testCase>
   5312 <testCase>
   5313 <section>7.1.1</section>
   5314 <incorrect>
   5315 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5316 <start>
   5317   <element name="foo">
   5318     <attribute name="bar">
   5319       <choice>
   5320         <element name="baz">
   5321           <empty/>
   5322         </element>
   5323         <text/>
   5324       </choice>
   5325     </attribute>
   5326   </element>
   5327 </start>
   5328 </grammar>
   5329 </incorrect>
   5330 </testCase>
   5331 <testCase>
   5332 <section>7.1.1</section>
   5333 <incorrect>
   5334 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5335 <start>
   5336   <element name="foo">
   5337     <attribute name="bar">
   5338       <attribute name="baz"/>
   5339     </attribute>
   5340   </element>
   5341 </start>
   5342 </grammar>
   5343 </incorrect>
   5344 </testCase>
   5345 <testCase>
   5346 <section>7.1.1</section>
   5347 <incorrect>
   5348 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5349 <start>
   5350   <element name="foo">
   5351     <attribute name="bar">
   5352       <choice>
   5353         <attribute name="baz"/>
   5354         <text/>
   5355       </choice>
   5356     </attribute>
   5357   </element>
   5358 </start>
   5359 </grammar>
   5360 </incorrect>
   5361 </testCase>
   5362 <testCase>
   5363 <section>7.1.2</section>
   5364 <incorrect>
   5365 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5366 <start>
   5367   <element name="foo">
   5368     <oneOrMore>
   5369       <group>
   5370         <attribute name="bar"/>
   5371         <attribute name="baz"/>
   5372       </group>
   5373     </oneOrMore>
   5374   </element>
   5375 </start>
   5376 </grammar>
   5377 </incorrect>
   5378 </testCase>
   5379 <testCase>
   5380 <section>7.1.2</section>
   5381 <incorrect>
   5382 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5383 <start>
   5384   <element name="foo">
   5385     <oneOrMore>
   5386       <group>
   5387         <attribute>
   5388           <anyName/>
   5389         </attribute>
   5390         <attribute>
   5391           <anyName/>
   5392         </attribute>
   5393       </group>
   5394     </oneOrMore>
   5395   </element>
   5396 </start>
   5397 </grammar>
   5398 </incorrect>
   5399 </testCase>
   5400 <testCase>
   5401 <section>7.1.2</section>
   5402 <incorrect>
   5403 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5404 <start>
   5405   <element name="foo">
   5406     <oneOrMore>
   5407       <choice>
   5408         <group>
   5409           <choice>
   5410             <attribute name="bar"/>
   5411             <attribute name="baz"/>
   5412           </choice>
   5413           <choice>
   5414             <attribute name="bar"/>
   5415             <attribute name="baz"/>
   5416           </choice>
   5417         </group>
   5418         <attribute name="bar"/>
   5419       </choice>
   5420     </oneOrMore>
   5421   </element>
   5422 </start>
   5423 </grammar>
   5424 </incorrect>
   5425 </testCase>
   5426 <testCase>
   5427 <section>7.1.2</section>
   5428 <incorrect>
   5429 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5430 <start>
   5431   <element name="foo">
   5432     <oneOrMore>
   5433       <interleave>
   5434         <attribute name="bar"/>
   5435         <attribute name="baz"/>
   5436       </interleave>
   5437     </oneOrMore>
   5438   </element>
   5439 </start>
   5440 </grammar>
   5441 </incorrect>
   5442 </testCase>
   5443 <testCase>
   5444 <section>7.1.2</section>
   5445 <incorrect>
   5446 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5447 <start>
   5448   <element name="foo">
   5449     <oneOrMore>
   5450       <interleave>
   5451         <attribute>
   5452           <anyName/>
   5453         </attribute>
   5454         <attribute>
   5455           <anyName/>
   5456         </attribute>
   5457       </interleave>
   5458     </oneOrMore>
   5459   </element>
   5460 </start>
   5461 </grammar>
   5462 </incorrect>
   5463 </testCase>
   5464 <testCase>
   5465 <section>7.1.2</section>
   5466 <incorrect>
   5467 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5468 <start>
   5469   <element name="foo">
   5470     <oneOrMore>
   5471       <choice>
   5472         <interleave>
   5473           <choice>
   5474             <attribute name="bar"/>
   5475             <attribute name="baz"/>
   5476           </choice>
   5477           <choice>
   5478             <attribute name="bar"/>
   5479             <attribute name="baz"/>
   5480           </choice>
   5481         </interleave>
   5482         <attribute name="bar"/>
   5483       </choice>
   5484     </oneOrMore>
   5485   </element>
   5486 </start>
   5487 </grammar>
   5488 </incorrect>
   5489 </testCase>
   5490 <testCase>
   5491 <section>7.1.3</section>
   5492 <incorrect>
   5493 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5494 <start>
   5495   <element name="foo">
   5496     <list>
   5497       <list>
   5498         <data type="token"/>
   5499       </list>
   5500     </list>
   5501   </element>
   5502 </start>
   5503 </grammar>
   5504 </incorrect>
   5505 </testCase>
   5506 <testCase>
   5507 <section>7.1.3</section>
   5508 <incorrect>
   5509 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5510 <start>
   5511   <element name="foo">
   5512     <list>
   5513       <choice>
   5514         <list>
   5515           <data type="token"/>
   5516         </list>
   5517         <data type="token"/>
   5518       </choice>
   5519     </list>
   5520   </element>
   5521 </start>
   5522 </grammar>
   5523 </incorrect>
   5524 </testCase>
   5525 <testCase>
   5526 <section>7.1.3</section>
   5527 <incorrect>
   5528 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5529 <start>
   5530   <element name="foo">
   5531     <list>
   5532       <element name="bar">
   5533         <empty/>
   5534       </element>
   5535     </list>
   5536   </element>
   5537 </start>
   5538 </grammar>
   5539 </incorrect>
   5540 </testCase>
   5541 <testCase>
   5542 <section>7.1.3</section>
   5543 <incorrect>
   5544 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5545 <start>
   5546   <element name="foo">
   5547     <list>
   5548       <choice>
   5549         <data type="token"/>
   5550         <element name="bar">
   5551           <empty/>
   5552         </element>
   5553       </choice>
   5554     </list>
   5555   </element>
   5556 </start>
   5557 </grammar>
   5558 </incorrect>
   5559 </testCase>
   5560 <testCase>
   5561 <section>7.1.3</section>
   5562 <incorrect>
   5563 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5564 <start>
   5565   <element name="foo">
   5566     <list>
   5567       <attribute name="bar">
   5568         <empty/>
   5569       </attribute>
   5570     </list>
   5571   </element>
   5572 </start>
   5573 </grammar>
   5574 </incorrect>
   5575 </testCase>
   5576 <testCase>
   5577 <section>7.1.3</section>
   5578 <incorrect>
   5579 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5580 <start>
   5581   <element name="foo">
   5582     <list>
   5583       <choice>
   5584         <attribute name="bar">
   5585           <empty/>
   5586         </attribute>
   5587         <data type="token"/>
   5588       </choice>
   5589     </list>
   5590   </element>
   5591 </start>
   5592 </grammar>
   5593 </incorrect>
   5594 </testCase>
   5595 <testCase>
   5596 <section>7.1.3</section>
   5597 <incorrect>
   5598 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5599 <start>
   5600   <element name="foo">
   5601     <list>
   5602       <choice>
   5603         <text/>
   5604         <data type="token"/>
   5605       </choice>
   5606     </list>
   5607   </element>
   5608 </start>
   5609 </grammar>
   5610 </incorrect>
   5611 </testCase>
   5612 <testCase>
   5613 <section>7.1.3</section>
   5614 <incorrect>
   5615 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5616 <start>
   5617   <element name="foo">
   5618     <list>
   5619       <interleave>
   5620         <value>x</value>
   5621         <value>y</value>
   5622       </interleave>
   5623     </list>
   5624   </element>
   5625 </start>
   5626 </grammar>
   5627 </incorrect>
   5628 </testCase>
   5629 <testCase>
   5630 <section>7.1.3</section>
   5631 <incorrect>
   5632 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5633 <start>
   5634   <element name="foo">
   5635     <list>
   5636       <choice>
   5637 	<interleave>
   5638 	  <value>x</value>
   5639 	  <value>y</value>
   5640 	</interleave>
   5641         <value>z</value>
   5642       </choice>
   5643     </list>
   5644   </element>
   5645 </start>
   5646 </grammar>
   5647 </incorrect>
   5648 </testCase>
   5649 <testCase>
   5650 <section>7.1.4</section>
   5651 <incorrect>
   5652 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5653 <start>
   5654   <element name="foo">
   5655     <data type="string">
   5656       <except>
   5657         <attribute name="bar"/>
   5658       </except>
   5659     </data>
   5660   </element>
   5661 </start>
   5662 </grammar>
   5663 </incorrect>
   5664 </testCase>
   5665 <testCase>
   5666 <section>7.1.4</section>
   5667 <incorrect>
   5668 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5669 <start>
   5670   <element name="foo">
   5671     <data type="string">
   5672       <except>
   5673         <element name="bar">
   5674           <empty/>
   5675         </element>
   5676       </except>
   5677     </data>
   5678   </element>
   5679 </start>
   5680 </grammar>
   5681 </incorrect>
   5682 </testCase>
   5683 <testCase>
   5684 <section>7.1.4</section>
   5685 <incorrect>
   5686 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5687 <start>
   5688   <element name="foo">
   5689     <data type="string">
   5690       <except>
   5691         <text/>
   5692       </except>
   5693     </data>
   5694   </element>
   5695 </start>
   5696 </grammar>
   5697 </incorrect>
   5698 </testCase>
   5699 <testCase>
   5700 <section>7.1.4</section>
   5701 <incorrect>
   5702 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5703 <start>
   5704   <element name="foo">
   5705     <data type="string">
   5706       <except>
   5707         <list>
   5708           <data type="token"/>
   5709         </list>
   5710       </except>
   5711     </data>
   5712   </element>
   5713 </start>
   5714 </grammar>
   5715 </incorrect>
   5716 </testCase>
   5717 <testCase>
   5718 <section>7.1.4</section>
   5719 <incorrect>
   5720 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5721 <start>
   5722   <element name="foo">
   5723     <data type="string">
   5724       <except>
   5725         <group>
   5726           <data type="token"/>
   5727           <data type="token"/>
   5728         </group>
   5729       </except>
   5730     </data>
   5731   </element>
   5732 </start>
   5733 </grammar>
   5734 </incorrect>
   5735 </testCase>
   5736 <testCase>
   5737 <section>7.1.4</section>
   5738 <incorrect>
   5739 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5740 <start>
   5741   <element name="foo">
   5742     <data type="string">
   5743       <except>
   5744         <interleave>
   5745           <data type="token"/>
   5746           <data type="token"/>
   5747         </interleave>
   5748       </except>
   5749     </data>
   5750   </element>
   5751 </start>
   5752 </grammar>
   5753 </incorrect>
   5754 </testCase>
   5755 <testCase>
   5756 <section>7.1.4</section>
   5757 <incorrect>
   5758 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5759 <start>
   5760   <element name="foo">
   5761     <data type="string">
   5762       <except>
   5763         <oneOrMore>
   5764           <data type="token"/>
   5765         </oneOrMore>
   5766       </except>
   5767     </data>
   5768   </element>
   5769 </start>
   5770 </grammar>
   5771 </incorrect>
   5772 </testCase>
   5773 <testCase>
   5774 <section>7.1.4</section>
   5775 <incorrect>
   5776 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5777 <start>
   5778   <element name="foo">
   5779     <data type="string">
   5780       <except>
   5781         <empty/>
   5782       </except>
   5783     </data>
   5784   </element>
   5785 </start>
   5786 </grammar>
   5787 </incorrect>
   5788 </testCase>
   5789 <testCase>
   5790 <section>7.1.5</section>
   5791 <incorrect>
   5792 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5793 <start>
   5794   <attribute name="foo"/>
   5795 </start>
   5796 </grammar>
   5797 </incorrect>
   5798 </testCase>
   5799 <testCase>
   5800 <section>7.1.5</section>
   5801 <incorrect>
   5802 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5803 <start>
   5804   <data type="string"/>
   5805 </start>
   5806 </grammar>
   5807 </incorrect>
   5808 </testCase>
   5809 <testCase>
   5810 <section>7.1.5</section>
   5811 <incorrect>
   5812 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5813 <start>
   5814   <choice>
   5815     <data type="string"/>
   5816     <element name="foo">
   5817       <empty/>
   5818     </element>
   5819   </choice>
   5820 </start>
   5821 </grammar>
   5822 </incorrect>
   5823 </testCase>
   5824 <testCase>
   5825 <section>7.1.5</section>
   5826 <incorrect>
   5827 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5828 <start>
   5829   <choice>
   5830     <value>foo</value>
   5831     <element name="foo">
   5832       <empty/>
   5833     </element>
   5834   </choice>
   5835 </start>
   5836 </grammar>
   5837 </incorrect>
   5838 </testCase>
   5839 <testCase>
   5840 <section>7.1.5</section>
   5841 <incorrect>
   5842 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5843 <start>
   5844   <text/>
   5845 </start>
   5846 </grammar>
   5847 </incorrect>
   5848 </testCase>
   5849 <testCase>
   5850 <section>7.1.5</section>
   5851 <incorrect>
   5852 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5853 <start>
   5854   <choice>
   5855     <text/>
   5856     <element name="foo">
   5857       <empty/>
   5858     </element>
   5859   </choice>
   5860 </start>
   5861 </grammar>
   5862 </incorrect>
   5863 </testCase>
   5864 <testCase>
   5865 <section>7.1.5</section>
   5866 <incorrect>
   5867 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5868 <start>
   5869   <list>
   5870     <data type="token"/>
   5871   </list>
   5872 </start>
   5873 </grammar>
   5874 </incorrect>
   5875 </testCase>
   5876 <testCase>
   5877 <section>7.1.5</section>
   5878 <incorrect>
   5879 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5880 <start>
   5881   <choice>
   5882     <element name="foo">
   5883       <empty/>
   5884     </element>
   5885     <list>
   5886       <data type="token"/>
   5887     </list>
   5888   </choice>
   5889 </start>
   5890 </grammar>
   5891 </incorrect>
   5892 </testCase>
   5893 <testCase>
   5894 <section>7.1.5</section>
   5895 <incorrect>
   5896 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5897 <start>
   5898   <group>
   5899     <element name="foo">
   5900       <empty/>
   5901     </element>
   5902     <element name="foo">
   5903       <empty/>
   5904     </element>
   5905   </group>
   5906 </start>
   5907 </grammar>
   5908 </incorrect>
   5909 </testCase>
   5910 <testCase>
   5911 <section>7.1.5</section>
   5912 <incorrect>
   5913 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5914 <start>
   5915   <choice>
   5916     <element name="foo">
   5917       <empty/>
   5918     </element>
   5919     <group>
   5920       <element name="foo">
   5921 	<empty/>
   5922       </element>
   5923       <element name="foo">
   5924 	<empty/>
   5925       </element>
   5926     </group>
   5927   </choice>
   5928 </start>
   5929 </grammar>
   5930 </incorrect>
   5931 </testCase>
   5932 <testCase>
   5933 <section>7.1.5</section>
   5934 <incorrect>
   5935 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5936 <start>
   5937   <interleave>
   5938     <element name="foo">
   5939       <empty/>
   5940     </element>
   5941     <element name="foo">
   5942       <empty/>
   5943     </element>
   5944   </interleave>
   5945 </start>
   5946 </grammar>
   5947 </incorrect>
   5948 </testCase>
   5949 <testCase>
   5950 <section>7.1.5</section>
   5951 <incorrect>
   5952 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5953 <start>
   5954   <choice>
   5955     <element name="foo">
   5956       <empty/>
   5957     </element>
   5958     <interleave>
   5959       <element name="foo">
   5960 	<empty/>
   5961       </element>
   5962       <element name="foo">
   5963 	<empty/>
   5964       </element>
   5965     </interleave>
   5966   </choice>
   5967 </start>
   5968 </grammar>
   5969 </incorrect>
   5970 </testCase>
   5971 <testCase>
   5972 <section>7.1.5</section>
   5973 <incorrect>
   5974 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5975 <start>
   5976   <oneOrMore>
   5977     <element name="foo">
   5978       <empty/>
   5979     </element>
   5980   </oneOrMore>
   5981 </start>
   5982 </grammar>
   5983 </incorrect>
   5984 </testCase>
   5985 <testCase>
   5986 <section>7.1.5</section>
   5987 <incorrect>
   5988 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   5989 <start>
   5990   <choice>
   5991     <oneOrMore>
   5992       <element name="foo">
   5993 	<empty/>
   5994       </element>
   5995     </oneOrMore>
   5996     <element name="foo">
   5997       <empty/>
   5998     </element>
   5999   </choice>
   6000 </start>
   6001 </grammar>
   6002 </incorrect>
   6003 </testCase>
   6004 <testCase>
   6005 <section>7.1.5</section>
   6006 <incorrect>
   6007 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6008 <start>
   6009   <empty/>
   6010 </start>
   6011 </grammar>
   6012 </incorrect>
   6013 </testCase>
   6014 <testCase>
   6015 <section>7.1.5</section>
   6016 <incorrect>
   6017 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6018 <start>
   6019   <choice>
   6020     <element name="foo">
   6021       <empty/>
   6022     </element>
   6023     <empty/>
   6024   </choice>
   6025 </start>
   6026 </grammar>
   6027 </incorrect>
   6028 </testCase>
   6029 <testCase>
   6030 <section>7.1.5</section>
   6031 <section>7</section>
   6032 <section>4.18</section>
   6033 <documentation>Tests that constraints are post-normalization</documentation>
   6034 <correct>
   6035 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   6036   <grammar>
   6037     <start>
   6038       <text/>
   6039     </start>
   6040   </grammar>
   6041 </element>
   6042 </correct>
   6043 <valid>
   6044 <foo>text</foo>
   6045 </valid>
   6046 </testCase>
   6047 <testCase>
   6048 <section>7.1.5</section>
   6049 <section>7</section>
   6050 <section>4.18</section>
   6051 <incorrect>
   6052 <text xmlns="http://relaxng.org/ns/structure/1.0"/>
   6053 </incorrect>
   6054 </testCase>
   6055 <testCase>
   6056 <section>7.1.1</section>
   6057 <section>7</section>
   6058 <section>4.20</section>
   6059 <correct>
   6060 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   6061   <optional>
   6062     <attribute name="bar">
   6063       <group>
   6064         <notAllowed/>
   6065         <attribute name="baz"/>
   6066       </group>
   6067     </attribute>
   6068   </optional>
   6069 </element>
   6070 </correct>
   6071 <valid>
   6072 <foo/>
   6073 </valid>
   6074 </testCase>
   6075 <testCase>
   6076 <section>7.1.1</section>
   6077 <section>7</section>
   6078 <section>4.20</section>
   6079 <documentation>The nested attribute element is normalized out because
   6080 of the not allowed.</documentation>
   6081 <correct>
   6082 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   6083   <attribute name="bar">
   6084     <choice>
   6085       <text/>
   6086       <group>
   6087         <notAllowed/>
   6088         <attribute name="baz"/>
   6089       </group>
   6090     </choice>
   6091   </attribute>
   6092 </element>
   6093 </correct>
   6094 <valid>
   6095 <foo bar="baz"/>
   6096 </valid>
   6097 </testCase>
   6098 <testCase>
   6099 <section>7.1.2</section>
   6100 <section>7</section>
   6101 <section>4.12</section>
   6102 <documentation>The group element is normalized out.</documentation>
   6103 <correct>
   6104 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6105 <start>
   6106   <element name="foo">
   6107     <oneOrMore>
   6108       <group>
   6109         <attribute>
   6110           <anyName/>
   6111         </attribute>
   6112       </group>
   6113     </oneOrMore>
   6114   </element>
   6115 </start>
   6116 </grammar>
   6117 </correct>
   6118 <valid>
   6119 <foo xyzzy1="val1" xyzzy2="val2"/>
   6120 </valid>
   6121 </testCase>
   6122 <testCase>
   6123 <section>7.1.2</section>
   6124 <section>7</section>
   6125 <section>4.21</section>
   6126 <documentation>The group element is normalized out.</documentation>
   6127 <correct>
   6128 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6129 <start>
   6130   <element name="foo">
   6131     <oneOrMore>
   6132       <group>
   6133         <attribute>
   6134           <anyName/>
   6135         </attribute>
   6136         <empty/>
   6137       </group>
   6138     </oneOrMore>
   6139   </element>
   6140 </start>
   6141 </grammar>
   6142 </correct>
   6143 <valid>
   6144 <foo xyzzy1="val1" xyzzy2="val2"/>
   6145 </valid>
   6146 </testCase>
   6147 <testCase>
   6148 <section>7.1.2</section>
   6149 <section>7</section>
   6150 <section>4.20</section>
   6151 <documentation>The attribute elements are all normalized out.</documentation>
   6152 <correct>
   6153 <element xmlns="http://relaxng.org/ns/structure/1.0" name="foo">
   6154   <optional>
   6155     <attribute name="a1">
   6156       <attribute name="a2">
   6157         <attribute name="a3">
   6158           <notAllowed/>
   6159         </attribute>
   6160       </attribute>
   6161     </attribute>
   6162   </optional>
   6163 </element>
   6164 </correct>
   6165 <valid>
   6166 <foo/>
   6167 </valid>
   6168 </testCase>
   6169 </testSuite>
   6170 <testSuite>
   6171 <section>7.2</section>
   6172 <testCase>
   6173 <section>7.2</section>
   6174 <incorrect>
   6175 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6176   <start>
   6177     <element name="foo">
   6178       <group>
   6179         <data type="token"/>
   6180         <data type="token"/>
   6181       </group>
   6182     </element>
   6183   </start>
   6184 </grammar>
   6185 </incorrect>
   6186 </testCase>
   6187 <testCase>
   6188 <documentation>Checks that normalization of notAllowed happens
   6189 before string sequence checking.</documentation>
   6190 <section>7.2</section>
   6191 <section>4.20</section>
   6192 <correct>
   6193 <choice xmlns="http://relaxng.org/ns/structure/1.0">
   6194   <element name="foo">
   6195     <empty/>
   6196   </element>
   6197   <group>
   6198     <notAllowed/>
   6199     <element name="bar">
   6200       <group>
   6201 	<data type="token"/>
   6202 	<data type="token"/>
   6203       </group>
   6204     </element>
   6205   </group>
   6206 </choice>
   6207 </correct>
   6208 <valid>
   6209 <foo/>
   6210 </valid>
   6211 </testCase>
   6212 <testCase>
   6213 <section>4.20</section>
   6214 <section>7.2</section>
   6215 <documentation>notAllowed in an element is not normalized</documentation>
   6216 <incorrect>
   6217 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6218   <choice>
   6219     <group>
   6220       <element name="bar">
   6221         <notAllowed/>
   6222       </element>
   6223       <data type="token"/>
   6224       <data type="token"/>
   6225     </group>
   6226     <element name="baz">
   6227       <empty/>
   6228     </element>
   6229   </choice>
   6230 </element>
   6231 </incorrect>
   6232 </testCase>
   6233 </testSuite>
   6234 <testSuite>
   6235 <section>7.3</section>
   6236 <testCase>
   6237 <section>7.3</section>
   6238 <incorrect>
   6239 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6240   <attribute name="bar"/>
   6241   <attribute name="bar"/>
   6242 </element>
   6243 </incorrect>
   6244 </testCase>
   6245 <testCase>
   6246 <section>7.3</section>
   6247 <incorrect>
   6248 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6249   <attribute name="bar"/>
   6250   <zeroOrMore>
   6251     <attribute name="bar"/>
   6252   </zeroOrMore>
   6253 </element>
   6254 </incorrect>
   6255 </testCase>
   6256 <testCase>
   6257 <section>7.3</section>
   6258 <correct>
   6259 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6260   <oneOrMore>
   6261     <attribute name="bar"/>
   6262   </oneOrMore>
   6263 </element>
   6264 </correct>
   6265 <valid>
   6266 <foo bar="xx"/>
   6267 </valid>
   6268 </testCase>
   6269 <testCase>
   6270 <section>7.3</section>
   6271 <incorrect>
   6272 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6273   <interleave>
   6274     <attribute name="bar"/>
   6275     <attribute name="bar"/>
   6276   </interleave>
   6277 </element>
   6278 </incorrect>
   6279 </testCase>
   6280 <testCase>
   6281 <section>7.3</section>
   6282 <incorrect>
   6283 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6284   <optional>
   6285     <attribute name="bar"/>
   6286   </optional>
   6287   <optional>
   6288     <attribute name="bar"/>
   6289   </optional>
   6290 </element>
   6291 </incorrect>
   6292 </testCase>
   6293 <testCase>
   6294 <section>7.3</section>
   6295 <incorrect>
   6296 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6297   <attribute name="bar"/>
   6298   <oneOrMore>
   6299     <attribute>
   6300       <anyName/>
   6301     </attribute>
   6302   </oneOrMore>
   6303 </element>
   6304 </incorrect>
   6305 </testCase>
   6306 <testCase>
   6307 <section>7.3</section>
   6308 <incorrect>
   6309 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6310   <attribute name="bar"/>
   6311   <oneOrMore>
   6312     <attribute>
   6313       <anyName>
   6314 	<except>
   6315 	  <name>baz</name>
   6316 	</except>
   6317       </anyName>
   6318     </attribute>
   6319   </oneOrMore>
   6320 </element>
   6321 </incorrect>
   6322 </testCase>
   6323 <testCase>
   6324 <section>7.3</section>
   6325 <correct>
   6326 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6327   <attribute name="bar"/>
   6328   <oneOrMore>
   6329     <attribute>
   6330       <anyName>
   6331 	<except>
   6332 	  <name>bar</name>
   6333 	</except>
   6334       </anyName>
   6335     </attribute>
   6336   </oneOrMore>
   6337 </element>
   6338 </correct>
   6339 <valid>
   6340 <foo bar="val" xyzzy="anotherval"/>
   6341 </valid>
   6342 <valid>
   6343 <foo bar="val" baz=""/>
   6344 </valid>
   6345 <invalid>
   6346 <foo bar="val"/>
   6347 </invalid>
   6348 <invalid>
   6349 <foo/>
   6350 </invalid>
   6351 <invalid>
   6352 <foo xyzzy="val"/>
   6353 </invalid>
   6354 </testCase>
   6355 <testCase>
   6356 <section>7.3</section>
   6357 <incorrect>
   6358 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6359   <attribute name="bar"/>
   6360   <oneOrMore>
   6361     <attribute>
   6362       <nsName ns=""/>
   6363     </attribute>
   6364   </oneOrMore>
   6365 </element>
   6366 </incorrect>
   6367 </testCase>
   6368 <testCase>
   6369 <section>7.3</section>
   6370 <incorrect>
   6371 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6372   <attribute name="bar"/>
   6373   <oneOrMore>
   6374     <attribute>
   6375       <nsName ns="">
   6376 	<except>
   6377 	  <name>baz</name>
   6378 	</except>
   6379        </nsName>
   6380     </attribute>
   6381   </oneOrMore>
   6382 </element>
   6383 </incorrect>
   6384 </testCase>
   6385 <testCase>
   6386 <section>7.3</section>
   6387 <incorrect>
   6388 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6389   <oneOrMore>
   6390     <attribute>
   6391       <anyName/>
   6392     </attribute>
   6393   </oneOrMore>
   6394   <oneOrMore>
   6395     <attribute>
   6396       <nsName ns=""/>
   6397     </attribute>
   6398   </oneOrMore>
   6399 </element>
   6400 </incorrect>
   6401 </testCase>
   6402 <testCase>
   6403 <section>7.3</section>
   6404 <incorrect>
   6405 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6406   <oneOrMore>
   6407     <attribute>
   6408       <anyName/>
   6409     </attribute>
   6410   </oneOrMore>
   6411   <oneOrMore>
   6412     <attribute>
   6413       <anyName/>
   6414     </attribute>
   6415   </oneOrMore>
   6416 </element>
   6417 </incorrect>
   6418 </testCase>
   6419 <testCase>
   6420 <section>7.3</section>
   6421 <incorrect>
   6422 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6423   <oneOrMore>
   6424     <attribute>
   6425       <nsName ns=""/>
   6426     </attribute>
   6427   </oneOrMore>
   6428   <oneOrMore>
   6429     <attribute>
   6430       <nsName ns="">
   6431 	<except>
   6432 	  <name>bar</name>
   6433 	</except>
   6434       </nsName>
   6435     </attribute>
   6436   </oneOrMore>
   6437 </element>
   6438 </incorrect>
   6439 </testCase>
   6440 <testCase>
   6441 <section>7.3</section>
   6442 <incorrect>
   6443 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6444   <oneOrMore>
   6445     <attribute>
   6446       <anyName>
   6447 	<except>
   6448 	  <nsName>
   6449 	    <except>
   6450 	      <name>foo</name>
   6451 	    </except>
   6452 	  </nsName>
   6453 	</except>
   6454       </anyName>
   6455     </attribute>
   6456   </oneOrMore>
   6457   <attribute name="foo"/>
   6458 </element>
   6459 </incorrect>
   6460 </testCase>
   6461 <testCase>
   6462 <section>7.3</section>
   6463 <incorrect>
   6464 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6465   <oneOrMore>
   6466     <attribute>
   6467       <anyName>
   6468 	<except>
   6469 	  <nsName>
   6470 	    <except>
   6471 	      <name>foo</name>
   6472 	    </except>
   6473 	  </nsName>
   6474 	</except>
   6475       </anyName>
   6476     </attribute>
   6477   </oneOrMore>
   6478   <oneOrMore>
   6479     <attribute>
   6480       <nsName/>
   6481     </attribute>
   6482   </oneOrMore>
   6483 </element>
   6484 </incorrect>
   6485 </testCase>
   6486 <testCase>
   6487 <section>7.3</section>
   6488 <correct>
   6489 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6490   <oneOrMore>
   6491     <attribute>
   6492       <anyName>
   6493 	<except>
   6494 	  <nsName>
   6495 	    <except>
   6496 	      <name>bar</name>
   6497 	    </except>
   6498 	  </nsName>
   6499 	</except>
   6500       </anyName>
   6501     </attribute>
   6502   </oneOrMore>
   6503   <attribute name="baz"/>
   6504 </element>
   6505 </correct>
   6506 <valid>
   6507 <foo bar="xx" baz="yy"/>
   6508 </valid>
   6509 <invalid>
   6510 <foo x="xx" baz="yy"/>
   6511 </invalid>
   6512 <valid>
   6513 <foo xmlns:eg="http://www.example.com/" eg:x="xx" baz="yy"/>
   6514 </valid>
   6515 </testCase>
   6516 <testCase>
   6517 <section>7.3</section>
   6518 <correct>
   6519 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6520   <oneOrMore>
   6521     <attribute>
   6522       <nsName ns="http://www.example.com/1"/>
   6523     </attribute>
   6524   </oneOrMore>
   6525   <oneOrMore>
   6526     <attribute>
   6527       <nsName ns="http://www.example.com/2"/>
   6528     </attribute>
   6529   </oneOrMore>
   6530 </element>
   6531 </correct>
   6532 <valid>
   6533 <foo xmlns:eg1="http://www.example.com/1"
   6534      xmlns:eg2="http://www.example.com/2"
   6535      eg1:x="xx" eg2:y="yy"/>
   6536 </valid>
   6537 </testCase>
   6538 <testCase>
   6539 <section>7.3</section>
   6540 <correct>
   6541 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6542   <choice>
   6543     <attribute name="bar"/>
   6544     <attribute name="bar"/>
   6545   </choice>
   6546 </element>
   6547 </correct>
   6548 <valid>
   6549 <foo bar="xx"/>
   6550 </valid>
   6551 </testCase>
   6552 <testCase>
   6553 <section>7.3</section>
   6554 <incorrect>
   6555 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6556   <attribute name="bar"/>
   6557   <choice>
   6558     <attribute name="baz"/>
   6559     <attribute name="bar"/>
   6560   </choice>
   6561 </element>
   6562 </incorrect>
   6563 </testCase>
   6564 <testCase>
   6565 <section>7.3</section>
   6566 <incorrect>
   6567 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6568   <attribute><anyName/><text/></attribute>
   6569 </element>
   6570 </incorrect>
   6571 </testCase>
   6572 <testCase>
   6573 <section>7.3</section>
   6574 <incorrect>
   6575 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6576   <attribute><nsName ns =""/><text/></attribute>
   6577 </element>
   6578 </incorrect>
   6579 </testCase>
   6580 <testCase>
   6581 <section>7.3</section>
   6582 <incorrect>
   6583 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6584   <attribute><choice><nsName ns =""/><name>foo</name></choice><text/></attribute>
   6585 </element>
   6586 </incorrect>
   6587 </testCase>
   6588 </testSuite>
   6589 <testSuite>
   6590 <section>7.4</section>
   6591 <testCase>
   6592 <section>7.4</section>
   6593 <incorrect>
   6594 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6595   <interleave>
   6596     <element name="bar">
   6597       <empty/>
   6598     </element>
   6599     <element name="bar">
   6600       <empty/>
   6601     </element>
   6602   </interleave>
   6603 </element>
   6604 </incorrect>
   6605 </testCase>
   6606 <testCase>
   6607 <section>7.4</section>
   6608 <incorrect>
   6609 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6610   <interleave>
   6611     <element name="bar">
   6612       <empty/>
   6613     </element>
   6614     <interleave>
   6615       <element name="baz">
   6616 	<empty/>
   6617       </element>
   6618       <element name="bar">
   6619 	<empty/>
   6620       </element>
   6621     </interleave>
   6622   </interleave>
   6623 </element>
   6624 </incorrect>
   6625 </testCase>
   6626 <testCase>
   6627 <section>7.4</section>
   6628 <incorrect>
   6629 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6630   <interleave>
   6631     <element name="bar">
   6632       <empty/>
   6633     </element>
   6634     <group>
   6635       <element name="baz">
   6636 	<empty/>
   6637       </element>
   6638       <element name="bar">
   6639 	<empty/>
   6640       </element>
   6641     </group>
   6642   </interleave>
   6643 </element>
   6644 </incorrect>
   6645 </testCase>
   6646 <testCase>
   6647 <section>7.4</section>
   6648 <incorrect>
   6649 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6650   <interleave>
   6651     <element name="bar">
   6652       <empty/>
   6653     </element>
   6654     <group>
   6655       <element name="baz">
   6656 	<empty/>
   6657       </element>
   6658       <interleave>
   6659         <element name="baz">
   6660           <empty/>
   6661         </element>
   6662 	<element name="bar">
   6663 	  <empty/>
   6664 	</element>
   6665       </interleave>
   6666     </group>
   6667   </interleave>
   6668 </element>
   6669 </incorrect>
   6670 </testCase>
   6671 <testCase>
   6672 <section>7.4</section>
   6673 <incorrect>
   6674 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6675   <interleave>
   6676     <element name="bar">
   6677       <empty/>
   6678     </element>
   6679     <optional>
   6680       <element name="bar">
   6681 	<empty/>
   6682       </element>
   6683     </optional>
   6684   </interleave>
   6685 </element>
   6686 </incorrect>
   6687 </testCase>
   6688 <testCase>
   6689 <section>7.4</section>
   6690 <incorrect>
   6691 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6692   <interleave>
   6693     <element name="bar">
   6694       <empty/>
   6695     </element>
   6696     <element>
   6697       <nsName ns=""/>
   6698       <empty/>
   6699     </element>
   6700   </interleave>
   6701 </element>
   6702 </incorrect>
   6703 </testCase>
   6704 <testCase>
   6705 <section>7.4</section>
   6706 <incorrect>
   6707 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6708   <interleave>
   6709     <element name="bar">
   6710       <empty/>
   6711     </element>
   6712     <element>
   6713       <anyName/>
   6714       <empty/>
   6715     </element>
   6716   </interleave>
   6717 </element>
   6718 </incorrect>
   6719 </testCase>
   6720 <testCase>
   6721 <section>7.4</section>
   6722 <incorrect>
   6723 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6724   <interleave>
   6725     <element name="bar">
   6726       <empty/>
   6727     </element>
   6728     <element name="bar">
   6729       <notAllowed/>
   6730     </element>
   6731   </interleave>
   6732 </element>
   6733 </incorrect>
   6734 </testCase>
   6735 <testCase>
   6736 <section>7.4</section>
   6737 <correct>
   6738 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6739   <interleave>
   6740     <element name="bar">
   6741       <empty/>
   6742     </element>
   6743     <element>
   6744       <anyName>
   6745         <except>
   6746           <name>bar</name>
   6747         </except>
   6748       </anyName>
   6749       <empty/>
   6750     </element>
   6751   </interleave>
   6752 </element>
   6753 </correct>
   6754 <valid>
   6755 <foo><bar/><baz/></foo>
   6756 </valid>
   6757 </testCase>
   6758 <testCase>
   6759 <section>7.4</section>
   6760 <correct>
   6761 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6762   <interleave>
   6763     <choice>
   6764       <element name="bar">
   6765 	<empty/>
   6766       </element>
   6767       <element name="bar">
   6768 	<text/>
   6769       </element>
   6770     </choice>
   6771     <element name="baz">
   6772       <empty/>
   6773     </element>
   6774   </interleave>
   6775 </element>
   6776 </correct>
   6777 <valid>
   6778 <foo><bar/><baz/></foo>
   6779 </valid>
   6780 </testCase>
   6781 <testCase>
   6782 <section>7.4</section>
   6783 <incorrect>
   6784 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6785   <interleave>
   6786     <text/>
   6787     <text/>
   6788   </interleave>
   6789 </element>
   6790 </incorrect>
   6791 </testCase>
   6792 <testCase>
   6793 <section>7.4</section>
   6794 <incorrect>
   6795 <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
   6796   <mixed>
   6797     <mixed>
   6798       <element name="bar">
   6799         <empty/>
   6800       </element>
   6801     </mixed>
   6802     <element name="baz">
   6803       <empty/>
   6804     </element>
   6805   </mixed>
   6806 </element>
   6807 </incorrect>
   6808 </testCase>
   6809 </testSuite>
   6810 </testSuite>
   6811 <testSuite>
   6812 <documentation>Regressions</documentation>
   6813 <testCase>
   6814 <correct>
   6815 <grammar xmlns="http://relaxng.org/ns/structure/1.0">
   6816 <start>
   6817   <element name="foo">
   6818     <choice>
   6819       <group>
   6820         <attribute name="bar"><empty/></attribute>
   6821         <element name="baz1"><empty/></element>
   6822       </group>
   6823       <group>
   6824         <attribute name="bar"><text/></attribute>
   6825         <element name="baz2"><empty/></element>
   6826       </group>
   6827     </choice>
   6828   </element>
   6829 </start>
   6830 </grammar>
   6831 </correct>
   6832 <valid>
   6833 <foo bar=" "><baz1/></foo>
   6834 </valid>
   6835 </testCase>
   6836 <testCase>
   6837 <correct>
   6838 <notAllowed xmlns="http://relaxng.org/ns/structure/1.0"/>
   6839 </correct>
   6840 <invalid>
   6841 <foo/>
   6842 </invalid>
   6843 </testCase>
   6844 </testSuite>
   6845 </testSuite>
   6846