| <!-- |
| DTD for XML Schemas: Part 2: Datatypes |
| $Id: datatypes.dtd,v 1.3 2007-07-19 21:56:49 ofung Exp $ |
| Note this DTD is NOT normative, or even definitive. - - the |
| prose copy in the datatypes REC is the definitive version |
| (which shouldn't differ from this one except for this comment |
| and entity expansions, but just in case) |
| --> |
| |
| <!-- |
| 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 % totalDigits "%p;totalDigits"> |
| <!ENTITY % fractionDigits "%p;fractionDigits"> |
| <!ENTITY % length "%p;length"> |
| <!ENTITY % minLength "%p;minLength"> |
| <!ENTITY % maxLength "%p;maxLength"> |
| <!ENTITY % enumeration "%p;enumeration"> |
| <!ENTITY % whiteSpace "%p;whiteSpace"> |
| <!ENTITY % pattern "%p;pattern"> |
| |
| <!-- |
| 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 % maxExclusiveAttrs ""> |
| <!ENTITY % minExclusiveAttrs ""> |
| <!ENTITY % maxInclusiveAttrs ""> |
| <!ENTITY % minInclusiveAttrs ""> |
| <!ENTITY % totalDigitsAttrs ""> |
| <!ENTITY % fractionDigitsAttrs ""> |
| <!ENTITY % lengthAttrs ""> |
| <!ENTITY % minLengthAttrs ""> |
| <!ENTITY % maxLengthAttrs ""> |
| <!ENTITY % enumerationAttrs ""> |
| <!ENTITY % whiteSpaceAttrs ""> |
| <!ENTITY % patternAttrs ""> |
| |
| <!-- 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)"> |
| <!ENTITY % simpleDerivationSet "CDATA"> |
| <!-- |
| #all or space-separated list drawn from derivationChoice |
| --> |
| |
| <!-- |
| 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, totalDigits, fractionDigits, |
| length, maxLength, minLength 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 "%totalDigits; | %fractionDigits;"> |
| <!ENTITY % ordered "%bounds; | %numeric;"> |
| <!ENTITY % unordered |
| "%pattern; | %enumeration; | %whiteSpace; | %length; | |
| %maxLength; | %minLength;"> |
| <!ENTITY % facet "%ordered; | %unordered;"> |
| <!ENTITY % facetAttr |
| "value CDATA #REQUIRED |
| id ID #IMPLIED"> |
| <!ENTITY % fixedAttr "fixed %boolean; #IMPLIED"> |
| <!ENTITY % facetModel "(%annotation;)?"> |
| <!ELEMENT %simpleType; |
| ((%annotation;)?, (%restriction; | %list; | %union;))> |
| <!ATTLIST %simpleType; |
| name %NCName; #IMPLIED |
| final %simpleDerivationSet; #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 %totalDigits; %facetModel;> |
| <!ATTLIST %totalDigits; |
| %facetAttr; |
| %fixedAttr; |
| %totalDigitsAttrs;> |
| <!ELEMENT %fractionDigits; %facetModel;> |
| <!ATTLIST %fractionDigits; |
| %facetAttr; |
| %fixedAttr; |
| %fractionDigitsAttrs;> |
| |
| <!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; |
| %fixedAttr; |
| %whiteSpaceAttrs;> |
| |
| <!-- This one can be repeated --> |
| <!ELEMENT %pattern; %facetModel;> |
| <!ATTLIST %pattern; |
| %facetAttr; |
| %patternAttrs;> |