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