1<!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>
6846