Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

345 lines
14 KiB

  1. <!-- DTD for XML Schemas: Part 1: Structures -->
  2. <!-- Note this DTD is NOT the normative structures DTD - - the
  3. prose copy in the structures REC is the normative version (which
  4. shouldn't differ from this one except for this comment and entity
  5. expansions, but just in case -->
  6. <!ENTITY % versionEntities SYSTEM "versionInfo.ent">
  7. %versionEntities;
  8. <!-- The the datatype element and its components
  9. are defined in XML Schema: Part 2: Datatypes -->
  10. <!-- Note %p is defined in datatypes.dtd -->
  11. <!ENTITY % xs-datatypes PUBLIC 'datatypes'
  12. 'datatypes.dtd' >
  13. %xs-datatypes;
  14. <!ENTITY % s ''> <!-- if %p is defined (e.g. as foo:) then you must
  15. also define %s as the suffix for the appropriate
  16. namespace declaration (e.g. :foo) -->
  17. <!ENTITY % nds 'xmlns%s;'>
  18. <!-- Define all the element names, with optional prefix -->
  19. <!ENTITY % schema "%p;schema">
  20. <!ENTITY % complexType "%p;complexType">
  21. <!ENTITY % element "%p;element">
  22. <!ENTITY % unique "%p;unique">
  23. <!ENTITY % key "%p;key">
  24. <!ENTITY % keyref "%p;keyref">
  25. <!ENTITY % selector "%p;selector">
  26. <!ENTITY % field "%p;field">
  27. <!ENTITY % group "%p;group">
  28. <!ENTITY % all "%p;all">
  29. <!ENTITY % choice "%p;choice">
  30. <!ENTITY % sequence "%p;sequence">
  31. <!ENTITY % any "%p;any">
  32. <!ENTITY % anyAttribute "%p;anyAttribute">
  33. <!ENTITY % sic "%p;sic">
  34. <!ENTITY % attribute "%p;attribute">
  35. <!ENTITY % attributeGroup "%p;attributeGroup">
  36. <!ENTITY % include "%p;include">
  37. <!ENTITY % import "%p;import">
  38. <!ENTITY % notation "%p;notation">
  39. <!-- Customisation entities for the ATTLIST of each element type.
  40. Define one of these if your schema takes advantage of the
  41. anyAttribute='##other' in the schema for schemas -->
  42. <!ENTITY % schemaAttrs ''>
  43. <!ENTITY % complexTypeAttrs ''>
  44. <!ENTITY % elementAttrs ''>
  45. <!ENTITY % groupAttrs ''>
  46. <!ENTITY % allAttrs ''>
  47. <!ENTITY % choiceAttrs ''>
  48. <!ENTITY % sequenceAttrs ''>
  49. <!ENTITY % anyAttrs ''>
  50. <!ENTITY % anyAttributeAttrs ''>
  51. <!ENTITY % attributeAttrs ''>
  52. <!ENTITY % attributeGroupAttrs ''>
  53. <!ENTITY % uniqueAttrs ''>
  54. <!ENTITY % keyAttrs ''>
  55. <!ENTITY % keyrefAttrs ''>
  56. <!ENTITY % includeAttrs ''>
  57. <!ENTITY % importAttrs ''>
  58. <!ENTITY % notationAttrs ''>
  59. <!ENTITY % complexDerivationChoice "(extension|restriction|reproduction)">
  60. <!ENTITY % complexDerivationSet "CDATA">
  61. <!-- #all or space-separated list drawn from derivationChoice -->
  62. <!ENTITY % blockSet "CDATA">
  63. <!-- #all or space-separated list drawn from
  64. derivationChoice + 'equivClass' and 'list' -->
  65. <!ENTITY % mgs '%all; | %choice; | %sequence;'>
  66. <!ENTITY % cs '%choice; | %sequence;'>
  67. <!-- the duplication below is to produce an unambiguous content model
  68. which allows annotation everywhere -->
  69. <!ELEMENT %schema; ((%include; | %import; | %annotation;)*,
  70. (%simpleType; | %complexType;
  71. | %element;
  72. | %attributeGroup; | %group;
  73. | %notation; ),
  74. (%annotation;
  75. | %simpleType; | %complexType;
  76. | %element;
  77. | %attributeGroup; | %group;
  78. | %notation; )* )>
  79. <!ATTLIST %schema;
  80. targetNamespace %URIref; #IMPLIED
  81. version CDATA #IMPLIED
  82. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  83. %dtnds; %URIref; #FIXED '&XMLSchemaNS;/datatypes'
  84. finalDefault %complexDerivationSet; ''
  85. blockDefault %blockSet; ''
  86. id ID #IMPLIED
  87. %schemaAttrs;>
  88. <!-- Note the xmlns declaration is NOT in the Schema for Schemas,
  89. because at the Infoset level where schemas operate,
  90. xmlns(:prefix) is NOT an attribute! -->
  91. <!-- The id attribute here and below is for use in external references
  92. from non-schemas using simple fragment identifiers.
  93. It is NOT used for schema-to-schema reference, internal or
  94. external. -->
  95. <!-- a type is a named content type specification which allows attribute
  96. declarations-->
  97. <!-- -->
  98. <!ELEMENT %complexType; ((%annotation;)?,
  99. ((%facet;)*|
  100. ((%element;| %mgs; | %group; | %any;)*,
  101. (%attribute;| %attributeGroup;)*,
  102. (%anyAttribute;)?)))>
  103. <!ATTLIST %complexType;
  104. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  105. name %NCName; #IMPLIED
  106. id ID #IMPLIED
  107. content (textOnly|mixed|elementOnly|empty) #IMPLIED
  108. abstract %boolean; 'false'
  109. final %complexDerivationSet; ''
  110. block %complexDerivationSet; ''
  111. derivedBy %complexDerivationChoice; #IMPLIED
  112. base %QName; #IMPLIED
  113. %complexTypeAttrs;>
  114. <!-- facets only if derivedBy='restriction' -->
  115. <!-- (element|group|any) only if content=mixed or =elementOnly
  116. and NO derivedBy at all, i.e. a root type -->
  117. <!-- content defaults to base's if there is a complex base,
  118. textonly if there's a simple base,
  119. 'mixed' if no base (because that's the urType's content)
  120. and no content daughters,
  121. 'elementOnly' otherwise -->
  122. <!-- should we replace content='empty' with content='elementOnly'
  123. final='#all' plus no content? -->
  124. <!-- If one top-level group, that IS the content model, otherwise
  125. an implicit group obtains.
  126. This is
  127. <sequence minOccurs='1' maxOccurs='1'>
  128. unless content='mixed', in which case it's
  129. <choice minOccurs='0' maxOccurs='*'> -->
  130. <!-- If anyAttribute appears in one or more referenced attributeGroups
  131. and/or explicitly, the intersection of the permissions is used -->
  132. <!-- A text-only type with no attributes differs from a datatype with
  133. the same base qualified the same way in regard to the impact on
  134. attributes of anyAttribute -->
  135. <!-- an element is declared by either:
  136. a name and a type (either nested or referenced via the type attribute)
  137. or:
  138. a ref to an existing element declaration -->
  139. <!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
  140. (%unique; | %key; | %keyref;)*)>
  141. <!-- type or datatype only if no type|ref attribute -->
  142. <!-- ref not allowed at top level -->
  143. <!ATTLIST %element;
  144. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  145. name %NCName; #IMPLIED
  146. id ID #IMPLIED
  147. ref %QName; #IMPLIED
  148. type %QName; #IMPLIED
  149. minOccurs %non-negative-integer; '1'
  150. maxOccurs CDATA #IMPLIED
  151. nullable %boolean; 'false'
  152. equivClass %QName; #IMPLIED
  153. abstract %boolean; 'false'
  154. final %complexDerivationSet; ''
  155. block %blockSet; ''
  156. default CDATA #IMPLIED
  157. fixed CDATA #IMPLIED
  158. %elementAttrs;>
  159. <!-- type and ref are mutually exclusive.
  160. name and ref are mutually exculsive, one is required -->
  161. <!-- In the absence of type AND ref, type defaults to type of
  162. equivClass, if any, else the ur-type, i.e. unconstrained -->
  163. <!-- maxOccurs defaults to 1 or minOccurs, whichever is greater -->
  164. <!-- default and fixed are mutually exclusive -->
  165. <!ELEMENT %group; (%mgs;)?>
  166. <!ATTLIST %group;
  167. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  168. name %NCName; #IMPLIED
  169. ref %QName; #IMPLIED
  170. minOccurs %non-negative-integer; '1'
  171. maxOccurs CDATA #IMPLIED
  172. id ID #IMPLIED
  173. %groupAttrs;>
  174. <!ELEMENT %all; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
  175. <!ATTLIST %all;
  176. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  177. minOccurs %non-negative-integer; '1'
  178. maxOccurs CDATA #IMPLIED
  179. id ID #IMPLIED
  180. %allAttrs;>
  181. <!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
  182. <!ATTLIST %choice;
  183. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  184. minOccurs %non-negative-integer; '1'
  185. maxOccurs CDATA #IMPLIED
  186. id ID #IMPLIED
  187. %choiceAttrs;>
  188. <!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
  189. <!ATTLIST %sequence;
  190. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  191. minOccurs %non-negative-integer; '1'
  192. maxOccurs CDATA #IMPLIED
  193. id ID #IMPLIED
  194. %sequenceAttrs;>
  195. <!-- an anonymous grouping in a model, or
  196. a top-level named group definition, or a reference to same -->
  197. <!-- Note that if order is 'all', group is not allowed inside.
  198. If order is 'all' THIS group must be alone (or referenced alone) at
  199. the top level of a content model -->
  200. <!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
  201. <!-- Should allow minOccurs=0 inside order='all' . . . -->
  202. <!ELEMENT %any; EMPTY>
  203. <!ATTLIST %any;
  204. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  205. namespace CDATA '##any'
  206. processContents (skip|lax|strict) 'strict'
  207. minOccurs %non-negative-integer; '1'
  208. maxOccurs CDATA #IMPLIED
  209. %anyAttrs;>
  210. <!-- namespace is interpreted as follows:
  211. ##any - - any non-conflicting WFXML at all
  212. ##other - - any non-conflicting WFXML from namespace other
  213. than targetNamespace
  214. ##local - - any unqualified non-conflicting WFXML/attribute
  215. one or - - any non-conflicting WFXML from
  216. more URI the listed namespaces
  217. references
  218. ##targetNamespace may appear in the above list, with the
  219. obvious meaning -->
  220. <!ELEMENT %anyAttribute; EMPTY>
  221. <!ATTLIST %anyAttribute;
  222. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  223. namespace CDATA '##any'
  224. %anyAttributeAttrs;>
  225. <!-- namespace is interpreted as for 'any' above -->
  226. <!-- for use inside basetype to copy down corresponding content
  227. model particle from the basetype's content model -->
  228. <!ELEMENT %sic; EMPTY>
  229. <!ATTLIST %sic;
  230. %nds; %URIref; #FIXED '&XMLSchemaNS;'>
  231. <!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
  232. <!ATTLIST %attribute;
  233. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  234. name %NCName; #REQUIRED
  235. type %QName; #IMPLIED
  236. maxOccurs (0|1) '1'
  237. minOccurs (0|1) '0'
  238. default CDATA #IMPLIED
  239. fixed CDATA #IMPLIED
  240. %attributeAttrs;>
  241. <!-- default and fixed are mutually exclusive -->
  242. <!-- type attr and datatype content are mutually exclusive -->
  243. <!-- an attributeGroup is a named collection of attribute decls, or a
  244. reference thereto -->
  245. <!ELEMENT %attributeGroup; ((%annotation;)?,
  246. (%attribute; | %attributeGroup;)*,
  247. (%anyAttribute;)?) >
  248. <!ATTLIST %attributeGroup;
  249. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  250. name %NCName; #IMPLIED
  251. id ID #IMPLIED
  252. ref %QName; #IMPLIED
  253. %attributeGroupAttrs;>
  254. <!-- ref iff no content, no name. ref iff not top level -->
  255. <!-- better reference mechanisms -->
  256. <!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
  257. <!ATTLIST %unique; name %NCName; #REQUIRED
  258. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  259. id ID #IMPLIED
  260. %uniqueAttrs;>
  261. <!ELEMENT %key; ((%annotation;)?, %selector;, (%field;)+)>
  262. <!ATTLIST %key; name %NCName; #REQUIRED
  263. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  264. id ID #IMPLIED
  265. %keyAttrs;>
  266. <!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
  267. <!ATTLIST %keyref;
  268. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  269. name %NCName; #REQUIRED
  270. id ID #IMPLIED
  271. refer %QName; #REQUIRED
  272. %keyrefAttrs;>
  273. <!ELEMENT %selector; (#PCDATA)>
  274. <!ATTLIST %selector;
  275. %nds; %URIref; #FIXED '&XMLSchemaNS;'>
  276. <!ELEMENT %field; (#PCDATA)>
  277. <!ATTLIST %field;
  278. %nds; %URIref; #FIXED '&XMLSchemaNS;'>
  279. <!-- Schema combination mechanisms -->
  280. <!ELEMENT %include; EMPTY>
  281. <!ATTLIST %include; schemaLocation %URIref; #REQUIRED
  282. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  283. %includeAttrs;>
  284. <!ELEMENT %import; EMPTY>
  285. <!ATTLIST %import; namespace %URIref; #REQUIRED
  286. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  287. schemaLocation %URIref; #IMPLIED
  288. %importAttrs;>
  289. <!ELEMENT %notation; EMPTY>
  290. <!ATTLIST %notation;
  291. %nds; %URIref; #FIXED '&XMLSchemaNS;'
  292. name %NCName; #REQUIRED
  293. id ID #IMPLIED
  294. public CDATA #REQUIRED
  295. system %URIref; #IMPLIED
  296. %notationAttrs;>
  297. <!NOTATION XMLSchemaStructures PUBLIC 'structures'
  298. '&XSP1.URI;.xsd' >
  299. <!NOTATION XML PUBLIC 'REC-xml-1998-0210'
  300. 'http://www.w3.org/TR/1998/REC-xml-19980210' >