1<xsdtest> 2<datatype name="dateTime"> 3<valid>2001-12-01T19:45:00</valid> 4<valid>2001-12-01T19:45:00Z</valid> 5<valid>2001-12-01T19:45:00-11:59</valid> 6<valid>0001-01-12T00:00:00+12:00</valid> 7<invalid>2001-12-1T19:45:00+24:00</invalid> 8<invalid>2001-12-1T19:45:00</invalid> 9<equiv> 10<class> 11 <value>2001-12-01T19:45:00</value> 12 <value>2001-12-01T19:45:00.00</value> 13</class> 14<class> 15 <value>2001-12-01T19:45:00Z</value> 16 <value>2001-12-01T19:45:00.00Z</value> 17 <value>2001-12-01T20:45:00+01:00</value> 18</class> 19</equiv> 20</datatype> 21<datatype name="anyURI"> 22<valid>foobar</valid> 23<valid>http://www.example.com</valid> 24<valid>http://ji%6d@www.example.com</valid> 25<valid>http://www.example.co%6d</valid> 26<valid>nosuchscheme:stuff</valid> 27<invalid>foo$bar:stuff</invalid> 28<invalid>f%oobar</invalid> 29</datatype> 30<datatype name="integer"> 31<valid>10</valid> 32<valid>01</valid> 33<valid>0123456789</valid> 34<valid>+10</valid> 35<valid>-10</valid> 36<invalid>1.0</invalid> 37<invalid>.1</invalid> 38<valid>9999999999999999999999999999999</valid> 39<invalid>1.</invalid> 40<invalid>0.</invalid> 41<equiv> 42<class> 43 <value>0</value> 44 <value>+0</value> 45 <value>-0</value> 46 <value>00</value> 47</class> 48<class> 49 <value>10</value> 50 <value>+10</value> 51 <value>+0010</value> 52 <value>010</value> 53</class> 54<class> 55 <value>-10</value> 56 <value>-0010</value> 57 <value>-010</value> 58</class> 59</equiv> 60</datatype> 61<datatype name="duration"> 62<valid>P1Y</valid> 63<valid>P1Y0M2DT17H5M12S</valid> 64<valid>-P1Y</valid> 65<valid>P60D</valid> 66<valid>PT24H</valid> 67<valid>PT1.2S</valid> 68<invalid>P24h</invalid> 69<invalid>P24H</invalid> 70<invalid>P1YT</invalid> 71<invalid>P</invalid> 72<invalid>-P</invalid> 73<equiv> 74 <class> 75 <value>-P6M</value> 76 </class> 77 <class> 78 <value>P0Y</value> 79 <value>-P0Y</value> 80 </class> 81 <class> 82 <value>P1Y</value> 83 <value>P001Y</value> 84 <value>P001Y0M</value> 85 <value>P1Y0M0DT0H0M0.0S</value> 86 </class> 87 <class> 88 <value>P6M</value> 89 </class> 90 <class> 91 <value>PT6M</value> 92 </class> 93 <class> 94 <value>PT1S</value> 95 <value>PT1.0S</value> 96 </class> 97</equiv> 98<lessThan> 99 <value>PT1M</value> 100 <value>PT61S</value> 101</lessThan> 102<lessThan> 103 <value>PT59S</value> 104 <value>PT1M</value> 105</lessThan> 106<incomparable> 107 <value>PT60S</value> 108 <value>PT1M</value> 109</incomparable> 110<lessThan> 111 <value>PT1H</value> 112 <value>PT61M</value> 113</lessThan> 114<lessThan> 115 <value>PT59M</value> 116 <value>PT1H</value> 117</lessThan> 118<incomparable> 119 <value>PT60M</value> 120 <value>PT1H</value> 121</incomparable> 122<lessThan> 123 <value>P1D</value> 124 <value>PT25H</value> 125</lessThan> 126<lessThan> 127 <value>PT23H</value> 128 <value>P1D</value> 129</lessThan> 130<incomparable> 131 <value>P1D</value> 132 <value>PT24H</value> 133</incomparable> 134<lessThan> 135 <value>P1Y</value> 136 <value>P13M</value> 137</lessThan> 138<lessThan> 139 <value>P11M</value> 140 <value>P1Y</value> 141</lessThan> 142<incomparable> 143 <value>P12M</value> 144 <value>P1Y</value> 145</incomparable> 146<lessThan> 147 <value>P364D</value> 148 <value>P1Y</value> 149</lessThan> 150<incomparable> 151 <value>P1Y</value> 152 <value>P365D</value> 153</incomparable> 154<incomparable> 155 <value>P1Y</value> 156 <value>P366D</value> 157</incomparable> 158<lessThan> 159 <value>P1Y</value> 160 <value>P367D</value> 161</lessThan> 162<lessThan> 163 <value>P149D</value> 164 <value>P5M</value> 165</lessThan> 166<incomparable> 167 <value>P150D</value> 168 <value>P5M</value> 169</incomparable> 170<incomparable> 171 <value>P151D</value> 172 <value>P5M</value> 173</incomparable> 174<incomparable> 175 <value>P152D</value> 176 <value>P5M</value> 177</incomparable> 178<incomparable> 179 <value>P153D</value> 180 <value>P5M</value> 181</incomparable> 182<lessThan> 183 <value>P5M</value> 184 <value>P154D</value> 185</lessThan> 186<lessThan> 187 <value>P27D</value> 188 <value>P1M</value> 189</lessThan> 190<incomparable> 191 <value>P28D</value> 192 <value>P1M</value> 193</incomparable> 194<incomparable> 195 <value>P29D</value> 196 <value>P1M</value> 197</incomparable> 198<incomparable> 199 <value>P30D</value> 200 <value>P1M</value> 201</incomparable> 202<incomparable> 203 <value>P31D</value> 204 <value>P1M</value> 205</incomparable> 206<lessThan> 207 <value>P1M</value> 208 <value>P32D</value> 209</lessThan> 210</datatype> 211<datatype name="time"> 212<valid>12:45:00</valid> 213<valid>12:45:00Z</valid> 214</datatype> 215<datatype name="date"> 216<valid>1886-12-01</valid> 217<valid>1886-12-01Z</valid> 218<lessThan> 219 <value>1066-12-31</value> 220 <value>1900-01-01</value> 221</lessThan> 222<lessThan> 223 <value>1900-01-01</value> 224 <value>1900-01-02</value> 225</lessThan> 226</datatype> 227<datatype name="gYearMonth"> 228<valid>1996-12</valid> 229<valid>1996-01</valid> 230<valid>1996-01Z</valid> 231<invalid>1996-00</invalid> 232<equiv> 233<class><value>1996-01</value></class> 234<class> 235 <value>1996-01Z</value> 236 <value>1996-01+00:00</value> 237 <value>1996-01-00:00</value> 238</class> 239<class><value>1996-01+01:00</value></class> 240<class><value>1996-01-01:00</value></class> 241</equiv> 242</datatype> 243<datatype name="gYear"> 244<valid>2001</valid> 245<valid>2001Z</valid> 246<lessThan> 247 <value>1999</value> 248 <value>2000</value> 249</lessThan> 250<lessThan> 251 <value>1999+07:00</value> 252 <value>2000+07:00</value> 253</lessThan> 254</datatype> 255<datatype name="gMonthDay"> 256<valid>--12-01</valid> 257<valid>--12-01Z</valid> 258<lessThan> 259 <value>--12-01</value> 260 <value>--12-04</value> 261</lessThan> 262<lessThan> 263 <value>--11-17</value> 264 <value>--12-04</value> 265</lessThan> 266</datatype> 267<datatype name="gDay"> 268<valid>---20</valid> 269<valid>---20Z</valid> 270<lessThan> 271 <value>---01</value> 272 <value>---31</value> 273</lessThan> 274</datatype> 275<datatype name="gMonth"> 276<valid>--12</valid> 277<valid>--01</valid> 278<valid>--01Z</valid> 279<valid> --12 </valid> 280<invalid>---01</invalid> 281<invalid>--00</invalid> 282<invalid>--13</invalid> 283<invalid>- -13</invalid> 284<lessThan> 285 <value>--01</value> 286 <value>--12</value> 287</lessThan> 288<lessThan> 289 <value>--01</value> 290 <value>--02</value> 291</lessThan> 292</datatype> 293<datatype name="boolean"> 294<valid>true</valid> 295<valid>false</valid> 296<valid>0</valid> 297<valid>1</valid> 298<invalid>00</invalid> 299<invalid>00</invalid> 300<invalid>01</invalid> 301<equiv> 302<class><value>true</value><value>1</value></class> 303<class><value>false</value><value>0</value></class> 304</equiv> 305</datatype> 306<datatype name="base64Binary"> 307<valid>AAAA</valid> 308<valid>abcd efgh ijkl mnop qrst uvwx yzAB CDEF GHIJ KLMN OPQR 309STUV WXYZ 0123 4567 89+/</valid> 310<valid>BA==</valid> 311<valid></valid> 312<valid>BA==</valid> 313<valid>BQ==</valid> 314<valid>Bg==</valid> 315<valid>Bw==</valid> 316<valid>BBA=</valid> 317<valid>BBA=</valid> 318<valid>BBE=</valid> 319<valid>BBI=</valid> 320<valid>BBM=</valid> 321<valid>BBQ=</valid> 322<valid>BBU=</valid> 323<valid>BBY=</valid> 324<valid>BBc=</valid> 325<valid>BBg=</valid> 326<valid>BBk=</valid> 327<valid>BBo=</valid> 328<valid>BBs=</valid> 329<valid>BBw=</valid> 330<valid>BB0=</valid> 331<valid>BB4=</valid> 332<valid>BB8=</valid> 333<invalid>====</invalid> 334<invalid>BB==</invalid> 335<invalid>BBB=</invalid> 336<invalid>B===</invalid> 337<invalid>B</invalid> 338<equiv> 339<class> 340<value>deadbeef</value> 341<value>d

	e a d 342b eef </value> 343</class> 344<class> 345<value>DEADBEEF</value> 346<value>D

	E A D 347B EEF </value> 348</class> 349</equiv> 350<length value="0"></length> 351<length value="6">deadbeef</length> 352<length value="1">BA==</length> 353<length value="2">BBA=</length> 354<length value="3">dead</length> 355<length value="4">deadBA==</length> 356</datatype> 357<datatype name="hexBinary"> 358<valid>deadbeef</valid> 359<valid></valid> 360<valid>0123456789ABCDEFabcdef</valid> 361<invalid>00 00</invalid> 362<invalid>00.00</invalid> 363<invalid>0G</invalid> 364<equiv> 365 <class> 366 <value>00</value> 367 <value> 368 00 369 </value> 370 </class> 371 <class> 372 <value>01</value> 373 </class> 374 <class> 375 <value>10</value> 376 </class> 377 <class> 378 <value>0a</value> 379 <value>0A</value> 380 </class> 381</equiv> 382<length value="0"></length> 383<length value="1">00</length> 384<length value="2">0000</length> 385<length value="2"> 0000 </length> 386<length value="2">AAAA</length> 387</datatype> 388<datatype name="float"> 389<valid>1.0</valid> 390<valid>1.</valid> 391<valid>.1</valid> 392<invalid>- 1</invalid> 393<invalid>1 .0</invalid> 394<invalid>+INF</invalid> 395<invalid>+NaN</invalid> 396<invalid>-NaN</invalid> 397<equiv> 398<class> 399 <value>0</value> 400 <value>-0</value> 401 <value>+0</value> 402 <value> 0 </value> 403 <value> 0. </value> 404 <value> .0 </value> 405 <value> 0.0 </value> 406 <value> 0e0 </value> 407 <value> 0E0 </value> 408 <value> 0E+0 </value> 409 <value> 0E-0 </value> 410</class> 411<class> 412 <value>1E0</value> 413 <value>0.1E1</value> 414 <value>10E-1</value> 415 <value>+1</value> 416</class> 417<class> 418 <value>-1</value> 419</class> 420<class> 421 <value>INF</value> 422 <value>INF </value> 423</class> 424<class> 425 <value>-INF</value> 426 <value>-INF </value> 427</class> 428<class> 429 <value>NaN</value> 430 <value> NaN </value> 431</class> 432</equiv> 433<lessThan> 434 <value>-INF</value> 435 <value>-1000</value> 436</lessThan> 437<lessThan> 438 <value>1000</value> 439 <value>INF</value> 440</lessThan> 441<lessThan> 442 <value>-1</value> 443 <value>1</value> 444</lessThan> 445<lessThan> 446 <value>0</value> 447 <value>1</value> 448</lessThan> 449<lessThan> 450 <value>-1</value> 451 <value>0</value> 452</lessThan> 453</datatype> 454<datatype name="double"> 455<valid>1.0</valid> 456<valid>1.</valid> 457<valid>.1</valid> 458<invalid>- 1</invalid> 459<invalid>1 .0</invalid> 460<invalid>+INF</invalid> 461<invalid>+NaN</invalid> 462<invalid>-NaN</invalid> 463<equiv> 464<class> 465 <value>0</value> 466 <value>-0</value> 467 <value>+0</value> 468 <value> 0 </value> 469 <value> 0. </value> 470 <value> .0 </value> 471 <value> 0.0 </value> 472 <value> 0e0 </value> 473 <value> 0E0 </value> 474 <value> 0E+0 </value> 475 <value> 0E-0 </value> 476</class> 477<class> 478 <value>1E0</value> 479 <value>0.1E1</value> 480 <value>10E-1</value> 481 <value>+1</value> 482</class> 483<class> 484 <value>-1</value> 485</class> 486<class> 487 <value>INF</value> 488 <value>INF </value> 489</class> 490<class> 491 <value>-INF</value> 492 <value>-INF </value> 493</class> 494<class> 495 <value>NaN</value> 496 <value> NaN </value> 497</class> 498</equiv> 499<lessThan> 500 <value>-INF</value> 501 <value>-1000</value> 502</lessThan> 503<lessThan> 504 <value>1000</value> 505 <value>INF</value> 506</lessThan> 507<lessThan> 508 <value>-1</value> 509 <value>1</value> 510</lessThan> 511<lessThan> 512 <value>0</value> 513 <value>1</value> 514</lessThan> 515<lessThan> 516 <value>-1</value> 517 <value>0</value> 518</lessThan> 519</datatype> 520<datatype name="QName"> 521<valid>foo</valid> 522<valid xmlns:x="http://www.example.com">x:foo</valid> 523<invalid>y:foo</invalid> 524<equiv xmlns:x="http://www.example.com" 525 xmlns:y="http://www.example.com/" 526 xmlns:z="http://www.example.com"> 527<class> 528 <value>foo</value> 529 <value> foo</value> 530</class> 531<class> 532 <value>x:foo</value> 533 <value> x:foo </value> 534 <value>z:foo</value> 535</class> 536<class> 537 <value>x:bar</value> 538 <value>z:bar</value> 539</class> 540<class> 541 <value>y:foo</value> 542</class> 543<class> 544 <value>y:bar</value> 545</class> 546</equiv> 547</datatype> 548<datatype name="NOTATION"> 549<valid>foo</valid> 550<valid xmlns:x="http://www.example.com">x:foo</valid> 551<invalid>y:foo</invalid> 552</datatype> 553<datatype name="decimal"> 554<valid>1.0</valid> 555<valid>1.</valid> 556<valid>.1</valid> 557<valid>+1.0</valid> 558<valid>-1.0</valid> 559<valid> 1 </valid> 560<valid>99999999999999999999999999999999999999999999999999999999999999999</valid> 561<valid>-99999999999999999999999999999999999999999999999999999999999999999</valid> 562<invalid>junk</invalid> 563<invalid>--1</invalid> 564<invalid>++1</invalid> 565<invalid>+-1</invalid> 566<invalid>1.2.</invalid> 567<invalid>..1</invalid> 568<invalid>1..</invalid> 569<invalid>1 .2</invalid> 570<invalid>1+</invalid> 571<invalid>+ 1</invalid> 572<lessThan> 573 <value>0</value> 574 <value>1</value> 575</lessThan> 576</datatype> 577<datatype name="nonPositiveInteger"> 578<valid>-1</valid> 579<valid>0</valid> 580<valid>-0</valid> 581<invalid>1</invalid> 582</datatype> 583<datatype name="nonNegativeInteger"> 584<valid>1</valid> 585<valid>0</valid> 586<valid>+1</valid> 587<valid>+0</valid> 588<invalid>-1</invalid> 589</datatype> 590<datatype name="positiveInteger"> 591<valid>+1</valid> 592<valid>1</valid> 593<invalid>0</invalid> 594<invalid>-1</invalid> 595</datatype> 596<datatype name="negativeInteger"> 597<valid>-1</valid> 598<invalid>+1</invalid> 599<invalid>0</invalid> 600</datatype> 601<datatype name="long"> 602<valid>1</valid> 603<valid>+1</valid> 604<valid>0</valid> 605<valid> 0 </valid> 606<invalid>1 2</invalid> 607<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> 608<valid>9223372036854775807</valid> 609<valid>-9223372036854775808</valid> 610<invalid>9223372036854775808</invalid> 611<invalid>-9223372036854775809</invalid> 612<invalid/> 613</datatype> 614<datatype name="int"> 615<valid>1</valid> 616<valid>01</valid> 617<valid> 1 </valid> 618<valid>2147483647</valid> 619<valid>-2147483648</valid> 620<invalid>2147483648</invalid> 621<invalid>-2147483649</invalid> 622<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> 623<equiv> 624<class> 625 <value>1</value> 626 <value>+1</value> 627 <value> 1 </value> 628 <value>001</value> 629</class> 630<class> 631 <value>-1</value> 632 <value> -1 </value> 633 <value>-001</value> 634</class> 635</equiv> 636</datatype> 637<datatype name="short"> 638<valid>1</valid> 639<valid>32767</valid> 640<valid>-32768</valid> 641<invalid>32768</invalid> 642<invalid>-32769</invalid> 643<invalid>9999999999999999999999999999999999999999999999999999999999999999999999999</invalid> 644<equiv> 645<class> 646 <value>1</value> 647 <value>+1</value> 648 <value> 1 </value> 649 <value>001</value> 650</class> 651<class> 652 <value>-1</value> 653 <value> -1 </value> 654 <value>-001</value> 655</class> 656</equiv> 657</datatype> 658<datatype name="byte"> 659<valid>1</valid> 660<valid>127</valid> 661<valid>-128</valid> 662<invalid>128</invalid> 663<invalid>-129</invalid> 664</datatype> 665<datatype name="unsignedLong"> 666<valid>1</valid> 667<valid>+1</valid> 668<invalid>-1</invalid> 669<valid>0</valid> 670<valid>18446744073709551615</valid> 671<invalid>18446744073709551616</invalid> 672<invalid>-1</invalid> 673</datatype> 674<datatype name="unsignedInt"> 675<valid>1</valid> 676<valid>+1</valid> 677<valid>0</valid> 678<valid>4294967295</valid> 679<invalid>4294967296</invalid> 680<invalid>-1</invalid> 681</datatype> 682<datatype name="unsignedShort"> 683<valid>1</valid> 684<valid>+1</valid> 685<valid>0</valid> 686<valid>65535</valid> 687<invalid>65536</invalid> 688<invalid>-1</invalid> 689</datatype> 690<datatype name="unsignedByte"> 691<valid>1</valid> 692<valid>+1</valid> 693<valid>0</valid> 694<valid>255</valid> 695<invalid>256</invalid> 696<invalid>-1</invalid> 697</datatype> 698<datatype name="string"> 699<valid>any thing at all!</valid> 700</datatype> 701<datatype name="normalizedString"> 702<valid>any thing at all!</valid> 703</datatype> 704<datatype name="token"> 705<valid>any thing at all!</valid> 706<equiv> 707<class> 708 <value/> 709 <value> </value> 710 <value>	

 </value> 711</class> 712<class> 713 <value>x </value> 714 <value>x
</value> 715 <value>x
</value> 716 <value>x	</value> 717 <value> x</value> 718 <value>
x</value> 719 <value>
x</value> 720 <value>	x</value> 721 <value>	

 x	

 </value> 722</class> 723<class> 724 <value>x y </value> 725 <value>x y
</value> 726 <value>x y
</value> 727 <value>x y	</value> 728 <value>x y</value> 729 <value>x
y</value> 730 <value>x
y</value> 731 <value>x	y</value> 732 <value> x y</value> 733 <value>
x y</value> 734 <value>
x y</value> 735 <value>	x y</value> 736 <value>	

 x	

 y	

 </value> 737</class> 738</equiv> 739<length value="0"></length> 740<length value="1">x</length> 741<length value="1"> x </length> 742<length value="1">𐠀</length> 743</datatype> 744<datatype name="language"> 745<valid>en</valid> 746<valid>en-UK</valid> 747<valid>i-cherokee</valid> 748<valid>x-klingon</valid> 749<valid>en-uk-scotland</valid> 750<invalid>en.UK</invalid> 751</datatype> 752<datatype name="Name"> 753<valid>foo</valid> 754<valid>_0123456789</valid> 755<invalid>.</invalid> 756<valid>:</valid> 757<invalid>-</invalid> 758<invalid>1234</invalid> 759<valid> foo </valid> 760</datatype> 761<datatype name="NCName"> 762<valid>foo</valid> 763<invalid>foo:bar</invalid> 764<invalid>0foo</invalid> 765<equiv> 766<class><value>foo</value><value> foo </value></class> 767<class><value>FOO</value><value> FOO </value></class> 768</equiv> 769</datatype> 770<datatype name="NMTOKEN"> 771<valid>foo</valid> 772<valid>_</valid> 773<valid>.</valid> 774<valid>:</valid> 775<valid>-</valid> 776<valid>1234</valid> 777<valid> foo </valid> 778<length value="3"> foo </length> 779<length value="2">fo</length> 780<length value="1">f</length> 781</datatype> 782<datatype name="NMTOKENS"> 783<valid>foo bar</valid> 784<invalid/> 785<valid>1 2 3 4</valid> 786</datatype> 787<datatype name="ID"> 788<valid>foobar</valid> 789<invalid>foo:bar</invalid> 790<invalid>foo bar</invalid> 791</datatype> 792<datatype name="ENTITY"> 793<invalid/> 794<invalid>foo</invalid> 795<valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg>" 796>foo</valid> 797</datatype> 798<datatype name="ENTITIES"> 799<invalid></invalid> 800<invalid>foo</invalid> 801<valid internalSubset="<!ENTITY foo SYSTEM 'whatever' NDATA jpeg> 802
<!ENTITY bar SYSTEM 'whatever' NDATA jpeg> 803" 804> foo bar </valid> 805</datatype> 806</xsdtest> 807