http://git-wip-us.apache.org/repos/asf/incubator-netbeans/blob/f29b9587/xml.schema.completion/src/org/netbeans/modules/xml/schema/completion/util/XMLSchema.xsd ---------------------------------------------------------------------- diff --git a/xml.schema.completion/src/org/netbeans/modules/xml/schema/completion/util/XMLSchema.xsd b/xml.schema.completion/src/org/netbeans/modules/xml/schema/completion/util/XMLSchema.xsd index 608a24d..7430b63 100644 --- a/xml.schema.completion/src/org/netbeans/modules/xml/schema/completion/util/XMLSchema.xsd +++ b/xml.schema.completion/src/org/netbeans/modules/xml/schema/completion/util/XMLSchema.xsd @@ -1,2163 +1,1605 @@ <?xml version='1.0' encoding='UTF-8'?> - -<xs:schema targetNamespace="http://www.w3.org/2001/XMLSchema" -blockDefault="#all" -elementFormDefault="qualified" version="1.0" -xmlns:xs="http://www.w3.org/2001/XMLSchema" -xml:lang="EN" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty"> +<!-- + +W3C Software and Document Notice and License + +This work is being provided by the copyright holders under the following license. + +License + +By obtaining and/or copying this work, you (the licensee) agree that you have +read, understood, and will comply with the following terms and conditions. + +Permission to copy, modify, and distribute this work, with or without +modification, for any purpose and without fee or royalty is hereby granted, +provided that you include the following on ALL copies of the work or portions +thereof, including modifications: + +- The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work. +- Any pre-existing intellectual property disclaimers, notices, or terms and + conditions. If none exist, the W3C Software and Document Short Notice should + be included. +- Notice of any changes or modifications, through a copyright statement on the + new code or document such as "This software or document includes material + copied from or derived from [title and URI of the W3C document]. + Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." + +Disclaimers + +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR + WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE +SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, +TRADEMARKS OR OTHER RIGHTS. + +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. + +The name and trademarks of copyright holders may NOT be used in advertising or +publicity pertaining to the work without specific, written prior permission. +Title to copyright in this work will at all times remain with copyright +holders. + +Changes: + +- File fetched from https://www.w3.org/2009/XMLSchema/XMLSchema.xsd +- Added license header + +--> +<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XSD 1.1//EN" "XMLSchema.dtd" [ + +<!-- provide ID type information even for parsers which only read the + internal subset --> +<!ATTLIST xs:schema id ID #IMPLIED> +<!ATTLIST xs:complexType id ID #IMPLIED> +<!ATTLIST xs:complexContent id ID #IMPLIED> +<!ATTLIST xs:simpleContent id ID #IMPLIED> +<!ATTLIST xs:extension id ID #IMPLIED> +<!ATTLIST xs:element id ID #IMPLIED> +<!ATTLIST xs:group id ID #IMPLIED> +<!ATTLIST xs:all id ID #IMPLIED> +<!ATTLIST xs:choice id ID #IMPLIED> +<!ATTLIST xs:sequence id ID #IMPLIED> +<!ATTLIST xs:any id ID #IMPLIED> +<!ATTLIST xs:anyAttribute id ID #IMPLIED> +<!ATTLIST xs:attribute id ID #IMPLIED> +<!ATTLIST xs:attributeGroup id ID #IMPLIED> +<!ATTLIST xs:unique id ID #IMPLIED> +<!ATTLIST xs:key id ID #IMPLIED> +<!ATTLIST xs:keyref id ID #IMPLIED> +<!ATTLIST xs:selector id ID #IMPLIED> +<!ATTLIST xs:field id ID #IMPLIED> +<!ATTLIST xs:assert id ID #IMPLIED> +<!ATTLIST xs:include id ID #IMPLIED> +<!ATTLIST xs:import id ID #IMPLIED> +<!ATTLIST xs:redefine id ID #IMPLIED> +<!ATTLIST xs:override id ID #IMPLIED> +<!ATTLIST xs:notation id ID #IMPLIED> +<!-- + Make sure that processors that do not read the external + subset will know about the various IDs we declare + --> + <!ATTLIST xs:simpleType id ID #IMPLIED> + <!ATTLIST xs:maxExclusive id ID #IMPLIED> + <!ATTLIST xs:minExclusive id ID #IMPLIED> + <!ATTLIST xs:maxInclusive id ID #IMPLIED> + <!ATTLIST xs:minInclusive id ID #IMPLIED> + <!ATTLIST xs:totalDigits id ID #IMPLIED> + <!ATTLIST xs:fractionDigits id ID #IMPLIED> + <!ATTLIST xs:length id ID #IMPLIED> + <!ATTLIST xs:minLength id ID #IMPLIED> + <!ATTLIST xs:maxLength id ID #IMPLIED> + <!ATTLIST xs:enumeration id ID #IMPLIED> + <!ATTLIST xs:pattern id ID #IMPLIED> + <!ATTLIST xs:assertion id ID #IMPLIED> + <!ATTLIST xs:explicitTimezone id ID #IMPLIED> + <!ATTLIST xs:appinfo id ID #IMPLIED> + <!ATTLIST xs:documentation id ID #IMPLIED> + <!ATTLIST xs:list id ID #IMPLIED> + <!ATTLIST xs:union id ID #IMPLIED> + ]> + +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" xml:lang="EN" + targetNamespace="http://www.w3.org/2001/XMLSchema" + version="1.0"> <xs:annotation> <xs:documentation> - Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp - Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp + Part 1 version: structures.xsd (rec-20120405) + Part 2 version: datatypes.xsd (rec-20120405) </xs:documentation> </xs:annotation> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/2004/PER-xmlschema-1-20040318/structures.html"> + <xs:annotation> + <xs:documentation source="../structures/structures.html"> 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) + XML Schema Definition 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</xs:documentation> - </xs:annotation> + the W3C Recommendation of which this is a part. - <xs:annotation> - <xs:documentation> + See below (at the bottom of this document) for information about + the revision and namespace-versioning policy governing this + schema document. + + </xs:documentation> + </xs:annotation> + <xs:annotation> + <xs:documentation> The simpleType element and all of its members are defined - towards the end of this schema document</xs:documentation> + towards the end of this schema document.</xs:documentation> </xs:annotation> - - <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"> - <xs:annotation> - <xs:documentation> + <xs:import namespace="http://www.w3.org/XML/1998/namespace" + schemaLocation="http://www.w3.org/2001/xml.xsd"> + <xs:annotation> + <xs:documentation> Get access to the xml: attribute groups for xml:lang as declared on 'schema' and 'documentation' below </xs:documentation> - </xs:annotation> - </xs:import> - - <xs:complexType name="openAttrs"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + </xs:import> + <xs:complexType name="openAttrs"> + <xs:annotation> + <xs:documentation> This type is extended by almost all schema types to allow attributes from other namespaces to be added to user schemas. </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:restriction base="xs:anyType"> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="annotated"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:restriction base="xs:anyType"> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="annotated"> + <xs:annotation> + <xs:documentation> This type is extended by all types which allow annotation - other than <schema> itself + other than <schema> itself </xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="xs:openAttrs"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="id" type="xs:ID"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:group name="schemaTop"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="xs:openAttrs"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="id" type="xs:ID"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:group name="composition"> + <xs:choice> + <xs:element ref="xs:include"/> + <xs:element ref="xs:import"/> + <xs:element ref="xs:redefine"/> + <xs:element ref="xs:override"/> + <xs:element ref="xs:annotation"/> + </xs:choice> + </xs:group> + <xs:group name="schemaTop"> + <xs:annotation> + <xs:documentation> This group is for the elements which occur freely at the top level of schemas. All of their types are based on the "annotated" type by extension.</xs:documentation> - </xs:annotation> - <xs:choice> - <xs:group ref="xs:redefinable"/> - <xs:element ref="xs:element"/> - <xs:element ref="xs:attribute"/> - <xs:element ref="xs:notation"/> - </xs:choice> - </xs:group> - - <xs:group name="redefinable"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:choice> + <xs:group ref="xs:redefinable"/> + <xs:element ref="xs:element"/> + <xs:element ref="xs:attribute"/> + <xs:element ref="xs:notation"/> + </xs:choice> + </xs:group> + <xs:group name="redefinable"> + <xs:annotation> + <xs:documentation> This group is for the elements which can self-redefine (see <redefine> below).</xs:documentation> - </xs:annotation> - <xs:choice> - <xs:element ref="xs:simpleType"/> - <xs:element ref="xs:complexType"/> - <xs:element ref="xs:group"/> - <xs:element ref="xs:attributeGroup"/> - </xs:choice> - </xs:group> - - <xs:simpleType name="formChoice"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:choice> + <xs:element ref="xs:simpleType"/> + <xs:element ref="xs:complexType"/> + <xs:element ref="xs:group"/> + <xs:element ref="xs:attributeGroup"/> + </xs:choice> + </xs:group> + <xs:simpleType name="formChoice"> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:NMTOKEN"> - <xs:enumeration value="qualified"/> - <xs:enumeration value="unqualified"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="reducedDerivationControl"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:restriction base="xs:NMTOKEN"> + <xs:enumeration value="qualified"/> + <xs:enumeration value="unqualified"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="reducedDerivationControl"> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:derivationControl"> - <xs:enumeration value="extension"/> - <xs:enumeration value="restriction"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="derivationSet"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:restriction base="xs:derivationControl"> + <xs:enumeration value="extension"/> + <xs:enumeration value="restriction"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType name="derivationSet"> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - <xs:documentation> + <xs:documentation> #all or (possibly empty) subset of {extension, restriction}</xs:documentation> - </xs:annotation> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:enumeration value="#all"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:list itemType="xs:reducedDerivationControl"/> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:simpleType name="typeDerivationControl"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:list itemType="xs:reducedDerivationControl"/> + </xs:simpleType> + </xs:union> + </xs:simpleType> + <xs:simpleType name="typeDerivationControl"> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:derivationControl"> - <xs:enumeration value="extension"/> - <xs:enumeration value="restriction"/> - <xs:enumeration value="list"/> - <xs:enumeration value="union"/> - </xs:restriction> - </xs:simpleType> - + </xs:annotation> + <xs:restriction base="xs:derivationControl"> + <xs:enumeration value="extension"/> + <xs:enumeration value="restriction"/> + <xs:enumeration value="list"/> + <xs:enumeration value="union"/> + </xs:restriction> + </xs:simpleType> <xs:simpleType name="fullDerivationSet"> - <xs:annotation> - <xs:documentation> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - <xs:documentation> + <xs:documentation> #all or (possibly empty) subset of {extension, restriction, list, union}</xs:documentation> - </xs:annotation> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:enumeration value="#all"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:list itemType="xs:typeDerivationControl"/> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:element name="schema" id="schema"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:openAttrs"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element ref="xs:include"/> - <xs:element ref="xs:import"/> - <xs:element ref="xs:redefine"/> - <xs:element ref="xs:annotation"/> - </xs:choice> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:group ref="xs:schemaTop"/> - <xs:element ref="xs:annotation" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:sequence> - <xs:attribute name="targetNamespace" type="xs:anyURI"/> - <xs:attribute name="version" type="xs:token"/> - <xs:attribute name="finalDefault" type="xs:fullDerivationSet" use="optional" default=""/> - <xs:attribute name="blockDefault" type="xs:blockSet" use="optional" default=""/> - <xs:attribute name="attributeFormDefault" type="xs:formChoice" use="optional" default="unqualified"/> - <xs:attribute name="elementFormDefault" type="xs:formChoice" use="optional" default="unqualified"/> - <xs:attribute name="id" type="xs:ID"/> - <xs:attribute ref="xml:lang"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:key name="element"> - <xs:selector xpath="xs:element"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="attribute"> - <xs:selector xpath="xs:attribute"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="type"> - <xs:selector xpath="xs:complexType|xs:simpleType"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="group"> - <xs:selector xpath="xs:group"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="attributeGroup"> - <xs:selector xpath="xs:attributeGroup"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="notation"> - <xs:selector xpath="xs:notation"/> - <xs:field xpath="@name"/> - </xs:key> - - <xs:key name="identityConstraint"> - <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/> - <xs:field xpath="@name"/> - </xs:key> - - </xs:element> - - <xs:simpleType name="allNNI"> - <xs:annotation><xs:documentation> - for maxOccurs</xs:documentation></xs:annotation> - <xs:union memberTypes="xs:nonNegativeInteger"> - <xs:simpleType> - <xs:restriction base="xs:NMTOKEN"> - <xs:enumeration value="unbounded"/> - </xs:restriction> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:attributeGroup name="occurs"> - <xs:annotation><xs:documentation> - for all particles</xs:documentation></xs:annotation> - <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/> - <xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/> - </xs:attributeGroup> - - <xs:attributeGroup name="defRef"> - <xs:annotation><xs:documentation> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> + <xs:simpleType> + <xs:list itemType="xs:typeDerivationControl"/> + </xs:simpleType> + </xs:union> + </xs:simpleType> + <xs:element name="schema" id="schema"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-schema"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:openAttrs"> + <xs:sequence> + <xs:group ref="xs:composition" minOccurs="0" maxOccurs="unbounded"/> + <xs:sequence minOccurs="0"> + <xs:element ref="xs:defaultOpenContent"/> + <xs:element ref="xs:annotation" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="xs:schemaTop"/> + <xs:element ref="xs:annotation" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + </xs:sequence> + <xs:attribute name="targetNamespace" type="xs:anyURI"/> + <xs:attribute name="version" type="xs:token"/> + <xs:attribute name="finalDefault" type="xs:fullDerivationSet" + default="" use="optional"/> + <xs:attribute name="blockDefault" type="xs:blockSet" default="" + use="optional"/> + <xs:attribute name="attributeFormDefault" type="xs:formChoice" + default="unqualified" use="optional"/> + <xs:attribute name="elementFormDefault" type="xs:formChoice" + default="unqualified" use="optional"/> + <xs:attribute name="defaultAttributes" type="xs:QName"/> + <xs:attribute name="xpathDefaultNamespace" type="xs:xpathDefaultNamespace" + default="##local" use="optional"/> + <xs:attribute name="id" type="xs:ID"/> + <xs:attribute ref="xml:lang"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:key name="element"> + <xs:selector xpath="xs:element"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="attribute"> + <xs:selector xpath="xs:attribute"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="type"> + <xs:selector xpath="xs:complexType|xs:simpleType"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="group"> + <xs:selector xpath="xs:group"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="attributeGroup"> + <xs:selector xpath="xs:attributeGroup"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="notation"> + <xs:selector xpath="xs:notation"/> + <xs:field xpath="@name"/> + </xs:key> + <xs:key name="identityConstraint"> + <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/> + <xs:field xpath="@name"/> + </xs:key> + </xs:element> + <xs:simpleType name="allNNI"> + <xs:annotation> + <xs:documentation> + for maxOccurs</xs:documentation> + </xs:annotation> + <xs:union memberTypes="xs:nonNegativeInteger"> + <xs:simpleType> + <xs:restriction base="xs:NMTOKEN"> + <xs:enumeration value="unbounded"/> + </xs:restriction> + </xs:simpleType> + </xs:union> + </xs:simpleType> + <xs:attributeGroup name="occurs"> + <xs:annotation> + <xs:documentation> + for all particles</xs:documentation> + </xs:annotation> + <xs:attribute name="minOccurs" type="xs:nonNegativeInteger" default="1" + use="optional"/> + <xs:attribute name="maxOccurs" type="xs:allNNI" default="1" use="optional"/> + </xs:attributeGroup> + <xs:attributeGroup name="defRef"> + <xs:annotation> + <xs:documentation> for element, group and attributeGroup, - which both define and reference</xs:documentation></xs:annotation> - <xs:attribute name="name" type="xs:NCName"/> - <xs:attribute name="ref" type="xs:QName"/> - </xs:attributeGroup> - - <xs:group name="typeDefParticle"> - <xs:annotation> - <xs:documentation> - 'complexType' uses this</xs:documentation></xs:annotation> - <xs:choice> - <xs:element name="group" type="xs:groupRef"/> - <xs:element ref="xs:all"/> - <xs:element ref="xs:choice"/> - <xs:element ref="xs:sequence"/> - </xs:choice> - </xs:group> - - - - <xs:group name="nestedParticle"> - <xs:choice> - <xs:element name="element" type="xs:localElement"/> - <xs:element name="group" type="xs:groupRef"/> - <xs:element ref="xs:choice"/> - <xs:element ref="xs:sequence"/> - <xs:element ref="xs:any"/> - </xs:choice> - </xs:group> - - <xs:group name="particle"> - <xs:choice> - <xs:element name="element" type="xs:localElement"/> - <xs:element name="group" type="xs:groupRef"/> - <xs:element ref="xs:all"/> - <xs:element ref="xs:choice"/> - <xs:element ref="xs:sequence"/> - <xs:element ref="xs:any"/> - </xs:choice> - </xs:group> - - <xs:complexType name="attribute"> - <xs:complexContent> - <xs:extension base="xs:annotated"> + which both define and reference</xs:documentation> + </xs:annotation> + <xs:attribute name="name" type="xs:NCName"/> + <xs:attribute name="ref" type="xs:QName"/> + </xs:attributeGroup> + <xs:group name="typeDefParticle"> + <xs:annotation> + <xs:documentation> + 'complexType' uses this</xs:documentation> + </xs:annotation> + <xs:choice> + <xs:element name="group" type="xs:groupRef"/> + <xs:element ref="xs:all"/> + <xs:element ref="xs:choice"/> + <xs:element ref="xs:sequence"/> + </xs:choice> + </xs:group> + <xs:group name="nestedParticle"> + <xs:choice> + <xs:element name="element" type="xs:localElement"/> + <xs:element name="group" type="xs:groupRef"/> + + <xs:element ref="xs:choice"/> + <xs:element ref="xs:sequence"/> + <xs:element ref="xs:any"/> + </xs:choice> + </xs:group> + <xs:group name="particle"> + <xs:choice> + <xs:element name="element" type="xs:localElement"/> + <xs:element name="group" type="xs:groupRef"/> + <xs:element ref="xs:all"/> + <xs:element ref="xs:choice"/> + <xs:element ref="xs:sequence"/> + <xs:element ref="xs:any"/> + </xs:choice> + </xs:group> + <xs:complexType name="attribute"> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/> + </xs:sequence> + <xs:attributeGroup ref="xs:defRef"/> + <xs:attribute name="type" type="xs:QName"/> + <xs:attribute name="use" default="optional" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:NMTOKEN"> + <xs:enumeration value="prohibited"/> + <xs:enumeration value="optional"/> + <xs:enumeration value="required"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="default" type="xs:string"/> + <xs:attribute name="fixed" type="xs:string"/> + <xs:attribute name="form" type="xs:formChoice"/> + <xs:attribute name="targetNamespace" type="xs:anyURI"/> + + <xs:attribute name="inheritable" type="xs:boolean"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="topLevelAttribute"> + <xs:complexContent> + <xs:restriction base="xs:attribute"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="ref" use="prohibited"/> + <xs:attribute name="form" use="prohibited"/> + <xs:attribute name="use" use="prohibited"/> + <xs:attribute name="targetNamespace" use="prohibited"/> + <xs:attribute name="name" type="xs:NCName" use="required"/> + <xs:attribute name="inheritable" type="xs:boolean"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:group name="attrDecls"> <xs:sequence> - <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element name="attribute" type="xs:attribute"/> + <xs:element name="attributeGroup" type="xs:attributeGroupRef"/> + </xs:choice> + <xs:element ref="xs:anyAttribute" minOccurs="0"/> </xs:sequence> - <xs:attributeGroup ref="xs:defRef"/> - <xs:attribute name="type" type="xs:QName"/> - <xs:attribute name="use" use="optional" default="optional"> - <xs:simpleType> - <xs:restriction base="xs:NMTOKEN"> - <xs:enumeration value="prohibited"/> - <xs:enumeration value="optional"/> - <xs:enumeration value="required"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="default" type="xs:string"/> - <xs:attribute name="fixed" type="xs:string"/> - <xs:attribute name="form" type="xs:formChoice"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="topLevelAttribute"> - <xs:complexContent> - <xs:restriction base="xs:attribute"> + </xs:group> + <xs:element name="anyAttribute" id="anyAttribute"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-anyAttribute"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:wildcard"> + <xs:attribute name="notQName" type="xs:qnameListA" + use="optional"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:group name="assertions"> <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType"/> + <xs:element name="assert" type="xs:assertion" + minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> - <xs:attribute name="ref" use="prohibited"/> - <xs:attribute name="form" use="prohibited"/> - <xs:attribute name="use" use="prohibited"/> - <xs:attribute name="name" use="required" type="xs:NCName"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:group name="attrDecls"> - <xs:sequence> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element name="attribute" type="xs:attribute"/> - <xs:element name="attributeGroup" type="xs:attributeGroupRef"/> - </xs:choice> - <xs:element ref="xs:anyAttribute" minOccurs="0"/> - </xs:sequence> - </xs:group> - - <xs:element name="anyAttribute" type="xs:wildcard" id="anyAttribute"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"/> - </xs:annotation> - </xs:element> - - <xs:group name="complexTypeModel"> - <xs:choice> + </xs:group> + <xs:complexType name="assertion"> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:attribute name="test" type="xs:string"/> + <xs:attribute name="xpathDefaultNamespace" type="xs:xpathDefaultNamespace"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:group name="complexTypeModel"> + <xs:choice> <xs:element ref="xs:simpleContent"/> <xs:element ref="xs:complexContent"/> <xs:sequence> - <xs:annotation> - <xs:documentation> + <xs:annotation> + <xs:documentation> This branch is short for <complexContent> <restriction base="xs:anyType"> ... </restriction> </complexContent></xs:documentation> - </xs:annotation> - <xs:group ref="xs:typeDefParticle" minOccurs="0"/> - <xs:group ref="xs:attrDecls"/> + </xs:annotation> + <xs:element ref="xs:openContent" minOccurs="0"/> + <xs:group ref="xs:typeDefParticle" minOccurs="0"/> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> </xs:sequence> - </xs:choice> - </xs:group> - - <xs:complexType name="complexType" abstract="true"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:group ref="xs:complexTypeModel"/> - <xs:attribute name="name" type="xs:NCName"> - <xs:annotation> - <xs:documentation> - Will be restricted to required or forbidden</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="mixed" type="xs:boolean" use="optional" default="false"> - <xs:annotation> - <xs:documentation> + </xs:choice> + </xs:group> + <xs:complexType name="complexType" abstract="true"> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:group ref="xs:complexTypeModel"/> + <xs:attribute name="name" type="xs:NCName"> + <xs:annotation> + <xs:documentation> + Will be restricted to required or prohibited</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="mixed" type="xs:boolean" use="optional"> + <xs:annotation> + <xs:documentation> Not allowed if simpleContent child is chosen. - May be overriden by setting on complexContent child.</xs:documentation> - </xs:annotation> - </xs:attribute> - <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/> - <xs:attribute name="final" type="xs:derivationSet"/> - <xs:attribute name="block" type="xs:derivationSet"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="topLevelComplexType"> - <xs:complexContent> - <xs:restriction base="xs:complexType"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:complexTypeModel"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="localComplexType"> - <xs:complexContent> - <xs:restriction base="xs:complexType"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:complexTypeModel"/> - </xs:sequence> - <xs:attribute name="name" use="prohibited"/> - <xs:attribute name="abstract" use="prohibited"/> - <xs:attribute name="final" use="prohibited"/> - <xs:attribute name="block" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="restrictionType"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:sequence> - <xs:choice minOccurs="0"> - <xs:group ref="xs:typeDefParticle"/> - <xs:group ref="xs:simpleRestrictionModel"/> - </xs:choice> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:attribute name="base" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="complexRestrictionType"> - <xs:complexContent> - <xs:restriction base="xs:restrictionType"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0"> - <xs:annotation> - <xs:documentation>This choice is added simply to - make this a valid restriction per the REC</xs:documentation> - </xs:annotation> - <xs:group ref="xs:typeDefParticle"/> - </xs:choice> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="extensionType"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:sequence> - <xs:group ref="xs:typeDefParticle" minOccurs="0"/> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:attribute name="base" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="complexContent" id="complexContent"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:choice> - <xs:element name="restriction" type="xs:complexRestrictionType"/> - <xs:element name="extension" type="xs:extensionType"/> - </xs:choice> - <xs:attribute name="mixed" type="xs:boolean"> - <xs:annotation> - <xs:documentation> - Overrides any setting on complexType parent.</xs:documentation> - </xs:annotation> - </xs:attribute> - </xs:extension> - </xs:complexContent> + May be overridden by setting on complexContent child.</xs:documentation> + </xs:annotation> + </xs:attribute> + <xs:attribute name="abstract" type="xs:boolean" default="false" + use="optional"/> + <xs:attribute name="final" type="xs:derivationSet"/> + <xs:attribute name="block" type="xs:derivationSet"/> + <xs:attribute name="defaultAttributesApply" type="xs:boolean" + default="true" use="optional"/> + </xs:extension> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:complexType name="simpleRestrictionType"> - <xs:complexContent> - <xs:restriction base="xs:restrictionType"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0"> - <xs:annotation> - <xs:documentation>This choice is added simply to - make this a valid restriction per the REC</xs:documentation> - </xs:annotation> - <xs:group ref="xs:simpleRestrictionModel"/> - </xs:choice> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="simpleExtensionType"> - <xs:complexContent> - <xs:restriction base="xs:extensionType"> - <xs:sequence> - <xs:annotation> - <xs:documentation> + <xs:complexType name="topLevelComplexType"> + <xs:complexContent> + <xs:restriction base="xs:complexType"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:group ref="xs:complexTypeModel"/> + </xs:sequence> + <xs:attribute name="name" type="xs:NCName" use="required"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="localComplexType"> + <xs:complexContent> + <xs:restriction base="xs:complexType"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:group ref="xs:complexTypeModel"/> + </xs:sequence> + <xs:attribute name="name" use="prohibited"/> + <xs:attribute name="abstract" use="prohibited"/> + <xs:attribute name="final" use="prohibited"/> + <xs:attribute name="block" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="restrictionType"> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:choice minOccurs="0"> + + <xs:sequence> + <xs:element ref="xs:openContent" minOccurs="0"/> + <xs:group ref="xs:typeDefParticle"/> + </xs:sequence> + <xs:group ref="xs:simpleRestrictionModel"/> + </xs:choice> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> + </xs:sequence> + <xs:attribute name="base" type="xs:QName" use="required"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="complexRestrictionType"> + <xs:complexContent> + <xs:restriction base="xs:restrictionType"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0"> + <xs:annotation> + <xs:documentation>This choice is added simply to + make this a valid restriction per the REC</xs:documentation> + </xs:annotation> + + <xs:sequence> + <xs:element ref="xs:openContent" minOccurs="0"/> + <xs:group ref="xs:typeDefParticle"/> + </xs:sequence> + </xs:choice> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> + </xs:sequence> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="extensionType"> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:element ref="xs:openContent" minOccurs="0"/> + <xs:group ref="xs:typeDefParticle" minOccurs="0"/> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> + </xs:sequence> + <xs:attribute name="base" type="xs:QName" use="required"/> + + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:element name="complexContent" id="complexContent"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-complexContent"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:choice> + <xs:element name="restriction" type="xs:complexRestrictionType"/> + <xs:element name="extension" type="xs:extensionType"/> + </xs:choice> + <xs:attribute name="mixed" type="xs:boolean"> + <xs:annotation> + <xs:documentation> + Overrides any setting on complexType parent.</xs:documentation> + </xs:annotation> + </xs:attribute> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="openContent" id="openContent"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-openContent"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:element name="any" minOccurs="0" type="xs:wildcard"/> + </xs:sequence> + <xs:attribute name="mode" default="interleave" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:NMTOKEN"> + <xs:enumeration value="none"/> + <xs:enumeration value="interleave"/> + <xs:enumeration value="suffix"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="defaultOpenContent" id="defaultOpenContent"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-defaultOpenContent"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:element name="any" type="xs:wildcard"/> + </xs:sequence> + <xs:attribute name="appliesToEmpty" type="xs:boolean" + default="false" use="optional"/> + <xs:attribute name="mode" default="interleave" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:NMTOKEN"> + <xs:enumeration value="interleave"/> + <xs:enumeration value="suffix"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:complexType name="simpleRestrictionType"> + <xs:complexContent> + <xs:restriction base="xs:restrictionType"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0"> + <xs:annotation> + <xs:documentation>This choice is added simply to + make this a valid restriction per the REC</xs:documentation> + </xs:annotation> + <xs:group ref="xs:simpleRestrictionModel"/> + </xs:choice> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> + </xs:sequence> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="simpleExtensionType"> + <xs:complexContent> + <xs:restriction base="xs:extensionType"> + <xs:sequence> + <xs:annotation> + <xs:documentation> No typeDefParticle group reference</xs:documentation> - </xs:annotation> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:element name="simpleContent" id="simpleContent"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:choice> - <xs:element name="restriction" type="xs:simpleRestrictionType"/> - <xs:element name="extension" type="xs:simpleExtensionType"/> - </xs:choice> - </xs:extension> - </xs:complexContent> + </xs:annotation> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:group ref="xs:attrDecls"/> + <xs:group ref="xs:assertions"/> + </xs:sequence> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"/> - </xs:annotation> - </xs:element> - - + <xs:element name="simpleContent" id="simpleContent"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-simpleContent"/> + </xs:annotation> + <xs:complexType> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:choice> + <xs:element name="restriction" type="xs:simpleRestrictionType"/> + <xs:element name="extension" type="xs:simpleExtensionType"/> + </xs:choice> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="complexType" type="xs:topLevelComplexType" id="complexType"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-complexType"/> + </xs:annotation> + </xs:element> <xs:simpleType name="blockSet"> - <xs:annotation> - <xs:documentation> + <xs:annotation> + <xs:documentation> A utility type, not for public use</xs:documentation> - <xs:documentation> + <xs:documentation> #all or (possibly empty) subset of {substitution, extension, restriction}</xs:documentation> - </xs:annotation> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:enumeration value="#all"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:list> + </xs:annotation> + <xs:union> + <xs:simpleType> + <xs:restriction base="xs:token"> + <xs:enumeration value="#all"/> + </xs:restriction> + </xs:simpleType> <xs:simpleType> - <xs:restriction base="xs:derivationControl"> - <xs:enumeration value="extension"/> - <xs:enumeration value="restriction"/> - <xs:enumeration value="substitution"/> - </xs:restriction> + <xs:list> + <xs:simpleType> + <xs:restriction base="xs:derivationControl"> + <xs:enumeration value="extension"/> + <xs:enumeration value="restriction"/> + <xs:enumeration value="substitution"/> + </xs:restriction> + </xs:simpleType> + </xs:list> </xs:simpleType> - </xs:list> - </xs:simpleType> - </xs:union> + </xs:union> </xs:simpleType> - - <xs:complexType name="element" abstract="true"> - <xs:annotation> - <xs:documentation> + <xs:complexType name="element" abstract="true"> + <xs:annotation> + <xs:documentation> The element element can be used either at the top level 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.</xs:documentation> - </xs:annotation> - - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:sequence> - <xs:choice minOccurs="0"> - <xs:element name="simpleType" type="xs:localSimpleType"/> - <xs:element name="complexType" type="xs:localComplexType"/> - </xs:choice> - <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attributeGroup ref="xs:defRef"/> - <xs:attribute name="type" type="xs:QName"/> - <xs:attribute name="substitutionGroup" type="xs:QName"/> - <xs:attributeGroup ref="xs:occurs"/> - <xs:attribute name="default" type="xs:string"/> - <xs:attribute name="fixed" type="xs:string"/> - <xs:attribute name="nillable" type="xs:boolean" use="optional" default="false"/> - <xs:attribute name="abstract" type="xs:boolean" use="optional" default="false"/> - <xs:attribute name="final" type="xs:derivationSet"/> - <xs:attribute name="block" type="xs:blockSet"/> - <xs:attribute name="form" type="xs:formChoice"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="topLevelElement"> - <xs:complexContent> - <xs:restriction base="xs:element"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0"> - <xs:element name="simpleType" type="xs:localSimpleType"/> - <xs:element name="complexType" type="xs:localComplexType"/> - </xs:choice> - <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="ref" use="prohibited"/> - <xs:attribute name="form" use="prohibited"/> - <xs:attribute name="minOccurs" use="prohibited"/> - <xs:attribute name="maxOccurs" use="prohibited"/> - <xs:attribute name="name" use="required" type="xs:NCName"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="localElement"> - <xs:complexContent> - <xs:restriction base="xs:element"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0"> - <xs:element name="simpleType" type="xs:localSimpleType"/> - <xs:element name="complexType" type="xs:localComplexType"/> - </xs:choice> - <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="substitutionGroup" use="prohibited"/> - <xs:attribute name="final" use="prohibited"/> - <xs:attribute name="abstract" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:element name="element" type="xs:topLevelElement" id="element"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"/> - </xs:annotation> - </xs:element> - - <xs:complexType name="group" abstract="true"> - <xs:annotation> - <xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:sequence> + <xs:choice minOccurs="0"> + <xs:element name="simpleType" type="xs:localSimpleType"/> + <xs:element name="complexType" type="xs:localComplexType"/> + </xs:choice> + <xs:element name="alternative" type="xs:altType" + minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xs:identityConstraint" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + <xs:attributeGroup ref="xs:defRef"/> + <xs:attribute name="type" type="xs:QName"/> + + <xs:attribute name="substitutionGroup"> + <xs:simpleType> + <xs:list itemType="xs:QName"/> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="xs:occurs"/> + <xs:attribute name="default" type="xs:string"/> + <xs:attribute name="fixed" type="xs:string"/> + <xs:attribute name="nillable" type="xs:boolean" use="optional"/> + <xs:attribute name="abstract" type="xs:boolean" default="false" + use="optional"/> + <xs:attribute name="final" type="xs:derivationSet"/> + <xs:attribute name="block" type="xs:blockSet"/> + <xs:attribute name="form" type="xs:formChoice"/> + <xs:attribute name="targetNamespace" type="xs:anyURI"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="topLevelElement"> + <xs:complexContent> + <xs:restriction base="xs:element"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0"> + <xs:element name="simpleType" type="xs:localSimpleType"/> + <xs:element name="complexType" type="xs:localComplexType"/> + </xs:choice> + <xs:element name="alternative" type="xs:altType" + minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xs:identityConstraint" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="ref" use="prohibited"/> + <xs:attribute name="form" use="prohibited"/> + <xs:attribute name="targetNamespace" use="prohibited"/> + <xs:attribute name="minOccurs" use="prohibited"/> + <xs:attribute name="maxOccurs" use="prohibited"/> + <xs:attribute name="name" type="xs:NCName" use="required"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="localElement"> + <xs:complexContent> + <xs:restriction base="xs:element"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0"> + <xs:element name="simpleType" type="xs:localSimpleType"/> + <xs:element name="complexType" type="xs:localComplexType"/> + </xs:choice> + <xs:element name="alternative" type="xs:altType" + minOccurs="0" maxOccurs="unbounded"/> + <xs:group ref="xs:identityConstraint" minOccurs="0" + maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="substitutionGroup" use="prohibited"/> + <xs:attribute name="final" use="prohibited"/> + <xs:attribute name="abstract" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + <xs:element name="element" type="xs:topLevelElement" id="element"> + <xs:annotation> + <xs:documentation + source="../structures/structures.html#element-element"/> + </xs:annotation> + </xs:element> + <xs:complexType name="altType"> + <xs:annotation> + <xs:documentation> + This type is used for 'alternative' elements. + </xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:extension base="xs:annotated"> + <xs:choice minOccurs="0"> + <xs:element name="simpleType" type="xs:localSimpleType"/> + <xs:element name="complexType" type="xs:localComplexType"/> + </xs:choice> + <xs:attribute name="test" type="xs:string" use="optional"/> + <xs:attribute name="type" type="xs:QName" use="optional"/> + <xs:attribute name="xpathDefaultNamespace" type="xs:xpathDefaultNamespace"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="group" abstract="true"> + <xs:annotation> + <xs:documentation> group type for explicit groups, named top-level groups and group references</xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/> - <xs:attributeGroup ref="xs:defRef"/> - <xs:attributeGroup ref="xs:occurs"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="realGroup"> - <xs:complexContent> - <xs:restriction base="xs:group"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0" maxOccurs="1"> - <xs:element ref="xs:all"/> - <xs:element ref="xs:choice"/> - <xs:element ref="xs:sequence"/> - </xs:choice> - </xs:sequence> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="namedGroup"> - <xs:complexContent> - <xs:restriction base="xs:realGroup"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="1" maxOccurs="1"> - <xs:element name="all"> - <xs:complexType> - <xs:complexContent> - <xs:restriction base="xs:all"> - <xs:group ref="xs:allModel"/> - <xs:attribute name="minOccurs" use="prohibited"/> - <xs:attribute name="maxOccurs" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - </xs:element> - <xs:element name="choice" type="xs:simpleExplicitGroup"/> - <xs:element name="sequence" type="xs:simpleExplicitGroup"/> - </xs:choice> - </xs:sequence> - <xs:attribute name="name" use="required" type="xs:NCName"/> - <xs:attribute name="ref" use="prohibited"/> - <xs:attribute name="minOccurs" use="prohibited"/> - <xs:attribute name="maxOccurs" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="groupRef"> - <xs:complexContent> - <xs:restriction base="xs:realGroup"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="ref" use="required" type="xs:QName"/> - <xs:attribute name="name" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="explicitGroup"> - <xs:annotation> - <xs:documentation> - group type for the three kinds of group</xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:restriction base="xs:group"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="prohibited"/> - <xs:attribute name="ref" type="xs:QName" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="simpleExplicitGroup"> - <xs:complexContent> - <xs:restriction base="xs:explicitGroup"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="minOccurs" use="prohibited"/> - <xs:attribute name="maxOccurs" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:group name="allModel"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:annotation> - <xs:documentation>This choice with min/max is here to - avoid a pblm with the Elt:All/Choice/Seq - Particle derivation constraint</xs:documentation> - </xs:annotation> - <xs:element name="element" type="xs:narrowMaxMin"/> - </xs:choice> - </xs:sequence> - </xs:group> - - - <xs:complexType name="narrowMaxMin"> - <xs:annotation> - <xs:documentation>restricted max/min</xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:restriction base="xs:localElement"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:choice minOccurs="0"> - <xs:element name="simpleType" type="xs:localSimpleType"/> - <xs:element name="complexType" type="xs:localComplexType"/> - </xs:choice> - <xs:group ref="xs:identityConstraint" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="minOccurs" use="optional" default="1"> - <xs:simpleType> - <xs:restriction base="xs:nonNegativeInteger"> - <xs:enumeration value="0"/> - <xs:enumeration value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="maxOccurs" use="optional" default="1"> - <xs:simpleType> - <xs:restriction base="xs:allNNI"> - <xs:enumeration value="0"/> - <xs:enumeration value="1"/> + </xs:annotation> + <xs:complexContent> + <xs:extension base="xs:annotated"> + + <xs:group ref="xs:particle" minOccurs="0" maxOccurs="unbounded"/> + + <xs:attributeGroup ref="xs:defRef"/> + <xs:attributeGroup ref="xs:occurs"/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + <xs:complexType name="realGroup"> + <xs:complexContent> + <xs:restriction base="xs:group"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0" maxOccurs="1"> + <xs:element ref="xs:all"/> + <xs:element ref="xs:choice"/> + <xs:element ref="xs:sequence"/> + </xs:choice> + + </xs:sequence> + <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="all"> - <xs:annotation> - <xs:documentation> - Only elements allowed inside</xs:documentation> - </xs:annotation> - <xs:complexContent> - <xs:restriction base="xs:explicitGroup"> - <xs:group ref="xs:allModel"/> - <xs:attribute name="minOccurs" use="optional" default="1"> - <xs:simpleType> - <xs:restriction base="xs:nonNegativeInteger"> - <xs:enumeration value="0"/> - <xs:enumeration value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:attribute name="maxOccurs" use="optional" default="1"> - <xs:simpleType> - <xs:restriction base="xs:allNNI"> - <xs:enumeration value="1"/> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> + </xs:complexContent> </xs:complexType> - - <xs:element name="all" id="all" type="xs:all"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"/> - </xs:annotation> - </xs:element> - - <xs:element name="choice" type="xs:explicitGroup" id="choice"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"/> - </xs:annotation> - </xs:element> - - <xs:element name="sequence" type="xs:explicitGroup" id="sequence"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"/> - </xs:annotation> - </xs:element> - - <xs:element name="group" type="xs:namedGroup" id="group"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"/> - </xs:annotation> - </xs:element> - - <xs:complexType name="wildcard"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="namespace" type="xs:namespaceList" use="optional" default="##any"/> - <xs:attribute name="processContents" use="optional" default="strict"> - <xs:simpleType> - <xs:restriction base="xs:NMTOKEN"> - <xs:enumeration value="skip"/> - <xs:enumeration value="lax"/> - <xs:enumeration value="strict"/> + <xs:complexType name="namedGroup"> + <xs:complexContent> + <xs:restriction base="xs:realGroup"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="1" maxOccurs="1"> + <xs:element name="all"> + <xs:complexType> + <xs:complexContent> + <xs:restriction base="xs:all"> + <xs:group ref="xs:allModel"/> + <xs:attribute name="minOccurs" use="prohibited"/> + <xs:attribute name="maxOccurs" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + </xs:element> + <xs:element name="choice" type="xs:simpleExplicitGroup"/> + <xs:element name="sequence" type="xs:simpleExplicitGroup"/> + </xs:choice> + </xs:sequence> + <xs:attribute name="name" type="xs:NCName" use="required"/> + <xs:attribute name="ref" use="prohibited"/> + <xs:attribute name="minOccurs" use="prohibited"/> + <xs:attribute name="maxOccurs" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:element name="any" id="any"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:wildcard"> - <xs:attributeGroup ref="xs:occurs"/> - </xs:extension> - </xs:complexContent> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:annotation> - <xs:documentation> - simple type for the value of the 'namespace' attr of - 'any' and 'anyAttribute'</xs:documentation> - </xs:annotation> - <xs:annotation> - <xs:documentation> - 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</xs:documentation> - </xs:annotation> - - <xs:simpleType name="namespaceList"> - <xs:annotation> - <xs:documentation> - A utility type, not for public use</xs:documentation> - </xs:annotation> - <xs:union> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:enumeration value="##any"/> - <xs:enumeration value="##other"/> - </xs:restriction> - </xs:simpleType> - <xs:simpleType> - <xs:list> - <xs:simpleType> - <xs:union memberTypes="xs:anyURI"> - <xs:simpleType> - <xs:restriction base="xs:token"> - <xs:enumeration value="##targetNamespace"/> - <xs:enumeration value="##local"/> - </xs:restriction> - </xs:simpleType> - </xs:union> - </xs:simpleType> - </xs:list> - </xs:simpleType> - </xs:union> - </xs:simpleType> - - <xs:element name="attribute" type="xs:topLevelAttribute" id="attribute"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"/> - </xs:annotation> - </xs:element> - - <xs:complexType name="attributeGroup" abstract="true"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:group ref="xs:attrDecls"/> - <xs:attributeGroup ref="xs:defRef"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="namedAttributeGroup"> - <xs:complexContent> - <xs:restriction base="xs:attributeGroup"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - <xs:group ref="xs:attrDecls"/> - </xs:sequence> - <xs:attribute name="name" use="required" type="xs:NCName"/> - <xs:attribute name="ref" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="attributeGroupRef"> - <xs:complexContent> - <xs:restriction base="xs:attributeGroup"> - <xs:sequence> - <xs:element ref="xs:annotation" minOccurs="0"/> - </xs:sequence> - <xs:attribute name="ref" use="required" type="xs:QName"/> - <xs:attribute name="name" use="prohibited"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:restriction> - </xs:complexContent> - </xs:complexType> - - <xs:element name="attributeGroup" type="xs:namedAttributeGroup" id="attributeGroup"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup"/> - </xs:annotation> - </xs:element> - - <xs:element name="include" id="include"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/> - </xs:extension> - </xs:complexContent> + <xs:complexType name="groupRef"> + <xs:complexContent> + <xs:restriction base="xs:realGroup"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="ref" type="xs:QName" use="required"/> + <xs:attribute name="name" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:element name="redefine" id="redefine"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:openAttrs"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element ref="xs:annotation"/> - <xs:group ref="xs:redefinable"/> - </xs:choice> - <xs:attribute name="schemaLocation" type="xs:anyURI" use="required"/> - <xs:attribute name="id" type="xs:ID"/> - </xs:extension> - </xs:complexContent> + <xs:complexType name="explicitGroup"> + <xs:annotation> + <xs:documentation> + group type for the three kinds of group</xs:documentation> + </xs:annotation> + <xs:complexContent> + <xs:restriction base="xs:group"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="name" use="prohibited"/> + <xs:attribute name="ref" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:element name="import" id="import"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="namespace" type="xs:anyURI"/> - <xs:attribute name="schemaLocation" type="xs:anyURI"/> - </xs:extension> - </xs:complexContent> + <xs:complexType name="simpleExplicitGroup"> + <xs:complexContent> + <xs:restriction base="xs:explicitGroup"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:group ref="xs:nestedParticle" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + <xs:attribute name="minOccurs" use="prohibited"/> + <xs:attribute name="maxOccurs" use="prohibited"/> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> + </xs:complexContent> </xs:complexType> - </xs:element> - - <xs:element name="selector" id="selector"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="xpath" use="required"> - <xs:simpleType> - <xs:annotation> - <xs:documentation>A subset of XPath expressions for use -in selectors</xs:documentation> - <xs:documentation>A utility type, not for public -use</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:token"> - <xs:annotation> - <xs:documentation>The following pattern is intended to allow XPath - expressions per the following EBNF: - Selector ::= Path ( '|' Path )* - Path ::= ('.//')? Step ( '/' Step )* - Step ::= '.' | NameTest - NameTest ::= QName | '*' | NCName ':' '*' - child:: is also allowed - </xs:documentation> - </xs:annotation> - <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*"> - </xs:pattern> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <xs:element name="field" id="field"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="xpath" use="required"> - <xs:simpleType> - <xs:annotation> - <xs:documentation>A subset of XPath expressions for use -in fields</xs:documentation> - <xs:documentation>A utility type, not for public -use</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:token"> + <xs:group name="allModel"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:annotation> - <xs:documentation>The following pattern is intended to allow XPath - expressions per the same EBNF as for selector, - with the following change: - Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) - </xs:documentation> + <xs:documentation>This choice with min/max is here to + avoid a pblm with the Elt:All/Choice/Seq + Particle derivation constraint</xs:documentation> </xs:annotation> - <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*"> - </xs:pattern> - </xs:restriction> - </xs:simpleType> - </xs:attribute> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <xs:complexType name="keybase"> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:sequence> - <xs:element ref="xs:selector"/> - <xs:element ref="xs:field" minOccurs="1" maxOccurs="unbounded"/> - </xs:sequence> - <xs:attribute name="name" type="xs:NCName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:group name="identityConstraint"> - <xs:annotation> - <xs:documentation>The three kinds of identity constraints, all with - type of or derived from 'keybase'. - </xs:documentation> - </xs:annotation> - <xs:choice> - <xs:element ref="xs:unique"/> - <xs:element ref="xs:key"/> - <xs:element ref="xs:keyref"/> - </xs:choice> - </xs:group> - - <xs:element name="unique" type="xs:keybase" id="unique"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"/> - </xs:annotation> - </xs:element> - <xs:element name="key" type="xs:keybase" id="key"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"/> - </xs:annotation> - </xs:element> - <xs:element name="keyref" id="keyref"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:keybase"> - <xs:attribute name="refer" type="xs:QName" use="required"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <xs:element name="notation" id="notation"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"/> - </xs:annotation> - <xs:complexType> - <xs:complexContent> - <xs:extension base="xs:annotated"> - <xs:attribute name="name" type="xs:NCName" use="required"/> - <xs:attribute name="public" type="xs:public"/> - <xs:attribute name="system" type="xs:anyURI"/> - </xs:extension> - </xs:complexContent> - </xs:complexType> - </xs:element> - - <xs:simpleType name="public"> - <xs:annotation> - <xs:documentation> - A utility type, not for public use</xs:documentation> - <xs:documentation> - A public identifier, per ISO 8879</xs:documentation> - </xs:annotation> - <xs:restriction base="xs:token"/> - </xs:simpleType> - - <xs:element name="appinfo" id="appinfo"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"/> - </xs:annotation> - <xs:complexType mixed="true"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:any processContents="lax"/> - </xs:sequence> - <xs:attribute name="source" type="xs:anyURI"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:complexType> - </xs:element> - - <xs:element name="documentation" id="documentation"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"/> - </xs:annotation> - <xs:complexType mixed="true"> - <xs:sequence minOccurs="0" maxOccurs="unbounded"> - <xs:any processContents="lax"/> + <xs:element name="element" type="xs:localElement"/> + <xs:element ref="xs:any"/> + <xs:element name="group"> + <xs:complexType> + <xs:complexContent> + <xs:restriction base="xs:groupRef"> + <xs:sequence> + <xs:element ref="xs:annotation" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="minOccurs" fixed="1" type="xs:nonNegativeInteger"/> + <xs:attribute name="maxOccurs" fixed="1" type="xs:nonNegativeInteger"/> + </xs:restriction> + </xs:complexContent> + </xs:complexType> + </xs:element> + </xs:choice> </xs:sequence> - <xs:attribute name="source" type="xs:anyURI"/> - <xs:attribute ref="xml:lang"/> - <xs:anyAttribute namespace="##other" processContents="lax"/> - </xs:complexType> - </xs:element> - - <xs:element name="annotation" id="annotation"> - <xs:annotation> - <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation"/> - </xs:annotation> - <xs:complexType> + </xs:group> + <xs:complexType name="all"> + <xs:annotation> + <xs:documentation> + Only elements allowed inside</xs:documentation> + </xs:annotation> <xs:complexContent> - <xs:extension base="xs:openAttrs"> - <xs:choice minOccurs="0" maxOccurs="unbounded"> - <xs:element ref="xs:appinfo"/> - <xs:element ref="xs:documentation"/> - </xs:choice> - <xs:attribute name="id" type="xs:ID"/> - </xs:extension> + <xs:restriction base="xs:explicitGroup"> + <xs:group ref="xs:allModel"/> + <xs:attribute name="minOccurs" default="1" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:nonNegativeInteger"> + <xs:enumeration value="0"/> + <xs:enumeration value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="maxOccurs" default="1" use="optional"> + <xs:simpleType> + <xs:restriction base="xs:allNNI"> + <xs:enumeration value="0"/> + <xs:enumeration value="1"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:anyAttribute namespace="##other" processContents="lax"/> + </xs:restriction> </xs:complexContent> - </xs:complexType> - </xs:element> - - <xs:annotation> - <xs:documentation> - notations for use within XML Schema schemas</xs:documentation> - </xs:annotation> - - <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/> - <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/> - - <xs:complexType name="anyType" mixed="true"> - <xs:annotation> - <xs:documentation> - Not the real urType, but as close an approximation as we can - get in the XML representation</xs:documentation> - </xs:annotation> - <xs:sequence> - <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> - </xs:sequence> - <xs:anyAttribute processContents="lax"/> - </xs:complexType> - - <xs:annotation> - <xs:documentation> - First the built-in primitive datatypes. These definitions are for - information only, the real built-in definitions are magic. - </xs:documentation> - - <xs:documentation> - 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 the name of the datatype - - For example, to address the int datatype, the URI is: - - http://www.w3.org/2001/XMLSchema#int - - 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 the name of the facet - - For example, to address the maxInclusive facet, the URI is: - - http://www.w3.org/2001/XMLSchema#maxInclusive - - 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 the name of the datatype, followed - by a period (".") followed by the name of the facet - - For example, to address the usage of the maxInclusive facet in - the definition of int, the URI is: - - http://www.w3.org/2001/XMLSchema#int.maxInclusive - - </xs:documentation> - </xs:annotation> - - <xs:simpleType name="string" id="string"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="length"/> - <hfp:hasFacet name="minLength"/> - <hfp:hasFacet name="maxLength"/> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="enumeration"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasProperty name="ordered" value="false"/> - <hfp:hasProperty name="bounded" value="false"/> - <hfp:hasProperty name="cardinality" value="countably infinite"/> - <hfp:hasProperty name="numeric" value="false"/> - </xs:appinfo> - <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#string"/> - </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="preserve" id="string.preserve"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="boolean" id="boolean"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasProperty name="ordered" value="false"/> - <hfp:hasProperty name="bounded" value="false"/> - <hfp:hasProperty name="cardinality" value="finite"/> - <hfp:hasProperty name="numeric" value="false"/> - </xs:appinfo> - <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#boolean"/> - </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="collapse" fixed="true" - id="boolean.whiteSpace"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="float" id="float"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="enumeration"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasFacet name="maxInclusive"/> - <hfp:hasFacet name="maxExclusive"/> - <hfp:hasFacet name="minInclusive"/> - <hfp:hasFacet name="minExclusive"/> - <hfp:hasProperty name="ordered" value="total"/> - <hfp:hasProperty name="bounded" value="true"/> - <hfp:hasProperty name="cardinality" value="finite"/> - <hfp:hasProperty name="numeric" value="true"/> - </xs:appinfo> - <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#float"/> + </xs:complexType> + <xs:element name="all" type="xs:all" id="all"> + <xs:annotation> + <xs:documentation source="../structures/structures.html#element-all"/> </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="collapse" fixed="true" - id="float.whiteSpace"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="double" id="double"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="enumeration"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasFacet name="maxInclusive"/> - <hfp:hasFacet name="maxExclusive"/> - <hfp:hasFacet name="minInclusive"/> - <hfp:hasFacet name="minExclusive"/> - <hfp:hasProperty name="ordered" value="total"/> - <hfp:hasProperty name="bounded" value="true"/> - <hfp:hasProperty name="cardinality" value="finite"/> - <hfp:hasProperty name="numeric" value="true"/> - </xs:appinfo> + </xs:element> + <xs:element name="choice" type="xs:explicitGroup" id="choice"> + <xs:annotation> <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#double"/> + source="../structures/structures.html#element-choice"/> </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="collapse" fixed="true" - id="double.whiteSpace"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="decimal" id="decimal"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="totalDigits"/> - <hfp:hasFacet name="fractionDigits"/> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasFacet name="enumeration"/> - <hfp:hasFacet name="maxInclusive"/> - <hfp:hasFacet name="maxExclusive"/> - <hfp:hasFacet name="minInclusive"/> - <hfp:hasFacet name="minExclusive"/> - <hfp:hasProperty name="ordered" value="total"/> - <hfp:hasProperty name="bounded" value="false"/> - <hfp:hasProperty name="cardinality" - value="countably infinite"/> - <hfp:hasProperty name="numeric" value="true"/> - </xs:appinfo> + </xs:element> + <xs:element name="sequence" type="xs:explicitGroup" id="sequence"> + <xs:annotation> <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#decimal"/> + source="../structures/structures.html#element-sequence"/> </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="collapse" fixed="true" - id="decimal.whiteSpace"/> - </xs:restriction> - </xs:simpleType> - - <xs:simpleType name="duration" id="duration"> - <xs:annotation> - <xs:appinfo> - <hfp:hasFacet name="pattern"/> - <hfp:hasFacet name="enumeration"/> - <hfp:hasFacet name="whiteSpace"/> - <hfp:hasFacet name="maxInclusive"/> - <hfp:hasFacet name="maxExclusive"/> - <hfp:hasFacet name="minInclusive"/> - <hfp:hasFacet name="minExclusive"/> - <hfp:hasProperty name="ordered" value="partial"/> - <hfp:hasProperty name="bounded" value="false"/> - <hfp:hasProperty name="cardinality" - value="countably infinite"/> - <hfp:hasProperty name="numeric" value="false"/> - </xs:appinfo> - <xs:documentation - source="http://www.w3.org/TR/xmlschema-2/#duration"/> + </xs:element> + <xs:element name="group" type="xs:namedGroup" id="group"> + <xs:annotation> + <xs:documentation source="../structures/structures.html#element-group"/> </xs:annotation> - <xs:restriction base="xs:anySimpleType"> - <xs:whiteSpace value="collapse" fixed="true" - id="duration
<TRUNCATED>
