Annotation of embedaddon/libxml2/test/relaxng/testsuite.xml, revision 1.1.1.1

1.1       misho       1: <testSuite>
                      2: <author>Daniel Veillard</author>
                      3: <email>daniel@veillard.com</email>
                      4: <documentation>For libxml2 implementation of Relax NG spec.</documentation>
                      5: <testSuite>
                      6: <documentation>Test of node matches</documentation>
                      7: <testCase>
                      8: <correct>
                      9: <element xmlns="http://relaxng.org/ns/structure/1.0">
                     10:   <anyName>
                     11:     <except>
                     12:       <nsName ns="http://example.org"/>
                     13:     </except>
                     14:   </anyName>
                     15:   <empty/>
                     16: </element>
                     17: </correct>
                     18: <valid>
                     19: <foo/>
                     20: </valid>
                     21: <valid>
                     22: <foo xmlns="http://example.org/"/>
                     23: </valid>
                     24: <valid>
                     25: <foo xmlns="http://EXAMPLE.ORG"/>
                     26: </valid>
                     27: <invalid>
                     28: <foo xmlns="http://example.org"/>
                     29: </invalid>
                     30: <invalid>
                     31: <a:foo xmlns:a="http://example.org"/>
                     32: </invalid>
                     33: </testCase>
                     34: <testCase>
                     35: <correct>
                     36: <element name="top" xmlns="http://relaxng.org/ns/structure/1.0">
                     37:   <interleave>
                     38:     <element name="foo" ns="http://example.org">
                     39:       <empty/>
                     40:     </element>
                     41:     <element>
                     42:       <anyName>
                     43:        <except>
                     44:          <nsName ns="http://example.org"/>
                     45:        </except>
                     46:       </anyName>
                     47:       <empty/>
                     48:     </element>
                     49:   </interleave>
                     50: </element>
                     51: </correct>
                     52: <invalid>
                     53: <top>
                     54: <foo/>
                     55: <bar/>
                     56: </top>
                     57: </invalid>
                     58: <invalid>
                     59: <top>
                     60: <foo xmlns="http://example.org"/>
                     61: <bar xmlns="http://example.org"/>
                     62: </top>
                     63: </invalid>
                     64: <valid>
                     65: <top>
                     66: <foo xmlns="http://example.org"/>
                     67: <bar/>
                     68: </top>
                     69: </valid>
                     70: <valid>
                     71: <top>
                     72: <bar/>
                     73: <foo xmlns="http://example.org"/>
                     74: </top>
                     75: </valid>
                     76: <valid>
                     77: <top>
                     78: <foo xmlns="http://example.org"/>
                     79: <bar xmlns="http://example.org/"/>
                     80: </top>
                     81: </valid>
                     82: <valid>
                     83: <top>
                     84: <bar xmlns="http://example.org/"/>
                     85: <foo xmlns="http://example.org"/>
                     86: </top>
                     87: </valid>
                     88: </testCase>
                     89: </testSuite>
                     90: <testSuite>
                     91: <documentation>Test of indeterminism</documentation>
                     92: <testCase>
                     93: <correct>
                     94: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                     95:   <zeroOrMore>
                     96:     <element name="bar">
                     97:       <empty/>
                     98:     </element>
                     99:   </zeroOrMore>
                    100:   <element name="baz">
                    101:     <empty/>
                    102:   </element>
                    103: </element>
                    104: </correct>
                    105: <invalid>
                    106: <foo/>
                    107: </invalid>
                    108: <valid>
                    109: <foo>
                    110:   <baz/>
                    111: </foo>
                    112: </valid>
                    113: <valid>
                    114: <foo>
                    115:   <bar/>
                    116:   <baz/>
                    117: </foo>
                    118: </valid>
                    119: <valid>
                    120: <foo>
                    121:   <bar/>
                    122:   <bar/>
                    123:   <bar/>
                    124:   <baz/>
                    125: </foo>
                    126: </valid>
                    127: </testCase>
                    128: <testCase>
                    129: <correct>
                    130: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    131:   <zeroOrMore>
                    132:     <element name="bar">
                    133:       <empty/>
                    134:     </element>
                    135:   </zeroOrMore>
                    136:   <element name="bar">
                    137:     <empty/>
                    138:   </element>
                    139: </element>
                    140: </correct>
                    141: <invalid>
                    142: <foo/>
                    143: </invalid>
                    144: <valid>
                    145: <foo>
                    146:   <bar/>
                    147: </foo>
                    148: </valid>
                    149: <valid>
                    150: <foo>
                    151:   <bar/>
                    152:   <bar/>
                    153: </foo>
                    154: </valid>
                    155: <valid>
                    156: <foo>
                    157:   <bar/>
                    158:   <bar/>
                    159:   <bar/>
                    160:   <bar/>
                    161: </foo>
                    162: </valid>
                    163: </testCase>
                    164: <testCase>
                    165: <correct>
                    166: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    167:   <group>
                    168:     <zeroOrMore>
                    169:       <element name="bar">
                    170:         <empty/>
                    171:       </element>
                    172:     </zeroOrMore>
                    173:     <element name="baz">
                    174:       <empty/>
                    175:     </element>
                    176:   </group>
                    177: </element>
                    178: </correct>
                    179: <invalid>
                    180: <foo/>
                    181: </invalid>
                    182: <valid>
                    183: <foo>
                    184:   <baz/>
                    185: </foo>
                    186: </valid>
                    187: <valid>
                    188: <foo>
                    189:   <bar/>
                    190:   <baz/>
                    191: </foo>
                    192: </valid>
                    193: <valid>
                    194: <foo>
                    195:   <bar/>
                    196:   <bar/>
                    197:   <bar/>
                    198:   <baz/>
                    199: </foo>
                    200: </valid>
                    201: </testCase>
                    202: <testCase>
                    203: <correct>
                    204: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    205:   <group>
                    206:     <zeroOrMore>
                    207:       <element name="bar">
                    208:         <empty/>
                    209:       </element>
                    210:     </zeroOrMore>
                    211:     <element name="bar">
                    212:       <empty/>
                    213:     </element>
                    214:   </group>
                    215: </element>
                    216: </correct>
                    217: <invalid>
                    218: <foo/>
                    219: </invalid>
                    220: <valid>
                    221: <foo>
                    222:   <bar/>
                    223: </foo>
                    224: </valid>
                    225: <valid>
                    226: <foo>
                    227:   <bar/>
                    228:   <bar/>
                    229: </foo>
                    230: </valid>
                    231: <valid>
                    232: <foo>
                    233:   <bar/>
                    234:   <bar/>
                    235:   <bar/>
                    236:   <bar/>
                    237: </foo>
                    238: </valid>
                    239: </testCase>
                    240: <testCase>
                    241: <correct>
                    242: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    243:   <choice>
                    244:     <zeroOrMore>
                    245:       <element name="bar">
                    246:         <empty/>
                    247:       </element>
                    248:     </zeroOrMore>
                    249:     <element name="baz">
                    250:       <empty/>
                    251:     </element>
                    252:   </choice>
                    253: </element>
                    254: </correct>
                    255: <valid>
                    256: <foo/>
                    257: </valid>
                    258: <valid>
                    259: <foo>
                    260:   <baz/>
                    261: </foo>
                    262: </valid>
                    263: <valid>
                    264: <foo>
                    265:   <bar/>
                    266:   <bar/>
                    267:   <bar/>
                    268: </foo>
                    269: </valid>
                    270: <invalid>
                    271: <foo>
                    272:   <bar/>
                    273:   <baz/>
                    274: </foo>
                    275: </invalid>
                    276: <invalid>
                    277: <foo>
                    278:   <bar/>
                    279:   <bar/>
                    280:   <bar/>
                    281:   <bar/>
                    282:   <baz/>
                    283: </foo>
                    284: </invalid>
                    285: </testCase>
                    286: <testCase>
                    287: <correct>
                    288: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    289:   <choice>
                    290:     <zeroOrMore>
                    291:       <element name="bar">
                    292:         <empty/>
                    293:       </element>
                    294:     </zeroOrMore>
                    295:     <element name="baz">
                    296:       <empty/>
                    297:     </element>
                    298:   </choice>
                    299:   <element name="baz">
                    300:     <empty/>
                    301:   </element>
                    302: </element>
                    303: </correct>
                    304: <invalid>
                    305: <foo/>
                    306: </invalid>
                    307: <valid>
                    308: <foo>
                    309:   <baz/>
                    310: </foo>
                    311: </valid>
                    312: <valid>
                    313: <foo>
                    314:   <baz/>
                    315:   <baz/>
                    316: </foo>
                    317: </valid>
                    318: <valid>
                    319: <foo>
                    320:   <bar/>
                    321:   <bar/>
                    322:   <bar/>
                    323:   <baz/>
                    324: </foo>
                    325: </valid>
                    326: <invalid>
                    327: <foo>
                    328:   <bar/>
                    329:   <baz/>
                    330:   <baz/>
                    331: </foo>
                    332: </invalid>
                    333: <invalid>
                    334: <foo>
                    335:   <baz/>
                    336:   <bar/>
                    337:   <baz/>
                    338: </foo>
                    339: </invalid>
                    340: </testCase>
                    341: <testCase>
                    342: <correct>
                    343: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    344:   <choice>
                    345:     <zeroOrMore>
                    346:       <element name="bar">
                    347:         <empty/>
                    348:       </element>
                    349:     </zeroOrMore>
                    350:     <element name="bar">
                    351:       <empty/>
                    352:     </element>
                    353:   </choice>
                    354: </element>
                    355: </correct>
                    356: <valid>
                    357: <foo/>
                    358: </valid>
                    359: <valid>
                    360: <foo>
                    361:   <bar/>
                    362: </foo>
                    363: </valid>
                    364: <valid>
                    365: <foo>
                    366:   <bar/>
                    367:   <bar/>
                    368: </foo>
                    369: </valid>
                    370: <valid>
                    371: <foo>
                    372:   <bar/>
                    373:   <bar/>
                    374:   <bar/>
                    375:   <bar/>
                    376: </foo>
                    377: </valid>
                    378: </testCase>
                    379: <testCase>
                    380: <correct>
                    381: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    382:   <choice>
                    383:     <zeroOrMore>
                    384:       <choice>
                    385:         <element name="bar">
                    386:           <empty/>
                    387:         </element>
                    388:         <element name="baz">
                    389:           <empty/>
                    390:         </element>
                    391:       </choice>
                    392:     </zeroOrMore>
                    393:     <element name="bar">
                    394:       <empty/>
                    395:     </element>
                    396:   </choice>
                    397: </element>
                    398: </correct>
                    399: <valid>
                    400: <foo/>
                    401: </valid>
                    402: <valid>
                    403: <foo>
                    404:   <bar/>
                    405: </foo>
                    406: </valid>
                    407: <valid>
                    408: <foo>
                    409:   <baz/>
                    410:   <bar/>
                    411: </foo>
                    412: </valid>
                    413: <valid>
                    414: <foo>
                    415:   <bar/>
                    416:   <bar/>
                    417:   <bar/>
                    418:   <bar/>
                    419: </foo>
                    420: </valid>
                    421: <valid>
                    422: <foo>
                    423:   <baz/>
                    424:   <baz/>
                    425:   <baz/>
                    426:   <baz/>
                    427: </foo>
                    428: </valid>
                    429: <valid>
                    430: <foo>
                    431:   <baz/>
                    432:   <bar/>
                    433:   <baz/>
                    434:   <bar/>
                    435: </foo>
                    436: </valid>
                    437: </testCase>
                    438: <testCase>
                    439: <correct>
                    440: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    441:   <optional>
                    442:     <element name="bar">
                    443:       <empty/>
                    444:     </element>
                    445:   </optional>
                    446:   <element name="baz">
                    447:     <empty/>
                    448:   </element>
                    449: </element>
                    450: </correct>
                    451: <invalid>
                    452: <foo/>
                    453: </invalid>
                    454: <valid>
                    455: <foo>
                    456:   <baz/>
                    457: </foo>
                    458: </valid>
                    459: <valid>
                    460: <foo>
                    461:   <bar/>
                    462:   <baz/>
                    463: </foo>
                    464: </valid>
                    465: <invalid>
                    466: <foo>
                    467:   <bar/>
                    468:   <bar/>
                    469:   <baz/>
                    470: </foo>
                    471: </invalid>
                    472: </testCase>
                    473: <testCase>
                    474: <correct>
                    475: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    476:   <optional>
                    477:     <element name="bar">
                    478:       <empty/>
                    479:     </element>
                    480:   </optional>
                    481:   <element name="bar">
                    482:     <empty/>
                    483:   </element>
                    484: </element>
                    485: </correct>
                    486: <invalid>
                    487: <foo/>
                    488: </invalid>
                    489: <valid>
                    490: <foo>
                    491:   <bar/>
                    492: </foo>
                    493: </valid>
                    494: <valid>
                    495: <foo>
                    496:   <bar/>
                    497:   <bar/>
                    498: </foo>
                    499: </valid>
                    500: <invalid>
                    501: <foo>
                    502:   <bar/>
                    503:   <bar/>
                    504:   <bar/>
                    505: </foo>
                    506: </invalid>
                    507: </testCase>
                    508: <testCase>
                    509: <correct>
                    510: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    511:   <optional>
                    512:     <oneOrMore>
                    513:       <element name="bar">
                    514:         <empty/>
                    515:       </element>
                    516:     </oneOrMore>
                    517:   </optional>
                    518:   <element name="baz">
                    519:     <empty/>
                    520:   </element>
                    521: </element>
                    522: </correct>
                    523: <invalid>
                    524: <foo/>
                    525: </invalid>
                    526: <valid>
                    527: <foo>
                    528:   <baz/>
                    529: </foo>
                    530: </valid>
                    531: <valid>
                    532: <foo>
                    533:   <bar/>
                    534:   <baz/>
                    535: </foo>
                    536: </valid>
                    537: <valid>
                    538: <foo>
                    539:   <bar/>
                    540:   <bar/>
                    541:   <baz/>
                    542: </foo>
                    543: </valid>
                    544: <invalid>
                    545: <foo>
                    546:   <bar/>
                    547:   <bar/>
                    548: </foo>
                    549: </invalid>
                    550: </testCase>
                    551: <testCase>
                    552: <correct>
                    553: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    554:   <optional>
                    555:     <oneOrMore>
                    556:       <element name="bar">
                    557:         <empty/>
                    558:       </element>
                    559:     </oneOrMore>
                    560:   </optional>
                    561:   <element name="bar">
                    562:     <empty/>
                    563:   </element>
                    564: </element>
                    565: </correct>
                    566: <invalid>
                    567: <foo/>
                    568: </invalid>
                    569: <valid>
                    570: <foo>
                    571:   <bar/>
                    572: </foo>
                    573: </valid>
                    574: <valid>
                    575: <foo>
                    576:   <bar/>
                    577:   <bar/>
                    578: </foo>
                    579: </valid>
                    580: <valid>
                    581: <foo>
                    582:   <bar/>
                    583:   <bar/>
                    584:   <bar/>
                    585: </foo>
                    586: </valid>
                    587: </testCase>
                    588: <testCase>
                    589: <correct>
                    590: <element name="foo" xmlns="http://relaxng.org/ns/structure/1.0">
                    591:   <group>
                    592:     <zeroOrMore>
                    593:       <choice>
                    594:         <element name="bar">
                    595:           <empty/>
                    596:         </element>
                    597:         <element name="baz">
                    598:           <empty/>
                    599:         </element>
                    600:       </choice>
                    601:     </zeroOrMore>
                    602:     <element name="bar">
                    603:       <empty/>
                    604:     </element>
                    605:   </group>
                    606: </element>
                    607: </correct>
                    608: <invalid>
                    609: <foo/>
                    610: </invalid>
                    611: <valid>
                    612: <foo>
                    613:   <bar/>
                    614: </foo>
                    615: </valid>
                    616: <valid>
                    617: <foo>
                    618:   <baz/>
                    619:   <bar/>
                    620: </foo>
                    621: </valid>
                    622: <valid>
                    623: <foo>
                    624:   <bar/>
                    625:   <bar/>
                    626:   <bar/>
                    627:   <bar/>
                    628: </foo>
                    629: </valid>
                    630: <valid>
                    631: <foo>
                    632:   <baz/>
                    633:   <baz/>
                    634:   <baz/>
                    635:   <bar/>
                    636: </foo>
                    637: </valid>
                    638: <valid>
                    639: <foo>
                    640:   <baz/>
                    641:   <bar/>
                    642:   <baz/>
                    643:   <bar/>
                    644: </foo>
                    645: </valid>
                    646: <invalid>
                    647: <foo>
                    648:   <bar/>
                    649:   <baz/>
                    650:   <bar/>
                    651:   <baz/>
                    652: </foo>
                    653: </invalid>
                    654: </testCase>
                    655: <testCase>
                    656: <correct>
                    657: <element name="list" xmlns="http://relaxng.org/ns/structure/1.0">
                    658:   <oneOrMore>
                    659:     <element name="label">
                    660:       <empty/>
                    661:     </element>
                    662:     <optional>
                    663:       <element name="opt">
                    664:         <empty/>
                    665:       </element>
                    666:     </optional>
                    667:     <element name="item">
                    668:       <empty/>
                    669:     </element>
                    670:   </oneOrMore>
                    671: </element>
                    672: </correct>
                    673: <invalid>
                    674: <list>
                    675: </list>
                    676: </invalid>
                    677: <valid>
                    678: <list>
                    679:   <label/>
                    680:   <item/>
                    681: </list>
                    682: </valid>
                    683: <valid>
                    684: <list>
                    685:   <label/>
                    686:   <item/>
                    687:   <label/>
                    688:   <item/>
                    689: </list>
                    690: </valid>
                    691: <valid>
                    692: <list>
                    693:   <label/>
                    694:   <opt/>
                    695:   <item/>
                    696:   <label/>
                    697:   <opt/>
                    698:   <item/>
                    699: </list>
                    700: </valid>
                    701: <invalid>
                    702: <list>
                    703:   <label/>
                    704:   <item/>
                    705:   <label/>
                    706:   <opt/>
                    707:   <opt/>
                    708:   <item/>
                    709: </list>
                    710: </invalid>
                    711: </testCase>
                    712: <testCase>
                    713: <correct>
                    714: <element name="list" xmlns="http://relaxng.org/ns/structure/1.0">
                    715:   <oneOrMore>
                    716:     <element name="label">
                    717:       <empty/>
                    718:     </element>
                    719:     <zeroOrMore>
                    720:       <element name="opt">
                    721:         <empty/>
                    722:       </element>
                    723:     </zeroOrMore>
                    724:     <element name="item">
                    725:       <empty/>
                    726:     </element>
                    727:   </oneOrMore>
                    728: </element>
                    729: </correct>
                    730: <invalid>
                    731: <list>
                    732: </list>
                    733: </invalid>
                    734: <valid>
                    735: <list>
                    736:   <label/>
                    737:   <item/>
                    738: </list>
                    739: </valid>
                    740: <valid>
                    741: <list>
                    742:   <label/>
                    743:   <item/>
                    744:   <label/>
                    745:   <item/>
                    746: </list>
                    747: </valid>
                    748: <valid>
                    749: <list>
                    750:   <label/>
                    751:   <opt/>
                    752:   <item/>
                    753:   <label/>
                    754:   <opt/>
                    755:   <item/>
                    756: </list>
                    757: </valid>
                    758: <valid>
                    759: <list>
                    760:   <label/>
                    761:   <item/>
                    762:   <label/>
                    763:   <opt/>
                    764:   <opt/>
                    765:   <item/>
                    766: </list>
                    767: </valid>
                    768: </testCase>
                    769: <testCase>
                    770: <correct>
                    771: <element name="list" xmlns="http://relaxng.org/ns/structure/1.0">
                    772:   <oneOrMore>
                    773:     <element name="label">
                    774:       <empty/>
                    775:     </element>
                    776:     <zeroOrMore>
                    777:       <element name="opt">
                    778:         <empty/>
                    779:       </element>
                    780:       <element name="opt2">
                    781:         <empty/>
                    782:       </element>
                    783:     </zeroOrMore>
                    784:     <element name="item">
                    785:       <empty/>
                    786:     </element>
                    787:   </oneOrMore>
                    788: </element>
                    789: </correct>
                    790: <invalid>
                    791: <list>
                    792: </list>
                    793: </invalid>
                    794: <valid>
                    795: <list>
                    796:   <label/>
                    797:   <item/>
                    798: </list>
                    799: </valid>
                    800: <valid>
                    801: <list>
                    802:   <label/>
                    803:   <item/>
                    804:   <label/>
                    805:   <item/>
                    806: </list>
                    807: </valid>
                    808: <valid>
                    809: <list>
                    810:   <label/>
                    811:   <opt/>
                    812:   <opt2/>
                    813:   <item/>
                    814:   <label/>
                    815:   <opt/>
                    816:   <opt2/>
                    817:   <item/>
                    818: </list>
                    819: </valid>
                    820: <valid>
                    821: <list>
                    822:   <label/>
                    823:   <item/>
                    824:   <label/>
                    825:   <opt/>
                    826:   <opt2/>
                    827:   <opt/>
                    828:   <opt2/>
                    829:   <item/>
                    830: </list>
                    831: </valid>
                    832: <invalid>
                    833: <list>
                    834:   <label/>
                    835:   <opt/>
                    836:   <item/>
                    837:   <label/>
                    838:   <item/>
                    839: </list>
                    840: </invalid>
                    841: <invalid>
                    842: <list>
                    843:   <label/>
                    844:   <item/>
                    845:   <label/>
                    846:   <opt2/>
                    847:   <opt/>
                    848:   <item/>
                    849: </list>
                    850: </invalid>
                    851: <invalid>
                    852: <list>
                    853:   <label/>
                    854:   <item/>
                    855:   <label/>
                    856:   <opt/>
                    857:   <opt2/>
                    858:   <opt/>
                    859:   <item/>
                    860: </list>
                    861: </invalid>
                    862: </testCase>
                    863: </testSuite>
                    864: <testSuite>
                    865: <documentation>Test of grammars merging</documentation>
                    866: <testCase>
                    867: <resource name="dbk.rng">
                    868: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                    869:   <start>
                    870:     <ref name="p"/>
                    871:   </start>
                    872:   <define name="p.ext">
                    873:     <notAllowed/>
                    874:   </define>
                    875:   <define name="p">
                    876:     <element name="p">
                    877:       <choice>
                    878:         <ref name="p.ext"/>
                    879:        <empty/>
                    880:         <element name="a">
                    881:           <text/>
                    882:         </element>
                    883:       </choice>
                    884:     </element>
                    885:   </define>
                    886: </grammar>
                    887: </resource>
                    888: <correct>
                    889: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                    890:   <start>
                    891:     <grammar>
                    892:       <include href="dbk.rng"/>
                    893:       <define name="p.ext" combine="choice">
                    894:         <element name="b">
                    895:           <text/>
                    896:         </element>
                    897:       </define>
                    898:     </grammar>
                    899:   </start>
                    900: </grammar>
                    901: </correct>
                    902: <valid>
                    903: <p/>
                    904: </valid>
                    905: <valid>
                    906: <p>
                    907:   <a/>
                    908: </p>
                    909: </valid>
                    910: <valid>
                    911: <p>
                    912:   <b/>
                    913: </p>
                    914: </valid>
                    915: <invalid>
                    916: <b/>
                    917: </invalid>
                    918: <invalid>
                    919: <p>
                    920:   <b/>
                    921:   <b/>
                    922: </p>
                    923: </invalid>
                    924: </testCase>
                    925: <testCase>
                    926: <resource name="dbk.rng">
                    927: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                    928:   <start>
                    929:     <ref name="p"/>
                    930:   </start>
                    931:   <define name="p.ext">
                    932:     <notAllowed/>
                    933:   </define>
                    934:   <define name="p">
                    935:     <element name="p">
                    936:       <choice>
                    937:         <ref name="p.ext"/>
                    938:        <empty/>
                    939:         <element name="a">
                    940:           <text/>
                    941:         </element>
                    942:       </choice>
                    943:     </element>
                    944:   </define>
                    945:   <define name="c">
                    946:     <element name="c">
                    947:       <empty/>
                    948:     </element>
                    949:   </define>
                    950: </grammar>
                    951: </resource>
                    952: <correct>
                    953: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                    954:   <start>
                    955:     <grammar>
                    956:       <include href="dbk.rng"/>
                    957:       <define name="p.ext" combine="choice">
                    958:         <choice>
                    959:          <ref name="c"/>
                    960:          <parentRef name="d"/>
                    961:           <element name="b">
                    962:             <text/>
                    963:           </element>
                    964:         </choice>
                    965:       </define>
                    966:     </grammar>
                    967:   </start>
                    968:   <define name="d">
                    969:     <element name="d">
                    970:       <empty/>
                    971:     </element>
                    972:   </define>
                    973: </grammar>
                    974: </correct>
                    975: <valid>
                    976: <p/>
                    977: </valid>
                    978: <valid>
                    979: <p>
                    980:   <a/>
                    981: </p>
                    982: </valid>
                    983: <valid>
                    984: <p>
                    985:   <b/>
                    986: </p>
                    987: </valid>
                    988: <valid>
                    989: <p>
                    990:   <c/>
                    991: </p>
                    992: </valid>
                    993: <valid>
                    994: <p>
                    995:   <d/>
                    996: </p>
                    997: </valid>
                    998: <invalid>
                    999: <b/>
                   1000: </invalid>
                   1001: <invalid>
                   1002: <c/>
                   1003: </invalid>
                   1004: <invalid>
                   1005: <d/>
                   1006: </invalid>
                   1007: <invalid>
                   1008: <p>
                   1009:   <b/>
                   1010:   <c/>
                   1011: </p>
                   1012: </invalid>
                   1013: <invalid>
                   1014: <p>
                   1015:   <d/>
                   1016:   <c/>
                   1017: </p>
                   1018: </invalid>
                   1019: </testCase>
                   1020: <testCase>
                   1021: <resource name="dbk.rng">
                   1022: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1023:   <start>
                   1024:     <ref name="p"/>
                   1025:   </start>
                   1026:   <define name="p.ext">
                   1027:     <notAllowed/>
                   1028:   </define>
                   1029:   <define name="p">
                   1030:     <element name="p">
                   1031:       <choice>
                   1032:         <ref name="p.ext"/>
                   1033:        <empty/>
                   1034:         <element name="a">
                   1035:           <text/>
                   1036:         </element>
                   1037:       </choice>
                   1038:     </element>
                   1039:   </define>
                   1040:   <define name="c">
                   1041:     <element name="c">
                   1042:       <empty/>
                   1043:     </element>
                   1044:   </define>
                   1045: </grammar>
                   1046: </resource>
                   1047: <resource name="proof.rng">
                   1048: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1049:   <start>
                   1050:     <ref name="e"/>
                   1051:   </start>
                   1052:   <define name="d">
                   1053:     <element name="d">
                   1054:       <empty/>
                   1055:     </element>
                   1056:   </define>
                   1057:   <define name="e">
                   1058:     <element name="e">
                   1059:       <empty/>
                   1060:     </element>
                   1061:   </define>
                   1062:   <define name="f">
                   1063:     <element name="f">
                   1064:       <empty/>
                   1065:     </element>
                   1066:   </define>
                   1067: </grammar>
                   1068: </resource>
                   1069: <correct>
                   1070: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1071:   <start>
                   1072:     <grammar>
                   1073:       <include href="dbk.rng"/>
                   1074:       <define name="p.ext" combine="choice">
                   1075:         <choice>
                   1076:          <ref name="c"/>
                   1077:          <grammar>
                   1078:            <include href="proof.rng"/>
                   1079:            <start combine="choice">
                   1080:              <ref name="d"/>
                   1081:            </start>
                   1082:          </grammar>
                   1083:           <element name="b">
                   1084:             <text/>
                   1085:           </element>
                   1086:         </choice>
                   1087:       </define>
                   1088:     </grammar>
                   1089:   </start>
                   1090:   <define name="g">
                   1091:     <element name="g">
                   1092:       <empty/>
                   1093:     </element>
                   1094:   </define>
                   1095: </grammar>
                   1096: </correct>
                   1097: <valid>
                   1098: <p/>
                   1099: </valid>
                   1100: <valid>
                   1101: <p>
                   1102:   <a/>
                   1103: </p>
                   1104: </valid>
                   1105: <valid>
                   1106: <p>
                   1107:   <b/>
                   1108: </p>
                   1109: </valid>
                   1110: <valid>
                   1111: <p>
                   1112:   <c/>
                   1113: </p>
                   1114: </valid>
                   1115: <valid>
                   1116: <p>
                   1117:   <d/>
                   1118: </p>
                   1119: </valid>
                   1120: <valid>
                   1121: <p>
                   1122:   <e/>
                   1123: </p>
                   1124: </valid>
                   1125: <invalid>
                   1126: <p>
                   1127:   <f/>
                   1128: </p>
                   1129: </invalid>
                   1130: <invalid>
                   1131: <p>
                   1132:   <g/>
                   1133: </p>
                   1134: </invalid>
                   1135: <invalid>
                   1136: <b/>
                   1137: </invalid>
                   1138: <invalid>
                   1139: <c/>
                   1140: </invalid>
                   1141: <invalid>
                   1142: <d/>
                   1143: </invalid>
                   1144: <invalid>
                   1145: <e/>
                   1146: </invalid>
                   1147: <invalid>
                   1148: <f/>
                   1149: </invalid>
                   1150: <invalid>
                   1151: <g/>
                   1152: </invalid>
                   1153: <invalid>
                   1154: <p>
                   1155:   <d/>
                   1156:   <c/>
                   1157: </p>
                   1158: </invalid>
                   1159: <invalid>
                   1160: <p>
                   1161:   <d/>
                   1162:   <e/>
                   1163: </p>
                   1164: </invalid>
                   1165: </testCase>
                   1166: <testCase>
                   1167: <resource name="dbk.rng">
                   1168: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1169:   <start>
                   1170:     <ref name="p"/>
                   1171:   </start>
                   1172:   <define name="p.ext">
                   1173:     <notAllowed/>
                   1174:   </define>
                   1175:   <define name="p">
                   1176:     <element name="p">
                   1177:       <choice>
                   1178:         <ref name="p.ext"/>
                   1179:        <empty/>
                   1180:         <element name="a">
                   1181:           <text/>
                   1182:         </element>
                   1183:       </choice>
                   1184:     </element>
                   1185:   </define>
                   1186:   <define name="c">
                   1187:     <element name="c">
                   1188:       <empty/>
                   1189:     </element>
                   1190:   </define>
                   1191: </grammar>
                   1192: </resource>
                   1193: <resource name="proof.rng">
                   1194: <grammar xmlns="http://relaxng.org/ns/structure/1.0"
                   1195:          ns="http://example.org/ns/proofsystem">
                   1196:   <start>
                   1197:     <ref name="e"/>
                   1198:   </start>
                   1199:   <define name="d">
                   1200:     <element name="d">
                   1201:       <empty/>
                   1202:     </element>
                   1203:   </define>
                   1204:   <define name="e">
                   1205:     <element name="e">
                   1206:       <empty/>
                   1207:     </element>
                   1208:   </define>
                   1209:   <define name="f">
                   1210:     <element name="f">
                   1211:       <empty/>
                   1212:     </element>
                   1213:   </define>
                   1214: </grammar>
                   1215: </resource>
                   1216: <correct>
                   1217: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1218:   <start>
                   1219:     <grammar>
                   1220:       <include href="dbk.rng"/>
                   1221:       <define name="p.ext" combine="choice">
                   1222:         <choice>
                   1223:          <ref name="c"/>
                   1224:          <grammar>
                   1225:            <include href="proof.rng"/>
                   1226:            <start combine="choice">
                   1227:              <ref name="d"/>
                   1228:            </start>
                   1229:          </grammar>
                   1230:           <element name="b">
                   1231:             <text/>
                   1232:           </element>
                   1233:         </choice>
                   1234:       </define>
                   1235:     </grammar>
                   1236:   </start>
                   1237:   <define name="g">
                   1238:     <element name="g">
                   1239:       <empty/>
                   1240:     </element>
                   1241:   </define>
                   1242: </grammar>
                   1243: </correct>
                   1244: <valid>
                   1245: <p/>
                   1246: </valid>
                   1247: <valid>
                   1248: <p>
                   1249:   <a/>
                   1250: </p>
                   1251: </valid>
                   1252: <valid>
                   1253: <p>
                   1254:   <b/>
                   1255: </p>
                   1256: </valid>
                   1257: <valid>
                   1258: <p>
                   1259:   <c/>
                   1260: </p>
                   1261: </valid>
                   1262: <valid>
                   1263: <p xmlns:p="http://example.org/ns/proofsystem">
                   1264:   <p:d/>
                   1265: </p>
                   1266: </valid>
                   1267: <invalid>
                   1268: <p>
                   1269:   <d/>
                   1270: </p>
                   1271: </invalid>
                   1272: <valid>
                   1273: <p xmlns:p="http://example.org/ns/proofsystem">
                   1274:   <p:e/>
                   1275: </p>
                   1276: </valid>
                   1277: <invalid>
                   1278: <p>
                   1279:   <e/>
                   1280: </p>
                   1281: </invalid>
                   1282: <invalid>
                   1283: <p xmlns:p="http://example.org/ns/proofsystem">
                   1284:   <p:f/>
                   1285: </p>
                   1286: </invalid>
                   1287: <invalid>
                   1288: <p>
                   1289:   <f/>
                   1290: </p>
                   1291: </invalid>
                   1292: <invalid>
                   1293: <p>
                   1294:   <g/>
                   1295: </p>
                   1296: </invalid>
                   1297: <invalid>
                   1298: <b/>
                   1299: </invalid>
                   1300: <invalid>
                   1301: <c/>
                   1302: </invalid>
                   1303: <invalid>
                   1304: <d/>
                   1305: </invalid>
                   1306: <invalid>
                   1307: <e/>
                   1308: </invalid>
                   1309: <invalid>
                   1310: <f/>
                   1311: </invalid>
                   1312: <invalid>
                   1313: <g/>
                   1314: </invalid>
                   1315: <invalid>
                   1316: <p xmlns:p="http://example.org/ns/proofsystem">
                   1317:   <p:d/>
                   1318:   <c/>
                   1319: </p>
                   1320: </invalid>
                   1321: <invalid>
                   1322: <p xmlns:p="http://example.org/ns/proofsystem">
                   1323:   <p:d/>
                   1324:   <p:e/>
                   1325: </p>
                   1326: </invalid>
                   1327: </testCase>
                   1328: <testCase>
                   1329: <resource name="ext.rng">
                   1330: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1331:   <start>
                   1332:     <ref name="p"/>
                   1333:   </start>
                   1334:   <define name="p">
                   1335:     <element name="p">
                   1336:       <empty/>
                   1337:     </element>
                   1338:   </define>
                   1339: </grammar>
                   1340: </resource>
                   1341: <correct>
                   1342: <grammar xmlns="http://relaxng.org/ns/structure/1.0">
                   1343:   <start>
                   1344:     <element name="top">
                   1345:       <choice>
                   1346:         <ref name="include1"/>
                   1347:         <ref name="include2"/>
                   1348:       </choice>
                   1349:     </element>
                   1350:   </start>
                   1351:   <define name="include1">
                   1352:     <grammar>
                   1353:       <include href="ext.rng">
                   1354:         <start>
                   1355:         <element name="a">
                   1356:           <choice>
                   1357:             <empty/>
                   1358:             <ref name="p"/>
                   1359:           </choice>
                   1360:         </element>
                   1361:        </start>
                   1362:       </include>
                   1363:     </grammar>
                   1364:   </define>
                   1365:   <define name="include2">
                   1366:     <grammar>
                   1367:       <include href="ext.rng">
                   1368:         <start>
                   1369:         <element name="b">
                   1370:           <choice>
                   1371:             <empty/>
                   1372:             <ref name="p"/>
                   1373:           </choice>
                   1374:         </element>
                   1375:        </start>
                   1376:       </include>
                   1377:     </grammar>
                   1378:   </define>
                   1379: </grammar>
                   1380: </correct>
                   1381: <invalid>
                   1382: <top/>
                   1383: </invalid>
                   1384: <invalid>
                   1385: <a/>
                   1386: </invalid>
                   1387: <invalid>
                   1388: <b/>
                   1389: </invalid>
                   1390: <invalid>
                   1391: <p/>
                   1392: </invalid>
                   1393: <valid>
                   1394: <top>
                   1395:   <a/>
                   1396: </top>
                   1397: </valid>
                   1398: <valid>
                   1399: <top>
                   1400:   <b/>
                   1401: </top>
                   1402: </valid>
                   1403: <valid>
                   1404: <top>
                   1405:   <a>
                   1406:     <p/>
                   1407:   </a>
                   1408: </top>
                   1409: </valid>
                   1410: <valid>
                   1411: <top>
                   1412:   <b>
                   1413:     <p/>
                   1414:   </b>
                   1415: </top>
                   1416: </valid>
                   1417: </testCase>
                   1418: </testSuite>
                   1419: <testSuite>
                   1420: <documentation>Test of ID/IDREF</documentation>
                   1421: <testCase>
                   1422: <correct>
                   1423: <element name="top" xmlns="http://relaxng.org/ns/structure/1.0"
                   1424:          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
                   1425:   <zeroOrMore>
                   1426:     <choice>
                   1427:       <element name="ref">
                   1428:         <attribute name="id">
                   1429:          <data type="ID"/>
                   1430:        </attribute>
                   1431:        <text/>
                   1432:       </element>
                   1433:       <element name="xref">
                   1434:         <attribute name="link">
                   1435:          <data type="IDREF"/>
                   1436:        </attribute>
                   1437:        <text/>
                   1438:       </element>
                   1439:     </choice>
                   1440:   </zeroOrMore>
                   1441: </element>
                   1442: </correct>
                   1443: <valid>
                   1444: <top>
                   1445: </top>
                   1446: </valid>
                   1447: <invalid>
                   1448: <top>
                   1449:   <xref link="id1"/>
                   1450: </top>
                   1451: </invalid>
                   1452: <valid>
                   1453: <top>
                   1454:   <ref id="id1"/>
                   1455: </top>
                   1456: </valid>
                   1457: <valid>
                   1458: <top>
                   1459:   <xref link="id1"/>
                   1460:   <ref id="id1"/>
                   1461: </top>
                   1462: </valid>
                   1463: <valid>
                   1464: <top>
                   1465:   <xref link="  id1 "/>
                   1466:   <ref id="     id1   "/>
                   1467:   <xref link="id1 "/>
                   1468:   <xref link="  id1"/>
                   1469: </top>
                   1470: </valid>
                   1471: <valid>
                   1472: <top>
                   1473:   <ref id="id1"/>
                   1474:   <xref link="id1"/>
                   1475: </top>
                   1476: </valid>
                   1477: <invalid>
                   1478: <top>
                   1479:   <ref id="id1"/>
                   1480:   <ref id="id1"/>
                   1481: </top>
                   1482: </invalid>
                   1483: </testCase>
                   1484: <testCase>
                   1485: <correct>
                   1486: <element name="top" xmlns="http://relaxng.org/ns/structure/1.0"
                   1487:          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
                   1488:   <zeroOrMore>
                   1489:     <choice>
                   1490:       <element name="ref">
                   1491:         <attribute name="id">
                   1492:          <data type="ID"/>
                   1493:        </attribute>
                   1494:        <text/>
                   1495:       </element>
                   1496:       <element name="xref">
                   1497:         <attribute name="link">
                   1498:          <data type="IDREFS"/>
                   1499:        </attribute>
                   1500:        <text/>
                   1501:       </element>
                   1502:     </choice>
                   1503:   </zeroOrMore>
                   1504: </element>
                   1505: </correct>
                   1506: <valid>
                   1507: <top>
                   1508: </top>
                   1509: </valid>
                   1510: <invalid>
                   1511: <top>
                   1512:   <xref link="id1"/>
                   1513: </top>
                   1514: </invalid>
                   1515: <valid>
                   1516: <top>
                   1517:   <ref id="id1"/>
                   1518: </top>
                   1519: </valid>
                   1520: <valid>
                   1521: <top>
                   1522:   <xref link="id1"/>
                   1523:   <ref id="id1"/>
                   1524: </top>
                   1525: </valid>
                   1526: <valid>
                   1527: <top>
                   1528:   <xref link="id1 id1"/>
                   1529:   <ref id="id1"/>
                   1530: </top>
                   1531: </valid>
                   1532: <valid>
                   1533: <top>
                   1534:   <ref id="id1"/>
                   1535:   <xref link="id1"/>
                   1536: </top>
                   1537: </valid>
                   1538: <valid>
                   1539: <top>
                   1540:   <ref id="id2"/>
                   1541:   <xref link="id1 id2"/>
                   1542:   <ref id="id1"/>
                   1543: </top>
                   1544: </valid>
                   1545: <valid>
                   1546: <top>
                   1547:   <ref id="id2"/>
                   1548:   <xref link=" id2    id1   id2 "/>
                   1549:   <ref id="id1"/>
                   1550: </top>
                   1551: </valid>
                   1552: <invalid>
                   1553: <top>
                   1554:   <ref id="id2"/>
                   1555:   <xref link="id1 id2"/>
                   1556: </top>
                   1557: </invalid>
                   1558: <invalid>
                   1559: <top>
                   1560:   <xref link="id1 id2"/>
                   1561:   <ref id="id1"/>
                   1562: </top>
                   1563: </invalid>
                   1564: <invalid>
                   1565: <top>
                   1566:   <ref id="id1"/>
                   1567:   <ref id="id1"/>
                   1568: </top>
                   1569: </invalid>
                   1570: </testCase>
                   1571: </testSuite>
                   1572: <testSuite>
                   1573: <documentation>Test of ENTITY/ENTITIES</documentation>
                   1574: <testCase>
                   1575: <correct>
                   1576: <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
                   1577:   <data type="ENTITY"/>
                   1578: </element>
                   1579: </correct>
                   1580: <invalid>
                   1581: <doc></doc>
                   1582: </invalid>
                   1583: <invalid>
                   1584: <doc>foo</doc>
                   1585: </invalid>
                   1586: <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;&#10;]&gt;">
                   1587: <doc>foo</doc>
                   1588: </valid>
                   1589: <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;&#10;]&gt;">
                   1590: <doc>  foo </doc>
                   1591: </valid>
                   1592: <invalid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;&#10;]&gt;">
                   1593: <doc>foo bar</doc>
                   1594: </invalid>
                   1595: </testCase>
                   1596: <testCase>
                   1597: <correct>
                   1598: <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
                   1599:   <data type="ENTITIES"/>
                   1600: </element>
                   1601: </correct>
                   1602: <invalid>
                   1603: <doc></doc>
                   1604: </invalid>
                   1605: <invalid>
                   1606: <doc>foo</doc>
                   1607: </invalid>
                   1608: <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt; &#10;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg&gt; &#10;]&gt;">
                   1609: <doc> foo bar </doc>
                   1610: </valid>
                   1611: <valid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt; &#10;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg&gt; &#10;]&gt;">
                   1612: <doc> foo bar foo</doc>
                   1613: </valid>
                   1614: <invalid dtd="&#10;&lt;!DOCTYPE doc [&#10;&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg&gt;]&gt;">
                   1615: <doc>foo bar</doc>
                   1616: </invalid>
                   1617: </testCase>
                   1618: </testSuite>
                   1619: <testSuite>
                   1620: <documentation>Test of Mixed</documentation>
                   1621: <testCase>
                   1622: <correct>
                   1623: <element name="mix" xmlns="http://relaxng.org/ns/structure/1.0">
                   1624:   <mixed>
                   1625:     <zeroOrMore>
                   1626:       <choice>
                   1627:         <element name="a">
                   1628:          <empty/>
                   1629:        </element>
                   1630:         <element name="b">
                   1631:          <empty/>
                   1632:        </element>
                   1633:         <element name="c">
                   1634:          <empty/>
                   1635:        </element>
                   1636:       </choice>
                   1637:     </zeroOrMore>
                   1638:   </mixed>
                   1639:   <element name="d">
                   1640:     <empty/>
                   1641:   </element>
                   1642: </element>
                   1643: </correct>
                   1644: <valid>
                   1645: <mix>
                   1646:   <d/>
                   1647: </mix>
                   1648: </valid>
                   1649: <valid>
                   1650: <mix>
                   1651:   <b/>
                   1652:   <a/>
                   1653:   <c/>
                   1654:   <b/>
                   1655:   <d/>
                   1656: </mix>
                   1657: </valid>
                   1658: <valid>
                   1659: <mix>
                   1660:   mixed
                   1661:   <c/>
                   1662:   <d/>
                   1663: </mix>
                   1664: </valid>
                   1665: <valid>
                   1666: <mix>
                   1667:   <c/>
                   1668:   mixed
                   1669:   <d/>
                   1670: </mix>
                   1671: </valid>
                   1672: <valid>
                   1673: <mix>
                   1674:   <b/>
                   1675:   is
                   1676:   <a/>
                   1677:   inter
                   1678:   <c/>
                   1679:   mixed
                   1680:   <b/>
                   1681:   <d/>
                   1682: </mix>
                   1683: </valid>
                   1684: <valid>
                   1685: <mix>
                   1686:   mixed
                   1687:   <b/>
                   1688:   .
                   1689:   <d/>
                   1690: </mix>
                   1691: </valid>
                   1692: <valid>
                   1693: <mix>
                   1694:   this
                   1695:   <b/>
                   1696:   is
                   1697:   <a/>
                   1698:   inter
                   1699:   <c/>
                   1700:   mixed
                   1701:   <b/>
                   1702:   .
                   1703:   <d/>
                   1704: </mix>
                   1705: </valid>
                   1706: </testCase>
                   1707: </testSuite>
                   1708: </testSuite>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>