]> Part 1 version: $Id: XMLSchema.xsd,v 1.26 2000/10/23 08:58:09 ht Exp $ Part 2 version: $Id: datatypes.xsd,v 1.30 2000/10/24 08:04:50 ht Exp $ The schema corresponding to this document is normative, with respect to the syntactic constraints it expresses in the XML Schema language. The documentation (within <documentation> elements) below, is not normative, but rather highlights important aspects of the W3C Recommendation of which this is a part The simpleType element and all of its members are defined towards the end of this schema document Get access to the xml: attribute groups for xml:lang as declared on 'documentation' below This type is extended by almost all schema types to allow attributes from other namespaces to be added to user schemas. This type is extended by all types which allow annotation other than <schema> itself This abstract element defines an substitution group over the elements which occur freely at the top level of schemas. These are: simpleType, complexType, element, attribute, attributeGroup, group, notation All of their types are based on the "annotated" type by extension. This abstract element defines a substitution group for the elements which can self-redefine (see <redefine> below). A utility type, not for public use for maxOccurs for all particles for element, group and attributeGroup, which both define and reference 'complexType' uses this 'topLevelGroup' uses this This branch is short for <complexContent> <restriction base="anyType"> ... </restriction> </complexContent> Will be restricted to required or forbidden Not allowed if simpleContent child is chosen. May be overriden by setting on complexContent child. Overrides any setting on complexType parent. No typeDefParticle group reference A utility type, not for public use A utility type, not for public use #all or (possibly empty) subset of {substitution, extension, restriction} A utility type, not for public use #all or (possibly empty) subset of {extension, restriction} A utility type, not for public use The element element can be used either at the toplevel to define an element-type binding globally, or within a content model to either reference a globally-defined element or type or declare an element-type binding locally. The ref form is not allowed at the top level. group type for explicit groups, named top-level groups and group references group type for the three kinds of group Only elements allowed inside restricted max/min simple type for the value of the 'namespace' attr of 'any' and 'anyAttribute' Value is ##any - - any non-conflicting WFXML/attribute at all ##other - - any non-conflicting WFXML/attribute from namespace other than targetNS ##local - - any unqualified non-conflicting WFXML/attribute one or - - any non-conflicting WFXML/attribute from more URI the listed namespaces references (space separated) ##targetNamespace or ##local may appear in the above list, to refer to the targetNamespace of the enclosing schema or an absent targetNamespace respectively A utility type, not for public use An XPath expression A utility type, not for public use A VERY permissive definition, probably not even right A public identifier, per ISO 8879 A utility type, not for public use notations for use within XML Schema schemas Not the real urType, but as close an approximation as we can get in the XML representation First the builtin primitive datatypes. These definitions are for information only, the real builtin definitions are magic. Note in particular that there is no type named 'anySimpleType'. The primitives should really be derived from no type at all, and anySimpleType should be derived as a union of all the primitives. For each built-in datatype in this schema (both primitive and derived) can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is an XPointer that identifies the name of the datatype, as an ID For example, to address the date datatype, the URI is: http://www.w3.org/2000/10/XMLSchema#xpointer(id("date")) Additionally, each facet definition element can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is an XPointer that identifies the name of the facet, as an ID For example, to address the period facet, the URI is: http://www.w3.org/2000/10/XMLSchema#xpointer(id("period")) Additionally, each facet usage in a built-in datatype definition can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment identifier is an XPointer that identifies the name of the datatype, followed by a period (".") followed by the name of the facet, as an ID For example, to address the usage of the period facet in the definition of date, the URI is: http://www.w3.org/2000/10/XMLSchema#xpointer(id("date.period")) Now the derived primitive types pattern matches production 33 from the XML spec pattern matches production 7 from the XML spec pattern matches production 5 from the XML spec pattern matches production 4 from the Namespaces in XML spec NOTATION cannot be used directly in a schema; rather a type must be derived from it by specifying at least one enumeration facet whose value is the name of a NOTATION declared in the schema. the value/lexical spaces of NOTATION are not the full value/lexical spaces of NOTATION even though there are no additional constraining facets. The true value/lexical spaces are limited to the set of names of NOTATIONs declared in the schema. Can be restricted to required or forbidden Required at the top level Forbidden when nested base attribute and simpleType child are mutually exclusive, but one or other is required itemType attribute and simpleType child are mutually exclusive, but one or other is required memberTypes attribute must be non-empty or there must be at least one simpleType child each (8-bit) byte is encoded as a sequence of 2 hexidecimal digits value is encoded in Base64 as defined in the MIME RFC