XMLSchema.dtd
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:16k
源码类别:
xml/soap/webservice
开发平台:
Visual C++
- <!-- DTD for XML Schemas: Part 1: Structures
- Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
- Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
- <!-- $Id: XMLSchema.dtd,v 1.4 2005/07/08 20:28:38 openvxiadmin1 Exp $ -->
- <!-- Note this DTD is NOT normative, or even definitive. --> <!--d-->
- <!-- prose copy in the structures REC is the definitive version --> <!--d-->
- <!-- (which shouldn't differ from this one except for this --> <!--d-->
- <!-- comment and entity expansions, but just in case) --> <!--d-->
- <!-- With the exception of cases with multiple namespace
- prefixes for the XML Schema namespace, any XML document which is
- not valid per this DTD given redefinitions in its internal subset of the
- 'p' and 's' parameter entities below appropriate to its namespace
- declaration of the XML Schema namespace is almost certainly not
- a valid schema. -->
- <!-- The simpleType element and its constituent parts
- are defined in XML Schema: Part 2: Datatypes -->
- <!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
- <!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
- schema document to establish a different
- namespace prefix -->
- <!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
- also define %s as the suffix for the appropriate
- namespace declaration (e.g. :foo) -->
- <!ENTITY % nds 'xmlns%s;'>
- <!-- Define all the element names, with optional prefix -->
- <!ENTITY % schema "%p;schema">
- <!ENTITY % complexType "%p;complexType">
- <!ENTITY % complexContent "%p;complexContent">
- <!ENTITY % simpleContent "%p;simpleContent">
- <!ENTITY % extension "%p;extension">
- <!ENTITY % element "%p;element">
- <!ENTITY % unique "%p;unique">
- <!ENTITY % key "%p;key">
- <!ENTITY % keyref "%p;keyref">
- <!ENTITY % selector "%p;selector">
- <!ENTITY % field "%p;field">
- <!ENTITY % group "%p;group">
- <!ENTITY % all "%p;all">
- <!ENTITY % choice "%p;choice">
- <!ENTITY % sequence "%p;sequence">
- <!ENTITY % any "%p;any">
- <!ENTITY % anyAttribute "%p;anyAttribute">
- <!ENTITY % attribute "%p;attribute">
- <!ENTITY % attributeGroup "%p;attributeGroup">
- <!ENTITY % include "%p;include">
- <!ENTITY % import "%p;import">
- <!ENTITY % redefine "%p;redefine">
- <!ENTITY % notation "%p;notation">
- <!-- annotation elements -->
- <!ENTITY % annotation "%p;annotation">
- <!ENTITY % appinfo "%p;appinfo">
- <!ENTITY % documentation "%p;documentation">
- <!-- Customisation entities for the ATTLIST of each element type.
- Define one of these if your schema takes advantage of the
- anyAttribute='##other' in the schema for schemas -->
- <!ENTITY % schemaAttrs ''>
- <!ENTITY % complexTypeAttrs ''>
- <!ENTITY % complexContentAttrs ''>
- <!ENTITY % simpleContentAttrs ''>
- <!ENTITY % extensionAttrs ''>
- <!ENTITY % elementAttrs ''>
- <!ENTITY % groupAttrs ''>
- <!ENTITY % allAttrs ''>
- <!ENTITY % choiceAttrs ''>
- <!ENTITY % sequenceAttrs ''>
- <!ENTITY % anyAttrs ''>
- <!ENTITY % anyAttributeAttrs ''>
- <!ENTITY % attributeAttrs ''>
- <!ENTITY % attributeGroupAttrs ''>
- <!ENTITY % uniqueAttrs ''>
- <!ENTITY % keyAttrs ''>
- <!ENTITY % keyrefAttrs ''>
- <!ENTITY % selectorAttrs ''>
- <!ENTITY % fieldAttrs ''>
- <!ENTITY % includeAttrs ''>
- <!ENTITY % importAttrs ''>
- <!ENTITY % redefineAttrs ''>
- <!ENTITY % notationAttrs ''>
- <!ENTITY % annotationAttrs ''>
- <!ENTITY % appinfoAttrs ''>
- <!ENTITY % documentationAttrs ''>
- <!ENTITY % complexDerivationSet "CDATA">
- <!-- #all or space-separated list drawn from derivationChoice -->
- <!ENTITY % blockSet "CDATA">
- <!-- #all or space-separated list drawn from
- derivationChoice + 'substitution' -->
- <!ENTITY % mgs '%all; | %choice; | %sequence;'>
- <!ENTITY % cs '%choice; | %sequence;'>
- <!ENTITY % formValues '(qualified|unqualified)'>
- <!ENTITY % attrDecls '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
- <!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
- <!-- This is used in part2 -->
- <!ENTITY % restriction1 '((%mgs; | %group;)?)'>
- %xs-datatypes;
- <!-- the duplication below is to produce an unambiguous content model
- which allows annotation everywhere -->
- <!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
- ((%simpleType; | %complexType;
- | %element; | %attribute;
- | %attributeGroup; | %group;
- | %notation; ),
- (%annotation;)*)* )>
- <!ATTLIST %schema;
- targetNamespace %URIref; #IMPLIED
- version CDATA #IMPLIED
- %nds; %URIref; #FIXED 'http://www.w3.org/2001/XMLSchema'
- xmlns CDATA #IMPLIED
- finalDefault %complexDerivationSet; ''
- blockDefault %blockSet; ''
- id ID #IMPLIED
- elementFormDefault %formValues; 'unqualified'
- attributeFormDefault %formValues; 'unqualified'
- xml:lang CDATA #IMPLIED
- %schemaAttrs;>
- <!-- Note the xmlns declaration is NOT in the Schema for Schemas,
- because at the Infoset level where schemas operate,
- xmlns(:prefix) is NOT an attribute! -->
- <!-- The declaration of xmlns is a convenience for schema authors -->
- <!-- The id attribute here and below is for use in external references
- from non-schemas using simple fragment identifiers.
- It is NOT used for schema-to-schema reference, internal or
- external. -->
- <!-- a type is a named content type specification which allows attribute
- declarations-->
- <!-- -->
- <!ELEMENT %complexType; ((%annotation;)?,
- (%simpleContent;|%complexContent;|
- %particleAndAttrs;))>
- <!ATTLIST %complexType;
- name %NCName; #IMPLIED
- id ID #IMPLIED
- abstract %boolean; #IMPLIED
- final %complexDerivationSet; #IMPLIED
- block %complexDerivationSet; #IMPLIED
- mixed (true|false) 'false'
- %complexTypeAttrs;>
- <!-- particleAndAttrs is shorthand for a root type -->
- <!-- mixed is disallowed if simpleContent, overriden if complexContent
- has one too. -->
- <!-- If anyAttribute appears in one or more referenced attributeGroups
- and/or explicitly, the intersection of the permissions is used -->
- <!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
- <!ATTLIST %complexContent;
- mixed (true|false) #IMPLIED
- id ID #IMPLIED
- %complexContentAttrs;>
- <!-- restriction should use the branch defined above, not the simple
- one from part2; extension should use the full model -->
- <!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
- <!ATTLIST %simpleContent;
- id ID #IMPLIED
- %simpleContentAttrs;>
- <!-- restriction should use the simple branch from part2, not the
- one defined above; extension should have no particle -->
- <!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
- <!ATTLIST %extension;
- base %QName; #REQUIRED
- id ID #IMPLIED
- %extensionAttrs;>
- <!-- an element is declared by either:
- a name and a type (either nested or referenced via the type attribute)
- or a ref to an existing element declaration -->
- <!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
- (%unique; | %key; | %keyref;)*)>
- <!-- simpleType or complexType only if no type|ref attribute -->
- <!-- ref not allowed at top level -->
- <!ATTLIST %element;
- name %NCName; #IMPLIED
- id ID #IMPLIED
- ref %QName; #IMPLIED
- type %QName; #IMPLIED
- minOccurs %nonNegativeInteger; #IMPLIED
- maxOccurs CDATA #IMPLIED
- nillable %boolean; #IMPLIED
- substitutionGroup %QName; #IMPLIED
- abstract %boolean; #IMPLIED
- final %complexDerivationSet; #IMPLIED
- block %blockSet; #IMPLIED
- default CDATA #IMPLIED
- fixed CDATA #IMPLIED
- form %formValues; #IMPLIED
- %elementAttrs;>
- <!-- type and ref are mutually exclusive.
- name and ref are mutually exclusive, one is required -->
- <!-- In the absence of type AND ref, type defaults to type of
- substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
- <!-- default and fixed are mutually exclusive -->
- <!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
- <!ATTLIST %group;
- name %NCName; #IMPLIED
- ref %QName; #IMPLIED
- minOccurs %nonNegativeInteger; #IMPLIED
- maxOccurs CDATA #IMPLIED
- id ID #IMPLIED
- %groupAttrs;>
- <!ELEMENT %all; ((%annotation;)?, (%element;)*)>
- <!ATTLIST %all;
- minOccurs (1) #IMPLIED
- maxOccurs (1) #IMPLIED
- id ID #IMPLIED
- %allAttrs;>
- <!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
- <!ATTLIST %choice;
- minOccurs %nonNegativeInteger; #IMPLIED
- maxOccurs CDATA #IMPLIED
- id ID #IMPLIED
- %choiceAttrs;>
- <!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
- <!ATTLIST %sequence;
- minOccurs %nonNegativeInteger; #IMPLIED
- maxOccurs CDATA #IMPLIED
- id ID #IMPLIED
- %sequenceAttrs;>
- <!-- an anonymous grouping in a model, or
- a top-level named group definition, or a reference to same -->
- <!-- Note that if order is 'all', group is not allowed inside.
- If order is 'all' THIS group must be alone (or referenced alone) at
- the top level of a content model -->
- <!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
- <!-- Should allow minOccurs=0 inside order='all' . . . -->
- <!ELEMENT %any; (%annotation;)?>
- <!ATTLIST %any;
- namespace CDATA '##any'
- processContents (skip|lax|strict) 'strict'
- minOccurs %nonNegativeInteger; '1'
- maxOccurs CDATA '1'
- id ID #IMPLIED
- %anyAttrs;>
- <!-- namespace is interpreted as follows:
- ##any - - any non-conflicting WFXML at all
- ##other - - any non-conflicting WFXML from namespace other
- than targetNamespace
- ##local - - any unqualified non-conflicting WFXML/attribute
- one or - - any non-conflicting WFXML from
- more URI the listed namespaces
- references
- ##targetNamespace ##local may appear in the above list,
- with the obvious meaning -->
- <!ELEMENT %anyAttribute; (%annotation;)?>
- <!ATTLIST %anyAttribute;
- namespace CDATA '##any'
- processContents (skip|lax|strict) 'strict'
- id ID #IMPLIED
- %anyAttributeAttrs;>
- <!-- namespace is interpreted as for 'any' above -->
- <!-- simpleType only if no type|ref attribute -->
- <!-- ref not allowed at top level, name iff at top level -->
- <!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
- <!ATTLIST %attribute;
- name %NCName; #IMPLIED
- id ID #IMPLIED
- ref %QName; #IMPLIED
- type %QName; #IMPLIED
- use (prohibited|optional|required) #IMPLIED
- default CDATA #IMPLIED
- fixed CDATA #IMPLIED
- form %formValues; #IMPLIED
- %attributeAttrs;>
- <!-- type and ref are mutually exclusive.
- name and ref are mutually exclusive, one is required -->
- <!-- default for use is optional when nested, none otherwise -->
- <!-- default and fixed are mutually exclusive -->
- <!-- type attr and simpleType content are mutually exclusive -->
- <!-- an attributeGroup is a named collection of attribute decls, or a
- reference thereto -->
- <!ELEMENT %attributeGroup; ((%annotation;)?,
- (%attribute; | %attributeGroup;)*,
- (%anyAttribute;)?) >
- <!ATTLIST %attributeGroup;
- name %NCName; #IMPLIED
- id ID #IMPLIED
- ref %QName; #IMPLIED
- %attributeGroupAttrs;>
- <!-- ref iff no content, no name. ref iff not top level -->
- <!-- better reference mechanisms -->
- <!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
- <!ATTLIST %unique;
- name %NCName; #REQUIRED
- id ID #IMPLIED
- %uniqueAttrs;>
- <!ELEMENT %key; ((%annotation;)?, %selector;, (%field;)+)>
- <!ATTLIST %key;
- name %NCName; #REQUIRED
- id ID #IMPLIED
- %keyAttrs;>
- <!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
- <!ATTLIST %keyref;
- name %NCName; #REQUIRED
- refer %QName; #REQUIRED
- id ID #IMPLIED
- %keyrefAttrs;>
- <!ELEMENT %selector; ((%annotation;)?)>
- <!ATTLIST %selector;
- xpath %XPathExpr; #REQUIRED
- id ID #IMPLIED
- %selectorAttrs;>
- <!ELEMENT %field; ((%annotation;)?)>
- <!ATTLIST %field;
- xpath %XPathExpr; #REQUIRED
- id ID #IMPLIED
- %fieldAttrs;>
- <!-- Schema combination mechanisms -->
- <!ELEMENT %include; (%annotation;)?>
- <!ATTLIST %include;
- schemaLocation %URIref; #REQUIRED
- id ID #IMPLIED
- %includeAttrs;>
- <!ELEMENT %import; (%annotation;)?>
- <!ATTLIST %import;
- namespace %URIref; #IMPLIED
- schemaLocation %URIref; #IMPLIED
- id ID #IMPLIED
- %importAttrs;>
- <!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
- %attributeGroup; | %group;)*>
- <!ATTLIST %redefine;
- schemaLocation %URIref; #REQUIRED
- id ID #IMPLIED
- %redefineAttrs;>
- <!ELEMENT %notation; (%annotation;)?>
- <!ATTLIST %notation;
- name %NCName; #REQUIRED
- id ID #IMPLIED
- public CDATA #REQUIRED
- system %URIref; #IMPLIED
- %notationAttrs;>
- <!-- Annotation is either application information or documentation -->
- <!-- By having these here they are available for datatypes as well
- as all the structures elements -->
- <!ELEMENT %annotation; (%appinfo; | %documentation;)*>
- <!ATTLIST %annotation; %annotationAttrs;>
- <!-- User must define annotation elements in internal subset for this
- to work -->
- <!ELEMENT %appinfo; ANY> <!-- too restrictive -->
- <!ATTLIST %appinfo;
- source %URIref; #IMPLIED
- id ID #IMPLIED
- %appinfoAttrs;>
- <!ELEMENT %documentation; ANY> <!-- too restrictive -->
- <!ATTLIST %documentation;
- source %URIref; #IMPLIED
- id ID #IMPLIED
- xml:lang CDATA #IMPLIED
- %documentationAttrs;>
- <!NOTATION XMLSchemaStructures PUBLIC
- 'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
- <!NOTATION XML PUBLIC
- 'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >