204 lines
6.2 KiB
DTD
204 lines
6.2 KiB
DTD
<!--
|
|
DTD for XML Schemas: Part 2: Datatypes
|
|
$Id: datatypes.dtd,v 1.23 2001/03/16 17:36:30 ht 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;>
|