xsdtest.xml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806
  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
  309. STUV 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&#xA;&#xD;&#x9;e a d
  342. b eef </value>
  343. </class>
  344. <class>
  345. <value>DEADBEEF</value>
  346. <value>D&#xA;&#xD;&#x9;E A D
  347. B 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>&#x9;&#xA;&#xD;&#x20;</value>
  711. </class>
  712. <class>
  713. <value>x&#x20;</value>
  714. <value>x&#xA;</value>
  715. <value>x&#xD;</value>
  716. <value>x&#x9;</value>
  717. <value>&#x20;x</value>
  718. <value>&#xA;x</value>
  719. <value>&#xD;x</value>
  720. <value>&#x9;x</value>
  721. <value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;</value>
  722. </class>
  723. <class>
  724. <value>x y&#x20;</value>
  725. <value>x y&#xA;</value>
  726. <value>x y&#xD;</value>
  727. <value>x y&#x9;</value>
  728. <value>x&#x20;y</value>
  729. <value>x&#xA;y</value>
  730. <value>x&#xD;y</value>
  731. <value>x&#x9;y</value>
  732. <value>&#x20;x y</value>
  733. <value>&#xA;x y</value>
  734. <value>&#xD;x y</value>
  735. <value>&#x9;x y</value>
  736. <value>&#x9;&#xA;&#xD;&#x20;x&#x9;&#xA;&#xD;&#x20;y&#x9;&#xA;&#xD;&#x20;</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">&#x10800;</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="&lt;!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="&lt;!ENTITY foo SYSTEM 'whatever' NDATA jpeg>
  802. &#xA;&lt;!ENTITY bar SYSTEM 'whatever' NDATA jpeg>
  803. "
  804. > foo bar </valid>
  805. </datatype>
  806. </xsdtest>