Renamed schema files
authorNick Van den Bleeken <nick.van.den.bleeken@inventivegroup.com>
Thu, 24 May 2012 14:24:16 +0200
changeset 10 c132782a5d6d
parent 9 625847082e48
child 11 5c9cf15568e3
Renamed schema files
2.0/core/schema/xsd/XForms-11-Schema.xsd
2.0/core/schema/xsd/XForms-20-Schema.xsd
2.0/core/schema/xsd/xforms11-with-xhtml-attributes.xsd
2.0/core/schema/xsd/xforms20-with-xhtml-attributes.xsd
2.0/core/schema/xsd/xhtml+xforms.xsd
--- a/2.0/core/schema/xsd/XForms-11-Schema.xsd	Mon Apr 23 17:22:41 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1569 +0,0 @@
-<?xml version="1.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>: '' 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
-
-XForms 1.1
-
-25 Oct 2007 CFW, NvdB and JMB - Updated to XForms 1.1
-21 Nov 2007 JMB: Fixed description of card-number datatype
-08 Apr 2008 JMB: Fixed NCName (was NCNAME)
-30 MAY 2008 JMB: Changed card-number to allow zero or more digits
-22 JUN 2008 JMB: Renamed UI.Inline to UI.Content
-07 SEP 2008 LLK: Added element header attribute combine. header now allows one name, multiple value.
-09 MAR 2009 JMB: Changed @separator default to ampersand
-19 MAY 2009 JMB: Added submission/@targetref, dispatch/@targetid and dispatch/targetid
-10 JUN 2009 JMB: Moved switch/case from global space to being local to switch for clarity
-09-Jan 2010 OSN: Replaced two occurrences of "&" with "&amp;"
-09-Jan 2010 OSN: Specified processContents="lax" for extension element
-10-Jan 2010 OSN: Made label mandatory only for
-  input, secret, textarea, upload, range, trigger, submit, select, select1, item and itemset
-20-Jan 2010 OSN: Pending publication of erratum, added optional extension element for model, bind, and UI Common.
-21-Jan 2010 OSN: Added nodeset attribute for submission header
-22-Jan 2010 OSN: Created Repeat.Attributes attribute group and included it under xforms:group
-22-Jan 2010 OSN: Refactored help, hint, label, and alert elements to derive from complex types to allow redefine
--->
-	<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: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="Linking.Attributes">
-		<xsd:attribute name="src" type="xsd:anyURI"/>
-	</xsd:attributeGroup>
-	
-	<xsd:attributeGroup name="Repeat.Attributes">
-		<xsd:attribute ref="xforms:repeat-bind"/>
-		<xsd:attribute ref="xforms:repeat-model"/>
-		<xsd:attribute ref="xforms:repeat-nodeset"/>
-		<xsd:attribute ref="xforms:repeat-number"/>
-		<xsd:attribute ref="xforms:repeat-startindex"/>
-	</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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
-			</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:attribute name="resource" type="xsd:anyURI" use="optional"/>
-		</xsd:complexType>
-	</xsd:element>
-
-	<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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
-			</xsd:sequence>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="calculate" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="type" type="xsd:QName" use="optional"/>
-			<xsd:attribute name="required" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="constraint" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="relevant" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="readonly" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="p3ptype" type="xsd:string" use="optional"/>
-		</xsd:complexType>
-	</xsd:element>
-
-	<xsd:element name="extension">
-		<xsd:complexType>
-			<xsd:sequence>
-				<xsd:any namespace="##other" processContents="lax"/>
-			</xsd:sequence>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-
-	<!--
-User Interface form controls
--->
-	<xsd:group name="Core.Form.Controls">
-		<xsd:choice>
-			<xsd:element ref="xforms:input"/>
-			<xsd:element ref="xforms:secret"/>
-			<xsd:element ref="xforms:textarea"/>
-			<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:group name="Container.Form.Controls">
-		<xsd:choice>
-			<xsd:element ref="xforms:group"/>
-			<xsd:element ref="xforms:switch"/>
-			<xsd:element ref="xforms:repeat"/>
-		</xsd:choice>
-	</xsd:group>
-
-	<xsd:attributeGroup name="UI.Common.Attrs">
-		<xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
-	</xsd:attributeGroup>
-
-	<xsd:group name="UI.Content">
-		<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: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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
-		</xsd:sequence>
-	</xsd:group>
-
-	<xsd:element name="label" type="xforms:LabelType"/>
-	<xsd:complexType name="LabelType" mixed="true">
-		<xsd:group ref="xforms:UI.Content"/>
-		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-	</xsd:complexType>
-	<xsd:element name="hint" type="xforms:HintType"/>
-	<xsd:complexType name="HintType" mixed="true">
-		<xsd:group ref="xforms:UI.Content"/>
-		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-	</xsd:complexType>
-	<xsd:element name="help" type="xforms:HelpType"/>
-	<xsd:complexType name="HelpType" mixed="true">
-		<xsd:group ref="xforms:UI.Content" />
-		<xsd:attributeGroup ref="xforms:Common.Attributes" />
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes" />
-	</xsd:complexType>
-	<xsd:element name="alert" type="xforms:AlertType"/>
-	<xsd:complexType name="AlertType" mixed="true">
-		<xsd:group ref="xforms:UI.Content"/>
-		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-	</xsd:complexType>
-	<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="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="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>
-			<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:extension>
-			</xsd:simpleContent>
-		</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:complexType name="filename">
-		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-	</xsd:complexType>
-	<xsd:complexType name="mediatype">
-		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-	</xsd:complexType>
-	<xsd:complexType name="mediatypeWithValue">
-		<xsd:complexContent>
-			<xsd:extension base="xforms:mediatype">
-        			<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
-			</xsd:extension>
-		</xsd:complexContent>
-	</xsd:complexType>
-
-	<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="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="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="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:element name="filename" type="xforms:filename" minOccurs="0"/>
-				<xsd:element name="mediatype" type="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: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" 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:complexType>
-	</xsd:element>
-	<xsd:element name="output">
-		<xsd:complexType>
-			<xsd:sequence minOccurs="0">
-				<xsd:element ref="xforms:label" minOccurs="0"/>
-				<!--
-				<xsd:element ref="xforms:mediatype" minOccurs="0"/>
-				-->
-				<xsd:element name="mediatype" type="xforms:mediatypeWithValue" 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:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
-			<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="mediatype" type="xsd:string" 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="optional"/>
-			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-			<xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
-		</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:Core.Form.Controls"/>
-						<xsd:group ref="xforms:Container.Form.Controls"/>
-						<xsd:group ref="xforms:Action"/>
-						<!-- 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:Core.Form.Controls"/>
-						<xsd:group ref="xforms:Container.Form.Controls"/>
-						<xsd:group ref="xforms:UI.Common"/>
-						<!-- 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:attributeGroup ref="xforms:Repeat.Attributes" />
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="switch">
-		<xsd:complexType>
-			<xsd:sequence maxOccurs="unbounded">
-				<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:Core.Form.Controls"/>
-									<xsd:group ref="xforms:Container.Form.Controls"/>
-									<xsd:group ref="xforms:Action"/>
-									<!-- containing document language to add additional allowed content here -->
-								</xsd:choice>
-							</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>
-			</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>
-
-	<!--
-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:attributeGroup name="Common.Action.Attributes">
-		<xsd:annotation>
-			<xsd:documentation>Attributes for _every_ action in XForms</xsd:documentation>
-		</xsd:annotation>
-		<xsd:attribute name="if" type="xforms:XPathExpression" use="optional"/>
-		<xsd:attribute name="while" type="xforms:XPathExpression" use="optional"/>
-	</xsd:attributeGroup>
-
-	<xsd:group name="Action">
-		<xsd:sequence>
-			<xsd:choice minOccurs="0" maxOccurs="unbounded">
-				<xsd:element ref="xforms:action"/>
-				<xsd:element ref="xforms:setvalue"/>
-				<xsd:element ref="xforms:insert"/>
-				<xsd:element ref="xforms:delete"/>
-				<xsd:element ref="xforms:setindex"/>
-				<xsd:element ref="xforms:toggle"/>
-				<xsd:element ref="xforms:setfocus"/>
-				<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:reset"/>
-				<xsd:element ref="xforms:load"/>
-				<xsd:element ref="xforms:send"/>
-				<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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:attributeGroup ref="xforms:Common.Action.Attributes"/>
-				</xsd:extension>
-			</xsd:simpleContent>
-		</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="optional"/>
-			<xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="origin" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="position" use="optional">
-				<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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="optional"/>
-			<xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="toggle">
-		<xsd:complexType>
-			<xsd:sequence minOccurs="0" maxOccurs="1">
-				<xsd:element name="case" type="xforms:ValueTemplate"/>
-			</xsd:sequence>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attribute name="case" type="xsd:IDREF" use="optional"/>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="setfocus">
-		<xsd:complexType>
-			<xsd:sequence minOccurs="0" maxOccurs="1">
-				<xsd:element name="control" type="xforms:ValueTemplate"/>
-			</xsd:sequence>			
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attribute name="control" type="xsd:IDREF" use="optional"/>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="dispatch">
-		<xsd:complexType>
-		        <!-- Need to be able to say only zero or one of each child, but order independent.
-		             This gets as close as possible with schema. -->
-			<xsd:sequence minOccurs="0" maxOccurs="3">
-			    <xsd:choice>
-				<xsd:element name="name" type="xforms:ValueTemplate"/>
-				<xsd:element name="targetid" type="xforms:ValueTemplate"/>
-				<xsd:element name="target" type="xforms:ValueTemplate"/>
-				<xsd:element name="delay" type="xforms:ValueTemplate"/>
-		            </xsd:choice>
-			</xsd:sequence>				
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
-			<xsd:attribute name="targetid" type="xsd:IDREF" use="optional"/>
-			<xsd:attribute name="target" type="xsd:IDREF" use="optional"/>
-			<xsd:attribute name="delay" type="xsd:string" use="optional" default=""/>
-			<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</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"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="reset">
-		<xsd:complexType>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-			<xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="load">
-		<xsd:complexType>
-			<xsd:sequence minOccurs="0" maxOccurs="1">
-				<xsd:element name="resource" type="xforms:ValueTemplate"/>
-			</xsd:sequence>			
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-			<xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
-			<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>
-			</xsd:attribute>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="send">
-		<xsd:complexType>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attribute name="submission" type="xsd:IDREF" use="optional"/>
-			<xsd:attributeGroup ref="xforms:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-	<xsd:element name="message">
-		<xsd:complexType mixed="true">
-			<xsd:group ref="xforms:UI.Content"/>
-			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
-			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
-			<xsd:attribute name="level" use="optional" default="modal">
-				<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:XML.Events"/>
-			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
-		</xsd:complexType>
-	</xsd:element>
-
-	<xsd:element name="submission">
-		<xsd:annotation>
-			<xsd:documentation>submit info container.</xsd:documentation>
-		</xsd:annotation>
-		<xsd:complexType>
-			<xsd:sequence>
-			        <!-- There should only be zero or one resource, zero or one method, and zero or more header 
-			             We can't say exactly this, but we get as close as possible -->
-				<xsd:choice minOccurs="0" maxOccurs="unbounded">
-        				<xsd:element name="resource" type="xforms:ValueTemplate"/>
-        				<xsd:element name="method" type="xforms:ValueTemplate"/>
-        				<xsd:element name="header">
-        					<xsd:complexType>
-        					        <!-- Both name and value+ are required, but order independent -->
-        						<xsd:choice>
-        						     <xsd:sequence>
-        							     <xsd:element name="name" type="xforms:ValueTemplate" />
-        							     <xsd:element name="value" type="xforms:ValueTemplate"
-                                        minOccurs="1" maxOccurs="unbounded" />
-        						     </xsd:sequence>
-        						     <xsd:sequence>
-        							     <xsd:element name="value" type="xforms:ValueTemplate"
-                                        minOccurs="1" maxOccurs="unbounded" />
-        							     <xsd:element name="name" type="xforms:ValueTemplate" />
-        						     </xsd:sequence>
-        						</xsd:choice>
-                    <xsd:attribute name="combine" use="optional" default="append">
-                            <xsd:simpleType>
-                                    <xsd:restriction base="xsd:string">
-                                            <xsd:enumeration value="append"/>
-                                            <xsd:enumeration value="prepend"/>
-                                            <xsd:enumeration value="replace"/>
-                                    </xsd:restriction>
-                            </xsd:simpleType>
-                    </xsd:attribute>
-                    <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
-        					</xsd:complexType>
-        				</xsd:element>
-				</xsd:choice>
-				<!-- As is the case everywhere else, action handlers are last -->
-				<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"/>
-			
-			<!-- Either the resource attribute, action attribute, or resource child element is required -->
-			<xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
-			<xsd:attribute name="action" type="xsd:anyURI" use="optional"/>
-			
-			<xsd:attribute name="mode" use="optional" default="asynchronous">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string">
-						<xsd:enumeration value="asynchronous"/>
-						<xsd:enumeration value="synchronous"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-
-			<!-- Either the method attribute or the method child element is required -->
-			<xsd:attribute name="method" use="optional">
-				<xsd:simpleType>
-					<xsd:union memberTypes="xforms:QNameButNotNCNAME xsd:NCName">
-						<xsd:simpleType>
-							<xsd:restriction base="xsd:string">
-								<xsd:enumeration value="post"/>
-								<xsd:enumeration value="put"/>
-								<xsd:enumeration value="get"/>
-								<xsd:enumeration value="delete"/>
-								<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>
-
-                        <!-- The defaults for these are false if serialization is 'none' and true otherwise -->
-			<xsd:attribute name="validate" type="xsd:boolean" use="optional"/>
-			<xsd:attribute name="relevant" type="xsd:boolean" use="optional"/>
-			
-			<!-- The default is based on the selected method, e.g. application/xml for the post method -->
-			<xsd:attribute name="serialization" type="xsd:string" use="optional"/>
-			
-			<xsd:attribute name="version" type="xsd:NMTOKEN" use="optional" default="1.0"/>
-			<xsd:attribute name="indent" type="xsd:boolean" use="optional" default="false"/>
-			<xsd:attribute name="mediatype" type="xsd:string" use="optional" default="application/xml"/>
-			<xsd:attribute name="encoding" type="xsd:string" use="optional" default="UTF-8"/>
-			
-			<xsd:attribute name="omit-xml-declaration" type="xsd:boolean" use="optional" default="false"/>
-			<!-- This is optional with no default because omitting the attribute behaves differently 
-			     than including it with any value -->
-			<xsd:attribute name="standalone" type="xsd:boolean" use="optional"/>
-			
-			<xsd:attribute name="cdata-section-elements" type="xforms:QNameList" use="optional" default=""/>
-			
-			<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="text"/>
-								<xsd:enumeration value="none"/>
-							</xsd:restriction>
-						</xsd:simpleType>
-					</xsd:union>
-				</xsd:simpleType>
-			</xsd:attribute>
-			
-			<!-- Default is not specified because the default is to replace the instance being submitted -->
-			<xsd:attribute name="instance" type="xsd:IDREF" use="optional"/>
-			
-			<xsd:attribute name="separator" use="optional" default="&amp;">
-				<xsd:simpleType>
-					<xsd:restriction base="xsd:string">
-						<xsd:enumeration value="&amp;"/>
-						<xsd:enumeration value=";"/>
-					</xsd:restriction>
-				</xsd:simpleType>
-			</xsd:attribute>
-			
-			<!-- Default is not specified because the defalut is to replace the whole instance indicated 
-			     by the instance attribute -->
-			<xsd:attribute name="targetref" type="xforms:XPathExpression" use="optional"/>
-			<xsd:attribute name="target" type="xforms:XPathExpression" use="optional"/>
-			
-			<!-- Default not specified because omitting the attribute behaves differently than
-			     including it with any value -->
-			<xsd:attribute name="includenamespaceprefixes" use="optional">
-				<xsd:simpleType>
-					<xsd:list>
-						<xsd:simpleType>
-							<xsd:union memberTypes="xsd:NCName">
-								<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>
-
-        <!-- 
-Internal helper types 
--->
-
-	<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:complexType name="ValueTemplate">
-		<xsd:simpleContent>
-			<xsd:extension base="xsd:string">
-				<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
-			</xsd:extension>
-		</xsd:simpleContent>
-	</xsd:complexType>
-
-        <!--
-New simpleTypes provided to form authors
--->
-
-	<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="dateTime">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:dateTime"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="time">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:time"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="date">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:date"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="gYearMonth">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:gYearMonth"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="gYear">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:gYear"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="gMonthDay">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:gMonthDay"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="gDay">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:gDay"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="gMonth">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:gMonth"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="string">
-		<xsd:restriction base="xsd:string"/>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="boolean">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:boolean"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="base64Binary">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:base64Binary"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="hexBinary">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:hexBinary"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="float">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:float"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="decimal">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:decimal"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="double">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:double"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="anyURI">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:anyURI"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="QName">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:QName"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="normalizedString">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:normalizedString"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="token">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:token"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="language">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:language"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="Name">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:Name"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="NCName">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:NCName"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="ID">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:ID"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="IDREF">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:IDREF"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="IDREFS">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:IDREFS"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="NMTOKEN">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:NMTOKEN"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="NMTOKENS">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:NMTOKENS"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="integer">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:integer"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="negativeInteger">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:negativeInteger"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="long">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:long"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="int">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:int"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="short">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:short"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="byte">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:byte"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="nonNegativeInteger">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:nonNegativeInteger"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="unsignedLong">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:unsignedLong"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="unsignedInt">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:unsignedInt"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="unsignedShort">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:unsignedShort"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="unsignedByte">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:unsignedByte"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</xsd:simpleType>
-	
-	<xsd:simpleType name="positiveInteger">
-		<xsd:union>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:positiveInteger"/>
-			</xsd:simpleType>
-			<xsd:simpleType>
-				<xsd:restriction base="xsd:string">
-					<xsd:length value="0"/>
-				</xsd:restriction>
-			</xsd:simpleType>
-		</xsd:union>
-	</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:simpleType name="email">
-		<xsd:restriction base="xsd:string">
-			<xsd:pattern value="([A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*)?"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-
-	<xsd:simpleType name="card-number">
-		<xsd:annotation>
-			<xsd:documentation>
-			This type defines the basic lexical properties for a dataypte that can be used to represent
-			various ID numbers such as for debit and credit cards.
-			This type does not apply the Luhn checksum algorithm.
-			</xsd:documentation>
-		</xsd:annotation>
-		<xsd:restriction base="xsd:string">
-			<xsd:pattern value="[0-9]*"/>
-		</xsd:restriction>
-	</xsd:simpleType>
-</xsd:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2.0/core/schema/xsd/XForms-20-Schema.xsd	Thu May 24 14:24:16 2012 +0200
@@ -0,0 +1,1569 @@
+<?xml version="1.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>: '' 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
+
+XForms 1.1
+
+25 Oct 2007 CFW, NvdB and JMB - Updated to XForms 1.1
+21 Nov 2007 JMB: Fixed description of card-number datatype
+08 Apr 2008 JMB: Fixed NCName (was NCNAME)
+30 MAY 2008 JMB: Changed card-number to allow zero or more digits
+22 JUN 2008 JMB: Renamed UI.Inline to UI.Content
+07 SEP 2008 LLK: Added element header attribute combine. header now allows one name, multiple value.
+09 MAR 2009 JMB: Changed @separator default to ampersand
+19 MAY 2009 JMB: Added submission/@targetref, dispatch/@targetid and dispatch/targetid
+10 JUN 2009 JMB: Moved switch/case from global space to being local to switch for clarity
+09-Jan 2010 OSN: Replaced two occurrences of "&" with "&amp;"
+09-Jan 2010 OSN: Specified processContents="lax" for extension element
+10-Jan 2010 OSN: Made label mandatory only for
+  input, secret, textarea, upload, range, trigger, submit, select, select1, item and itemset
+20-Jan 2010 OSN: Pending publication of erratum, added optional extension element for model, bind, and UI Common.
+21-Jan 2010 OSN: Added nodeset attribute for submission header
+22-Jan 2010 OSN: Created Repeat.Attributes attribute group and included it under xforms:group
+22-Jan 2010 OSN: Refactored help, hint, label, and alert elements to derive from complex types to allow redefine
+-->
+	<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: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="Linking.Attributes">
+		<xsd:attribute name="src" type="xsd:anyURI"/>
+	</xsd:attributeGroup>
+	
+	<xsd:attributeGroup name="Repeat.Attributes">
+		<xsd:attribute ref="xforms:repeat-bind"/>
+		<xsd:attribute ref="xforms:repeat-model"/>
+		<xsd:attribute ref="xforms:repeat-nodeset"/>
+		<xsd:attribute ref="xforms:repeat-number"/>
+		<xsd:attribute ref="xforms:repeat-startindex"/>
+	</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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
+			</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:attribute name="resource" type="xsd:anyURI" use="optional"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="calculate" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="type" type="xsd:QName" use="optional"/>
+			<xsd:attribute name="required" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="constraint" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="relevant" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="readonly" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="p3ptype" type="xsd:string" use="optional"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="extension">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:any namespace="##other" processContents="lax"/>
+			</xsd:sequence>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!--
+User Interface form controls
+-->
+	<xsd:group name="Core.Form.Controls">
+		<xsd:choice>
+			<xsd:element ref="xforms:input"/>
+			<xsd:element ref="xforms:secret"/>
+			<xsd:element ref="xforms:textarea"/>
+			<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:group name="Container.Form.Controls">
+		<xsd:choice>
+			<xsd:element ref="xforms:group"/>
+			<xsd:element ref="xforms:switch"/>
+			<xsd:element ref="xforms:repeat"/>
+		</xsd:choice>
+	</xsd:group>
+
+	<xsd:attributeGroup name="UI.Common.Attrs">
+		<xsd:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
+	</xsd:attributeGroup>
+
+	<xsd:group name="UI.Content">
+		<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: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:element ref="xforms:extension" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:element name="label" type="xforms:LabelType"/>
+	<xsd:complexType name="LabelType" mixed="true">
+		<xsd:group ref="xforms:UI.Content"/>
+		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+	</xsd:complexType>
+	<xsd:element name="hint" type="xforms:HintType"/>
+	<xsd:complexType name="HintType" mixed="true">
+		<xsd:group ref="xforms:UI.Content"/>
+		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+	</xsd:complexType>
+	<xsd:element name="help" type="xforms:HelpType"/>
+	<xsd:complexType name="HelpType" mixed="true">
+		<xsd:group ref="xforms:UI.Content" />
+		<xsd:attributeGroup ref="xforms:Common.Attributes" />
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes" />
+	</xsd:complexType>
+	<xsd:element name="alert" type="xforms:AlertType"/>
+	<xsd:complexType name="AlertType" mixed="true">
+		<xsd:group ref="xforms:UI.Content"/>
+		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+	</xsd:complexType>
+	<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="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="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>
+			<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:extension>
+			</xsd:simpleContent>
+		</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:complexType name="filename">
+		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+	</xsd:complexType>
+	<xsd:complexType name="mediatype">
+		<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+		<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+	</xsd:complexType>
+	<xsd:complexType name="mediatypeWithValue">
+		<xsd:complexContent>
+			<xsd:extension base="xforms:mediatype">
+        			<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<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="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="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="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:element name="filename" type="xforms:filename" minOccurs="0"/>
+				<xsd:element name="mediatype" type="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: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" 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:complexType>
+	</xsd:element>
+	<xsd:element name="output">
+		<xsd:complexType>
+			<xsd:sequence minOccurs="0">
+				<xsd:element ref="xforms:label" minOccurs="0"/>
+				<!--
+				<xsd:element ref="xforms:mediatype" minOccurs="0"/>
+				-->
+				<xsd:element name="mediatype" type="xforms:mediatypeWithValue" 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:attribute name="appearance" type="xforms:appearanceType" use="optional"/>
+			<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="mediatype" type="xsd:string" 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="optional"/>
+			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+			<xsd:attributeGroup ref="xforms:UI.Common.Attrs"/>
+		</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:Core.Form.Controls"/>
+						<xsd:group ref="xforms:Container.Form.Controls"/>
+						<xsd:group ref="xforms:Action"/>
+						<!-- 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:Core.Form.Controls"/>
+						<xsd:group ref="xforms:Container.Form.Controls"/>
+						<xsd:group ref="xforms:UI.Common"/>
+						<!-- 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:attributeGroup ref="xforms:Repeat.Attributes" />
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="switch">
+		<xsd:complexType>
+			<xsd:sequence maxOccurs="unbounded">
+				<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:Core.Form.Controls"/>
+									<xsd:group ref="xforms:Container.Form.Controls"/>
+									<xsd:group ref="xforms:Action"/>
+									<!-- containing document language to add additional allowed content here -->
+								</xsd:choice>
+							</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>
+			</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>
+
+	<!--
+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:attributeGroup name="Common.Action.Attributes">
+		<xsd:annotation>
+			<xsd:documentation>Attributes for _every_ action in XForms</xsd:documentation>
+		</xsd:annotation>
+		<xsd:attribute name="if" type="xforms:XPathExpression" use="optional"/>
+		<xsd:attribute name="while" type="xforms:XPathExpression" use="optional"/>
+	</xsd:attributeGroup>
+
+	<xsd:group name="Action">
+		<xsd:sequence>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="xforms:action"/>
+				<xsd:element ref="xforms:setvalue"/>
+				<xsd:element ref="xforms:insert"/>
+				<xsd:element ref="xforms:delete"/>
+				<xsd:element ref="xforms:setindex"/>
+				<xsd:element ref="xforms:toggle"/>
+				<xsd:element ref="xforms:setfocus"/>
+				<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:reset"/>
+				<xsd:element ref="xforms:load"/>
+				<xsd:element ref="xforms:send"/>
+				<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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:attributeGroup ref="xforms:Common.Action.Attributes"/>
+				</xsd:extension>
+			</xsd:simpleContent>
+		</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="optional"/>
+			<xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="origin" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="position" use="optional">
+				<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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="optional"/>
+			<xsd:attribute name="context" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="toggle">
+		<xsd:complexType>
+			<xsd:sequence minOccurs="0" maxOccurs="1">
+				<xsd:element name="case" type="xforms:ValueTemplate"/>
+			</xsd:sequence>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attribute name="case" type="xsd:IDREF" use="optional"/>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="setfocus">
+		<xsd:complexType>
+			<xsd:sequence minOccurs="0" maxOccurs="1">
+				<xsd:element name="control" type="xforms:ValueTemplate"/>
+			</xsd:sequence>			
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attribute name="control" type="xsd:IDREF" use="optional"/>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="dispatch">
+		<xsd:complexType>
+		        <!-- Need to be able to say only zero or one of each child, but order independent.
+		             This gets as close as possible with schema. -->
+			<xsd:sequence minOccurs="0" maxOccurs="3">
+			    <xsd:choice>
+				<xsd:element name="name" type="xforms:ValueTemplate"/>
+				<xsd:element name="targetid" type="xforms:ValueTemplate"/>
+				<xsd:element name="target" type="xforms:ValueTemplate"/>
+				<xsd:element name="delay" type="xforms:ValueTemplate"/>
+		            </xsd:choice>
+			</xsd:sequence>				
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attribute name="name" type="xsd:NMTOKEN" use="optional"/>
+			<xsd:attribute name="targetid" type="xsd:IDREF" use="optional"/>
+			<xsd:attribute name="target" type="xsd:IDREF" use="optional"/>
+			<xsd:attribute name="delay" type="xsd:string" use="optional" default=""/>
+			<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:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</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"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="reset">
+		<xsd:complexType>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+			<xsd:attribute name="model" type="xsd:IDREF" use="optional"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="load">
+		<xsd:complexType>
+			<xsd:sequence minOccurs="0" maxOccurs="1">
+				<xsd:element name="resource" type="xforms:ValueTemplate"/>
+			</xsd:sequence>			
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+			<xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
+			<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>
+			</xsd:attribute>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="send">
+		<xsd:complexType>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attribute name="submission" type="xsd:IDREF" use="optional"/>
+			<xsd:attributeGroup ref="xforms:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="message">
+		<xsd:complexType mixed="true">
+			<xsd:group ref="xforms:UI.Content"/>
+			<xsd:attributeGroup ref="xforms:Common.Attributes"/>
+			<xsd:attributeGroup ref="xforms:Single.Node.Binding.Attributes"/>
+			<xsd:attribute name="level" use="optional" default="modal">
+				<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:XML.Events"/>
+			<xsd:attributeGroup ref="xforms:Common.Action.Attributes"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="submission">
+		<xsd:annotation>
+			<xsd:documentation>submit info container.</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+			        <!-- There should only be zero or one resource, zero or one method, and zero or more header 
+			             We can't say exactly this, but we get as close as possible -->
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+        				<xsd:element name="resource" type="xforms:ValueTemplate"/>
+        				<xsd:element name="method" type="xforms:ValueTemplate"/>
+        				<xsd:element name="header">
+        					<xsd:complexType>
+        					        <!-- Both name and value+ are required, but order independent -->
+        						<xsd:choice>
+        						     <xsd:sequence>
+        							     <xsd:element name="name" type="xforms:ValueTemplate" />
+        							     <xsd:element name="value" type="xforms:ValueTemplate"
+                                        minOccurs="1" maxOccurs="unbounded" />
+        						     </xsd:sequence>
+        						     <xsd:sequence>
+        							     <xsd:element name="value" type="xforms:ValueTemplate"
+                                        minOccurs="1" maxOccurs="unbounded" />
+        							     <xsd:element name="name" type="xforms:ValueTemplate" />
+        						     </xsd:sequence>
+        						</xsd:choice>
+                    <xsd:attribute name="combine" use="optional" default="append">
+                            <xsd:simpleType>
+                                    <xsd:restriction base="xsd:string">
+                                            <xsd:enumeration value="append"/>
+                                            <xsd:enumeration value="prepend"/>
+                                            <xsd:enumeration value="replace"/>
+                                    </xsd:restriction>
+                            </xsd:simpleType>
+                    </xsd:attribute>
+                    <xsd:attribute name="nodeset" type="xforms:XPathExpression" use="optional"/>
+        					</xsd:complexType>
+        				</xsd:element>
+				</xsd:choice>
+				<!-- As is the case everywhere else, action handlers are last -->
+				<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"/>
+			
+			<!-- Either the resource attribute, action attribute, or resource child element is required -->
+			<xsd:attribute name="resource" type="xsd:anyURI" use="optional"/>
+			<xsd:attribute name="action" type="xsd:anyURI" use="optional"/>
+			
+			<xsd:attribute name="mode" use="optional" default="asynchronous">
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:string">
+						<xsd:enumeration value="asynchronous"/>
+						<xsd:enumeration value="synchronous"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+
+			<!-- Either the method attribute or the method child element is required -->
+			<xsd:attribute name="method" use="optional">
+				<xsd:simpleType>
+					<xsd:union memberTypes="xforms:QNameButNotNCNAME xsd:NCName">
+						<xsd:simpleType>
+							<xsd:restriction base="xsd:string">
+								<xsd:enumeration value="post"/>
+								<xsd:enumeration value="put"/>
+								<xsd:enumeration value="get"/>
+								<xsd:enumeration value="delete"/>
+								<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>
+
+                        <!-- The defaults for these are false if serialization is 'none' and true otherwise -->
+			<xsd:attribute name="validate" type="xsd:boolean" use="optional"/>
+			<xsd:attribute name="relevant" type="xsd:boolean" use="optional"/>
+			
+			<!-- The default is based on the selected method, e.g. application/xml for the post method -->
+			<xsd:attribute name="serialization" type="xsd:string" use="optional"/>
+			
+			<xsd:attribute name="version" type="xsd:NMTOKEN" use="optional" default="1.0"/>
+			<xsd:attribute name="indent" type="xsd:boolean" use="optional" default="false"/>
+			<xsd:attribute name="mediatype" type="xsd:string" use="optional" default="application/xml"/>
+			<xsd:attribute name="encoding" type="xsd:string" use="optional" default="UTF-8"/>
+			
+			<xsd:attribute name="omit-xml-declaration" type="xsd:boolean" use="optional" default="false"/>
+			<!-- This is optional with no default because omitting the attribute behaves differently 
+			     than including it with any value -->
+			<xsd:attribute name="standalone" type="xsd:boolean" use="optional"/>
+			
+			<xsd:attribute name="cdata-section-elements" type="xforms:QNameList" use="optional" default=""/>
+			
+			<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="text"/>
+								<xsd:enumeration value="none"/>
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:union>
+				</xsd:simpleType>
+			</xsd:attribute>
+			
+			<!-- Default is not specified because the default is to replace the instance being submitted -->
+			<xsd:attribute name="instance" type="xsd:IDREF" use="optional"/>
+			
+			<xsd:attribute name="separator" use="optional" default="&amp;">
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:string">
+						<xsd:enumeration value="&amp;"/>
+						<xsd:enumeration value=";"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			
+			<!-- Default is not specified because the defalut is to replace the whole instance indicated 
+			     by the instance attribute -->
+			<xsd:attribute name="targetref" type="xforms:XPathExpression" use="optional"/>
+			<xsd:attribute name="target" type="xforms:XPathExpression" use="optional"/>
+			
+			<!-- Default not specified because omitting the attribute behaves differently than
+			     including it with any value -->
+			<xsd:attribute name="includenamespaceprefixes" use="optional">
+				<xsd:simpleType>
+					<xsd:list>
+						<xsd:simpleType>
+							<xsd:union memberTypes="xsd:NCName">
+								<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>
+
+        <!-- 
+Internal helper types 
+-->
+
+	<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:complexType name="ValueTemplate">
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="value" type="xforms:XPathExpression" use="optional"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+
+        <!--
+New simpleTypes provided to form authors
+-->
+
+	<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="dateTime">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:dateTime"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="time">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:time"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="date">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:date"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="gYearMonth">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:gYearMonth"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="gYear">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:gYear"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="gMonthDay">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:gMonthDay"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="gDay">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:gDay"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="gMonth">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:gMonth"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="string">
+		<xsd:restriction base="xsd:string"/>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="boolean">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:boolean"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="base64Binary">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:base64Binary"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="hexBinary">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:hexBinary"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="float">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:float"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="decimal">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:decimal"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="double">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:double"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="anyURI">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:anyURI"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="QName">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:QName"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="normalizedString">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:normalizedString"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="token">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:token"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="language">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:language"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="Name">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:Name"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="NCName">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NCName"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="ID">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:ID"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="IDREF">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:IDREF"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="IDREFS">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:IDREFS"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="NMTOKEN">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="NMTOKENS">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKENS"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="integer">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:integer"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="negativeInteger">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:negativeInteger"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="long">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:long"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="int">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:int"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="short">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:short"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="byte">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:byte"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="nonNegativeInteger">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:nonNegativeInteger"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="unsignedLong">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:unsignedLong"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="unsignedInt">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:unsignedInt"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="unsignedShort">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:unsignedShort"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="unsignedByte">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:unsignedByte"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+	
+	<xsd:simpleType name="positiveInteger">
+		<xsd:union>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:positiveInteger"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:length value="0"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</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:simpleType name="email">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="([A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*)?"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<xsd:simpleType name="card-number">
+		<xsd:annotation>
+			<xsd:documentation>
+			This type defines the basic lexical properties for a dataypte that can be used to represent
+			various ID numbers such as for debit and credit cards.
+			This type does not apply the Luhn checksum algorithm.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="[0-9]*"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+</xsd:schema>
--- a/2.0/core/schema/xsd/xforms11-with-xhtml-attributes.xsd	Mon Apr 23 17:22:41 2012 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,187 +0,0 @@
-<xs:schema targetNamespace="http://www.w3.org/2002/xforms"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/instance"
-	xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xhtml="http://www.w3.org/1999/xhtml"
-	xmlns:xml="http://www.w3.org/XML/1998/namespace" elementFormDefault="qualified">
-
-	<xs:import namespace="http://www.w3.org/1999/xhtml"
-		schemaLocation="xhtml+xforms.xsd" />
-	<xs:import namespace="http://www.w3.org/XML/1998/namespace" />
-	<xs:redefine schemaLocation="XForms-11-Schema.xsd">
-		<xs:complexType name="HelpType">
-			<xs:complexContent>
-				<xs:extension base="xforms:HelpType">
-					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
-					<xs:attribute ref="xforms:href" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-		<xs:complexType name="HintType">
-			<xs:complexContent>
-				<xs:extension base="xforms:HintType">
-					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
-					<xs:attribute ref="xforms:href" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>		
-		<xs:complexType name="LabelType">
-			<xs:complexContent>
-				<xs:extension base="xforms:LabelType">
-					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
-					<xs:attribute ref="xforms:href" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>		
-		<xs:complexType name="AlertType">
-			<xs:complexContent>
-				<xs:extension base="xforms:AlertType">
-					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
-					<xs:attribute ref="xforms:href" />
-				</xs:extension>
-			</xs:complexContent>
-		</xs:complexType>
-		
-		<xs:annotation>
-			<xs:documentation>
-				The XForms 1.1 specification says: "A host language is expected to add
-				attributes such as xml:lang as well as an attribute, named class,
-				that holds a list of strings that can be matched by CSS class
-				selectors."
-
-				Accordingly, this schema redefines the XForms schema by incorporating
-				UI attributes such as
-				'class' into the XForms namespace that correspond to those found in the
-				XHTML namespace.
-	</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup name="Common.Attributes">
-			<xs:attributeGroup ref="xforms:Common.Attributes" />
-			<xs:attributeGroup ref="xforms:coreattrs" />
-		</xs:attributeGroup>
-		<xs:attributeGroup name="UI.Common.Attrs">
-			<xs:attributeGroup ref="xforms:UI.Common.Attrs" />
-
-			<!--
-				The XForms 1.1 specification says: "A host language is expected to
-				add attributes such as xml:lang as well as an attribute, named
-				class, that holds a list of strings that can be matched by CSS class
-				selectors." Accordingly, this schema redefines the XForms schema by
-				incorporating UI attributes such as 'class' into the XForms
-				namespace that correspond to those found in the XHTML namespace. It
-				also incorporates navindex.
-			-->
-			<xs:attributeGroup ref="xforms:i18n" />
-			<xs:attributeGroup ref="xforms:events" />
-			<xs:attributeGroup ref="xforms:focus" />
-			<xs:attribute name="navindex" type="xs:short" />
-		</xs:attributeGroup>
-	</xs:redefine>
-	
-	<xs:attribute name="href" type="xs:anyURI" />
-		
-	<xs:annotation>
-		<xs:documentation>
-			The attributes defined below are as for XHTML 1.0 but incorporated
-			in the XForms namespace. The license for XHTML follows.
-		</xs:documentation>
-		<xs:documentation>
-			This is XHTML, a reformulation of HTML as a modular XML application The
-			Extensible HyperText Markup Language (XHTML) Copyright ©1998-2002
-			World Wide Web Consortium (Massachusetts Institute of Technology,
-			Institut National de Recherche en Informatique et en Automatique,
-			Keio University). All Rights Reserved. Permission to use, copy,
-			modify and distribute the XHTML Schema modules and their accompanying
-			xs:documentation for any purpose and without fee is hereby granted in
-			perpetuity, provided that the above copyright notice and this
-			paragraph appear in all copies. The copyright holders make no
-			representation about the suitability of these XML Schema modules for
-			any purpose. They are provided "as is" without expressed or implied
-			warranty. 
-	</xs:documentation>
-	</xs:annotation>
-	<xs:attributeGroup name="coreattrs">
-		<xs:annotation>
-			<xs:documentation>
-				core attributes common to most elements id
-				document-wide unique id class
-				space separated list of classes style
-				associated style info title
-				advisory title/amplification
-			</xs:documentation>
-		</xs:annotation>
-		<!--  <xs:attribute name="id" type="xs:ID" /> -->
-		<xs:attribute name="class" type="xs:NMTOKENS" />
-		<xs:attribute name="style" type="xhtml:StyleSheet" />
-		<xs:attribute name="title" type="xhtml:Text" />
-	</xs:attributeGroup>
-	<xs:attributeGroup name="i18n">
-		<xs:annotation>
-			<xs:documentation>
-				internationalization attributes lang language code
-				(backwards compatible) xml:lang
-				language code (as per XML 1.0 spec)
-				dir direction for weak/neutral
-				text 
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="lang" type="xhtml:LanguageCode" />
-		<xs:attribute ref="xml:lang" />
-		<xs:attribute name="dir">
-			<xs:simpleType>
-				<xs:restriction base="xs:token">
-					<xs:enumeration value="ltr" />
-					<xs:enumeration value="rtl" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-	<xs:attributeGroup name="events">
-		<xs:annotation>
-			<xs:documentation>
-				attributes for common UI events onclick a pointer
-				button was clicked
-				ondblclick a pointer button was double clicked
-				onmousedown a pointer
-				button was pressed down onmouseup a pointer
-				button was released
-				onmousemove a pointer was moved onto the element
-				onmouseout a
-				pointer was moved away from the element onkeypress a key
-				was pressed
-				and released onkeydown a key was pressed down onkeyup a
-				key was
-				released 
-</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="onclick" type="xhtml:Script" />
-		<xs:attribute name="ondblclick" type="xhtml:Script" />
-		<xs:attribute name="onmousedown" type="xhtml:Script" />
-		<xs:attribute name="onmouseup" type="xhtml:Script" />
-		<xs:attribute name="onmouseover" type="xhtml:Script" />
-		<xs:attribute name="onmousemove" type="xhtml:Script" />
-		<xs:attribute name="onmouseout" type="xhtml:Script" />
-		<xs:attribute name="onkeypress" type="xhtml:Script" />
-		<xs:attribute name="onkeydown" type="xhtml:Script" />
-		<xs:attribute name="onkeyup" type="xhtml:Script" />
-	</xs:attributeGroup>
-	<xs:attributeGroup name="focus">
-		<xs:annotation>
-			<xs:documentation>
-				attributes for elements that can get the focus
-				accesskey accessibility key
-				character tabindex position in tabbing
-				order onfocus the element got
-				the focus onblur the element lost the
-				focus 
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="accesskey" type="xhtml:Character" />
-		<xs:attribute name="tabindex" type="xhtml:tabindexNumber" />
-		<xs:attribute name="onfocus" type="xhtml:Script" />
-		<xs:attribute name="onblur" type="xhtml:Script" />
-	</xs:attributeGroup>
-	<xs:attributeGroup name="attrs">
-		<xs:attributeGroup ref="xhtml:coreattrs" />
-		<xs:attributeGroup ref="xhtml:i18n" />
-		<xs:attributeGroup ref="xhtml:events" />
-	</xs:attributeGroup>
-</xs:schema>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2.0/core/schema/xsd/xforms20-with-xhtml-attributes.xsd	Thu May 24 14:24:16 2012 +0200
@@ -0,0 +1,187 @@
+<xs:schema targetNamespace="http://www.w3.org/2002/xforms"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/instance"
+	xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xhtml="http://www.w3.org/1999/xhtml"
+	xmlns:xml="http://www.w3.org/XML/1998/namespace" elementFormDefault="qualified">
+
+	<xs:import namespace="http://www.w3.org/1999/xhtml"
+		schemaLocation="xhtml+xforms.xsd" />
+	<xs:import namespace="http://www.w3.org/XML/1998/namespace" />
+	<xs:redefine schemaLocation="XForms-20-Schema.xsd">
+		<xs:complexType name="HelpType">
+			<xs:complexContent>
+				<xs:extension base="xforms:HelpType">
+					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
+					<xs:attribute ref="xforms:href" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+		<xs:complexType name="HintType">
+			<xs:complexContent>
+				<xs:extension base="xforms:HintType">
+					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
+					<xs:attribute ref="xforms:href" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>		
+		<xs:complexType name="LabelType">
+			<xs:complexContent>
+				<xs:extension base="xforms:LabelType">
+					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
+					<xs:attribute ref="xforms:href" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>		
+		<xs:complexType name="AlertType">
+			<xs:complexContent>
+				<xs:extension base="xforms:AlertType">
+					<xs:attributeGroup ref="xforms:Linking.Attributes"/>
+					<xs:attribute ref="xforms:href" />
+				</xs:extension>
+			</xs:complexContent>
+		</xs:complexType>
+		
+		<xs:annotation>
+			<xs:documentation>
+				The XForms 1.1 specification says: "A host language is expected to add
+				attributes such as xml:lang as well as an attribute, named class,
+				that holds a list of strings that can be matched by CSS class
+				selectors."
+
+				Accordingly, this schema redefines the XForms schema by incorporating
+				UI attributes such as
+				'class' into the XForms namespace that correspond to those found in the
+				XHTML namespace.
+	</xs:documentation>
+		</xs:annotation>
+		<xs:attributeGroup name="Common.Attributes">
+			<xs:attributeGroup ref="xforms:Common.Attributes" />
+			<xs:attributeGroup ref="xforms:coreattrs" />
+		</xs:attributeGroup>
+		<xs:attributeGroup name="UI.Common.Attrs">
+			<xs:attributeGroup ref="xforms:UI.Common.Attrs" />
+
+			<!--
+				The XForms 1.1 specification says: "A host language is expected to
+				add attributes such as xml:lang as well as an attribute, named
+				class, that holds a list of strings that can be matched by CSS class
+				selectors." Accordingly, this schema redefines the XForms schema by
+				incorporating UI attributes such as 'class' into the XForms
+				namespace that correspond to those found in the XHTML namespace. It
+				also incorporates navindex.
+			-->
+			<xs:attributeGroup ref="xforms:i18n" />
+			<xs:attributeGroup ref="xforms:events" />
+			<xs:attributeGroup ref="xforms:focus" />
+			<xs:attribute name="navindex" type="xs:short" />
+		</xs:attributeGroup>
+	</xs:redefine>
+	
+	<xs:attribute name="href" type="xs:anyURI" />
+		
+	<xs:annotation>
+		<xs:documentation>
+			The attributes defined below are as for XHTML 1.0 but incorporated
+			in the XForms namespace. The license for XHTML follows.
+		</xs:documentation>
+		<xs:documentation>
+			This is XHTML, a reformulation of HTML as a modular XML application The
+			Extensible HyperText Markup Language (XHTML) Copyright ©1998-2002
+			World Wide Web Consortium (Massachusetts Institute of Technology,
+			Institut National de Recherche en Informatique et en Automatique,
+			Keio University). All Rights Reserved. Permission to use, copy,
+			modify and distribute the XHTML Schema modules and their accompanying
+			xs:documentation for any purpose and without fee is hereby granted in
+			perpetuity, provided that the above copyright notice and this
+			paragraph appear in all copies. The copyright holders make no
+			representation about the suitability of these XML Schema modules for
+			any purpose. They are provided "as is" without expressed or implied
+			warranty. 
+	</xs:documentation>
+	</xs:annotation>
+	<xs:attributeGroup name="coreattrs">
+		<xs:annotation>
+			<xs:documentation>
+				core attributes common to most elements id
+				document-wide unique id class
+				space separated list of classes style
+				associated style info title
+				advisory title/amplification
+			</xs:documentation>
+		</xs:annotation>
+		<!--  <xs:attribute name="id" type="xs:ID" /> -->
+		<xs:attribute name="class" type="xs:NMTOKENS" />
+		<xs:attribute name="style" type="xhtml:StyleSheet" />
+		<xs:attribute name="title" type="xhtml:Text" />
+	</xs:attributeGroup>
+	<xs:attributeGroup name="i18n">
+		<xs:annotation>
+			<xs:documentation>
+				internationalization attributes lang language code
+				(backwards compatible) xml:lang
+				language code (as per XML 1.0 spec)
+				dir direction for weak/neutral
+				text 
+			</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="lang" type="xhtml:LanguageCode" />
+		<xs:attribute ref="xml:lang" />
+		<xs:attribute name="dir">
+			<xs:simpleType>
+				<xs:restriction base="xs:token">
+					<xs:enumeration value="ltr" />
+					<xs:enumeration value="rtl" />
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:attributeGroup>
+	<xs:attributeGroup name="events">
+		<xs:annotation>
+			<xs:documentation>
+				attributes for common UI events onclick a pointer
+				button was clicked
+				ondblclick a pointer button was double clicked
+				onmousedown a pointer
+				button was pressed down onmouseup a pointer
+				button was released
+				onmousemove a pointer was moved onto the element
+				onmouseout a
+				pointer was moved away from the element onkeypress a key
+				was pressed
+				and released onkeydown a key was pressed down onkeyup a
+				key was
+				released 
+</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="onclick" type="xhtml:Script" />
+		<xs:attribute name="ondblclick" type="xhtml:Script" />
+		<xs:attribute name="onmousedown" type="xhtml:Script" />
+		<xs:attribute name="onmouseup" type="xhtml:Script" />
+		<xs:attribute name="onmouseover" type="xhtml:Script" />
+		<xs:attribute name="onmousemove" type="xhtml:Script" />
+		<xs:attribute name="onmouseout" type="xhtml:Script" />
+		<xs:attribute name="onkeypress" type="xhtml:Script" />
+		<xs:attribute name="onkeydown" type="xhtml:Script" />
+		<xs:attribute name="onkeyup" type="xhtml:Script" />
+	</xs:attributeGroup>
+	<xs:attributeGroup name="focus">
+		<xs:annotation>
+			<xs:documentation>
+				attributes for elements that can get the focus
+				accesskey accessibility key
+				character tabindex position in tabbing
+				order onfocus the element got
+				the focus onblur the element lost the
+				focus 
+			</xs:documentation>
+		</xs:annotation>
+		<xs:attribute name="accesskey" type="xhtml:Character" />
+		<xs:attribute name="tabindex" type="xhtml:tabindexNumber" />
+		<xs:attribute name="onfocus" type="xhtml:Script" />
+		<xs:attribute name="onblur" type="xhtml:Script" />
+	</xs:attributeGroup>
+	<xs:attributeGroup name="attrs">
+		<xs:attributeGroup ref="xhtml:coreattrs" />
+		<xs:attributeGroup ref="xhtml:i18n" />
+		<xs:attributeGroup ref="xhtml:events" />
+	</xs:attributeGroup>
+</xs:schema>
\ No newline at end of file
--- a/2.0/core/schema/xsd/xhtml+xforms.xsd	Mon Apr 23 17:22:41 2012 -0700
+++ b/2.0/core/schema/xsd/xhtml+xforms.xsd	Thu May 24 14:24:16 2012 +0200
@@ -55,7 +55,7 @@
 	</xs:annotation>
 	<xs:import namespace="http://www.w3.org/XML/1998/namespace" />
 	<xs:import namespace="http://www.w3.org/2002/xforms"
-		schemaLocation="xforms11-with-xhtml-attributes.xsd" />
+		schemaLocation="xforms20-with-xhtml-attributes.xsd" />
 	<xs:annotation>
 		<xs:documentation>
 			================ Character mnemonic entities ========================= XHTML entity