XMLSchema.xsd 86 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <!-- XML Schema schema for XML Schemas: Part 1: Structures -->
  3. <!-- Note this schema is NOT the normative structures schema. -->
  4. <!-- The prose copy in the structures REC is the normative -->
  5. <!-- version (which shouldn't differ from this one except for -->
  6. <!-- this comment and entity expansions, but just in case -->
  7. <!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "XMLSchema.dtd" [
  8. <!-- provide ID type information even for parsers which only read the
  9. internal subset -->
  10. <!ATTLIST xs:schema id ID #IMPLIED>
  11. <!ATTLIST xs:complexType id ID #IMPLIED>
  12. <!ATTLIST xs:complexContent id ID #IMPLIED>
  13. <!ATTLIST xs:simpleContent id ID #IMPLIED>
  14. <!ATTLIST xs:extension id ID #IMPLIED>
  15. <!ATTLIST xs:element id ID #IMPLIED>
  16. <!ATTLIST xs:group id ID #IMPLIED>
  17. <!ATTLIST xs:all id ID #IMPLIED>
  18. <!ATTLIST xs:choice id ID #IMPLIED>
  19. <!ATTLIST xs:sequence id ID #IMPLIED>
  20. <!ATTLIST xs:any id ID #IMPLIED>
  21. <!ATTLIST xs:anyAttribute id ID #IMPLIED>
  22. <!ATTLIST xs:attribute id ID #IMPLIED>
  23. <!ATTLIST xs:attributeGroup id ID #IMPLIED>
  24. <!ATTLIST xs:unique id ID #IMPLIED>
  25. <!ATTLIST xs:key id ID #IMPLIED>
  26. <!ATTLIST xs:keyref id ID #IMPLIED>
  27. <!ATTLIST xs:selector id ID #IMPLIED>
  28. <!ATTLIST xs:field id ID #IMPLIED>
  29. <!ATTLIST xs:include id ID #IMPLIED>
  30. <!ATTLIST xs:import id ID #IMPLIED>
  31. <!ATTLIST xs:redefine id ID #IMPLIED>
  32. <!ATTLIST xs:notation id ID #IMPLIED>
  33. <!--
  34. keep this schema XML1.0 DTD valid
  35. -->
  36. <!ENTITY % schemaAttrs 'xmlns:hfp CDATA #IMPLIED'>
  37. <!ELEMENT hfp:hasFacet EMPTY>
  38. <!ATTLIST hfp:hasFacet
  39. name NMTOKEN #REQUIRED>
  40. <!ELEMENT hfp:hasProperty EMPTY>
  41. <!ATTLIST hfp:hasProperty
  42. name NMTOKEN #REQUIRED
  43. value CDATA #REQUIRED>
  44. <!--
  45. Make sure that processors that do not read the external
  46. subset will know about the various IDs we declare
  47. -->
  48. <!ATTLIST xs:simpleType id ID #IMPLIED>
  49. <!ATTLIST xs:maxExclusive id ID #IMPLIED>
  50. <!ATTLIST xs:minExclusive id ID #IMPLIED>
  51. <!ATTLIST xs:maxInclusive id ID #IMPLIED>
  52. <!ATTLIST xs:minInclusive id ID #IMPLIED>
  53. <!ATTLIST xs:totalDigits id ID #IMPLIED>
  54. <!ATTLIST xs:fractionDigits id ID #IMPLIED>
  55. <!ATTLIST xs:length id ID #IMPLIED>
  56. <!ATTLIST xs:minLength id ID #IMPLIED>
  57. <!ATTLIST xs:maxLength id ID #IMPLIED>
  58. <!ATTLIST xs:enumeration id ID #IMPLIED>
  59. <!ATTLIST xs:pattern id ID #IMPLIED>
  60. <!ATTLIST xs:appinfo id ID #IMPLIED>
  61. <!ATTLIST xs:documentation id ID #IMPLIED>
  62. <!ATTLIST xs:list id ID #IMPLIED>
  63. <!ATTLIST xs:union id ID #IMPLIED>
  64. ]>
  65. <xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema" blockDefault="#all" elementFormDefault="qualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="EN" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty">
  66. <xs:annotation>
  67. <xs:documentation>
  68. Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp
  69. Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp
  70. </xs:documentation>
  71. </xs:annotation>
  72. <xs:annotation>
  73. <xs:documentation source="http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/structures.html">
  74. The schema corresponding to this document is normative,
  75. with respect to the syntactic constraints it expresses in the
  76. XML Schema language. The documentation (within &lt;documentation> elements)
  77. below, is not normative, but rather highlights important aspects of
  78. the W3C Recommendation of which this is a part</xs:documentation>
  79. </xs:annotation>
  80. <xs:annotation>
  81. <xs:documentation>
  82. The simpleType element and all of its members are defined
  83. towards the end of this schema document</xs:documentation>
  84. </xs:annotation>
  85. <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd">
  86. <xs:annotation>
  87. <xs:documentation>
  88. Get access to the xml: attribute groups for xml:lang
  89. as declared on 'schema' and 'documentation' below
  90. </xs:documentation>
  91. </xs:annotation>
  92. </xs:import>
  93. <xs:complexType name="openAttrs">
  94. <xs:annotation>
  95. <xs:documentation>
  96. This type is extended by almost all schema types
  97. to allow attributes from other namespaces to be
  98. added to user schemas.
  99. </xs:documentation>
  100. </xs:annotation>
  101. <xs:complexContent>
  102. <xs:restriction base="xs:anyType">
  103. <xs:anyAttribute namespace="##other" processContents="lax"/>
  104. </xs:restriction>
  105. </xs:complexContent>
  106. </xs:complexType>
  107. <xs:complexType name="annotated">
  108. <xs:annotation>
  109. <xs:documentation>
  110. This type is extended by all types which allow annotation
  111. other than &lt;schema&gt; itself
  112. </xs:documentation>
  113. </xs:annotation>
  114. <xs:complexContent>
  115. <xs:extension base="xs:openAttrs">
  116. <xs:sequence>
  117. <xs:element ref="xs:annotation" minOccurs="0"/>
  118. </xs:sequence>
  119. <xs:attribute name="id" type="xs:ID"/>
  120. </xs:extension>
  121. </xs:complexContent>
  122. </xs:complexType>
  123. <xs:group name="schemaTop">
  124. <xs:annotation>
  125. <xs:documentation>
  126. This group is for the
  127. elements which occur freely at the top level of schemas.
  128. All of their types are based on the "annotated" type by extension.</xs:documentation>
  129. </xs:annotation>
  130. <xs:choice>
  131. <xs:group ref="xs:redefinable"/>
  132. <xs:element ref="xs:element"/>
  133. <xs:element ref="xs:attribute"/>
  134. <xs:element ref="xs:notation"/>
  135. </xs:choice>
  136. </xs:group>
  137. <xs:group name="redefinable">
  138. <xs:annotation>
  139. <xs:documentation>
  140. This group is for the
  141. elements which can self-redefine (see &lt;redefine> below).</xs:documentation>
  142. </xs:annotation>
  143. <xs:choice>
  144. <xs:element ref="xs:simpleType"/>
  145. <xs:element ref="xs:complexType"/>
  146. <xs:element ref="xs:group"/>
  147. <xs:element ref="xs:attributeGroup"/>
  148. </xs:choice>
  149. </xs:group>
  150. <xs:simpleType name="formChoice">
  151. <xs:annotation>
  152. <xs:documentation>
  153. A utility type, not for public use</xs:documentation>
  154. </xs:annotation>
  155. <xs:restriction base="xs:NMTOKEN">
  156. <xs:enumeration value="qualified"/>
  157. <xs:enumeration value="unqualified"/>
  158. </xs:restriction>
  159. </xs:simpleType>
  160. <xs:simpleType name="reducedDerivationControl">
  161. <xs:annotation>
  162. <xs:documentation>
  163. A utility type, not for public use</xs:documentation>
  164. </xs:annotation>
  165. <xs:restriction base="xs:derivationControl">
  166. <xs:enumeration value="extension"/>
  167. <xs:enumeration value="restriction"/>
  168. </xs:restriction>
  169. </xs:simpleType>
  170. <xs:simpleType name="derivationSet">
  171. <xs:annotation>
  172. <xs:documentation>
  173. A utility type, not for public use</xs:documentation>
  174. <xs:documentation>
  175. #all or (possibly empty) subset of {extension, restriction}</xs:documentation>
  176. </xs:annotation>
  177. <xs:union>
  178. <xs:simpleType>
  179. <xs:restriction base="xs:token">
  180. <xs:enumeration value="#all"/>
  181. </xs:restriction>
  182. </xs:simpleType>
  183. <xs:simpleType>
  184. <xs:list itemType="xs:reducedDerivationControl"/>
  185. </xs:simpleType>
  186. </xs:union>
  187. </xs:simpleType>
  188. <xs:simpleType name="typeDerivationControl">
  189. <xs:annotation>
  190. <xs:documentation>
  191. A utility type, not for public use</xs:documentation>
  192. </xs:annotation>
  193. <xs:restriction base="xs:derivationControl">
  194. <xs:enumeration value="extension"/>
  195. <xs:enumeration value="restriction"/>
  196. <xs:enumeration value="list"/>
  197. <xs:enumeration value="union"/>
  198. </xs:restriction>
  199. </xs:simpleType>
  200. <xs:simpleType name="fullDerivationSet">
  201. <xs:annotation>
  202. <xs:documentation>
  203. A utility type, not for public use</xs:documentation>
  204. <xs:documentation>
  205. #all or (possibly empty) subset of {extension, restriction, list, union}</xs:documentation>
  206. </xs:annotation>
  207. <xs:union>
  208. <xs:simpleType>
  209. <xs:restriction base="xs:token">
  210. <xs:enumeration value="#all"/>
  211. </xs:restriction>
  212. </xs:simpleType>
  213. <xs:simpleType>
  214. <xs:list itemType="xs:typeDerivationControl"/>
  215. </xs:simpleType>
  216. </xs:union>
  217. </xs:simpleType>
  218. <xs:element name="schema" id="schema">
  219. <xs:annotation>
  220. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"/>
  221. </xs:annotation>
  222. <xs:complexType>
  223. <xs:complexContent>
  224. <xs:extension base="xs:openAttrs">
  225. <xs:sequence>
  226. <xs:choice minOccurs="0" maxOccurs="unbounded">
  227. <xs:element ref="xs:include"/>
  228. <xs:element ref="xs:import"/>
  229. <xs:element ref="xs:redefine"/>
  230. <xs:element ref="xs:annotation"/>
  231. </xs:choice>
  232. <xs:sequence minOccurs="0" maxOccurs="unbounded">
  233. <xs:group ref="xs:schemaTop"/>
  234. <xs:element ref="xs:annotation" minOccurs="0" maxOccurs="unbounded"/>
  235. </xs:sequence>
  236. </xs:sequence>
  237. <xs:attribute name="targetNamespace" type="xs:anyURI"/>
  238. <xs:attribute name="version" type="xs:token"/>
  239. <xs:attribute name="finalDefault" type="xs:fullDerivationSet" use="optional" default=""/>
  240. <xs:attribute name="blockDefault" type="xs:blockSet" use="optional" default=""/>
  241. <xs:attribute name="attributeFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
  242. <xs:attribute name="elementFormDefault" type="xs:formChoice" use="optional" default="unqualified"/>
  243. <xs:attribute name="id" type="xs:ID"/>
  244. <xs:attribute ref="xml:lang"/>
  245. </xs:extension>
  246. </xs:complexContent>
  247. </xs:complexType>
  248. <xs:key name="element">
  249. <xs:selector xpath="xs:element"/>
  250. <xs:field xpath="@name"/>
  251. </xs:key>
  252. <xs:key name="attribute">
  253. <xs:selector xpath="xs:attribute"/>
  254. <xs:field xpath="@name"/>
  255. </xs:key>
  256. <xs:key name="type">
  257. <xs:selector xpath="xs:complexType|xs:simpleType"/>
  258. <xs:field xpath="@name"/>
  259. </xs:key>
  260. <xs:key name="group">
  261. <xs:selector xpath="xs:group"/>
  262. <xs:field xpath="@name"/>
  263. </xs:key>
  264. <xs:key name="attributeGroup">
  265. <xs:selector xpath="xs:attributeGroup"/>
  266. <xs:field xpath="@name"/>
  267. </xs:key>
  268. <xs:key name="notation">
  269. <xs:selector xpath="xs:notation"/>
  270. <xs:field xpath="@name"/>
  271. </xs:key>
  272. <xs:key name="identityConstraint">
  273. <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
  274. <xs:field xpath="@name"/>
  275. </xs:key>
  276. </xs:element>
  277. <xs:simpleType name="allNNI">
  278. <xs:annotation><xs:documentation>
  279. for maxOccurs</xs:documentation></xs:annotation>
  280. <xs:union memberTypes="xs:nonNegativeInteger">
  281. <xs:simpleType>
  282. <xs:restriction base="xs:NMTOKEN">
  283. <xs:enumeration value="unbounded"/>
  284. </xs:restriction>
  285. </xs:simpleType>
  286. </xs:union>
  287. </xs:simpleType>
  288. <xs:attributeGroup name="occurs">
  289. <xs:annotation><xs:documentation>
  290. for all particles</xs:documentation></xs:annotation>
  291. <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
  292. <xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>
  293. </xs:attributeGroup>
  294. <xs:attributeGroup name="defRef">
  295. <xs:annotation><xs:documentation>
  296. for element, group and attributeGroup,
  297. which both define and reference</xs:documentation></xs:annotation>
  298. <xs:attribute name="name" type="xs:NCName"/>
  299. <xs:attribute name="ref" type="xs:QName"/>
  300. </xs:attributeGroup>
  301. <xs:group name="typeDefParticle">
  302. <xs:annotation>
  303. <xs:documentation>
  304. 'complexType' uses this</xs:documentation></xs:annotation>
  305. <xs:choice>
  306. <xs:element name="group" type="xs:groupRef"/>
  307. <xs:element ref="xs:all"/>
  308. <xs:element ref="xs:choice"/>
  309. <xs:element ref="xs:sequence"/>
  310. </xs:choice>
  311. </xs:group>
  312. <xs:group name="nestedParticle">
  313. <xs:choice>
  314. <xs:element name="element" type="xs:localElement"/>
  315. <xs:element name="group" type="xs:groupRef"/>
  316. <xs:element ref="xs:choice"/>
  317. <xs:element ref="xs:sequence"/>
  318. <xs:element ref="xs:any"/>
  319. </xs:choice>
  320. </xs:group>
  321. <xs:group name="particle">
  322. <xs:choice>
  323. <xs:element name="element" type="xs:localElement"/>
  324. <xs:element name="group" type="xs:groupRef"/>
  325. <xs:element ref="xs:all"/>
  326. <xs:element ref="xs:choice"/>
  327. <xs:element ref="xs:sequence"/>
  328. <xs:element ref="xs:any"/>
  329. </xs:choice>
  330. </xs:group>
  331. <xs:complexType name="attribute">
  332. <xs:complexContent>
  333. <xs:extension base="xs:annotated">
  334. <xs:sequence>
  335. <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
  336. </xs:sequence>
  337. <xs:attributeGroup ref="xs:defRef"/>
  338. <xs:attribute name="type" type="xs:QName"/>
  339. <xs:attribute name="use" use="optional" default="optional">
  340. <xs:simpleType>
  341. <xs:restriction base="xs:NMTOKEN">
  342. <xs:enumeration value="prohibited"/>
  343. <xs:enumeration value="optional"/>
  344. <xs:enumeration value="required"/>
  345. </xs:restriction>
  346. </xs:simpleType>
  347. </xs:attribute>
  348. <xs:attribute name="default" type="xs:string"/>
  349. <xs:attribute name="fixed" type="xs:string"/>
  350. <xs:attribute name="form" type="xs:formChoice"/>
  351. </xs:extension>
  352. </xs:complexContent>
  353. </xs:complexType>
  354. <xs:complexType name="topLevelAttribute">
  355. <xs:complexContent>
  356. <xs:restriction base="xs:attribute">
  357. <xs:sequence>
  358. <xs:element ref="xs:annotation" minOccurs="0"/>
  359. <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/>
  360. </xs:sequence>
  361. <xs:attribute name="ref" use="prohibited"/>
  362. <xs:attribute name="form" use="prohibited"/>
  363. <xs:attribute name="use" use="prohibited"/>
  364. <xs:attribute name="name" use="required" type="xs:NCName"/>
  365. <xs:anyAttribute namespace="##other" processContents="lax"/>
  366. </xs:restriction>
  367. </xs:complexContent>
  368. </xs:complexType>
  369. <xs:group name="attrDecls">
  370. <xs:sequence>
  371. <xs:choice minOccurs="0" maxOccurs="unbounded">
  372. <xs:element name="attribute" type="xs:attribute"/>
  373. <xs:element name="attributeGroup" type="xs:attributeGroupRef"/>
  374. </xs:choice>
  375. <xs:element ref="xs:anyAttribute" minOccurs="0"/>
  376. </xs:sequence>
  377. </xs:group>
  378. <xs:element name="anyAttribute" type="xs:wildcard" id="anyAttribute">
  379. <xs:annotation>
  380. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"/>
  381. </xs:annotation>
  382. </xs:element>
  383. <xs:group name="complexTypeModel">
  384. <xs:choice>
  385. <xs:element ref="xs:simpleContent"/>
  386. <xs:element ref="xs:complexContent"/>
  387. <xs:sequence>
  388. <xs:annotation>
  389. <xs:documentation>
  390. This branch is short for
  391. &lt;complexContent>
  392. &lt;restriction base="xs:anyType">
  393. ...
  394. &lt;/restriction>
  395. &lt;/complexContent></xs:documentation>
  396. </xs:annotation>
  397. <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  398. <xs:group ref="xs:attrDecls"/>
  399. </xs:sequence>
  400. </xs:choice>
  401. </xs:group>
  402. <xs:complexType name="complexType" abstract="true">
  403. <xs:complexContent>
  404. <xs:extension base="xs:annotated">
  405. <xs:group ref="xs:complexTypeModel"/>
  406. <xs:attribute name="name" type="xs:NCName">
  407. <xs:annotation>
  408. <xs:documentation>
  409. Will be restricted to required or forbidden</xs:documentation>
  410. </xs:annotation>
  411. </xs:attribute>
  412. <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false">
  413. <xs:annotation>
  414. <xs:documentation>
  415. Not allowed if simpleContent child is chosen.
  416. May be overriden by setting on complexContent child.</xs:documentation>
  417. </xs:annotation>
  418. </xs:attribute>
  419. <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
  420. <xs:attribute name="final" type="xs:derivationSet"/>
  421. <xs:attribute name="block" type="xs:derivationSet"/>
  422. </xs:extension>
  423. </xs:complexContent>
  424. </xs:complexType>
  425. <xs:complexType name="topLevelComplexType">
  426. <xs:complexContent>
  427. <xs:restriction base="xs:complexType">
  428. <xs:sequence>
  429. <xs:element ref="xs:annotation" minOccurs="0"/>
  430. <xs:group ref="xs:complexTypeModel"/>
  431. </xs:sequence>
  432. <xs:attribute name="name" type="xs:NCName" use="required"/>
  433. <xs:anyAttribute namespace="##other" processContents="lax"/>
  434. </xs:restriction>
  435. </xs:complexContent>
  436. </xs:complexType>
  437. <xs:complexType name="localComplexType">
  438. <xs:complexContent>
  439. <xs:restriction base="xs:complexType">
  440. <xs:sequence>
  441. <xs:element ref="xs:annotation" minOccurs="0"/>
  442. <xs:group ref="xs:complexTypeModel"/>
  443. </xs:sequence>
  444. <xs:attribute name="name" use="prohibited"/>
  445. <xs:attribute name="abstract" use="prohibited"/>
  446. <xs:attribute name="final" use="prohibited"/>
  447. <xs:attribute name="block" use="prohibited"/>
  448. <xs:anyAttribute namespace="##other" processContents="lax"/>
  449. </xs:restriction>
  450. </xs:complexContent>
  451. </xs:complexType>
  452. <xs:complexType name="restrictionType">
  453. <xs:complexContent>
  454. <xs:extension base="xs:annotated">
  455. <xs:sequence>
  456. <xs:choice minOccurs="0">
  457. <xs:group ref="xs:typeDefParticle"/>
  458. <xs:group ref="xs:simpleRestrictionModel"/>
  459. </xs:choice>
  460. <xs:group ref="xs:attrDecls"/>
  461. </xs:sequence>
  462. <xs:attribute name="base" type="xs:QName" use="required"/>
  463. </xs:extension>
  464. </xs:complexContent>
  465. </xs:complexType>
  466. <xs:complexType name="complexRestrictionType">
  467. <xs:complexContent>
  468. <xs:restriction base="xs:restrictionType">
  469. <xs:sequence>
  470. <xs:element ref="xs:annotation" minOccurs="0"/>
  471. <xs:choice minOccurs="0">
  472. <xs:annotation>
  473. <xs:documentation>This choice is added simply to
  474. make this a valid restriction per the REC</xs:documentation>
  475. </xs:annotation>
  476. <xs:group ref="xs:typeDefParticle"/>
  477. </xs:choice>
  478. <xs:group ref="xs:attrDecls"/>
  479. </xs:sequence>
  480. <xs:anyAttribute namespace="##other" processContents="lax"/>
  481. </xs:restriction>
  482. </xs:complexContent>
  483. </xs:complexType>
  484. <xs:complexType name="extensionType">
  485. <xs:complexContent>
  486. <xs:extension base="xs:annotated">
  487. <xs:sequence>
  488. <xs:group ref="xs:typeDefParticle" minOccurs="0"/>
  489. <xs:group ref="xs:attrDecls"/>
  490. </xs:sequence>
  491. <xs:attribute name="base" type="xs:QName" use="required"/>
  492. </xs:extension>
  493. </xs:complexContent>
  494. </xs:complexType>
  495. <xs:element name="complexContent" id="complexContent">
  496. <xs:annotation>
  497. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"/>
  498. </xs:annotation>
  499. <xs:complexType>
  500. <xs:complexContent>
  501. <xs:extension base="xs:annotated">
  502. <xs:choice>
  503. <xs:element name="restriction" type="xs:complexRestrictionType"/>
  504. <xs:element name="extension" type="xs:extensionType"/>
  505. </xs:choice>
  506. <xs:attribute name="mixed" type="xs:boolean">
  507. <xs:annotation>
  508. <xs:documentation>
  509. Overrides any setting on complexType parent.</xs:documentation>
  510. </xs:annotation>
  511. </xs:attribute>
  512. </xs:extension>
  513. </xs:complexContent>
  514. </xs:complexType>
  515. </xs:element>
  516. <xs:complexType name="simpleRestrictionType">
  517. <xs:complexContent>
  518. <xs:restriction base="xs:restrictionType">
  519. <xs:sequence>
  520. <xs:element ref="xs:annotation" minOccurs="0"/>
  521. <xs:choice minOccurs="0">
  522. <xs:annotation>
  523. <xs:documentation>This choice is added simply to
  524. make this a valid restriction per the REC</xs:documentation>
  525. </xs:annotation>
  526. <xs:group ref="xs:simpleRestrictionModel"/>
  527. </xs:choice>
  528. <xs:group ref="xs:attrDecls"/>
  529. </xs:sequence>
  530. <xs:anyAttribute namespace="##other" processContents="lax"/>
  531. </xs:restriction>
  532. </xs:complexContent>
  533. </xs:complexType>
  534. <xs:complexType name="simpleExtensionType">
  535. <xs:complexContent>
  536. <xs:restriction base="xs:extensionType">
  537. <xs:sequence>
  538. <xs:annotation>
  539. <xs:documentation>
  540. No typeDefParticle group reference</xs:documentation>
  541. </xs:annotation>
  542. <xs:element ref="xs:annotation" minOccurs="0"/>
  543. <xs:group ref="xs:attrDecls"/>
  544. </xs:sequence>
  545. <xs:anyAttribute namespace="##other" processContents="lax"/>
  546. </xs:restriction>
  547. </xs:complexContent>
  548. </xs:complexType>
  549. <xs:element name="simpleContent" id="simpleContent">
  550. <xs:annotation>
  551. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"/>
  552. </xs:annotation>
  553. <xs:complexType>
  554. <xs:complexContent>
  555. <xs:extension base="xs:annotated">
  556. <xs:choice>
  557. <xs:element name="restriction" type="xs:simpleRestrictionType"/>
  558. <xs:element name="extension" type="xs:simpleExtensionType"/>
  559. </xs:choice>
  560. </xs:extension>
  561. </xs:complexContent>
  562. </xs:complexType>
  563. </xs:element>
  564. <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType">
  565. <xs:annotation>
  566. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"/>
  567. </xs:annotation>
  568. </xs:element>
  569. <xs:simpleType name="blockSet">
  570. <xs:annotation>
  571. <xs:documentation>
  572. A utility type, not for public use</xs:documentation>
  573. <xs:documentation>
  574. #all or (possibly empty) subset of {substitution, extension,
  575. restriction}</xs:documentation>
  576. </xs:annotation>
  577. <xs:union>
  578. <xs:simpleType>
  579. <xs:restriction base="xs:token">
  580. <xs:enumeration value="#all"/>
  581. </xs:restriction>
  582. </xs:simpleType>
  583. <xs:simpleType>
  584. <xs:list>
  585. <xs:simpleType>
  586. <xs:restriction base="xs:derivationControl">
  587. <xs:enumeration value="extension"/>
  588. <xs:enumeration value="restriction"/>
  589. <xs:enumeration value="substitution"/>
  590. </xs:restriction>
  591. </xs:simpleType>
  592. </xs:list>
  593. </xs:simpleType>
  594. </xs:union>
  595. </xs:simpleType>
  596. <xs:complexType name="element" abstract="true">
  597. <xs:annotation>
  598. <xs:documentation>
  599. The element element can be used either
  600. at the top level to define an element-type binding globally,
  601. or within a content model to either reference a globally-defined
  602. element or type or declare an element-type binding locally.
  603. The ref form is not allowed at the top level.</xs:documentation>
  604. </xs:annotation>
  605. <xs:complexContent>
  606. <xs:extension base="xs:annotated">
  607. <xs:sequence>
  608. <xs:choice minOccurs="0">
  609. <xs:element name="simpleType" type="xs:localSimpleType"/>
  610. <xs:element name="complexType" type="xs:localComplexType"/>
  611. </xs:choice>
  612. <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  613. </xs:sequence>
  614. <xs:attributeGroup ref="xs:defRef"/>
  615. <xs:attribute name="type" type="xs:QName"/>
  616. <xs:attribute name="substitutionGroup" type="xs:QName"/>
  617. <xs:attributeGroup ref="xs:occurs"/>
  618. <xs:attribute name="default" type="xs:string"/>
  619. <xs:attribute name="fixed" type="xs:string"/>
  620. <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/>
  621. <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/>
  622. <xs:attribute name="final" type="xs:derivationSet"/>
  623. <xs:attribute name="block" type="xs:blockSet"/>
  624. <xs:attribute name="form" type="xs:formChoice"/>
  625. </xs:extension>
  626. </xs:complexContent>
  627. </xs:complexType>
  628. <xs:complexType name="topLevelElement">
  629. <xs:complexContent>
  630. <xs:restriction base="xs:element">
  631. <xs:sequence>
  632. <xs:element ref="xs:annotation" minOccurs="0"/>
  633. <xs:choice minOccurs="0">
  634. <xs:element name="simpleType" type="xs:localSimpleType"/>
  635. <xs:element name="complexType" type="xs:localComplexType"/>
  636. </xs:choice>
  637. <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  638. </xs:sequence>
  639. <xs:attribute name="ref" use="prohibited"/>
  640. <xs:attribute name="form" use="prohibited"/>
  641. <xs:attribute name="minOccurs" use="prohibited"/>
  642. <xs:attribute name="maxOccurs" use="prohibited"/>
  643. <xs:attribute name="name" use="required" type="xs:NCName"/>
  644. <xs:anyAttribute namespace="##other" processContents="lax"/>
  645. </xs:restriction>
  646. </xs:complexContent>
  647. </xs:complexType>
  648. <xs:complexType name="localElement">
  649. <xs:complexContent>
  650. <xs:restriction base="xs:element">
  651. <xs:sequence>
  652. <xs:element ref="xs:annotation" minOccurs="0"/>
  653. <xs:choice minOccurs="0">
  654. <xs:element name="simpleType" type="xs:localSimpleType"/>
  655. <xs:element name="complexType" type="xs:localComplexType"/>
  656. </xs:choice>
  657. <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  658. </xs:sequence>
  659. <xs:attribute name="substitutionGroup" use="prohibited"/>
  660. <xs:attribute name="final" use="prohibited"/>
  661. <xs:attribute name="abstract" use="prohibited"/>
  662. <xs:anyAttribute namespace="##other" processContents="lax"/>
  663. </xs:restriction>
  664. </xs:complexContent>
  665. </xs:complexType>
  666. <xs:element name="element" type="xs:topLevelElement" id="element">
  667. <xs:annotation>
  668. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"/>
  669. </xs:annotation>
  670. </xs:element>
  671. <xs:complexType name="group" abstract="true">
  672. <xs:annotation>
  673. <xs:documentation>
  674. group type for explicit groups, named top-level groups and
  675. group references</xs:documentation>
  676. </xs:annotation>
  677. <xs:complexContent>
  678. <xs:extension base="xs:annotated">
  679. <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/>
  680. <xs:attributeGroup ref="xs:defRef"/>
  681. <xs:attributeGroup ref="xs:occurs"/>
  682. </xs:extension>
  683. </xs:complexContent>
  684. </xs:complexType>
  685. <xs:complexType name="realGroup">
  686. <xs:complexContent>
  687. <xs:restriction base="xs:group">
  688. <xs:sequence>
  689. <xs:element ref="xs:annotation" minOccurs="0"/>
  690. <xs:choice minOccurs="0" maxOccurs="1">
  691. <xs:element ref="xs:all"/>
  692. <xs:element ref="xs:choice"/>
  693. <xs:element ref="xs:sequence"/>
  694. </xs:choice>
  695. </xs:sequence>
  696. <xs:anyAttribute namespace="##other" processContents="lax"/>
  697. </xs:restriction>
  698. </xs:complexContent>
  699. </xs:complexType>
  700. <xs:complexType name="namedGroup">
  701. <xs:complexContent>
  702. <xs:restriction base="xs:realGroup">
  703. <xs:sequence>
  704. <xs:element ref="xs:annotation" minOccurs="0"/>
  705. <xs:choice minOccurs="1" maxOccurs="1">
  706. <xs:element name="all">
  707. <xs:complexType>
  708. <xs:complexContent>
  709. <xs:restriction base="xs:all">
  710. <xs:group ref="xs:allModel"/>
  711. <xs:attribute name="minOccurs" use="prohibited"/>
  712. <xs:attribute name="maxOccurs" use="prohibited"/>
  713. <xs:anyAttribute namespace="##other" processContents="lax"/>
  714. </xs:restriction>
  715. </xs:complexContent>
  716. </xs:complexType>
  717. </xs:element>
  718. <xs:element name="choice" type="xs:simpleExplicitGroup"/>
  719. <xs:element name="sequence" type="xs:simpleExplicitGroup"/>
  720. </xs:choice>
  721. </xs:sequence>
  722. <xs:attribute name="name" use="required" type="xs:NCName"/>
  723. <xs:attribute name="ref" use="prohibited"/>
  724. <xs:attribute name="minOccurs" use="prohibited"/>
  725. <xs:attribute name="maxOccurs" use="prohibited"/>
  726. <xs:anyAttribute namespace="##other" processContents="lax"/>
  727. </xs:restriction>
  728. </xs:complexContent>
  729. </xs:complexType>
  730. <xs:complexType name="groupRef">
  731. <xs:complexContent>
  732. <xs:restriction base="xs:realGroup">
  733. <xs:sequence>
  734. <xs:element ref="xs:annotation" minOccurs="0"/>
  735. </xs:sequence>
  736. <xs:attribute name="ref" use="required" type="xs:QName"/>
  737. <xs:attribute name="name" use="prohibited"/>
  738. <xs:anyAttribute namespace="##other" processContents="lax"/>
  739. </xs:restriction>
  740. </xs:complexContent>
  741. </xs:complexType>
  742. <xs:complexType name="explicitGroup">
  743. <xs:annotation>
  744. <xs:documentation>
  745. group type for the three kinds of group</xs:documentation>
  746. </xs:annotation>
  747. <xs:complexContent>
  748. <xs:restriction base="xs:group">
  749. <xs:sequence>
  750. <xs:element ref="xs:annotation" minOccurs="0"/>
  751. <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
  752. </xs:sequence>
  753. <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
  754. <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
  755. <xs:anyAttribute namespace="##other" processContents="lax"/>
  756. </xs:restriction>
  757. </xs:complexContent>
  758. </xs:complexType>
  759. <xs:complexType name="simpleExplicitGroup">
  760. <xs:complexContent>
  761. <xs:restriction base="xs:explicitGroup">
  762. <xs:sequence>
  763. <xs:element ref="xs:annotation" minOccurs="0"/>
  764. <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/>
  765. </xs:sequence>
  766. <xs:attribute name="minOccurs" use="prohibited"/>
  767. <xs:attribute name="maxOccurs" use="prohibited"/>
  768. <xs:anyAttribute namespace="##other" processContents="lax"/>
  769. </xs:restriction>
  770. </xs:complexContent>
  771. </xs:complexType>
  772. <xs:group name="allModel">
  773. <xs:sequence>
  774. <xs:element ref="xs:annotation" minOccurs="0"/>
  775. <xs:choice minOccurs="0" maxOccurs="unbounded">
  776. <xs:annotation>
  777. <xs:documentation>This choice with min/max is here to
  778. avoid a pblm with the Elt:All/Choice/Seq
  779. Particle derivation constraint</xs:documentation>
  780. </xs:annotation>
  781. <xs:element name="element" type="xs:narrowMaxMin"/>
  782. </xs:choice>
  783. </xs:sequence>
  784. </xs:group>
  785. <xs:complexType name="narrowMaxMin">
  786. <xs:annotation>
  787. <xs:documentation>restricted max/min</xs:documentation>
  788. </xs:annotation>
  789. <xs:complexContent>
  790. <xs:restriction base="xs:localElement">
  791. <xs:sequence>
  792. <xs:element ref="xs:annotation" minOccurs="0"/>
  793. <xs:choice minOccurs="0">
  794. <xs:element name="simpleType" type="xs:localSimpleType"/>
  795. <xs:element name="complexType" type="xs:localComplexType"/>
  796. </xs:choice>
  797. <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/>
  798. </xs:sequence>
  799. <xs:attribute name="minOccurs" use="optional" default="1">
  800. <xs:simpleType>
  801. <xs:restriction base="xs:nonNegativeInteger">
  802. <xs:enumeration value="0"/>
  803. <xs:enumeration value="1"/>
  804. </xs:restriction>
  805. </xs:simpleType>
  806. </xs:attribute>
  807. <xs:attribute name="maxOccurs" use="optional" default="1">
  808. <xs:simpleType>
  809. <xs:restriction base="xs:allNNI">
  810. <xs:enumeration value="0"/>
  811. <xs:enumeration value="1"/>
  812. </xs:restriction>
  813. </xs:simpleType>
  814. </xs:attribute>
  815. <xs:anyAttribute namespace="##other" processContents="lax"/>
  816. </xs:restriction>
  817. </xs:complexContent>
  818. </xs:complexType>
  819. <xs:complexType name="all">
  820. <xs:annotation>
  821. <xs:documentation>
  822. Only elements allowed inside</xs:documentation>
  823. </xs:annotation>
  824. <xs:complexContent>
  825. <xs:restriction base="xs:explicitGroup">
  826. <xs:group ref="xs:allModel"/>
  827. <xs:attribute name="minOccurs" use="optional" default="1">
  828. <xs:simpleType>
  829. <xs:restriction base="xs:nonNegativeInteger">
  830. <xs:enumeration value="0"/>
  831. <xs:enumeration value="1"/>
  832. </xs:restriction>
  833. </xs:simpleType>
  834. </xs:attribute>
  835. <xs:attribute name="maxOccurs" use="optional" default="1">
  836. <xs:simpleType>
  837. <xs:restriction base="xs:allNNI">
  838. <xs:enumeration value="1"/>
  839. </xs:restriction>
  840. </xs:simpleType>
  841. </xs:attribute>
  842. <xs:anyAttribute namespace="##other" processContents="lax"/>
  843. </xs:restriction>
  844. </xs:complexContent>
  845. </xs:complexType>
  846. <xs:element name="all" id="all" type="xs:all">
  847. <xs:annotation>
  848. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"/>
  849. </xs:annotation>
  850. </xs:element>
  851. <xs:element name="choice" type="xs:explicitGroup" id="choice">
  852. <xs:annotation>
  853. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"/>
  854. </xs:annotation>
  855. </xs:element>
  856. <xs:element name="sequence" type="xs:explicitGroup" id="sequence">
  857. <xs:annotation>
  858. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"/>
  859. </xs:annotation>
  860. </xs:element>
  861. <xs:element name="group" type="xs:namedGroup" id="group">
  862. <xs:annotation>
  863. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"/>
  864. </xs:annotation>
  865. </xs:element>
  866. <xs:complexType name="wildcard">
  867. <xs:complexContent>
  868. <xs:extension base="xs:annotated">
  869. <xs:attribute name="namespace" type="xs:namespaceList" use="optional" default="##any"/>
  870. <xs:attribute name="processContents" use="optional" default="strict">
  871. <xs:simpleType>
  872. <xs:restriction base="xs:NMTOKEN">
  873. <xs:enumeration value="skip"/>
  874. <xs:enumeration value="lax"/>
  875. <xs:enumeration value="strict"/>
  876. </xs:restriction>
  877. </xs:simpleType>
  878. </xs:attribute>
  879. </xs:extension>
  880. </xs:complexContent>
  881. </xs:complexType>
  882. <xs:element name="any" id="any">
  883. <xs:annotation>
  884. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"/>
  885. </xs:annotation>
  886. <xs:complexType>
  887. <xs:complexContent>
  888. <xs:extension base="xs:wildcard">
  889. <xs:attributeGroup ref="xs:occurs"/>
  890. </xs:extension>
  891. </xs:complexContent>
  892. </xs:complexType>
  893. </xs:element>
  894. <xs:annotation>
  895. <xs:documentation>
  896. simple type for the value of the 'namespace' attr of
  897. 'any' and 'anyAttribute'</xs:documentation>
  898. </xs:annotation>
  899. <xs:annotation>
  900. <xs:documentation>
  901. Value is
  902. ##any - - any non-conflicting WFXML/attribute at all
  903. ##other - - any non-conflicting WFXML/attribute from
  904. namespace other than targetNS
  905. ##local - - any unqualified non-conflicting WFXML/attribute
  906. one or - - any non-conflicting WFXML/attribute from
  907. more URI the listed namespaces
  908. references
  909. (space separated)
  910. ##targetNamespace or ##local may appear in the above list, to
  911. refer to the targetNamespace of the enclosing
  912. schema or an absent targetNamespace respectively</xs:documentation>
  913. </xs:annotation>
  914. <xs:simpleType name="namespaceList">
  915. <xs:annotation>
  916. <xs:documentation>
  917. A utility type, not for public use</xs:documentation>
  918. </xs:annotation>
  919. <xs:union>
  920. <xs:simpleType>
  921. <xs:restriction base="xs:token">
  922. <xs:enumeration value="##any"/>
  923. <xs:enumeration value="##other"/>
  924. </xs:restriction>
  925. </xs:simpleType>
  926. <xs:simpleType>
  927. <xs:list>
  928. <xs:simpleType>
  929. <xs:union memberTypes="xs:anyURI">
  930. <xs:simpleType>
  931. <xs:restriction base="xs:token">
  932. <xs:enumeration value="##targetNamespace"/>
  933. <xs:enumeration value="##local"/>
  934. </xs:restriction>
  935. </xs:simpleType>
  936. </xs:union>
  937. </xs:simpleType>
  938. </xs:list>
  939. </xs:simpleType>
  940. </xs:union>
  941. </xs:simpleType>
  942. <xs:element name="attribute" type="xs:topLevelAttribute" id="attribute">
  943. <xs:annotation>
  944. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"/>
  945. </xs:annotation>
  946. </xs:element>
  947. <xs:complexType name="attributeGroup" abstract="true">
  948. <xs:complexContent>
  949. <xs:extension base="xs:annotated">
  950. <xs:group ref="xs:attrDecls"/>
  951. <xs:attributeGroup ref="xs:defRef"/>
  952. </xs:extension>
  953. </xs:complexContent>
  954. </xs:complexType>
  955. <xs:complexType name="namedAttributeGroup">
  956. <xs:complexContent>
  957. <xs:restriction base="xs:attributeGroup">
  958. <xs:sequence>
  959. <xs:element ref="xs:annotation" minOccurs="0"/>
  960. <xs:group ref="xs:attrDecls"/>
  961. </xs:sequence>
  962. <xs:attribute name="name" use="required" type="xs:NCName"/>
  963. <xs:attribute name="ref" use="prohibited"/>
  964. <xs:anyAttribute namespace="##other" processContents="lax"/>
  965. </xs:restriction>
  966. </xs:complexContent>
  967. </xs:complexType>
  968. <xs:complexType name="attributeGroupRef">
  969. <xs:complexContent>
  970. <xs:restriction base="xs:attributeGroup">
  971. <xs:sequence>
  972. <xs:element ref="xs:annotation" minOccurs="0"/>
  973. </xs:sequence>
  974. <xs:attribute name="ref" use="required" type="xs:QName"/>
  975. <xs:attribute name="name" use="prohibited"/>
  976. <xs:anyAttribute namespace="##other" processContents="lax"/>
  977. </xs:restriction>
  978. </xs:complexContent>
  979. </xs:complexType>
  980. <xs:element name="attributeGroup" type="xs:namedAttributeGroup" id="attributeGroup">
  981. <xs:annotation>
  982. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup"/>
  983. </xs:annotation>
  984. </xs:element>
  985. <xs:element name="include" id="include">
  986. <xs:annotation>
  987. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"/>
  988. </xs:annotation>
  989. <xs:complexType>
  990. <xs:complexContent>
  991. <xs:extension base="xs:annotated">
  992. <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
  993. </xs:extension>
  994. </xs:complexContent>
  995. </xs:complexType>
  996. </xs:element>
  997. <xs:element name="redefine" id="redefine">
  998. <xs:annotation>
  999. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"/>
  1000. </xs:annotation>
  1001. <xs:complexType>
  1002. <xs:complexContent>
  1003. <xs:extension base="xs:openAttrs">
  1004. <xs:choice minOccurs="0" maxOccurs="unbounded">
  1005. <xs:element ref="xs:annotation"/>
  1006. <xs:group ref="xs:redefinable"/>
  1007. </xs:choice>
  1008. <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/>
  1009. <xs:attribute name="id" type="xs:ID"/>
  1010. </xs:extension>
  1011. </xs:complexContent>
  1012. </xs:complexType>
  1013. </xs:element>
  1014. <xs:element name="import" id="import">
  1015. <xs:annotation>
  1016. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"/>
  1017. </xs:annotation>
  1018. <xs:complexType>
  1019. <xs:complexContent>
  1020. <xs:extension base="xs:annotated">
  1021. <xs:attribute name="namespace" type="xs:anyURI"/>
  1022. <xs:attribute name="schemaLocation" type="xs:anyURI"/>
  1023. </xs:extension>
  1024. </xs:complexContent>
  1025. </xs:complexType>
  1026. </xs:element>
  1027. <xs:element name="selector" id="selector">
  1028. <xs:annotation>
  1029. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/>
  1030. </xs:annotation>
  1031. <xs:complexType>
  1032. <xs:complexContent>
  1033. <xs:extension base="xs:annotated">
  1034. <xs:attribute name="xpath" use="required">
  1035. <xs:simpleType>
  1036. <xs:annotation>
  1037. <xs:documentation>A subset of XPath expressions for use
  1038. in selectors</xs:documentation>
  1039. <xs:documentation>A utility type, not for public
  1040. use</xs:documentation>
  1041. </xs:annotation>
  1042. <xs:restriction base="xs:token">
  1043. <xs:annotation>
  1044. <xs:documentation>The following pattern is intended to allow XPath
  1045. expressions per the following EBNF:
  1046. Selector ::= Path ( '|' Path )*
  1047. Path ::= ('.//')? Step ( '/' Step )*
  1048. Step ::= '.' | NameTest
  1049. NameTest ::= QName | '*' | NCName ':' '*'
  1050. child:: is also allowed
  1051. </xs:documentation>
  1052. </xs:annotation>
  1053. <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*">
  1054. </xs:pattern>
  1055. </xs:restriction>
  1056. </xs:simpleType>
  1057. </xs:attribute>
  1058. </xs:extension>
  1059. </xs:complexContent>
  1060. </xs:complexType>
  1061. </xs:element>
  1062. <xs:element name="field" id="field">
  1063. <xs:annotation>
  1064. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"/>
  1065. </xs:annotation>
  1066. <xs:complexType>
  1067. <xs:complexContent>
  1068. <xs:extension base="xs:annotated">
  1069. <xs:attribute name="xpath" use="required">
  1070. <xs:simpleType>
  1071. <xs:annotation>
  1072. <xs:documentation>A subset of XPath expressions for use
  1073. in fields</xs:documentation>
  1074. <xs:documentation>A utility type, not for public
  1075. use</xs:documentation>
  1076. </xs:annotation>
  1077. <xs:restriction base="xs:token">
  1078. <xs:annotation>
  1079. <xs:documentation>The following pattern is intended to allow XPath
  1080. expressions per the same EBNF as for selector,
  1081. with the following change:
  1082. Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
  1083. </xs:documentation>
  1084. </xs:annotation>
  1085. <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*">
  1086. </xs:pattern>
  1087. </xs:restriction>
  1088. </xs:simpleType>
  1089. </xs:attribute>
  1090. </xs:extension>
  1091. </xs:complexContent>
  1092. </xs:complexType>
  1093. </xs:element>
  1094. <xs:complexType name="keybase">
  1095. <xs:complexContent>
  1096. <xs:extension base="xs:annotated">
  1097. <xs:sequence>
  1098. <xs:element ref="xs:selector"/>
  1099. <xs:element ref="xs:field" minOccurs="1" maxOccurs="unbounded"/>
  1100. </xs:sequence>
  1101. <xs:attribute name="name" type="xs:NCName" use="required"/>
  1102. </xs:extension>
  1103. </xs:complexContent>
  1104. </xs:complexType>
  1105. <xs:group name="identityConstraint">
  1106. <xs:annotation>
  1107. <xs:documentation>The three kinds of identity constraints, all with
  1108. type of or derived from 'keybase'.
  1109. </xs:documentation>
  1110. </xs:annotation>
  1111. <xs:choice>
  1112. <xs:element ref="xs:unique"/>
  1113. <xs:element ref="xs:key"/>
  1114. <xs:element ref="xs:keyref"/>
  1115. </xs:choice>
  1116. </xs:group>
  1117. <xs:element name="unique" type="xs:keybase" id="unique">
  1118. <xs:annotation>
  1119. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"/>
  1120. </xs:annotation>
  1121. </xs:element>
  1122. <xs:element name="key" type="xs:keybase" id="key">
  1123. <xs:annotation>
  1124. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"/>
  1125. </xs:annotation>
  1126. </xs:element>
  1127. <xs:element name="keyref" id="keyref">
  1128. <xs:annotation>
  1129. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"/>
  1130. </xs:annotation>
  1131. <xs:complexType>
  1132. <xs:complexContent>
  1133. <xs:extension base="xs:keybase">
  1134. <xs:attribute name="refer" type="xs:QName" use="required"/>
  1135. </xs:extension>
  1136. </xs:complexContent>
  1137. </xs:complexType>
  1138. </xs:element>
  1139. <xs:element name="notation" id="notation">
  1140. <xs:annotation>
  1141. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"/>
  1142. </xs:annotation>
  1143. <xs:complexType>
  1144. <xs:complexContent>
  1145. <xs:extension base="xs:annotated">
  1146. <xs:attribute name="name" type="xs:NCName" use="required"/>
  1147. <xs:attribute name="public" type="xs:public"/>
  1148. <xs:attribute name="system" type="xs:anyURI"/>
  1149. </xs:extension>
  1150. </xs:complexContent>
  1151. </xs:complexType>
  1152. </xs:element>
  1153. <xs:simpleType name="public">
  1154. <xs:annotation>
  1155. <xs:documentation>
  1156. A utility type, not for public use</xs:documentation>
  1157. <xs:documentation>
  1158. A public identifier, per ISO 8879</xs:documentation>
  1159. </xs:annotation>
  1160. <xs:restriction base="xs:token"/>
  1161. </xs:simpleType>
  1162. <xs:element name="appinfo" id="appinfo">
  1163. <xs:annotation>
  1164. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"/>
  1165. </xs:annotation>
  1166. <xs:complexType mixed="true">
  1167. <xs:sequence minOccurs="0" maxOccurs="unbounded">
  1168. <xs:any processContents="lax"/>
  1169. </xs:sequence>
  1170. <xs:attribute name="source" type="xs:anyURI"/>
  1171. <xs:anyAttribute namespace="##other" processContents="lax"/>
  1172. </xs:complexType>
  1173. </xs:element>
  1174. <xs:element name="documentation" id="documentation">
  1175. <xs:annotation>
  1176. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"/>
  1177. </xs:annotation>
  1178. <xs:complexType mixed="true">
  1179. <xs:sequence minOccurs="0" maxOccurs="unbounded">
  1180. <xs:any processContents="lax"/>
  1181. </xs:sequence>
  1182. <xs:attribute name="source" type="xs:anyURI"/>
  1183. <xs:attribute ref="xml:lang"/>
  1184. <xs:anyAttribute namespace="##other" processContents="lax"/>
  1185. </xs:complexType>
  1186. </xs:element>
  1187. <xs:element name="annotation" id="annotation">
  1188. <xs:annotation>
  1189. <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation"/>
  1190. </xs:annotation>
  1191. <xs:complexType>
  1192. <xs:complexContent>
  1193. <xs:extension base="xs:openAttrs">
  1194. <xs:choice minOccurs="0" maxOccurs="unbounded">
  1195. <xs:element ref="xs:appinfo"/>
  1196. <xs:element ref="xs:documentation"/>
  1197. </xs:choice>
  1198. <xs:attribute name="id" type="xs:ID"/>
  1199. </xs:extension>
  1200. </xs:complexContent>
  1201. </xs:complexType>
  1202. </xs:element>
  1203. <xs:annotation>
  1204. <xs:documentation>
  1205. notations for use within XML Schema schemas</xs:documentation>
  1206. </xs:annotation>
  1207. <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
  1208. <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
  1209. <xs:complexType name="anyType" mixed="true">
  1210. <xs:annotation>
  1211. <xs:documentation>
  1212. Not the real urType, but as close an approximation as we can
  1213. get in the XML representation</xs:documentation>
  1214. </xs:annotation>
  1215. <xs:sequence>
  1216. <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
  1217. </xs:sequence>
  1218. <xs:anyAttribute processContents="lax"/>
  1219. </xs:complexType>
  1220. <xs:annotation>
  1221. <xs:documentation>
  1222. First the built-in primitive datatypes. These definitions are for
  1223. information only, the real built-in definitions are magic.
  1224. </xs:documentation>
  1225. <xs:documentation>
  1226. For each built-in datatype in this schema (both primitive and
  1227. derived) can be uniquely addressed via a URI constructed
  1228. as follows:
  1229. 1) the base URI is the URI of the XML Schema namespace
  1230. 2) the fragment identifier is the name of the datatype
  1231. For example, to address the int datatype, the URI is:
  1232. http://www.w3.org/2001/XMLSchema#int
  1233. Additionally, each facet definition element can be uniquely
  1234. addressed via a URI constructed as follows:
  1235. 1) the base URI is the URI of the XML Schema namespace
  1236. 2) the fragment identifier is the name of the facet
  1237. For example, to address the maxInclusive facet, the URI is:
  1238. http://www.w3.org/2001/XMLSchema#maxInclusive
  1239. Additionally, each facet usage in a built-in datatype definition
  1240. can be uniquely addressed via a URI constructed as follows:
  1241. 1) the base URI is the URI of the XML Schema namespace
  1242. 2) the fragment identifier is the name of the datatype, followed
  1243. by a period (".") followed by the name of the facet
  1244. For example, to address the usage of the maxInclusive facet in
  1245. the definition of int, the URI is:
  1246. http://www.w3.org/2001/XMLSchema#int.maxInclusive
  1247. </xs:documentation>
  1248. </xs:annotation>
  1249. <xs:simpleType name="string" id="string">
  1250. <xs:annotation>
  1251. <xs:appinfo>
  1252. <hfp:hasFacet name="length"/>
  1253. <hfp:hasFacet name="minLength"/>
  1254. <hfp:hasFacet name="maxLength"/>
  1255. <hfp:hasFacet name="pattern"/>
  1256. <hfp:hasFacet name="enumeration"/>
  1257. <hfp:hasFacet name="whiteSpace"/>
  1258. <hfp:hasProperty name="ordered" value="false"/>
  1259. <hfp:hasProperty name="bounded" value="false"/>
  1260. <hfp:hasProperty name="cardinality" value="countably infinite"/>
  1261. <hfp:hasProperty name="numeric" value="false"/>
  1262. </xs:appinfo>
  1263. <xs:documentation
  1264. source="http://www.w3.org/TR/xmlschema-2/#string"/>
  1265. </xs:annotation>
  1266. <xs:restriction base="xs:anySimpleType">
  1267. <xs:whiteSpace value="preserve" id="string.preserve"/>
  1268. </xs:restriction>
  1269. </xs:simpleType>
  1270. <xs:simpleType name="boolean" id="boolean">
  1271. <xs:annotation>
  1272. <xs:appinfo>
  1273. <hfp:hasFacet name="pattern"/>
  1274. <hfp:hasFacet name="whiteSpace"/>
  1275. <hfp:hasProperty name="ordered" value="false"/>
  1276. <hfp:hasProperty name="bounded" value="false"/>
  1277. <hfp:hasProperty name="cardinality" value="finite"/>
  1278. <hfp:hasProperty name="numeric" value="false"/>
  1279. </xs:appinfo>
  1280. <xs:documentation
  1281. source="http://www.w3.org/TR/xmlschema-2/#boolean"/>
  1282. </xs:annotation>
  1283. <xs:restriction base="xs:anySimpleType">
  1284. <xs:whiteSpace value="collapse" fixed="true"
  1285. id="boolean.whiteSpace"/>
  1286. </xs:restriction>
  1287. </xs:simpleType>
  1288. <xs:simpleType name="float" id="float">
  1289. <xs:annotation>
  1290. <xs:appinfo>
  1291. <hfp:hasFacet name="pattern"/>
  1292. <hfp:hasFacet name="enumeration"/>
  1293. <hfp:hasFacet name="whiteSpace"/>
  1294. <hfp:hasFacet name="maxInclusive"/>
  1295. <hfp:hasFacet name="maxExclusive"/>
  1296. <hfp:hasFacet name="minInclusive"/>
  1297. <hfp:hasFacet name="minExclusive"/>
  1298. <hfp:hasProperty name="ordered" value="total"/>
  1299. <hfp:hasProperty name="bounded" value="true"/>
  1300. <hfp:hasProperty name="cardinality" value="finite"/>
  1301. <hfp:hasProperty name="numeric" value="true"/>
  1302. </xs:appinfo>
  1303. <xs:documentation
  1304. source="http://www.w3.org/TR/xmlschema-2/#float"/>
  1305. </xs:annotation>
  1306. <xs:restriction base="xs:anySimpleType">
  1307. <xs:whiteSpace value="collapse" fixed="true"
  1308. id="float.whiteSpace"/>
  1309. </xs:restriction>
  1310. </xs:simpleType>
  1311. <xs:simpleType name="double" id="double">
  1312. <xs:annotation>
  1313. <xs:appinfo>
  1314. <hfp:hasFacet name="pattern"/>
  1315. <hfp:hasFacet name="enumeration"/>
  1316. <hfp:hasFacet name="whiteSpace"/>
  1317. <hfp:hasFacet name="maxInclusive"/>
  1318. <hfp:hasFacet name="maxExclusive"/>
  1319. <hfp:hasFacet name="minInclusive"/>
  1320. <hfp:hasFacet name="minExclusive"/>
  1321. <hfp:hasProperty name="ordered" value="total"/>
  1322. <hfp:hasProperty name="bounded" value="true"/>
  1323. <hfp:hasProperty name="cardinality" value="finite"/>
  1324. <hfp:hasProperty name="numeric" value="true"/>
  1325. </xs:appinfo>
  1326. <xs:documentation
  1327. source="http://www.w3.org/TR/xmlschema-2/#double"/>
  1328. </xs:annotation>
  1329. <xs:restriction base="xs:anySimpleType">
  1330. <xs:whiteSpace value="collapse" fixed="true"
  1331. id="double.whiteSpace"/>
  1332. </xs:restriction>
  1333. </xs:simpleType>
  1334. <xs:simpleType name="decimal" id="decimal">
  1335. <xs:annotation>
  1336. <xs:appinfo>
  1337. <hfp:hasFacet name="totalDigits"/>
  1338. <hfp:hasFacet name="fractionDigits"/>
  1339. <hfp:hasFacet name="pattern"/>
  1340. <hfp:hasFacet name="whiteSpace"/>
  1341. <hfp:hasFacet name="enumeration"/>
  1342. <hfp:hasFacet name="maxInclusive"/>
  1343. <hfp:hasFacet name="maxExclusive"/>
  1344. <hfp:hasFacet name="minInclusive"/>
  1345. <hfp:hasFacet name="minExclusive"/>
  1346. <hfp:hasProperty name="ordered" value="total"/>
  1347. <hfp:hasProperty name="bounded" value="false"/>
  1348. <hfp:hasProperty name="cardinality"
  1349. value="countably infinite"/>
  1350. <hfp:hasProperty name="numeric" value="true"/>
  1351. </xs:appinfo>
  1352. <xs:documentation
  1353. source="http://www.w3.org/TR/xmlschema-2/#decimal"/>
  1354. </xs:annotation>
  1355. <xs:restriction base="xs:anySimpleType">
  1356. <xs:whiteSpace value="collapse" fixed="true"
  1357. id="decimal.whiteSpace"/>
  1358. </xs:restriction>
  1359. </xs:simpleType>
  1360. <xs:simpleType name="duration" id="duration">
  1361. <xs:annotation>
  1362. <xs:appinfo>
  1363. <hfp:hasFacet name="pattern"/>
  1364. <hfp:hasFacet name="enumeration"/>
  1365. <hfp:hasFacet name="whiteSpace"/>
  1366. <hfp:hasFacet name="maxInclusive"/>
  1367. <hfp:hasFacet name="maxExclusive"/>
  1368. <hfp:hasFacet name="minInclusive"/>
  1369. <hfp:hasFacet name="minExclusive"/>
  1370. <hfp:hasProperty name="ordered" value="partial"/>
  1371. <hfp:hasProperty name="bounded" value="false"/>
  1372. <hfp:hasProperty name="cardinality"
  1373. value="countably infinite"/>
  1374. <hfp:hasProperty name="numeric" value="false"/>
  1375. </xs:appinfo>
  1376. <xs:documentation
  1377. source="http://www.w3.org/TR/xmlschema-2/#duration"/>
  1378. </xs:annotation>
  1379. <xs:restriction base="xs:anySimpleType">
  1380. <xs:whiteSpace value="collapse" fixed="true"
  1381. id="duration.whiteSpace"/>
  1382. </xs:restriction>
  1383. </xs:simpleType>
  1384. <xs:simpleType name="dateTime" id="dateTime">
  1385. <xs:annotation>
  1386. <xs:appinfo>
  1387. <hfp:hasFacet name="pattern"/>
  1388. <hfp:hasFacet name="enumeration"/>
  1389. <hfp:hasFacet name="whiteSpace"/>
  1390. <hfp:hasFacet name="maxInclusive"/>
  1391. <hfp:hasFacet name="maxExclusive"/>
  1392. <hfp:hasFacet name="minInclusive"/>
  1393. <hfp:hasFacet name="minExclusive"/>
  1394. <hfp:hasProperty name="ordered" value="partial"/>
  1395. <hfp:hasProperty name="bounded" value="false"/>
  1396. <hfp:hasProperty name="cardinality"
  1397. value="countably infinite"/>
  1398. <hfp:hasProperty name="numeric" value="false"/>
  1399. </xs:appinfo>
  1400. <xs:documentation
  1401. source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
  1402. </xs:annotation>
  1403. <xs:restriction base="xs:anySimpleType">
  1404. <xs:whiteSpace value="collapse" fixed="true"
  1405. id="dateTime.whiteSpace"/>
  1406. </xs:restriction>
  1407. </xs:simpleType>
  1408. <xs:simpleType name="time" id="time">
  1409. <xs:annotation>
  1410. <xs:appinfo>
  1411. <hfp:hasFacet name="pattern"/>
  1412. <hfp:hasFacet name="enumeration"/>
  1413. <hfp:hasFacet name="whiteSpace"/>
  1414. <hfp:hasFacet name="maxInclusive"/>
  1415. <hfp:hasFacet name="maxExclusive"/>
  1416. <hfp:hasFacet name="minInclusive"/>
  1417. <hfp:hasFacet name="minExclusive"/>
  1418. <hfp:hasProperty name="ordered" value="partial"/>
  1419. <hfp:hasProperty name="bounded" value="false"/>
  1420. <hfp:hasProperty name="cardinality"
  1421. value="countably infinite"/>
  1422. <hfp:hasProperty name="numeric" value="false"/>
  1423. </xs:appinfo>
  1424. <xs:documentation
  1425. source="http://www.w3.org/TR/xmlschema-2/#time"/>
  1426. </xs:annotation>
  1427. <xs:restriction base="xs:anySimpleType">
  1428. <xs:whiteSpace value="collapse" fixed="true"
  1429. id="time.whiteSpace"/>
  1430. </xs:restriction>
  1431. </xs:simpleType>
  1432. <xs:simpleType name="date" id="date">
  1433. <xs:annotation>
  1434. <xs:appinfo>
  1435. <hfp:hasFacet name="pattern"/>
  1436. <hfp:hasFacet name="enumeration"/>
  1437. <hfp:hasFacet name="whiteSpace"/>
  1438. <hfp:hasFacet name="maxInclusive"/>
  1439. <hfp:hasFacet name="maxExclusive"/>
  1440. <hfp:hasFacet name="minInclusive"/>
  1441. <hfp:hasFacet name="minExclusive"/>
  1442. <hfp:hasProperty name="ordered" value="partial"/>
  1443. <hfp:hasProperty name="bounded" value="false"/>
  1444. <hfp:hasProperty name="cardinality"
  1445. value="countably infinite"/>
  1446. <hfp:hasProperty name="numeric" value="false"/>
  1447. </xs:appinfo>
  1448. <xs:documentation
  1449. source="http://www.w3.org/TR/xmlschema-2/#date"/>
  1450. </xs:annotation>
  1451. <xs:restriction base="xs:anySimpleType">
  1452. <xs:whiteSpace value="collapse" fixed="true"
  1453. id="date.whiteSpace"/>
  1454. </xs:restriction>
  1455. </xs:simpleType>
  1456. <xs:simpleType name="gYearMonth" id="gYearMonth">
  1457. <xs:annotation>
  1458. <xs:appinfo>
  1459. <hfp:hasFacet name="pattern"/>
  1460. <hfp:hasFacet name="enumeration"/>
  1461. <hfp:hasFacet name="whiteSpace"/>
  1462. <hfp:hasFacet name="maxInclusive"/>
  1463. <hfp:hasFacet name="maxExclusive"/>
  1464. <hfp:hasFacet name="minInclusive"/>
  1465. <hfp:hasFacet name="minExclusive"/>
  1466. <hfp:hasProperty name="ordered" value="partial"/>
  1467. <hfp:hasProperty name="bounded" value="false"/>
  1468. <hfp:hasProperty name="cardinality"
  1469. value="countably infinite"/>
  1470. <hfp:hasProperty name="numeric" value="false"/>
  1471. </xs:appinfo>
  1472. <xs:documentation
  1473. source="http://www.w3.org/TR/xmlschema-2/#gYearMonth"/>
  1474. </xs:annotation>
  1475. <xs:restriction base="xs:anySimpleType">
  1476. <xs:whiteSpace value="collapse" fixed="true"
  1477. id="gYearMonth.whiteSpace"/>
  1478. </xs:restriction>
  1479. </xs:simpleType>
  1480. <xs:simpleType name="gYear" id="gYear">
  1481. <xs:annotation>
  1482. <xs:appinfo>
  1483. <hfp:hasFacet name="pattern"/>
  1484. <hfp:hasFacet name="enumeration"/>
  1485. <hfp:hasFacet name="whiteSpace"/>
  1486. <hfp:hasFacet name="maxInclusive"/>
  1487. <hfp:hasFacet name="maxExclusive"/>
  1488. <hfp:hasFacet name="minInclusive"/>
  1489. <hfp:hasFacet name="minExclusive"/>
  1490. <hfp:hasProperty name="ordered" value="partial"/>
  1491. <hfp:hasProperty name="bounded" value="false"/>
  1492. <hfp:hasProperty name="cardinality"
  1493. value="countably infinite"/>
  1494. <hfp:hasProperty name="numeric" value="false"/>
  1495. </xs:appinfo>
  1496. <xs:documentation
  1497. source="http://www.w3.org/TR/xmlschema-2/#gYear"/>
  1498. </xs:annotation>
  1499. <xs:restriction base="xs:anySimpleType">
  1500. <xs:whiteSpace value="collapse" fixed="true"
  1501. id="gYear.whiteSpace"/>
  1502. </xs:restriction>
  1503. </xs:simpleType>
  1504. <xs:simpleType name="gMonthDay" id="gMonthDay">
  1505. <xs:annotation>
  1506. <xs:appinfo>
  1507. <hfp:hasFacet name="pattern"/>
  1508. <hfp:hasFacet name="enumeration"/>
  1509. <hfp:hasFacet name="whiteSpace"/>
  1510. <hfp:hasFacet name="maxInclusive"/>
  1511. <hfp:hasFacet name="maxExclusive"/>
  1512. <hfp:hasFacet name="minInclusive"/>
  1513. <hfp:hasFacet name="minExclusive"/>
  1514. <hfp:hasProperty name="ordered" value="partial"/>
  1515. <hfp:hasProperty name="bounded" value="false"/>
  1516. <hfp:hasProperty name="cardinality"
  1517. value="countably infinite"/>
  1518. <hfp:hasProperty name="numeric" value="false"/>
  1519. </xs:appinfo>
  1520. <xs:documentation
  1521. source="http://www.w3.org/TR/xmlschema-2/#gMonthDay"/>
  1522. </xs:annotation>
  1523. <xs:restriction base="xs:anySimpleType">
  1524. <xs:whiteSpace value="collapse" fixed="true"
  1525. id="gMonthDay.whiteSpace"/>
  1526. </xs:restriction>
  1527. </xs:simpleType>
  1528. <xs:simpleType name="gDay" id="gDay">
  1529. <xs:annotation>
  1530. <xs:appinfo>
  1531. <hfp:hasFacet name="pattern"/>
  1532. <hfp:hasFacet name="enumeration"/>
  1533. <hfp:hasFacet name="whiteSpace"/>
  1534. <hfp:hasFacet name="maxInclusive"/>
  1535. <hfp:hasFacet name="maxExclusive"/>
  1536. <hfp:hasFacet name="minInclusive"/>
  1537. <hfp:hasFacet name="minExclusive"/>
  1538. <hfp:hasProperty name="ordered" value="partial"/>
  1539. <hfp:hasProperty name="bounded" value="false"/>
  1540. <hfp:hasProperty name="cardinality"
  1541. value="countably infinite"/>
  1542. <hfp:hasProperty name="numeric" value="false"/>
  1543. </xs:appinfo>
  1544. <xs:documentation
  1545. source="http://www.w3.org/TR/xmlschema-2/#gDay"/>
  1546. </xs:annotation>
  1547. <xs:restriction base="xs:anySimpleType">
  1548. <xs:whiteSpace value="collapse" fixed="true"
  1549. id="gDay.whiteSpace"/>
  1550. </xs:restriction>
  1551. </xs:simpleType>
  1552. <xs:simpleType name="gMonth" id="gMonth">
  1553. <xs:annotation>
  1554. <xs:appinfo>
  1555. <hfp:hasFacet name="pattern"/>
  1556. <hfp:hasFacet name="enumeration"/>
  1557. <hfp:hasFacet name="whiteSpace"/>
  1558. <hfp:hasFacet name="maxInclusive"/>
  1559. <hfp:hasFacet name="maxExclusive"/>
  1560. <hfp:hasFacet name="minInclusive"/>
  1561. <hfp:hasFacet name="minExclusive"/>
  1562. <hfp:hasProperty name="ordered" value="partial"/>
  1563. <hfp:hasProperty name="bounded" value="false"/>
  1564. <hfp:hasProperty name="cardinality"
  1565. value="countably infinite"/>
  1566. <hfp:hasProperty name="numeric" value="false"/>
  1567. </xs:appinfo>
  1568. <xs:documentation
  1569. source="http://www.w3.org/TR/xmlschema-2/#gMonth"/>
  1570. </xs:annotation>
  1571. <xs:restriction base="xs:anySimpleType">
  1572. <xs:whiteSpace value="collapse" fixed="true"
  1573. id="gMonth.whiteSpace"/>
  1574. </xs:restriction>
  1575. </xs:simpleType>
  1576. <xs:simpleType name="hexBinary" id="hexBinary">
  1577. <xs:annotation>
  1578. <xs:appinfo>
  1579. <hfp:hasFacet name="length"/>
  1580. <hfp:hasFacet name="minLength"/>
  1581. <hfp:hasFacet name="maxLength"/>
  1582. <hfp:hasFacet name="pattern"/>
  1583. <hfp:hasFacet name="enumeration"/>
  1584. <hfp:hasFacet name="whiteSpace"/>
  1585. <hfp:hasProperty name="ordered" value="false"/>
  1586. <hfp:hasProperty name="bounded" value="false"/>
  1587. <hfp:hasProperty name="cardinality"
  1588. value="countably infinite"/>
  1589. <hfp:hasProperty name="numeric" value="false"/>
  1590. </xs:appinfo>
  1591. <xs:documentation
  1592. source="http://www.w3.org/TR/xmlschema-2/#binary"/>
  1593. </xs:annotation>
  1594. <xs:restriction base="xs:anySimpleType">
  1595. <xs:whiteSpace value="collapse" fixed="true"
  1596. id="hexBinary.whiteSpace"/>
  1597. </xs:restriction>
  1598. </xs:simpleType>
  1599. <xs:simpleType name="base64Binary" id="base64Binary">
  1600. <xs:annotation>
  1601. <xs:appinfo>
  1602. <hfp:hasFacet name="length"/>
  1603. <hfp:hasFacet name="minLength"/>
  1604. <hfp:hasFacet name="maxLength"/>
  1605. <hfp:hasFacet name="pattern"/>
  1606. <hfp:hasFacet name="enumeration"/>
  1607. <hfp:hasFacet name="whiteSpace"/>
  1608. <hfp:hasProperty name="ordered" value="false"/>
  1609. <hfp:hasProperty name="bounded" value="false"/>
  1610. <hfp:hasProperty name="cardinality"
  1611. value="countably infinite"/>
  1612. <hfp:hasProperty name="numeric" value="false"/>
  1613. </xs:appinfo>
  1614. <xs:documentation
  1615. source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
  1616. </xs:annotation>
  1617. <xs:restriction base="xs:anySimpleType">
  1618. <xs:whiteSpace value="collapse" fixed="true"
  1619. id="base64Binary.whiteSpace"/>
  1620. </xs:restriction>
  1621. </xs:simpleType>
  1622. <xs:simpleType name="anyURI" id="anyURI">
  1623. <xs:annotation>
  1624. <xs:appinfo>
  1625. <hfp:hasFacet name="length"/>
  1626. <hfp:hasFacet name="minLength"/>
  1627. <hfp:hasFacet name="maxLength"/>
  1628. <hfp:hasFacet name="pattern"/>
  1629. <hfp:hasFacet name="enumeration"/>
  1630. <hfp:hasFacet name="whiteSpace"/>
  1631. <hfp:hasProperty name="ordered" value="false"/>
  1632. <hfp:hasProperty name="bounded" value="false"/>
  1633. <hfp:hasProperty name="cardinality"
  1634. value="countably infinite"/>
  1635. <hfp:hasProperty name="numeric" value="false"/>
  1636. </xs:appinfo>
  1637. <xs:documentation
  1638. source="http://www.w3.org/TR/xmlschema-2/#anyURI"/>
  1639. </xs:annotation>
  1640. <xs:restriction base="xs:anySimpleType">
  1641. <xs:whiteSpace value="collapse" fixed="true"
  1642. id="anyURI.whiteSpace"/>
  1643. </xs:restriction>
  1644. </xs:simpleType>
  1645. <xs:simpleType name="QName" id="QName">
  1646. <xs:annotation>
  1647. <xs:appinfo>
  1648. <hfp:hasFacet name="length"/>
  1649. <hfp:hasFacet name="minLength"/>
  1650. <hfp:hasFacet name="maxLength"/>
  1651. <hfp:hasFacet name="pattern"/>
  1652. <hfp:hasFacet name="enumeration"/>
  1653. <hfp:hasFacet name="whiteSpace"/>
  1654. <hfp:hasProperty name="ordered" value="false"/>
  1655. <hfp:hasProperty name="bounded" value="false"/>
  1656. <hfp:hasProperty name="cardinality"
  1657. value="countably infinite"/>
  1658. <hfp:hasProperty name="numeric" value="false"/>
  1659. </xs:appinfo>
  1660. <xs:documentation
  1661. source="http://www.w3.org/TR/xmlschema-2/#QName"/>
  1662. </xs:annotation>
  1663. <xs:restriction base="xs:anySimpleType">
  1664. <xs:whiteSpace value="collapse" fixed="true"
  1665. id="QName.whiteSpace"/>
  1666. </xs:restriction>
  1667. </xs:simpleType>
  1668. <xs:simpleType name="NOTATION" id="NOTATION">
  1669. <xs:annotation>
  1670. <xs:appinfo>
  1671. <hfp:hasFacet name="length"/>
  1672. <hfp:hasFacet name="minLength"/>
  1673. <hfp:hasFacet name="maxLength"/>
  1674. <hfp:hasFacet name="pattern"/>
  1675. <hfp:hasFacet name="enumeration"/>
  1676. <hfp:hasFacet name="whiteSpace"/>
  1677. <hfp:hasProperty name="ordered" value="false"/>
  1678. <hfp:hasProperty name="bounded" value="false"/>
  1679. <hfp:hasProperty name="cardinality"
  1680. value="countably infinite"/>
  1681. <hfp:hasProperty name="numeric" value="false"/>
  1682. </xs:appinfo>
  1683. <xs:documentation
  1684. source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
  1685. <xs:documentation>
  1686. NOTATION cannot be used directly in a schema; rather a type
  1687. must be derived from it by specifying at least one enumeration
  1688. facet whose value is the name of a NOTATION declared in the
  1689. schema.
  1690. </xs:documentation>
  1691. </xs:annotation>
  1692. <xs:restriction base="xs:anySimpleType">
  1693. <xs:whiteSpace value="collapse" fixed="true"
  1694. id="NOTATION.whiteSpace"/>
  1695. </xs:restriction>
  1696. </xs:simpleType>
  1697. <xs:annotation>
  1698. <xs:documentation>
  1699. Now the derived primitive types
  1700. </xs:documentation>
  1701. </xs:annotation>
  1702. <xs:simpleType name="normalizedString" id="normalizedString">
  1703. <xs:annotation>
  1704. <xs:documentation
  1705. source="http://www.w3.org/TR/xmlschema-2/#normalizedString"/>
  1706. </xs:annotation>
  1707. <xs:restriction base="xs:string">
  1708. <xs:whiteSpace value="replace"
  1709. id="normalizedString.whiteSpace"/>
  1710. </xs:restriction>
  1711. </xs:simpleType>
  1712. <xs:simpleType name="token" id="token">
  1713. <xs:annotation>
  1714. <xs:documentation
  1715. source="http://www.w3.org/TR/xmlschema-2/#token"/>
  1716. </xs:annotation>
  1717. <xs:restriction base="xs:normalizedString">
  1718. <xs:whiteSpace value="collapse" id="token.whiteSpace"/>
  1719. </xs:restriction>
  1720. </xs:simpleType>
  1721. <xs:simpleType name="language" id="language">
  1722. <xs:annotation>
  1723. <xs:documentation
  1724. source="http://www.w3.org/TR/xmlschema-2/#language"/>
  1725. </xs:annotation>
  1726. <xs:restriction base="xs:token">
  1727. <xs:pattern
  1728. value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
  1729. id="language.pattern">
  1730. <xs:annotation>
  1731. <xs:documentation
  1732. source="http://www.ietf.org/rfc/rfc3066.txt">
  1733. pattern specifies the content of section 2.12 of XML 1.0e2
  1734. and RFC 3066 (Revised version of RFC 1766).
  1735. </xs:documentation>
  1736. </xs:annotation>
  1737. </xs:pattern>
  1738. </xs:restriction>
  1739. </xs:simpleType>
  1740. <xs:simpleType name="IDREFS" id="IDREFS">
  1741. <xs:annotation>
  1742. <xs:appinfo>
  1743. <hfp:hasFacet name="length"/>
  1744. <hfp:hasFacet name="minLength"/>
  1745. <hfp:hasFacet name="maxLength"/>
  1746. <hfp:hasFacet name="enumeration"/>
  1747. <hfp:hasFacet name="whiteSpace"/>
  1748. <hfp:hasFacet name="pattern"/>
  1749. <hfp:hasProperty name="ordered" value="false"/>
  1750. <hfp:hasProperty name="bounded" value="false"/>
  1751. <hfp:hasProperty name="cardinality"
  1752. value="countably infinite"/>
  1753. <hfp:hasProperty name="numeric" value="false"/>
  1754. </xs:appinfo>
  1755. <xs:documentation
  1756. source="http://www.w3.org/TR/xmlschema-2/#IDREFS"/>
  1757. </xs:annotation>
  1758. <xs:restriction>
  1759. <xs:simpleType>
  1760. <xs:list itemType="xs:IDREF"/>
  1761. </xs:simpleType>
  1762. <xs:minLength value="1" id="IDREFS.minLength"/>
  1763. </xs:restriction>
  1764. </xs:simpleType>
  1765. <xs:simpleType name="ENTITIES" id="ENTITIES">
  1766. <xs:annotation>
  1767. <xs:appinfo>
  1768. <hfp:hasFacet name="length"/>
  1769. <hfp:hasFacet name="minLength"/>
  1770. <hfp:hasFacet name="maxLength"/>
  1771. <hfp:hasFacet name="enumeration"/>
  1772. <hfp:hasFacet name="whiteSpace"/>
  1773. <hfp:hasFacet name="pattern"/>
  1774. <hfp:hasProperty name="ordered" value="false"/>
  1775. <hfp:hasProperty name="bounded" value="false"/>
  1776. <hfp:hasProperty name="cardinality"
  1777. value="countably infinite"/>
  1778. <hfp:hasProperty name="numeric" value="false"/>
  1779. </xs:appinfo>
  1780. <xs:documentation
  1781. source="http://www.w3.org/TR/xmlschema-2/#ENTITIES"/>
  1782. </xs:annotation>
  1783. <xs:restriction>
  1784. <xs:simpleType>
  1785. <xs:list itemType="xs:ENTITY"/>
  1786. </xs:simpleType>
  1787. <xs:minLength value="1" id="ENTITIES.minLength"/>
  1788. </xs:restriction>
  1789. </xs:simpleType>
  1790. <xs:simpleType name="NMTOKEN" id="NMTOKEN">
  1791. <xs:annotation>
  1792. <xs:documentation
  1793. source="http://www.w3.org/TR/xmlschema-2/#NMTOKEN"/>
  1794. </xs:annotation>
  1795. <xs:restriction base="xs:token">
  1796. <xs:pattern value="\c+" id="NMTOKEN.pattern">
  1797. <xs:annotation>
  1798. <xs:documentation
  1799. source="http://www.w3.org/TR/REC-xml#NT-Nmtoken">
  1800. pattern matches production 7 from the XML spec
  1801. </xs:documentation>
  1802. </xs:annotation>
  1803. </xs:pattern>
  1804. </xs:restriction>
  1805. </xs:simpleType>
  1806. <xs:simpleType name="NMTOKENS" id="NMTOKENS">
  1807. <xs:annotation>
  1808. <xs:appinfo>
  1809. <hfp:hasFacet name="length"/>
  1810. <hfp:hasFacet name="minLength"/>
  1811. <hfp:hasFacet name="maxLength"/>
  1812. <hfp:hasFacet name="enumeration"/>
  1813. <hfp:hasFacet name="whiteSpace"/>
  1814. <hfp:hasFacet name="pattern"/>
  1815. <hfp:hasProperty name="ordered" value="false"/>
  1816. <hfp:hasProperty name="bounded" value="false"/>
  1817. <hfp:hasProperty name="cardinality"
  1818. value="countably infinite"/>
  1819. <hfp:hasProperty name="numeric" value="false"/>
  1820. </xs:appinfo>
  1821. <xs:documentation
  1822. source="http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/>
  1823. </xs:annotation>
  1824. <xs:restriction>
  1825. <xs:simpleType>
  1826. <xs:list itemType="xs:NMTOKEN"/>
  1827. </xs:simpleType>
  1828. <xs:minLength value="1" id="NMTOKENS.minLength"/>
  1829. </xs:restriction>
  1830. </xs:simpleType>
  1831. <xs:simpleType name="Name" id="Name">
  1832. <xs:annotation>
  1833. <xs:documentation
  1834. source="http://www.w3.org/TR/xmlschema-2/#Name"/>
  1835. </xs:annotation>
  1836. <xs:restriction base="xs:token">
  1837. <xs:pattern value="\i\c*" id="Name.pattern">
  1838. <xs:annotation>
  1839. <xs:documentation
  1840. source="http://www.w3.org/TR/REC-xml#NT-Name">
  1841. pattern matches production 5 from the XML spec
  1842. </xs:documentation>
  1843. </xs:annotation>
  1844. </xs:pattern>
  1845. </xs:restriction>
  1846. </xs:simpleType>
  1847. <xs:simpleType name="NCName" id="NCName">
  1848. <xs:annotation>
  1849. <xs:documentation
  1850. source="http://www.w3.org/TR/xmlschema-2/#NCName"/>
  1851. </xs:annotation>
  1852. <xs:restriction base="xs:Name">
  1853. <xs:pattern value="[\i-[:]][\c-[:]]*" id="NCName.pattern">
  1854. <xs:annotation>
  1855. <xs:documentation
  1856. source="http://www.w3.org/TR/REC-xml-names/#NT-NCName">
  1857. pattern matches production 4 from the Namespaces in XML spec
  1858. </xs:documentation>
  1859. </xs:annotation>
  1860. </xs:pattern>
  1861. </xs:restriction>
  1862. </xs:simpleType>
  1863. <xs:simpleType name="ID" id="ID">
  1864. <xs:annotation>
  1865. <xs:documentation
  1866. source="http://www.w3.org/TR/xmlschema-2/#ID"/>
  1867. </xs:annotation>
  1868. <xs:restriction base="xs:NCName"/>
  1869. </xs:simpleType>
  1870. <xs:simpleType name="IDREF" id="IDREF">
  1871. <xs:annotation>
  1872. <xs:documentation
  1873. source="http://www.w3.org/TR/xmlschema-2/#IDREF"/>
  1874. </xs:annotation>
  1875. <xs:restriction base="xs:NCName"/>
  1876. </xs:simpleType>
  1877. <xs:simpleType name="ENTITY" id="ENTITY">
  1878. <xs:annotation>
  1879. <xs:documentation
  1880. source="http://www.w3.org/TR/xmlschema-2/#ENTITY"/>
  1881. </xs:annotation>
  1882. <xs:restriction base="xs:NCName"/>
  1883. </xs:simpleType>
  1884. <xs:simpleType name="integer" id="integer">
  1885. <xs:annotation>
  1886. <xs:documentation
  1887. source="http://www.w3.org/TR/xmlschema-2/#integer"/>
  1888. </xs:annotation>
  1889. <xs:restriction base="xs:decimal">
  1890. <xs:fractionDigits value="0" fixed="true" id="integer.fractionDigits"/>
  1891. <xs:pattern value="[\-+]?[0-9]+"/>
  1892. </xs:restriction>
  1893. </xs:simpleType>
  1894. <xs:simpleType name="nonPositiveInteger" id="nonPositiveInteger">
  1895. <xs:annotation>
  1896. <xs:documentation
  1897. source="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger"/>
  1898. </xs:annotation>
  1899. <xs:restriction base="xs:integer">
  1900. <xs:maxInclusive value="0" id="nonPositiveInteger.maxInclusive"/>
  1901. </xs:restriction>
  1902. </xs:simpleType>
  1903. <xs:simpleType name="negativeInteger" id="negativeInteger">
  1904. <xs:annotation>
  1905. <xs:documentation
  1906. source="http://www.w3.org/TR/xmlschema-2/#negativeInteger"/>
  1907. </xs:annotation>
  1908. <xs:restriction base="xs:nonPositiveInteger">
  1909. <xs:maxInclusive value="-1" id="negativeInteger.maxInclusive"/>
  1910. </xs:restriction>
  1911. </xs:simpleType>
  1912. <xs:simpleType name="long" id="long">
  1913. <xs:annotation>
  1914. <xs:appinfo>
  1915. <hfp:hasProperty name="bounded" value="true"/>
  1916. <hfp:hasProperty name="cardinality" value="finite"/>
  1917. </xs:appinfo>
  1918. <xs:documentation
  1919. source="http://www.w3.org/TR/xmlschema-2/#long"/>
  1920. </xs:annotation>
  1921. <xs:restriction base="xs:integer">
  1922. <xs:minInclusive value="-9223372036854775808" id="long.minInclusive"/>
  1923. <xs:maxInclusive value="9223372036854775807" id="long.maxInclusive"/>
  1924. </xs:restriction>
  1925. </xs:simpleType>
  1926. <xs:simpleType name="int" id="int">
  1927. <xs:annotation>
  1928. <xs:documentation
  1929. source="http://www.w3.org/TR/xmlschema-2/#int"/>
  1930. </xs:annotation>
  1931. <xs:restriction base="xs:long">
  1932. <xs:minInclusive value="-2147483648" id="int.minInclusive"/>
  1933. <xs:maxInclusive value="2147483647" id="int.maxInclusive"/>
  1934. </xs:restriction>
  1935. </xs:simpleType>
  1936. <xs:simpleType name="short" id="short">
  1937. <xs:annotation>
  1938. <xs:documentation
  1939. source="http://www.w3.org/TR/xmlschema-2/#short"/>
  1940. </xs:annotation>
  1941. <xs:restriction base="xs:int">
  1942. <xs:minInclusive value="-32768" id="short.minInclusive"/>
  1943. <xs:maxInclusive value="32767" id="short.maxInclusive"/>
  1944. </xs:restriction>
  1945. </xs:simpleType>
  1946. <xs:simpleType name="byte" id="byte">
  1947. <xs:annotation>
  1948. <xs:documentation
  1949. source="http://www.w3.org/TR/xmlschema-2/#byte"/>
  1950. </xs:annotation>
  1951. <xs:restriction base="xs:short">
  1952. <xs:minInclusive value="-128" id="byte.minInclusive"/>
  1953. <xs:maxInclusive value="127" id="byte.maxInclusive"/>
  1954. </xs:restriction>
  1955. </xs:simpleType>
  1956. <xs:simpleType name="nonNegativeInteger" id="nonNegativeInteger">
  1957. <xs:annotation>
  1958. <xs:documentation
  1959. source="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/>
  1960. </xs:annotation>
  1961. <xs:restriction base="xs:integer">
  1962. <xs:minInclusive value="0" id="nonNegativeInteger.minInclusive"/>
  1963. </xs:restriction>
  1964. </xs:simpleType>
  1965. <xs:simpleType name="unsignedLong" id="unsignedLong">
  1966. <xs:annotation>
  1967. <xs:appinfo>
  1968. <hfp:hasProperty name="bounded" value="true"/>
  1969. <hfp:hasProperty name="cardinality" value="finite"/>
  1970. </xs:appinfo>
  1971. <xs:documentation
  1972. source="http://www.w3.org/TR/xmlschema-2/#unsignedLong"/>
  1973. </xs:annotation>
  1974. <xs:restriction base="xs:nonNegativeInteger">
  1975. <xs:maxInclusive value="18446744073709551615"
  1976. id="unsignedLong.maxInclusive"/>
  1977. </xs:restriction>
  1978. </xs:simpleType>
  1979. <xs:simpleType name="unsignedInt" id="unsignedInt">
  1980. <xs:annotation>
  1981. <xs:documentation
  1982. source="http://www.w3.org/TR/xmlschema-2/#unsignedInt"/>
  1983. </xs:annotation>
  1984. <xs:restriction base="xs:unsignedLong">
  1985. <xs:maxInclusive value="4294967295"
  1986. id="unsignedInt.maxInclusive"/>
  1987. </xs:restriction>
  1988. </xs:simpleType>
  1989. <xs:simpleType name="unsignedShort" id="unsignedShort">
  1990. <xs:annotation>
  1991. <xs:documentation
  1992. source="http://www.w3.org/TR/xmlschema-2/#unsignedShort"/>
  1993. </xs:annotation>
  1994. <xs:restriction base="xs:unsignedInt">
  1995. <xs:maxInclusive value="65535"
  1996. id="unsignedShort.maxInclusive"/>
  1997. </xs:restriction>
  1998. </xs:simpleType>
  1999. <xs:simpleType name="unsignedByte" id="unsignedByte">
  2000. <xs:annotation>
  2001. <xs:documentation
  2002. source="http://www.w3.org/TR/xmlschema-2/#unsignedByte"/>
  2003. </xs:annotation>
  2004. <xs:restriction base="xs:unsignedShort">
  2005. <xs:maxInclusive value="255" id="unsignedByte.maxInclusive"/>
  2006. </xs:restriction>
  2007. </xs:simpleType>
  2008. <xs:simpleType name="positiveInteger" id="positiveInteger">
  2009. <xs:annotation>
  2010. <xs:documentation
  2011. source="http://www.w3.org/TR/xmlschema-2/#positiveInteger"/>
  2012. </xs:annotation>
  2013. <xs:restriction base="xs:nonNegativeInteger">
  2014. <xs:minInclusive value="1" id="positiveInteger.minInclusive"/>
  2015. </xs:restriction>
  2016. </xs:simpleType>
  2017. <xs:simpleType name="derivationControl">
  2018. <xs:annotation>
  2019. <xs:documentation>
  2020. A utility type, not for public use</xs:documentation>
  2021. </xs:annotation>
  2022. <xs:restriction base="xs:NMTOKEN">
  2023. <xs:enumeration value="substitution"/>
  2024. <xs:enumeration value="extension"/>
  2025. <xs:enumeration value="restriction"/>
  2026. <xs:enumeration value="list"/>
  2027. <xs:enumeration value="union"/>
  2028. </xs:restriction>
  2029. </xs:simpleType>
  2030. <xs:group name="simpleDerivation">
  2031. <xs:choice>
  2032. <xs:element ref="xs:restriction"/>
  2033. <xs:element ref="xs:list"/>
  2034. <xs:element ref="xs:union"/>
  2035. </xs:choice>
  2036. </xs:group>
  2037. <xs:simpleType name="simpleDerivationSet">
  2038. <xs:annotation>
  2039. <xs:documentation>
  2040. #all or (possibly empty) subset of {restriction, union, list}
  2041. </xs:documentation>
  2042. <xs:documentation>
  2043. A utility type, not for public use</xs:documentation>
  2044. </xs:annotation>
  2045. <xs:union>
  2046. <xs:simpleType>
  2047. <xs:restriction base="xs:token">
  2048. <xs:enumeration value="#all"/>
  2049. </xs:restriction>
  2050. </xs:simpleType>
  2051. <xs:simpleType>
  2052. <xs:list>
  2053. <xs:simpleType>
  2054. <xs:restriction base="xs:derivationControl">
  2055. <xs:enumeration value="list"/>
  2056. <xs:enumeration value="union"/>
  2057. <xs:enumeration value="restriction"/>
  2058. </xs:restriction>
  2059. </xs:simpleType>
  2060. </xs:list>
  2061. </xs:simpleType>
  2062. </xs:union>
  2063. </xs:simpleType>
  2064. <xs:complexType name="simpleType" abstract="true">
  2065. <xs:complexContent>
  2066. <xs:extension base="xs:annotated">
  2067. <xs:group ref="xs:simpleDerivation"/>
  2068. <xs:attribute name="final" type="xs:simpleDerivationSet"/>
  2069. <xs:attribute name="name" type="xs:NCName">
  2070. <xs:annotation>
  2071. <xs:documentation>
  2072. Can be restricted to required or forbidden
  2073. </xs:documentation>
  2074. </xs:annotation>
  2075. </xs:attribute>
  2076. </xs:extension>
  2077. </xs:complexContent>
  2078. </xs:complexType>
  2079. <xs:complexType name="topLevelSimpleType">
  2080. <xs:complexContent>
  2081. <xs:restriction base="xs:simpleType">
  2082. <xs:sequence>
  2083. <xs:element ref="xs:annotation" minOccurs="0"/>
  2084. <xs:group ref="xs:simpleDerivation"/>
  2085. </xs:sequence>
  2086. <xs:attribute name="name" use="required"
  2087. type="xs:NCName">
  2088. <xs:annotation>
  2089. <xs:documentation>
  2090. Required at the top level
  2091. </xs:documentation>
  2092. </xs:annotation>
  2093. </xs:attribute>
  2094. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2095. </xs:restriction>
  2096. </xs:complexContent>
  2097. </xs:complexType>
  2098. <xs:complexType name="localSimpleType">
  2099. <xs:complexContent>
  2100. <xs:restriction base="xs:simpleType">
  2101. <xs:sequence>
  2102. <xs:element ref="xs:annotation" minOccurs="0"/>
  2103. <xs:group ref="xs:simpleDerivation"/>
  2104. </xs:sequence>
  2105. <xs:attribute name="name" use="prohibited">
  2106. <xs:annotation>
  2107. <xs:documentation>
  2108. Forbidden when nested
  2109. </xs:documentation>
  2110. </xs:annotation>
  2111. </xs:attribute>
  2112. <xs:attribute name="final" use="prohibited"/>
  2113. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2114. </xs:restriction>
  2115. </xs:complexContent>
  2116. </xs:complexType>
  2117. <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
  2118. <xs:annotation>
  2119. <xs:documentation
  2120. source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
  2121. </xs:annotation>
  2122. </xs:element>
  2123. <xs:group name="facets">
  2124. <xs:annotation>
  2125. <xs:documentation>
  2126. We should use a substitution group for facets, but
  2127. that's ruled out because it would allow users to
  2128. add their own, which we're not ready for yet.
  2129. </xs:documentation>
  2130. </xs:annotation>
  2131. <xs:choice>
  2132. <xs:element ref="xs:minExclusive"/>
  2133. <xs:element ref="xs:minInclusive"/>
  2134. <xs:element ref="xs:maxExclusive"/>
  2135. <xs:element ref="xs:maxInclusive"/>
  2136. <xs:element ref="xs:totalDigits"/>
  2137. <xs:element ref="xs:fractionDigits"/>
  2138. <xs:element ref="xs:length"/>
  2139. <xs:element ref="xs:minLength"/>
  2140. <xs:element ref="xs:maxLength"/>
  2141. <xs:element ref="xs:enumeration"/>
  2142. <xs:element ref="xs:whiteSpace"/>
  2143. <xs:element ref="xs:pattern"/>
  2144. </xs:choice>
  2145. </xs:group>
  2146. <xs:group name="simpleRestrictionModel">
  2147. <xs:sequence>
  2148. <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
  2149. <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
  2150. </xs:sequence>
  2151. </xs:group>
  2152. <xs:element name="restriction" id="restriction">
  2153. <xs:complexType>
  2154. <xs:annotation>
  2155. <xs:documentation
  2156. source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
  2157. base attribute and simpleType child are mutually
  2158. exclusive, but one or other is required
  2159. </xs:documentation>
  2160. </xs:annotation>
  2161. <xs:complexContent>
  2162. <xs:extension base="xs:annotated">
  2163. <xs:group ref="xs:simpleRestrictionModel"/>
  2164. <xs:attribute name="base" type="xs:QName" use="optional"/>
  2165. </xs:extension>
  2166. </xs:complexContent>
  2167. </xs:complexType>
  2168. </xs:element>
  2169. <xs:element name="list" id="list">
  2170. <xs:complexType>
  2171. <xs:annotation>
  2172. <xs:documentation
  2173. source="http://www.w3.org/TR/xmlschema-2/#element-list">
  2174. itemType attribute and simpleType child are mutually
  2175. exclusive, but one or other is required
  2176. </xs:documentation>
  2177. </xs:annotation>
  2178. <xs:complexContent>
  2179. <xs:extension base="xs:annotated">
  2180. <xs:sequence>
  2181. <xs:element name="simpleType" type="xs:localSimpleType"
  2182. minOccurs="0"/>
  2183. </xs:sequence>
  2184. <xs:attribute name="itemType" type="xs:QName" use="optional"/>
  2185. </xs:extension>
  2186. </xs:complexContent>
  2187. </xs:complexType>
  2188. </xs:element>
  2189. <xs:element name="union" id="union">
  2190. <xs:complexType>
  2191. <xs:annotation>
  2192. <xs:documentation
  2193. source="http://www.w3.org/TR/xmlschema-2/#element-union">
  2194. memberTypes attribute must be non-empty or there must be
  2195. at least one simpleType child
  2196. </xs:documentation>
  2197. </xs:annotation>
  2198. <xs:complexContent>
  2199. <xs:extension base="xs:annotated">
  2200. <xs:sequence>
  2201. <xs:element name="simpleType" type="xs:localSimpleType"
  2202. minOccurs="0" maxOccurs="unbounded"/>
  2203. </xs:sequence>
  2204. <xs:attribute name="memberTypes" use="optional">
  2205. <xs:simpleType>
  2206. <xs:list itemType="xs:QName"/>
  2207. </xs:simpleType>
  2208. </xs:attribute>
  2209. </xs:extension>
  2210. </xs:complexContent>
  2211. </xs:complexType>
  2212. </xs:element>
  2213. <xs:complexType name="facet">
  2214. <xs:complexContent>
  2215. <xs:extension base="xs:annotated">
  2216. <xs:attribute name="value" use="required"/>
  2217. <xs:attribute name="fixed" type="xs:boolean" use="optional"
  2218. default="false"/>
  2219. </xs:extension>
  2220. </xs:complexContent>
  2221. </xs:complexType>
  2222. <xs:complexType name="noFixedFacet">
  2223. <xs:complexContent>
  2224. <xs:restriction base="xs:facet">
  2225. <xs:sequence>
  2226. <xs:element ref="xs:annotation" minOccurs="0"/>
  2227. </xs:sequence>
  2228. <xs:attribute name="fixed" use="prohibited"/>
  2229. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2230. </xs:restriction>
  2231. </xs:complexContent>
  2232. </xs:complexType>
  2233. <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
  2234. <xs:annotation>
  2235. <xs:documentation
  2236. source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
  2237. </xs:annotation>
  2238. </xs:element>
  2239. <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
  2240. <xs:annotation>
  2241. <xs:documentation
  2242. source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
  2243. </xs:annotation>
  2244. </xs:element>
  2245. <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
  2246. <xs:annotation>
  2247. <xs:documentation
  2248. source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
  2249. </xs:annotation>
  2250. </xs:element>
  2251. <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
  2252. <xs:annotation>
  2253. <xs:documentation
  2254. source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
  2255. </xs:annotation>
  2256. </xs:element>
  2257. <xs:complexType name="numFacet">
  2258. <xs:complexContent>
  2259. <xs:restriction base="xs:facet">
  2260. <xs:sequence>
  2261. <xs:element ref="xs:annotation" minOccurs="0"/>
  2262. </xs:sequence>
  2263. <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
  2264. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2265. </xs:restriction>
  2266. </xs:complexContent>
  2267. </xs:complexType>
  2268. <xs:element name="totalDigits" id="totalDigits">
  2269. <xs:annotation>
  2270. <xs:documentation
  2271. source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
  2272. </xs:annotation>
  2273. <xs:complexType>
  2274. <xs:complexContent>
  2275. <xs:restriction base="xs:numFacet">
  2276. <xs:sequence>
  2277. <xs:element ref="xs:annotation" minOccurs="0"/>
  2278. </xs:sequence>
  2279. <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
  2280. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2281. </xs:restriction>
  2282. </xs:complexContent>
  2283. </xs:complexType>
  2284. </xs:element>
  2285. <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
  2286. <xs:annotation>
  2287. <xs:documentation
  2288. source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
  2289. </xs:annotation>
  2290. </xs:element>
  2291. <xs:element name="length" id="length" type="xs:numFacet">
  2292. <xs:annotation>
  2293. <xs:documentation
  2294. source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
  2295. </xs:annotation>
  2296. </xs:element>
  2297. <xs:element name="minLength" id="minLength" type="xs:numFacet">
  2298. <xs:annotation>
  2299. <xs:documentation
  2300. source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
  2301. </xs:annotation>
  2302. </xs:element>
  2303. <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
  2304. <xs:annotation>
  2305. <xs:documentation
  2306. source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
  2307. </xs:annotation>
  2308. </xs:element>
  2309. <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
  2310. <xs:annotation>
  2311. <xs:documentation
  2312. source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
  2313. </xs:annotation>
  2314. </xs:element>
  2315. <xs:element name="whiteSpace" id="whiteSpace">
  2316. <xs:annotation>
  2317. <xs:documentation
  2318. source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
  2319. </xs:annotation>
  2320. <xs:complexType>
  2321. <xs:complexContent>
  2322. <xs:restriction base="xs:facet">
  2323. <xs:sequence>
  2324. <xs:element ref="xs:annotation" minOccurs="0"/>
  2325. </xs:sequence>
  2326. <xs:attribute name="value" use="required">
  2327. <xs:simpleType>
  2328. <xs:restriction base="xs:NMTOKEN">
  2329. <xs:enumeration value="preserve"/>
  2330. <xs:enumeration value="replace"/>
  2331. <xs:enumeration value="collapse"/>
  2332. </xs:restriction>
  2333. </xs:simpleType>
  2334. </xs:attribute>
  2335. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2336. </xs:restriction>
  2337. </xs:complexContent>
  2338. </xs:complexType>
  2339. </xs:element>
  2340. <xs:element name="pattern" id="pattern">
  2341. <xs:annotation>
  2342. <xs:documentation
  2343. source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
  2344. </xs:annotation>
  2345. <xs:complexType>
  2346. <xs:complexContent>
  2347. <xs:restriction base="xs:noFixedFacet">
  2348. <xs:sequence>
  2349. <xs:element ref="xs:annotation" minOccurs="0"/>
  2350. </xs:sequence>
  2351. <xs:attribute name="value" type="xs:string" use="required"/>
  2352. <xs:anyAttribute namespace="##other" processContents="lax"/>
  2353. </xs:restriction>
  2354. </xs:complexContent>
  2355. </xs:complexType>
  2356. </xs:element>
  2357. </xs:schema>