You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2017/10/11 17:46:01 UTC

[15/24] incubator-netbeans git commit: [NETBEANS-54] Modules review xml.schema.completion

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 &lt;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 &lt;schema&gt; itself
+       other than &lt;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 &lt;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
    &lt;complexContent>
    &lt;restriction base="xs:anyType">
    ...
    &lt;/restriction>
    &lt;/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>