Merge remote-tracking branch 'origin/unstable' into testing
[gpl/argeo-suite.git] / org.argeo.support.xforms / xsd / XForms-Schema.xsd
diff --git a/org.argeo.support.xforms/xsd/XForms-Schema.xsd b/org.argeo.support.xforms/xsd/XForms-Schema.xsd
deleted file mode 100644 (file)
index 6383f86..0000000
+++ /dev/null
@@ -1,858 +0,0 @@
-<xsd:schema targetNamespace="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" elementFormDefault="qualified">
- <!--
-  Changes:
-26-Aug MJD fixed typo where more than one child allowed on <instance>
-04-Sep MJD fixed typo on <send> : attribute 'submission' is required
-04-Sep MJD fixed typo on <rebuild><recalculate><revalidate><refresh>: 'model' attribute is required
-06-Sep MJD clarified specific allowed values of @level on <message>
-06-Sep MJD removed UI Common attributes from <help><hint><alert><label>
-09-Sep MJD changed minOccurrs and maxOccurs to use XPath expressions, default values
-09-Sep MJD fixed typo: added linking attributes to <message>
-09-Sep MJD removed <extension> from content models of <mode> and UI common elements
-09-Sep MJD fixed typo: removed 'format' attribute
-17-Sep MJD fixed typo: <output> now uses the attribute group for binding attributes, instead of similarly named individual attrs
-17-Sep MJD added XPathExpression simpleType for internal use. This doesn't actually change anything, but makes
-the Schema a better documentation resource (instead of using xsd:string for everything)
-17-Sep MJD removed 'mediatype' attribute from <submission>, as it was unused
-17-Sep MJD fixed typo: only 'ref' and 'bind' attributes, not 'model' on <submission>
-17-Sep MJD added XML Events attributes to <model>
-17-Sep MJD in accordance with 3.2.1, removed all id attributes
-19-Sep MJD fixed typo: clarified that nested <action>s are permitted.
-19-Sep MJD factor UI.Inline into <group>. Renamed <group>s and <attributeGroup>s to match the prose names
-19-Sep MJD changed to agreed-upon namespace for CR
-25-Sep MJD fixed typo: added UI.Inlne to content model of <message>, enabled mixed content
-29-Sep MJD fixed typo: 'model' required on <reset>
-29-Sep MJD fixed typo: binding attributes allowed on <submit>
-29-Sep MJD fixed typo: explicit enumerated values for 'show' on <load>
-04-Oct MJD 'resource' attribute not required
-
-12-Nov 2002 : Published as CR
-
-13-Jan MJD added new attribute includenamespaceprefixes on <submission>
-13-Jan MJD added UI Common elements to content model of <group>
-03-Feb MJD synchoninzed duration types with 15 Nov Query Operators document
-31-Mar MJD added mediatype attribute on <submission>
-14-May MJD typo : "xsd:NCName"
-26-Jun MJD removed 'accesskey' and 'navindex' (over to host language definition)
-
-01-Aug 2003 : Published as PR
-
-15-Sep MJD final namespace
-15-Sep MJD corrected content model of <value>
-15-Sep MJD changed the name of the import for XML Events to highlight that only the attributes are used
-
-1.0 Second Edition errata
-
-16-Apr 2005 RAM - erratum E4 - optional @model
-16-Apr 2005 RAM - erratum E22 - default value for @show
-16-Apr 2005 RAM - erratum E54 - remove xforms:minOccurs and xforms:maxOccurs
-26-Jun 2005 RAM - erratum E71 - allow an empty case element
-
-16-Jun 2006 JMB - erratum E69 - instance attribute in submission; id in common attributes
-
-15-Aug-2006 CFW - erratum E18 on 2nd ed. Added Action to content model for Case
-
-09-Sep 2006 JMB - non-substantive: explicitly declared some use="optional" settings, 
-                  substantive: erratum E18 on 2nd ed. Declared default false for selected attribute of case
-                  substantive: erratum E21 on 2nd ed. Added multipart-post to enumeration of method attribute
-23-Nov 2006 JMB - substantive: erratum E32 on 2nd ed. switch in repeat
-17-Jul 2007 JMB - substantive: erratum E41 on 2nd ed. version attribute and associated simple types
--->
- <xsd:import namespace="http://www.w3.org/2001/xml-events" schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xml-events-attribs-1.xsd"/>
- <xsd:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2001/XMLSchema.xsd"/>
- <!--
-structural elements
--->
- <xsd:attributeGroup name="Common.Attributes">
-  <xsd:annotation>
-   <xsd:documentation>Attributes for _every_ element in XForms</xsd:documentation>
-  </xsd:annotation>
-                <xsd:attribute name="id" type="xsd:ID" use="optional"/>  
-  <xsd:anyAttribute namespace="##other"/>
- </xsd:attributeGroup>
- <xsd:element name="model">
-  <xsd:complexType>
-   <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-    <xsd:choice>
-     <xsd:element ref="xforms:instance"/>
-     <xsd:element ref="xsd:schema"/>
-     <xsd:element ref="xforms:submission"/>
-     <xsd:element ref="xforms:bind"/>
-     <xsd:group ref="xforms:Action"/>
-    </xsd:choice>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <xsd:attribute name="functions" type="xforms:QNameList" use="optional"/>
-   <xsd:attribute name="schema" type="xforms:anyURIList" use="optional"/>
-   <xsd:attribute name="version" type="xforms:versionList" use="optional"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="instance">
-  <xsd:annotation>
-   <xsd:documentation>instance container.</xsd:documentation>
-  </xsd:annotation>
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:any namespace="##any" processContents="skip" minOccurs="0"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="submission">
-  <xsd:annotation>
-   <xsd:documentation>submit info container.</xsd:documentation>
-  </xsd:annotation>
-  <xsd:complexType>
-   <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-    <xsd:group ref="xforms:Action"/>
-   </xsd:sequence>
-
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-
-   <xsd:attribute name="ref" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
-   <xsd:attribute name="action" type="xsd:anyURI" use="optional"/>
-
-   <xsd:attribute name="method" use="required">
-    <xsd:simpleType>
-     <xsd:union memberTypes="xforms:QNameButNotNCNAME">
-      <xsd:simpleType>
-       <xsd:restriction base="xsd:string">
-        <xsd:enumeration value="post"/>
-        <xsd:enumeration value="put"/>
-        <xsd:enumeration value="get"/>
-        <xsd:enumeration value="multipart-post"/>
-        <xsd:enumeration value="form-data-post"/>
-        <xsd:enumeration value="urlencoded-post"/>
-       </xsd:restriction>
-      </xsd:simpleType>
-     </xsd:union>
-    </xsd:simpleType>
-   </xsd:attribute>
-
-   <xsd:attribute name="version" type="xsd:NMTOKEN" use="optional"/>
-   <xsd:attribute name="indent" type="xsd:boolean" use="optional"/>
-   <xsd:attribute name="mediatype" type="xsd:string" use="optional"/>
-   <xsd:attribute name="encoding" type="xsd:string" use="optional"/>
-   <xsd:attribute name="omit-xml-declaration" type="xsd:boolean" use="optional"/>
-   <xsd:attribute name="standalone" type="xsd:boolean" use="optional"/>
-   <xsd:attribute name="cdata-section-elements" type="xforms:QNameList" use="optional"/>
-
-                       <xsd:attribute name="replace" use="optional" default="all">
-    <xsd:simpleType>
-     <xsd:union memberTypes="xforms:QNameButNotNCNAME">
-      <xsd:simpleType>
-       <xsd:restriction base="xsd:string">
-        <xsd:enumeration value="all"/>
-        <xsd:enumeration value="instance"/>
-        <xsd:enumeration value="none"/>
-       </xsd:restriction>
-      </xsd:simpleType>
-     </xsd:union>
-    </xsd:simpleType>
-   </xsd:attribute>
-
-                        <xsd:attribute name="instance" type="xsd:IDREF" use="optional"/>
-
-   <xsd:attribute name="separator" use="optional" default=";">
-    <xsd:simpleType>
-     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value=";"/>
-      <xsd:enumeration value="&amp;"/>
-     </xsd:restriction>
-    </xsd:simpleType>
-   </xsd:attribute>
-
-                        <xsd:attribute name="includenamespaceprefixes" use="optional">
-                          <xsd:simpleType>
-                            <xsd:list>
-                              <xsd:simpleType>
-                                <xsd:union>
-                                  <xsd:simpleType>
-                                    <xsd:restriction base='xsd:NCName'/>
-                                  </xsd:simpleType>
-                                  <xsd:simpleType>
-                                    <xsd:restriction base='xsd:string'>
-                                      <xsd:enumeration value='#default'/>
-                                    </xsd:restriction>
-                                  </xsd:simpleType>
-                                </xsd:union>
-                              </xsd:simpleType>
-                            </xsd:list>
-                          </xsd:simpleType>
-                        </xsd:attribute>
-
-  </xsd:complexType>
- </xsd:element>
- <xsd:attributeGroup name="Linking.Attributes">
-  <xsd:attribute name="src" type="xsd:anyURI"/>
- </xsd:attributeGroup>
- <xsd:element name="bind">
-  <xsd:annotation>
-   <xsd:documentation>Definition of bind container.</xsd:documentation>
-  </xsd:annotation>
-  <xsd:complexType>
-   <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-    <xsd:element ref="xforms:bind"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="type" type="xsd:QName" use="optional"/>
-   <xsd:attribute name="readonly" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="required" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="relevant" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="constraint" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="calculate" type="xforms:XPathExpression" use="optional"/>
-   <xsd:attribute name="p3ptype" type="xsd:string" use="optional"/>
-   <!-- E54 -->
-  </xsd:complexType>
- </xsd:element>
- <!--
-User Interface form controls
--->
- <xsd:group name="Form.Controls">
-  <xsd:choice>
-   <xsd:element ref="xforms:input"/>
-   <xsd:element ref="xforms:textarea"/>
-   <xsd:element ref="xforms:secret"/>
-   <xsd:element ref="xforms:output"/>
-   <xsd:element ref="xforms:upload"/>
-   <xsd:element ref="xforms:select1"/>
-   <xsd:element ref="xforms:select"/>
-   <xsd:element ref="xforms:range"/>
-   <xsd:element ref="xforms:submit"/>
-   <xsd:element ref="xforms:trigger"/>
-  </xsd:choice>
- </xsd:group>
- <xsd:attributeGroup name="Single.Node.Binding.Attributes">
-  <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-  <xsd:attribute name="ref" type="xforms:XPathExpression" use="optional"/>
-  <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
- </xsd:attributeGroup>
- <xsd:attributeGroup name="Nodeset.Binding.Attributes">
-  <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-  <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
-  <xsd:attribute name="bind" type="xsd:IDREF" use="optional"/>
- </xsd:attributeGroup>
- <xsd:attributeGroup name="UI.Common.Attrs">
-  <xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
- </xsd:attributeGroup>
- <xsd:group name="UI.Inline">
-  <xsd:sequence>
-   <xsd:choice minOccurs="0">
-    <xsd:element ref="xforms:output"/>
-    <!-- containing document language to add additional allowed content here -->
-   </xsd:choice>
-  </xsd:sequence>
- </xsd:group>
- <xsd:element name="label">
-  <xsd:complexType mixed="true">
-   <xsd:group ref="xforms:UI.Inline"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="hint">
-  <xsd:complexType mixed="true">
-   <xsd:group ref="xforms:UI.Inline"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="help">
-  <xsd:complexType mixed="true">
-   <xsd:group ref="xforms:UI.Inline"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="alert">
-  <xsd:complexType mixed="true">
-   <xsd:group ref="xforms:UI.Inline"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="extension">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:any namespace="##other"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="choices">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label" minOccurs="0"/>
-    <xsd:sequence maxOccurs="unbounded">
-     <xsd:choice>
-      <xsd:element ref="xforms:choices"/>
-      <xsd:element ref="xforms:item"/>
-      <xsd:element ref="xforms:itemset"/>
-     </xsd:choice>
-    </xsd:sequence>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="value">
-  <xsd:complexType mixed="true">
-   <xsd:sequence>
-    <xsd:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="item">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:element ref="xforms:value"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="itemset">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:choice>
-     <xsd:element ref="xforms:value"/>
-     <xsd:element ref="xforms:copy"/>
-    </xsd:choice>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="copy">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="filename">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="mediatype">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:group name="UI.Common">
-  <xsd:sequence>
-   <xsd:choice minOccurs="0" maxOccurs="unbounded">
-    <xsd:element ref="xforms:help"/>
-    <xsd:element ref="xforms:hint"/>
-    <xsd:element ref="xforms:alert"/>
-    <xsd:group ref="xforms:Action"/>
-   </xsd:choice>
-  </xsd:sequence>
- </xsd:group>
- <xsd:element name="input">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="textarea">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="secret">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="inputmode" type="xsd:string" use="optional"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="upload">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:element ref="xforms:filename" minOccurs="0"/>
-    <xsd:element ref="xforms:mediatype" minOccurs="0"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="mediatype" type="xsd:string" use="optional"/>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:group name="List.UI.Common">
-  <xsd:sequence>
-   <xsd:choice>
-    <xsd:element ref="xforms:item"/>
-    <xsd:element ref="xforms:itemset"/>
-    <xsd:element ref="xforms:choices"/>
-   </xsd:choice>
-  </xsd:sequence>
- </xsd:group>
- <xsd:element name="select1">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:List.UI.Common" maxOccurs="unbounded"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="selection" use="optional" default="closed">
-    <xsd:simpleType>
-     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="open"/>
-      <xsd:enumeration value="closed"/>
-     </xsd:restriction>
-    </xsd:simpleType>
-   </xsd:attribute>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="true"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="select">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:List.UI.Common" maxOccurs="unbounded"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="selection" use="optional" default="closed">
-    <xsd:simpleType>
-     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="open"/>
-      <xsd:enumeration value="closed"/>
-     </xsd:restriction>
-    </xsd:simpleType>
-   </xsd:attribute>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="true"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="range">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="start" type="xsd:string" use="optional"/>
-   <xsd:attribute name="end" type="xsd:string" use="optional"/>
-   <xsd:attribute name="step" type="xsd:string" use="optional"/>
-   <xsd:attribute name="incremental" type="xsd:boolean" use="optional" default="false"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="trigger">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="output">
-  <xsd:complexType>
-   <xsd:sequence minOccurs="0">
-    <xsd:element ref="xforms:label"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
-   <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="submit">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label"/>
-    <xsd:group ref="xforms:UI.Common" minOccurs="0" maxOccurs="unbounded"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="submission" type="xsd:IDREF" use="required"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-  </xsd:complexType>
- </xsd:element>
- <!--
-XForms Actions
--->
- <xsd:attributeGroup name="XML.Events">
-  <xsd:attribute ref="ev:event"/>
-  <xsd:attribute ref="ev:observer"/>
-  <xsd:attribute ref="ev:target"/>
-  <xsd:attribute ref="ev:handler"/>
-  <xsd:attribute ref="ev:phase"/>
-  <xsd:attribute ref="ev:propagate"/>
-  <xsd:attribute ref="ev:defaultAction"/>
- </xsd:attributeGroup>
- <xsd:group name="Action">
-  <xsd:sequence>
-   <xsd:choice minOccurs="0" maxOccurs="unbounded">
-    <xsd:element ref="xforms:action"/>
-    <xsd:element ref="xforms:dispatch"/>
-    <xsd:element ref="xforms:rebuild"/>
-    <xsd:element ref="xforms:recalculate"/>
-    <xsd:element ref="xforms:revalidate"/>
-    <xsd:element ref="xforms:refresh"/>
-    <xsd:element ref="xforms:setfocus"/>
-    <xsd:element ref="xforms:load"/>
-    <xsd:element ref="xforms:setvalue"/>
-    <xsd:element ref="xforms:send"/>
-    <xsd:element ref="xforms:reset"/>
-    <xsd:element ref="xforms:insert"/>
-    <xsd:element ref="xforms:delete"/>
-    <xsd:element ref="xforms:setindex"/>
-    <xsd:element ref="xforms:toggle"/>
-    <xsd:element ref="xforms:message"/>
-   </xsd:choice>
-  </xsd:sequence>
- </xsd:group>
- <xsd:element name="action">
-  <xsd:complexType>
-   <xsd:sequence maxOccurs="unbounded">
-    <xsd:group ref="xforms:Action"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="dispatch">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="name" type="xsd:NMTOKEN" use="required"/>
-   <xsd:attribute name="target" type="xsd:IDREF" use="required"/>
-   <xsd:attribute name="bubbles" type="xsd:boolean" use="optional" default="true"/>
-   <xsd:attribute name="cancelable" type="xsd:boolean" use="optional" default="true"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="rebuild">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <!-- E4 -->
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="revalidate">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <!-- E4 -->
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="recalculate">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <!-- E4 -->
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="refresh">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <!-- E4 -->
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="setfocus">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="control" type="xsd:IDREF" use="required"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="load">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="resource" type="xsd:anyURI"/>
-   <xsd:attribute name="show" use="optional" default="replace">
-    <xsd:simpleType>
-     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="new"/>
-      <xsd:enumeration value="replace"/>
-     </xsd:restriction>
-    </xsd:simpleType>
-    <!-- E22 -->
-   </xsd:attribute>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="setvalue">
-  <xsd:complexType>
-   <xsd:simpleContent>
-    <xsd:extension base="xsd:string">
-     <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-     <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-     <xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
-     <xsd:attributeGroup ref="xforms:XML.Events"/>
-    </xsd:extension>
-   </xsd:simpleContent>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="send">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="submission" type="xsd:IDREF" use="required"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="reset">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-   <xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-   <!-- E4 -->
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="insert">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
-   <xsd:attribute name="at" type="xforms:XPathExpression" use="required"/>
-   <xsd:attribute name="position" use="required">
-    <xsd:simpleType>
-     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="before"/>
-      <xsd:enumeration value="after"/>
-     </xsd:restriction>
-    </xsd:simpleType>
-   </xsd:attribute>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="delete">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
-   <xsd:attribute name="at" type="xforms:XPathExpression" use="required"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="setindex">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="repeat" type="xsd:IDREF" use="required"/>
-   <xsd:attribute name="index" type="xforms:XPathExpression" use="required"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="toggle">
-  <xsd:complexType>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attribute name="case" type="xsd:IDREF" use="required"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="message">
-  <xsd:complexType mixed="true">
-   <xsd:group ref="xforms:UI.Inline"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attribute name="level" use="required">
-    <xsd:simpleType>
-     <xsd:union memberTypes="xforms:QNameButNotNCNAME">
-      <xsd:simpleType>
-       <xsd:restriction base="xsd:string">
-        <xsd:enumeration value="ephemeral"/>
-        <xsd:enumeration value="modeless"/>
-        <xsd:enumeration value="modal"/>
-       </xsd:restriction>
-      </xsd:simpleType>
-     </xsd:union>
-    </xsd:simpleType>
-   </xsd:attribute>
-   <xsd:attributeGroup ref="xforms:Linking.Attributes"/>
-   <xsd:attributeGroup ref="xforms:XML.Events"/>
-  </xsd:complexType>
- </xsd:element>
- <!--
-Advanced User Interface
--->
- <xsd:attribute name="repeat-nodeset" type="xforms:XPathExpression"/>
- <xsd:attribute name="repeat-model" type="xsd:IDREF"/>
- <xsd:attribute name="repeat-bind" type="xsd:IDREF"/>
- <xsd:attribute name="repeat-startindex" type="xsd:positiveInteger"/>
- <xsd:attribute name="repeat-number" type="xsd:nonNegativeInteger"/>
- <xsd:element name="repeat">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-     <xsd:choice>
-      <xsd:group ref="xforms:Form.Controls"/>
-      <xsd:element ref="xforms:group"/>
-      <xsd:element ref="xforms:switch"/>
-      <xsd:element ref="xforms:repeat"/>
-      <!-- containing document language to add additional allowed content here -->
-     </xsd:choice>
-    </xsd:sequence>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Nodeset.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-   <xsd:attribute name="startindex" type="xsd:positiveInteger"/>
-   <xsd:attribute name="number" type="xsd:nonNegativeInteger"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="group">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label" minOccurs="0"/>
-    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-     <xsd:choice>
-      <xsd:group ref="xforms:UI.Common"/>
-      <xsd:group ref="xforms:Form.Controls"/>
-      <xsd:element ref="xforms:group"/>
-      <xsd:element ref="xforms:switch"/>
-      <xsd:element ref="xforms:repeat"/>
-      <!-- containing document language to add additional allowed content here -->
-     </xsd:choice>
-    </xsd:sequence>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="switch">
-  <xsd:complexType>
-   <xsd:sequence maxOccurs="unbounded">
-    <xsd:element ref="xforms:case"/>
-   </xsd:sequence>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-   <xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-   <xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-  </xsd:complexType>
- </xsd:element>
- <xsd:element name="case">
-  <xsd:complexType>
-   <xsd:sequence>
-    <xsd:element ref="xforms:label" minOccurs="0"/>
-    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-     <xsd:choice>
-      <xsd:group ref="xforms:Form.Controls"/>
-      <xsd:group ref="xforms:Action"/>
-      <xsd:element ref="xforms:group"/>
-      <xsd:element ref="xforms:switch"/>
-      <xsd:element ref="xforms:repeat"/>
-      <!-- containing document language to add additional allowed content here -->
-     </xsd:choice>
-     <!-- E71 -->
-    </xsd:sequence>
-   </xsd:sequence>
-   <xsd:attribute name="selected" type="xsd:boolean" use="optional" default="false"/>
-   <xsd:attributeGroup ref="xforms:Common.Attributes"/>
-  </xsd:complexType>
- </xsd:element>
- <!--
-New simpleTypes
--->
-
- <xsd:simpleType name="versionList">
-  <xsd:list itemType="xforms:versionNumber"/>
- </xsd:simpleType>
- <xsd:simpleType name="versionNumber">
-  <xsd:restriction base="xsd:string">
-   <xsd:pattern value="[1-9]\d*\.\d+"/>
-  </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="XPathExpression">
-  <xsd:restriction base="xsd:string"/>
- </xsd:simpleType>
- <xsd:simpleType name="QNameList">
-  <xsd:list itemType="xsd:QName"/>
- </xsd:simpleType>
- <xsd:simpleType name="anyURIList">
-  <xsd:list itemType="xsd:anyURI"/>
- </xsd:simpleType>
- <xsd:simpleType name="QNameButNotNCNAME">
-  <xsd:restriction base="xsd:QName">
-   <xsd:pattern value="[^:]+:[^:]+"/>
-  </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="appearanceType">
-  <xsd:union memberTypes="xforms:QNameButNotNCNAME">
-   <xsd:simpleType>
-    <xsd:restriction base="xsd:string">
-     <xsd:enumeration value="full"/>
-     <xsd:enumeration value="compact"/>
-     <xsd:enumeration value="minimal"/>
-    </xsd:restriction>
-   </xsd:simpleType>
-  </xsd:union>
- </xsd:simpleType>
- <xsd:simpleType name="listItem">
-  <xsd:restriction base="xsd:string">
-   <xsd:pattern value="\S+"/>
-  </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="listItems">
-  <xsd:list itemType="xforms:listItem"/>
- </xsd:simpleType>
- <xsd:simpleType name="dayTimeDuration">
-  <xsd:restriction base="xsd:duration">
-   <xsd:pattern value="[\-]?P([0-9]+D(T([0-9]+(H([0-9]+(M([0-9]+(\.[0-9]*)?S
-               |\.[0-9]+S)?|(\.[0-9]*)?S)|(\.[0-9]*)?S)?|M([0-9]+
-               (\.[0-9]*)?S|\.[0-9]+S)?|(\.[0-9]*)?S)|\.[0-9]+S))?
-               |T([0-9]+(H([0-9]+(M([0-9]+(\.[0-9]*)?S|\.[0-9]+S)?
-               |(\.[0-9]*)?S)|(\.[0-9]*)?S)?|M([0-9]+(\.[0-9]*)?S|\.[0-9]+S)?
-               |(\.[0-9]*)?S)|\.[0-9]+S))"/>
-  </xsd:restriction>
- </xsd:simpleType>
- <xsd:simpleType name="yearMonthDuration">
-  <xsd:restriction base="xsd:duration">
-   <xsd:pattern value="[\-]?P[0-9]+(Y([0-9]+M)?|M)"/>
-  </xsd:restriction>
- </xsd:simpleType>
-</xsd:schema>