1<!DOCTYPE testSuite [ 2<!ENTITY dii "<ดี/>"> 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="ดี"> 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="ี" 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>ี</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="ี"/> 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="ี"/> 796 </start> 797 <define name="ี"> 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="ดี"/> 811 </start> 812 <define name="ดี"> 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:ี"> 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="

 	foo

 	" xmlns="http://relaxng.org/ns/structure/1.0"> 1101 <attribute name="

 	bar

 	"/> 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="

 	string

 	">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="

 	string

 	"/> 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>

 	foo

 	</name> 1138 <attribute><name>

 	bar

 	</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="

 	choice

 	"> 1150 <ref name="

 	x

 	"/> 1151 </start> 1152 <define name="x"> 1153 <ref name="y"/> 1154 </define> 1155 <define name="

 	y

 	"> 1156 <grammar> 1157 <start combine="

 	interleave

 	"> 1158 <parentRef name="

 	z

 	"/> 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
 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>

	 x

	 </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

	 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="">

	 x

	 </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>
	x 
</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

	 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
	y</foo></valid> 5143<valid><foo>x 
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>
x
y	</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