| <!-- DTD for XML Schemas: Part 2: Datatypes --> |
| <!-- $Id: datatypes.dtd,v 1.14 2000/10/23 08:58:09 ht Exp --> |
| <!-- Note this DTD is NOT normative, or even definitive. - - the --> <!--d--> |
| <!-- prose copy in the datatypes REC is the definitive version --> <!--d--> |
| <!-- (which shouldn't differ from this one except for this comment --> <!--d--> |
| <!-- and entity expansions, but just in case) --> <!--d--> |
| |
| <!-- This DTD cannot be used on its own, it is intended only for incorporation |
| in XMLSchema.dtd, q.v. --> |
| |
| <!-- Define all the element names, with optional prefix --> |
| <!ENTITY % simpleType "%p;simpleType"> |
| <!ENTITY % restriction "%p;restriction"> |
| <!ENTITY % list "%p;list"> |
| <!ENTITY % union "%p;union"> |
| <!ENTITY % maxExclusive "%p;maxExclusive"> |
| <!ENTITY % minExclusive "%p;minExclusive"> |
| <!ENTITY % maxInclusive "%p;maxInclusive"> |
| <!ENTITY % minInclusive "%p;minInclusive"> |
| <!ENTITY % precision "%p;precision"> |
| <!ENTITY % scale "%p;scale"> |
| <!ENTITY % length "%p;length"> |
| <!ENTITY % minLength "%p;minLength"> |
| <!ENTITY % maxLength "%p;maxLength"> |
| <!ENTITY % enumeration "%p;enumeration"> |
| <!ENTITY % whiteSpace "%p;whiteSpace"> |
| <!ENTITY % pattern "%p;pattern"> |
| <!ENTITY % encoding "%p;encoding"> |
| <!ENTITY % period "%p;period"> |
| <!ENTITY % duration "%p;duration"> |
| |
| <!-- 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 % simpleTypeAttrs ""> |
| <!ENTITY % restrictionAttrs ""> |
| <!ENTITY % listAttrs ""> |
| <!ENTITY % unionAttrs ""> |
| <!ENTITY % simpleTypeAttrs ""> |
| <!ENTITY % maxExclusiveAttrs ""> |
| <!ENTITY % minExclusiveAttrs ""> |
| <!ENTITY % maxInclusiveAttrs ""> |
| <!ENTITY % minInclusiveAttrs ""> |
| <!ENTITY % precisionAttrs ""> |
| <!ENTITY % scaleAttrs ""> |
| <!ENTITY % lengthAttrs ""> |
| <!ENTITY % minLengthAttrs ""> |
| <!ENTITY % maxLengthAttrs ""> |
| <!ENTITY % enumerationAttrs ""> |
| <!ENTITY % whiteSpaceAttrs ""> |
| <!ENTITY % patternAttrs ""> |
| <!ENTITY % encodingAttrs ""> |
| <!ENTITY % periodAttrs ""> |
| <!ENTITY % durationAttrs ""> |
| <!ENTITY % appinfoAttrs ""> |
| <!ENTITY % documentationAttrs ""> |
| |
| <!-- Define some entities for informative use as attribute types --> |
| <!ENTITY % URIref "CDATA"> |
| <!ENTITY % XPathExpr "CDATA"> |
| <!ENTITY % QName "NMTOKEN"> |
| <!ENTITY % QNames "NMTOKENS"> |
| <!ENTITY % NCName "NMTOKEN"> |
| <!ENTITY % nonNegativeInteger "NMTOKEN"> |
| <!ENTITY % boolean "(true|false)"> |
| |
| <!-- Note that the use of 'facet' below is less restrictive than is |
| really intended: There should in fact be no more than one of each of |
| minInclusive, minExclusive, maxInclusive, maxExclusive, |
| precision, scale, |
| length, maxLength, minLength, encoding, period within datatype, |
| and the min- and max- variants of Inclusive and Exclusive are |
| mutually exclusive. |
| On the other hand, pattern and enumeration may repeat --> |
| <!ENTITY % minBound "(%minInclusive; | %minExclusive;)"> |
| <!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)"> |
| <!ENTITY % bounds "%minBound; | %maxBound;"> |
| <!ENTITY % numeric "%precision; | %scale;"> |
| <!ENTITY % ordered "%bounds; | %numeric;"> |
| <!ENTITY % unordered |
| "%pattern; | %enumeration; | %whiteSpace; | %length; | %maxLength; | %minLength; |
| | %encoding; | %period; | %duration;"> |
| <!ENTITY % facet "%ordered; | %unordered;"> |
| <!ENTITY % facetAttr "value CDATA #REQUIRED"> |
| <!ENTITY % fixedAttr "fixed %boolean; #IMPLIED"> |
| <!ENTITY % facetModel "(%annotation;)?"> |
| <!ELEMENT %simpleType; ((%annotation;)?, (%restriction; | %list; | %union;))> |
| <!ATTLIST %simpleType; |
| name %NCName; #IMPLIED |
| id ID #IMPLIED |
| %simpleTypeAttrs;> |
| <!-- name is required at top level --> |
| <!ELEMENT %restriction; ((%annotation;)?, |
| (%restriction1; | |
| ((%simpleType;)?,(%facet;)*)), |
| (%attrDecls;))> |
| <!ATTLIST %restriction; |
| base %QName; #IMPLIED |
| id ID #IMPLIED |
| %restrictionAttrs;> |
| <!-- base and simpleType child are mutually exclusive, one is required --> |
| <!-- restriction is shared between simpleType and simpleContent and --> |
| <!-- complexContent (in XMLSchema.xsd). restriction1 is for the latter --> |
| <!-- cases, when this is restricting a complex type, as is attrDecls --> |
| <!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)> |
| <!ATTLIST %list; |
| itemType %QName; #IMPLIED |
| id ID #IMPLIED |
| %listAttrs;> |
| <!-- itemType and simpleType child are mutually exclusive, one is required --> |
| <!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)> |
| <!ATTLIST %union; |
| id ID #IMPLIED |
| memberTypes %QNames; #IMPLIED |
| %unionAttrs;> |
| <!-- At least one item in memberTypes or one simpleType child is required --> |
| |
| <!ELEMENT %maxExclusive; %facetModel;> |
| <!ATTLIST %maxExclusive; |
| %facetAttr; |
| %fixedAttr; |
| %maxExclusiveAttrs;> |
| <!ELEMENT %minExclusive; %facetModel;> |
| <!ATTLIST %minExclusive; |
| %facetAttr; |
| %fixedAttr; |
| %minExclusiveAttrs;> |
| |
| <!ELEMENT %maxInclusive; %facetModel;> |
| <!ATTLIST %maxInclusive; |
| %facetAttr; |
| %fixedAttr; |
| %maxInclusiveAttrs;> |
| <!ELEMENT %minInclusive; %facetModel;> |
| <!ATTLIST %minInclusive; |
| %facetAttr; |
| %fixedAttr; |
| %minInclusiveAttrs;> |
| |
| <!ELEMENT %precision; %facetModel;> |
| <!ATTLIST %precision; |
| %facetAttr; |
| %fixedAttr; |
| %precisionAttrs;> |
| <!ELEMENT %scale; %facetModel;> |
| <!ATTLIST %scale; |
| %facetAttr; |
| %fixedAttr; |
| %scaleAttrs;> |
| |
| <!ELEMENT %length; %facetModel;> |
| <!ATTLIST %length; |
| %facetAttr; |
| %fixedAttr; |
| %lengthAttrs;> |
| <!ELEMENT %minLength; %facetModel;> |
| <!ATTLIST %minLength; |
| %facetAttr; |
| %fixedAttr; |
| %minLengthAttrs;> |
| <!ELEMENT %maxLength; %facetModel;> |
| <!ATTLIST %maxLength; |
| %facetAttr; |
| %fixedAttr; |
| %maxLengthAttrs;> |
| |
| <!-- This one can be repeated --> |
| <!ELEMENT %enumeration; %facetModel;> |
| <!ATTLIST %enumeration; |
| %facetAttr; |
| %enumerationAttrs;> |
| |
| <!ELEMENT %whiteSpace; %facetModel;> |
| <!ATTLIST %whiteSpace; |
| %facetAttr; |
| %whiteSpaceAttrs;> |
| |
| <!-- This one can be repeated --> |
| <!ELEMENT %pattern; %facetModel;> |
| <!ATTLIST %pattern; |
| %facetAttr; |
| %patternAttrs;> |
| |
| <!ELEMENT %encoding; %facetModel;> |
| <!ATTLIST %encoding; |
| %facetAttr; |
| %fixedAttr; |
| %encodingAttrs;> |
| <!ELEMENT %period; %facetModel;> |
| <!ATTLIST %period; |
| %facetAttr; |
| %fixedAttr; |
| %periodAttrs;> |
| <!ELEMENT %duration; %facetModel;> |
| <!ATTLIST %duration; |
| %facetAttr; |
| %fixedAttr; |
| %durationAttrs;> |