<!-- | |
Copyright 2004 The Apache Software Foundation | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | |
implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
--> | |
<!-- | |
DTD for XML Schemas: Part 2: Datatypes | |
$Id: datatypes.dtd,v 1.1.1.1 2003/09/30 14:03:00 rubys 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;> |