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=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> ]>">
1587: <doc>foo</doc>
1588: </valid>
1589: <valid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> ]>">
1590: <doc> foo </doc>
1591: </valid>
1592: <invalid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> ]>">
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=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> <!ENTITY bar SYSTEM 'whatever' NDATA jpeg> ]>">
1609: <doc> foo bar </doc>
1610: </valid>
1611: <valid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg> <!ENTITY bar SYSTEM 'whatever' NDATA jpeg> ]>">
1612: <doc> foo bar foo</doc>
1613: </valid>
1614: <invalid dtd=" <!DOCTYPE doc [ <!ENTITY foo SYSTEM 'whatever' NDATA jpeg>]>">
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>