XMLSchema.dtd
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:16k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. <!-- DTD for XML Schemas: Part 1: Structures
  2.      Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
  3.      Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
  4. <!-- $Id: XMLSchema.dtd,v 1.4 2005/07/08 20:28:38 openvxiadmin1 Exp $ -->
  5. <!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
  6. <!-- prose copy in the structures REC is the definitive version -->    <!--d-->
  7. <!-- (which shouldn't differ from this one except for this -->         <!--d-->
  8. <!-- comment and entity expansions, but just in case) -->              <!--d-->
  9. <!-- With the exception of cases with multiple namespace
  10.      prefixes for the XML Schema namespace, any XML document which is
  11.      not valid per this DTD given redefinitions in its internal subset of the
  12.      'p' and 's' parameter entities below appropriate to its namespace
  13.      declaration of the XML Schema namespace is almost certainly not
  14.      a valid schema. -->
  15. <!-- The simpleType element and its constituent parts
  16.      are defined in XML Schema: Part 2: Datatypes -->
  17. <!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
  18. <!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
  19.                          schema document to establish a different
  20.                          namespace prefix -->
  21. <!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
  22.                          also define %s as the suffix for the appropriate
  23.                          namespace declaration (e.g. :foo) -->
  24. <!ENTITY % nds 'xmlns%s;'>
  25. <!-- Define all the element names, with optional prefix -->
  26. <!ENTITY % schema "%p;schema">
  27. <!ENTITY % complexType "%p;complexType">
  28. <!ENTITY % complexContent "%p;complexContent">
  29. <!ENTITY % simpleContent "%p;simpleContent">
  30. <!ENTITY % extension "%p;extension">
  31. <!ENTITY % element "%p;element">
  32. <!ENTITY % unique "%p;unique">
  33. <!ENTITY % key "%p;key">
  34. <!ENTITY % keyref "%p;keyref">
  35. <!ENTITY % selector "%p;selector">
  36. <!ENTITY % field "%p;field">
  37. <!ENTITY % group "%p;group">
  38. <!ENTITY % all "%p;all">
  39. <!ENTITY % choice "%p;choice">
  40. <!ENTITY % sequence "%p;sequence">
  41. <!ENTITY % any "%p;any">
  42. <!ENTITY % anyAttribute "%p;anyAttribute">
  43. <!ENTITY % attribute "%p;attribute">
  44. <!ENTITY % attributeGroup "%p;attributeGroup">
  45. <!ENTITY % include "%p;include">
  46. <!ENTITY % import "%p;import">
  47. <!ENTITY % redefine "%p;redefine">
  48. <!ENTITY % notation "%p;notation">
  49. <!-- annotation elements -->
  50. <!ENTITY % annotation "%p;annotation">
  51. <!ENTITY % appinfo "%p;appinfo">
  52. <!ENTITY % documentation "%p;documentation">
  53. <!-- Customisation entities for the ATTLIST of each element type.
  54.      Define one of these if your schema takes advantage of the
  55.      anyAttribute='##other' in the schema for schemas -->
  56. <!ENTITY % schemaAttrs ''>
  57. <!ENTITY % complexTypeAttrs ''>
  58. <!ENTITY % complexContentAttrs ''>
  59. <!ENTITY % simpleContentAttrs ''>
  60. <!ENTITY % extensionAttrs ''>
  61. <!ENTITY % elementAttrs ''>
  62. <!ENTITY % groupAttrs ''>
  63. <!ENTITY % allAttrs ''>
  64. <!ENTITY % choiceAttrs ''>
  65. <!ENTITY % sequenceAttrs ''>
  66. <!ENTITY % anyAttrs ''>
  67. <!ENTITY % anyAttributeAttrs ''>
  68. <!ENTITY % attributeAttrs ''>
  69. <!ENTITY % attributeGroupAttrs ''>
  70. <!ENTITY % uniqueAttrs ''>
  71. <!ENTITY % keyAttrs ''>
  72. <!ENTITY % keyrefAttrs ''>
  73. <!ENTITY % selectorAttrs ''>
  74. <!ENTITY % fieldAttrs ''>
  75. <!ENTITY % includeAttrs ''>
  76. <!ENTITY % importAttrs ''>
  77. <!ENTITY % redefineAttrs ''>
  78. <!ENTITY % notationAttrs ''>
  79. <!ENTITY % annotationAttrs ''>
  80. <!ENTITY % appinfoAttrs ''>
  81. <!ENTITY % documentationAttrs ''>
  82. <!ENTITY % complexDerivationSet "CDATA">
  83.       <!-- #all or space-separated list drawn from derivationChoice -->
  84. <!ENTITY % blockSet "CDATA">
  85.       <!-- #all or space-separated list drawn from
  86.                       derivationChoice + 'substitution' -->
  87. <!ENTITY % mgs '%all; | %choice; | %sequence;'>
  88. <!ENTITY % cs '%choice; | %sequence;'>
  89. <!ENTITY % formValues '(qualified|unqualified)'>
  90. <!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
  91. <!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
  92. <!-- This is used in part2 -->
  93. <!ENTITY % restriction1 '((%mgs; | %group;)?)'>
  94. %xs-datatypes;
  95. <!-- the duplication below is to produce an unambiguous content model
  96.      which allows annotation everywhere -->
  97. <!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
  98.                     ((%simpleType; | %complexType;
  99.                       | %element; | %attribute;
  100.                       | %attributeGroup; | %group;
  101.                       | %notation; ),
  102.                      (%annotation;)*)* )>
  103. <!ATTLIST %schema;
  104.    targetNamespace      %URIref;               #IMPLIED
  105.    version              CDATA                  #IMPLIED
  106.    %nds;                %URIref;               #FIXED 'http://www.w3.org/2001/XMLSchema'
  107.    xmlns                CDATA                  #IMPLIED
  108.    finalDefault         %complexDerivationSet; ''
  109.    blockDefault         %blockSet;             ''
  110.    id                   ID                     #IMPLIED
  111.    elementFormDefault   %formValues;           'unqualified'
  112.    attributeFormDefault %formValues;           'unqualified'
  113.    xml:lang             CDATA                  #IMPLIED
  114.    %schemaAttrs;>
  115. <!-- Note the xmlns declaration is NOT in the Schema for Schemas,
  116.      because at the Infoset level where schemas operate,
  117.      xmlns(:prefix) is NOT an attribute! -->
  118. <!-- The declaration of xmlns is a convenience for schema authors -->
  119.  
  120. <!-- The id attribute here and below is for use in external references
  121.      from non-schemas using simple fragment identifiers.
  122.      It is NOT used for schema-to-schema reference, internal or
  123.      external. -->
  124. <!-- a type is a named content type specification which allows attribute
  125.      declarations-->
  126. <!-- -->
  127. <!ELEMENT %complexType; ((%annotation;)?,
  128.                          (%simpleContent;|%complexContent;|
  129.                           %particleAndAttrs;))>
  130. <!ATTLIST %complexType;
  131.           name      %NCName;                        #IMPLIED
  132.           id        ID                              #IMPLIED
  133.           abstract  %boolean;                       #IMPLIED
  134.           final     %complexDerivationSet;          #IMPLIED
  135.           block     %complexDerivationSet;          #IMPLIED
  136.           mixed (true|false) 'false'
  137.           %complexTypeAttrs;>
  138. <!-- particleAndAttrs is shorthand for a root type -->
  139. <!-- mixed is disallowed if simpleContent, overriden if complexContent
  140.      has one too. -->
  141. <!-- If anyAttribute appears in one or more referenced attributeGroups
  142.      and/or explicitly, the intersection of the permissions is used -->
  143. <!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
  144. <!ATTLIST %complexContent;
  145.           mixed (true|false) #IMPLIED
  146.           id    ID           #IMPLIED
  147.           %complexContentAttrs;>
  148. <!-- restriction should use the branch defined above, not the simple
  149.      one from part2; extension should use the full model  -->
  150. <!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
  151. <!ATTLIST %simpleContent;
  152.           id    ID           #IMPLIED
  153.           %simpleContentAttrs;>
  154. <!-- restriction should use the simple branch from part2, not the 
  155.      one defined above; extension should have no particle  -->
  156. <!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
  157. <!ATTLIST %extension;
  158.           base  %QName;      #REQUIRED
  159.           id    ID           #IMPLIED
  160.           %extensionAttrs;>
  161. <!-- an element is declared by either:
  162.  a name and a type (either nested or referenced via the type attribute)
  163.  or a ref to an existing element declaration -->
  164. <!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
  165.                      (%unique; | %key; | %keyref;)*)>
  166. <!-- simpleType or complexType only if no type|ref attribute -->
  167. <!-- ref not allowed at top level -->
  168. <!ATTLIST %element;
  169.             name               %NCName;               #IMPLIED
  170.             id                 ID                     #IMPLIED
  171.             ref                %QName;                #IMPLIED
  172.             type               %QName;                #IMPLIED
  173.             minOccurs          %nonNegativeInteger;   #IMPLIED
  174.             maxOccurs          CDATA                  #IMPLIED
  175.             nillable           %boolean;              #IMPLIED
  176.             substitutionGroup  %QName;                #IMPLIED
  177.             abstract           %boolean;              #IMPLIED
  178.             final              %complexDerivationSet; #IMPLIED
  179.             block              %blockSet;             #IMPLIED
  180.             default            CDATA                  #IMPLIED
  181.             fixed              CDATA                  #IMPLIED
  182.             form               %formValues;           #IMPLIED
  183.             %elementAttrs;>
  184. <!-- type and ref are mutually exclusive.
  185.      name and ref are mutually exclusive, one is required -->
  186. <!-- In the absence of type AND ref, type defaults to type of
  187.      substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
  188. <!-- default and fixed are mutually exclusive -->
  189. <!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
  190. <!ATTLIST %group; 
  191.           name        %NCName;               #IMPLIED
  192.           ref         %QName;                #IMPLIED
  193.           minOccurs   %nonNegativeInteger;   #IMPLIED
  194.           maxOccurs   CDATA                  #IMPLIED
  195.           id          ID                     #IMPLIED
  196.           %groupAttrs;>
  197. <!ELEMENT %all; ((%annotation;)?, (%element;)*)>
  198. <!ATTLIST %all;
  199.           minOccurs   (1)                    #IMPLIED
  200.           maxOccurs   (1)                    #IMPLIED
  201.           id          ID                     #IMPLIED
  202.           %allAttrs;>
  203. <!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
  204. <!ATTLIST %choice;
  205.           minOccurs   %nonNegativeInteger;   #IMPLIED
  206.           maxOccurs   CDATA                  #IMPLIED
  207.           id          ID                     #IMPLIED
  208.           %choiceAttrs;>
  209. <!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
  210. <!ATTLIST %sequence;
  211.           minOccurs   %nonNegativeInteger;   #IMPLIED
  212.           maxOccurs   CDATA                  #IMPLIED
  213.           id          ID                     #IMPLIED
  214.           %sequenceAttrs;>
  215. <!-- an anonymous grouping in a model, or
  216.      a top-level named group definition, or a reference to same -->
  217. <!-- Note that if order is 'all', group is not allowed inside.
  218.      If order is 'all' THIS group must be alone (or referenced alone) at
  219.      the top level of a content model -->
  220. <!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
  221. <!-- Should allow minOccurs=0 inside order='all' . . . -->
  222. <!ELEMENT %any; (%annotation;)?>
  223. <!ATTLIST %any;
  224.             namespace       CDATA                  '##any'
  225.             processContents (skip|lax|strict)      'strict'
  226.             minOccurs       %nonNegativeInteger;   '1'
  227.             maxOccurs       CDATA                  '1'
  228.             id              ID                     #IMPLIED
  229.             %anyAttrs;>
  230. <!-- namespace is interpreted as follows:
  231.                   ##any      - - any non-conflicting WFXML at all
  232.                   ##other    - - any non-conflicting WFXML from namespace other
  233.                                   than targetNamespace
  234.                   ##local    - - any unqualified non-conflicting WFXML/attribute
  235.                   one or     - - any non-conflicting WFXML from
  236.                   more URI        the listed namespaces
  237.                   references
  238.                   ##targetNamespace ##local may appear in the above list,
  239.                     with the obvious meaning -->
  240. <!ELEMENT %anyAttribute; (%annotation;)?>
  241. <!ATTLIST %anyAttribute;
  242.             namespace       CDATA              '##any'
  243.             processContents (skip|lax|strict)  'strict'
  244.             id              ID                 #IMPLIED
  245.             %anyAttributeAttrs;>
  246. <!-- namespace is interpreted as for 'any' above -->
  247. <!-- simpleType only if no type|ref attribute -->
  248. <!-- ref not allowed at top level, name iff at top level -->
  249. <!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
  250. <!ATTLIST %attribute;
  251.           name      %NCName;      #IMPLIED
  252.           id        ID            #IMPLIED
  253.           ref       %QName;       #IMPLIED
  254.           type      %QName;       #IMPLIED
  255.           use       (prohibited|optional|required) #IMPLIED
  256.           default   CDATA         #IMPLIED
  257.           fixed     CDATA         #IMPLIED
  258.           form      %formValues;  #IMPLIED
  259.           %attributeAttrs;>
  260. <!-- type and ref are mutually exclusive.
  261.      name and ref are mutually exclusive, one is required -->
  262. <!-- default for use is optional when nested, none otherwise -->
  263. <!-- default and fixed are mutually exclusive -->
  264. <!-- type attr and simpleType content are mutually exclusive -->
  265. <!-- an attributeGroup is a named collection of attribute decls, or a
  266.      reference thereto -->
  267. <!ELEMENT %attributeGroup; ((%annotation;)?,
  268.                        (%attribute; | %attributeGroup;)*,
  269.                        (%anyAttribute;)?) >
  270. <!ATTLIST %attributeGroup;
  271.                  name       %NCName;       #IMPLIED
  272.                  id         ID             #IMPLIED
  273.                  ref        %QName;        #IMPLIED
  274.                  %attributeGroupAttrs;>
  275. <!-- ref iff no content, no name.  ref iff not top level -->
  276. <!-- better reference mechanisms -->
  277. <!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
  278. <!ATTLIST %unique;
  279.           name     %NCName;       #REQUIRED
  280.   id       ID             #IMPLIED
  281.   %uniqueAttrs;>
  282. <!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
  283. <!ATTLIST %key;
  284.           name     %NCName;       #REQUIRED
  285.   id       ID             #IMPLIED
  286.   %keyAttrs;>
  287. <!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
  288. <!ATTLIST %keyref;
  289.           name     %NCName;       #REQUIRED
  290.   refer    %QName;        #REQUIRED
  291.   id       ID             #IMPLIED
  292.   %keyrefAttrs;>
  293. <!ELEMENT %selector; ((%annotation;)?)>
  294. <!ATTLIST %selector;
  295.           xpath %XPathExpr; #REQUIRED
  296.           id    ID          #IMPLIED
  297.           %selectorAttrs;>
  298. <!ELEMENT %field; ((%annotation;)?)>
  299. <!ATTLIST %field;
  300.           xpath %XPathExpr; #REQUIRED
  301.           id    ID          #IMPLIED
  302.           %fieldAttrs;>
  303. <!-- Schema combination mechanisms -->
  304. <!ELEMENT %include; (%annotation;)?>
  305. <!ATTLIST %include;
  306.           schemaLocation %URIref; #REQUIRED
  307.           id             ID       #IMPLIED
  308.           %includeAttrs;>
  309. <!ELEMENT %import; (%annotation;)?>
  310. <!ATTLIST %import;
  311.           namespace      %URIref; #IMPLIED
  312.           schemaLocation %URIref; #IMPLIED
  313.           id             ID       #IMPLIED
  314.           %importAttrs;>
  315. <!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
  316.                       %attributeGroup; | %group;)*>
  317. <!ATTLIST %redefine;
  318.           schemaLocation %URIref; #REQUIRED
  319.           id             ID       #IMPLIED
  320.           %redefineAttrs;>
  321. <!ELEMENT %notation; (%annotation;)?>
  322. <!ATTLIST %notation;
  323.   name        %NCName;    #REQUIRED
  324.   id          ID          #IMPLIED
  325.   public      CDATA       #REQUIRED
  326.   system      %URIref;    #IMPLIED
  327.   %notationAttrs;>
  328. <!-- Annotation is either application information or documentation -->
  329. <!-- By having these here they are available for datatypes as well
  330.      as all the structures elements -->
  331. <!ELEMENT %annotation; (%appinfo; | %documentation;)*>
  332. <!ATTLIST %annotation; %annotationAttrs;>
  333. <!-- User must define annotation elements in internal subset for this
  334.      to work -->
  335. <!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
  336. <!ATTLIST %appinfo;
  337.           source     %URIref;      #IMPLIED
  338.           id         ID         #IMPLIED
  339.           %appinfoAttrs;>
  340. <!ELEMENT %documentation; ANY>   <!-- too restrictive -->
  341. <!ATTLIST %documentation;
  342.           source     %URIref;   #IMPLIED
  343.           id         ID         #IMPLIED
  344.           xml:lang   CDATA      #IMPLIED
  345.           %documentationAttrs;>
  346. <!NOTATION XMLSchemaStructures PUBLIC
  347.            'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
  348. <!NOTATION XML PUBLIC
  349.            'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >