Added Owen Newnan's XML schema http://lists.w3.org/Archives/Public/public-forms/2010Mar/0001.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/2.0/core/schema/xsd/XForms-11-Schema.xsd Thu Apr 19 11:01:18 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 "&"
+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="&">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="&"/>
+ <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/xforms11-with-xhtml-attributes.xsd Thu Apr 19 11:01:18 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-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/xhtml+xforms.xsd Thu Apr 19 11:01:18 2012 +0200
@@ -0,0 +1,2146 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ This is an adaptation of the XHTML 1.0 strict XSD to incorporate XForms elements. The base schema
+ was obtained from: http://otto.w3.org/TR/xhtml1-schema/. The interpretation is based
+ on the XHTML 2.0 XForms Module, http://www.w3.org/TR/xhtml2/mod-xforms.html#s_xformsmodule,
+ which seems to provide the best currently available guidance to XHTML and XForms integration. Note
+ however the XHTML 2.0 charter lapses as of year end 2009.
+
+ This implementation uses the XHTML 1.0 rather than later (> 1.0) XHTML modular schemas since the latter
+ contain errors from the perspective of the JRE 1.6 validation libraries used by the author.
+
+ Note: in addition to providing XForms integration, this schema was modified to allow <br/> wherever <p/> can appear.
+ This is a deviation from the published schema.
+
+ Owen Newnan
+ 11-28-09
+ -->
+<xs:schema version="1.0" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ elementFormDefault="qualified">
+
+ <xs:annotation>
+ <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:annotation>
+ <xs:documentation>
+ XHTML 1.0 (Second Edition) Strict in XML Schema This is the same as HTML 4
+ Strict except for changes due to the differences between XML and
+ SGML. Namespace = http://www.w3.org/1999/xhtml For further
+ information, see: http://www.w3.org/TR/xhtml1 Copyright (c) 1998-2002
+ W3C (MIT, INRIA, Keio), All Rights Reserved. The DTD version is
+ identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//DTD
+ XHTML 1.0 Strict//EN" SYSTEM
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" $Id:
+ xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
+ </xs:documentation>
+ </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" />
+ <xs:annotation>
+ <xs:documentation>
+ ================ Character mnemonic entities ========================= XHTML entity
+ sets are identified by the PUBLIC and SYSTEM identifiers: PUBLIC
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN" SYSTEM
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent" PUBLIC
+ "-//W3C//ENTITIES Special for XHTML//EN" SYSTEM
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent" PUBLIC
+ "-//W3C//ENTITIES Symbols for XHTML//EN" SYSTEM
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
+</xs:documentation>
+ </xs:annotation>
+ <xs:annotation>
+ <xs:documentation>
+ ================== Imported Names ====================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="ContentType">
+ <xs:annotation>
+ <xs:documentation>
+ media type, as per [RFC2045]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="ContentTypes">
+ <xs:annotation>
+ <xs:documentation>
+ comma-separated list of media types, as per [RFC2045]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="Charset">
+ <xs:annotation>
+ <xs:documentation>
+ a character encoding, as per [RFC2045]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="Charsets">
+ <xs:annotation>
+ <xs:documentation>
+ a space separated list of character encodings, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="LanguageCode">
+ <xs:annotation>
+ <xs:documentation>
+ a language code, as per [RFC3066]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:language" />
+ </xs:simpleType>
+ <xs:simpleType name="Character">
+ <xs:annotation>
+ <xs:documentation>
+ a single character, as per section 2.2 of [XML]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:length value="1" fixed="true" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Number">
+ <xs:annotation>
+ <xs:documentation>
+ one or more digits
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:nonNegativeInteger">
+ <xs:pattern value="[0-9]+" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="tabindexNumber">
+ <xs:annotation>
+ <xs:documentation>
+ tabindex attribute specifies the position of the current element in the
+ tabbing order for the current document. This value must be a number
+ between 0 and 32767. User agents should ignore leading zeros.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="Number">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="32767" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LinkTypes">
+ <xs:annotation>
+ <xs:documentation>
+ space-separated list of link types
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKENS" />
+ </xs:simpleType>
+ <xs:simpleType name="MediaDesc">
+ <xs:annotation>
+ <xs:documentation>
+ single or comma-separated list of media descriptors
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[^,]+(,\s*[^,]+)*" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="URI">
+ <xs:annotation>
+ <xs:documentation>
+ a Uniform Resource Identifier, see [RFC2396]
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:anyURI" />
+ </xs:simpleType>
+ <xs:simpleType name="UriList">
+ <xs:annotation>
+ <xs:documentation>
+ a space separated list of Uniform Resource Identifiers
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="Datetime">
+ <xs:annotation>
+ <xs:documentation>
+ date and time information. ISO date format
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:dateTime" />
+ </xs:simpleType>
+ <xs:simpleType name="Script">
+ <xs:annotation>
+ <xs:documentation>
+ script expression
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="StyleSheet">
+ <xs:annotation>
+ <xs:documentation>
+ style sheet data
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="Text">
+ <xs:annotation>
+ <xs:documentation>
+ used for titles etc.
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+ <xs:simpleType name="Length">
+ <xs:annotation>
+ <xs:documentation>
+ nn for pixels or nn% for percentage length
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="MultiLength">
+ <xs:annotation>
+ <xs:documentation>
+ pixel, percentage, or relative
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Pixels">
+ <xs:annotation>
+ <xs:documentation>
+ integer representing length in pixels
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:nonNegativeInteger" />
+ </xs:simpleType>
+ <xs:annotation>
+ <xs:documentation>
+ these are used for image maps
+</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="Shape">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="rect" />
+ <xs:enumeration value="circle" />
+ <xs:enumeration value="poly" />
+ <xs:enumeration value="default" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="Coords">
+ <xs:annotation>
+ <xs:documentation>
+ comma separated list of lengths
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Generic Attributes ===============================
+ </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="StyleSheet" />
+ <xs:attribute name="title" type="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="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="Script" />
+ <xs:attribute name="ondblclick" type="Script" />
+ <xs:attribute name="onmousedown" type="Script" />
+ <xs:attribute name="onmouseup" type="Script" />
+ <xs:attribute name="onmouseover" type="Script" />
+ <xs:attribute name="onmousemove" type="Script" />
+ <xs:attribute name="onmouseout" type="Script" />
+ <xs:attribute name="onkeypress" type="Script" />
+ <xs:attribute name="onkeydown" type="Script" />
+ <xs:attribute name="onkeyup" type="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="Character" />
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ </xs:attributeGroup>
+ <xs:attributeGroup name="attrs">
+ <xs:attributeGroup ref="coreattrs" />
+ <xs:attributeGroup ref="i18n" />
+ <xs:attributeGroup ref="events" />
+ </xs:attributeGroup>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Text Elements ====================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group name="special.pre">
+ <xs:choice>
+ <!-- fix removed <xs:element ref="br" /> -->
+ <xs:element ref="span" />
+ <xs:element ref="bdo" />
+ <xs:element ref="map" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="special">
+ <xs:choice>
+ <xs:group ref="special.pre" />
+ <xs:element ref="object" />
+ <xs:element ref="img" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="fontstyle">
+ <xs:choice>
+ <xs:element ref="tt" />
+ <xs:element ref="i" />
+ <xs:element ref="b" />
+ <xs:element ref="big" />
+ <xs:element ref="small" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="phrase">
+ <xs:choice>
+ <xs:element ref="em" />
+ <xs:element ref="strong" />
+ <xs:element ref="dfn" />
+ <xs:element ref="code" />
+ <xs:element ref="q" />
+ <xs:element ref="samp" />
+ <xs:element ref="kbd" />
+ <xs:element ref="var" />
+ <xs:element ref="cite" />
+ <xs:element ref="abbr" />
+ <xs:element ref="acronym" />
+ <xs:element ref="sub" />
+ <xs:element ref="sup" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="inline.forms">
+ <xs:choice>
+ <xs:element ref="input" />
+ <xs:element ref="select" />
+ <xs:element ref="textarea" />
+ <xs:element ref="label" />
+ <xs:element ref="button" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="misc.inline">
+ <xs:choice>
+ <xs:element ref="ins" />
+ <xs:element ref="del" />
+ <xs:element ref="script" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="misc">
+ <xs:annotation>
+ <xs:documentation>
+ these can only occur at block level
+</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element ref="noscript" />
+ <xs:group ref="misc.inline" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="inline">
+ <xs:choice>
+ <xs:element ref="a" />
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="inline.forms" />
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="Inline" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ "Inline" covers inline or "text-level" elements
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="inline" />
+ <xs:group ref="misc.inline" />
+
+ <!-- Text Content Set -->
+ <xs:group ref="xforms-core" />
+ <xs:group ref="xforms-actions" />
+ <xs:group ref="xforms-controls" />
+ <xs:group ref="xforms-group" />
+ <xs:group ref="xforms-switch" />
+ <xs:group ref="xforms-repeat" />
+
+ </xs:choice>
+ </xs:complexType>
+ <xs:annotation>
+ <xs:documentation>
+ ================== Block level elements ==============================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group name="heading">
+ <xs:choice>
+ <xs:element ref="h1" />
+ <xs:element ref="h2" />
+ <xs:element ref="h3" />
+ <xs:element ref="h4" />
+ <xs:element ref="h5" />
+ <xs:element ref="h6" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="lists">
+ <xs:choice>
+ <xs:element ref="ul" />
+ <xs:element ref="ol" />
+ <xs:element ref="dl" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="blocktext">
+ <xs:choice>
+ <xs:element ref="pre" />
+ <xs:element ref="hr" />
+ <xs:element ref="blockquote" />
+ <xs:element ref="address" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="block">
+ <xs:choice>
+ <xs:element ref="p" />
+ <xs:element ref="br" /> <!-- fix -->
+ <xs:group ref="heading" />
+ <xs:element ref="div" />
+ <xs:group ref="lists" />
+ <xs:group ref="blocktext" />
+ <xs:element ref="fieldset" />
+ <xs:element ref="table" />
+
+ <!-- Structural Content Set -->
+ <xs:group ref="xforms-core" />
+ <xs:group ref="xforms-actions" />
+ <xs:group ref="xforms-controls" />
+ <xs:group ref="xforms-group" />
+ <xs:group ref="xforms-switch" />
+ <xs:group ref="xforms-repeat" />
+
+ </xs:choice>
+ </xs:group>
+
+ <!--
+ XHTML 2.0 Defines the following XForms content sets:
+
+ XForms Core
+ model
+ XForms Form Controls
+ input | secret | textarea | output | upload | range | trigger | submit | select | select1
+ XForms Actions
+ action | dispatch | rebuild | recalculate | revalidate | refresh | setfocus | load | setvalue | send | reset | message | insert | delete | setindex
+ XForms Group
+ group
+ XForms Switch
+ switch
+ XForms Repeat
+ repeat
+ -->
+ <xs:group name="xforms-core">
+ <xs:choice>
+ <xs:element ref="xforms:model" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="xforms-controls">
+ <xs:choice>
+ <xs:element ref="xforms:input" />
+ <xs:element ref="xforms:output" />
+ <xs:element ref="xforms:range" />
+ <xs:element ref="xforms:secret" />
+ <xs:element ref="xforms:select1" />
+ <xs:element ref="xforms:select" />
+ <xs:element ref="xforms:submit" />
+ <xs:element ref="xforms:textarea" />
+ <xs:element ref="xforms:trigger" />
+ <xs:element ref="xforms:upload" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="xforms-actions">
+ <xs:choice>
+ <xs:element ref="xforms:action" />
+ <xs:element ref="xforms:dispatch" />
+ <xs:element ref="xforms:rebuild" />
+ <xs:element ref="xforms:recalculate" />
+ <xs:element ref="xforms:revalidate" />
+ <xs:element ref="xforms:refresh" />
+ <xs:element ref="xforms:setfocus" />
+ <xs:element ref="xforms:load" />
+ <xs:element ref="xforms:setvalue" />
+ <xs:element ref="xforms:send" />
+ <xs:element ref="xforms:reset" />
+ <xs:element ref="xforms:message" />
+ <xs:element ref="xforms:insert" />
+ <xs:element ref="xforms:delete" />
+ <xs:element ref="xforms:setindex" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="xforms-group">
+ <xs:choice>
+ <xs:element ref="xforms:group" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="xforms-switch">
+ <xs:choice>
+ <xs:element ref="xforms:switch" />
+ </xs:choice>
+ </xs:group>
+ <xs:group name="xforms-repeat">
+ <xs:choice>
+ <xs:element ref="xforms:repeat" />
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="Block">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="Flow" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ "Flow" mixes block and inline and is used for list items etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:annotation>
+ <xs:documentation>
+ ================== Content models for exclusions =====================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType name="a.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ a elements use "Inline" excluding a
+</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="inline.forms" />
+ <xs:group ref="misc.inline" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="pre.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ pre uses "Inline" excluding big, small, sup or sup
+</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="a" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="special.pre" />
+ <xs:group ref="misc.inline" />
+ <xs:group ref="inline.forms" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="form.content">
+ <xs:annotation>
+ <xs:documentation>
+ form uses "Block" excluding form
+</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="button.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ button uses "Flow" but excludes a, form and form controls
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="p" />
+ <xs:element ref="br" /> <!-- fix -->
+ <xs:group ref="heading" />
+ <xs:element ref="div" />
+ <xs:group ref="lists" />
+ <xs:group ref="blocktext" />
+ <xs:element ref="table" />
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+ <xs:annotation>
+ <xs:documentation>
+ ================ Document Structure ==================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="html">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head" />
+ <xs:element ref="body" />
+ </xs:sequence>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ================ Document Head =======================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:group name="head.misc">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="script" />
+ <xs:element ref="style" />
+ <xs:element ref="meta" />
+ <xs:element ref="link" />
+ <xs:element ref="object" />
+
+ <!-- Document Head XForms Options -->
+ <xs:group ref="xforms-core" />
+ <xs:group ref="xforms-actions" />
+
+ </xs:choice>
+
+ </xs:sequence>
+ </xs:group>
+ <xs:element name="head">
+ <xs:annotation>
+ <xs:documentation>
+ content model is "head.misc" combined with a single
+ title and an optional
+ base element in any order
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="head.misc" />
+ <xs:choice>
+ <xs:sequence>
+ <xs:element ref="title" />
+ <xs:group ref="head.misc" />
+ <xs:sequence minOccurs="0">
+ <xs:element ref="base" />
+ <xs:group ref="head.misc" />
+ </xs:sequence>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element ref="base" />
+ <xs:group ref="head.misc" />
+ <xs:element ref="title" />
+ <xs:group ref="head.misc" />
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="profile" type="URI" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="title">
+ <xs:annotation>
+ <xs:documentation>
+ The title element is not considered part of the
+ flow of text. It should
+ be displayed, for example as the page header
+ or window title.
+ Exactly one title is required per document.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="base">
+ <xs:annotation>
+ <xs:documentation>
+ document base URI
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="href" use="required" type="URI" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="meta">
+ <xs:annotation>
+ <xs:documentation>
+ generic metainformation
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="http-equiv" />
+ <xs:attribute name="name" />
+ <xs:attribute name="content" use="required" />
+ <xs:attribute name="scheme" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="link">
+ <xs:annotation>
+ <xs:documentation>
+ Relationship values can be used in principle: a) for document specific
+ toolbars/menus when used with the link element in document head e.g.
+ start, contents, previous, next, index, end, help b) to link to a
+ separate style sheet (rel="stylesheet") c) to make a link to a
+ script (rel="script") d) by stylesheets to control how collections
+ of html nodes are rendered into printed documents e) to make a link
+ to a printable version of this document e.g. a PostScript or PDF
+ version (rel="alternate" media="print")
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="hreflang" type="LanguageCode" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="rel" type="LinkTypes" />
+ <xs:attribute name="rev" type="LinkTypes" />
+ <xs:attribute name="media" type="MediaDesc" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="style">
+ <xs:annotation>
+ <xs:documentation>
+ style info, which may include CDATA sections
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="type" use="required" type="ContentType" />
+ <xs:attribute name="media" type="MediaDesc" />
+ <xs:attribute name="title" type="Text" />
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="script">
+ <xs:annotation>
+ <xs:documentation>
+ script statements, which may include CDATA sections
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="type" use="required" type="ContentType" />
+ <xs:attribute name="src" type="URI" />
+ <xs:attribute name="defer">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="defer" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="noscript">
+ <xs:annotation>
+ <xs:documentation>
+ alternate content container for non script-based rendering
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Document Body ====================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="body">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="onload" type="Script" />
+ <xs:attribute name="onunload" type="Script" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="div">
+ <xs:annotation>
+ <xs:documentation>
+ generic language/style container
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Paragraphs =======================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="p">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Headings ========================================= There are six
+ levels of headings from h1 (the most important) to h6 (the least
+ important).
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="h1">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h2">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h3">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h4">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h5">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="h6">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Lists ============================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="ul">
+ <xs:annotation>
+ <xs:documentation>
+ Unordered list
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="li" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ol">
+ <xs:annotation>
+ <xs:documentation>
+ Ordered (numbered) list
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="li" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="li">
+ <xs:annotation>
+ <xs:documentation>
+ list item
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ definition lists - dt for term, dd for its definition
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="dl">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="dt" />
+ <xs:element ref="dd" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dt">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dd">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Address ==========================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="address">
+ <xs:annotation>
+ <xs:documentation>
+ information on author
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Horizontal Rule ==================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="hr">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Preformatted Text ================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="pre">
+ <xs:annotation>
+ <xs:documentation>
+ content is "Inline" excluding "img|object|big|small|sub|sup"
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="pre.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Block-like Quotes ================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="blockquote">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Inserted/Deleted Text ============================ ins/del are
+ allowed in block and inline content, but its inappropriate to include
+ block content within an ins element occurring in inline content.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="ins">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ <xs:attribute name="datetime" type="Datetime" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="del">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ <xs:attribute name="datetime" type="Datetime" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ================== The Anchor Element ================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="a">
+ <xs:annotation>
+ <xs:documentation>
+ content is "Inline" except that anchors shouldn't be nested
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="a.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="hreflang" type="LanguageCode" />
+ <xs:attribute name="rel" type="LinkTypes" />
+ <xs:attribute name="rev" type="LinkTypes" />
+ <xs:attribute name="shape" default="rect" type="Shape" />
+ <xs:attribute name="coords" type="Coords" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ===================== Inline Elements ================================
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="span">
+ <xs:annotation>
+ <xs:documentation>
+ generic language/style container
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="bdo">
+ <xs:annotation>
+ <xs:documentation>
+ I18N BiDi over-ride
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="coreattrs" />
+ <xs:attributeGroup ref="events" />
+ <xs:attribute name="lang" type="LanguageCode" />
+ <xs:attribute ref="xml:lang" />
+ <xs:attribute name="dir" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr" />
+ <xs:enumeration value="rtl" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="br">
+ <xs:annotation>
+ <xs:documentation>
+ forced line break
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="coreattrs" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="em">
+ <xs:annotation>
+ <xs:documentation>
+ emphasis
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="strong">
+ <xs:annotation>
+ <xs:documentation>
+ strong emphasis
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dfn">
+ <xs:annotation>
+ <xs:documentation>
+ definitional
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="code">
+ <xs:annotation>
+ <xs:documentation>
+ program code
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="samp">
+ <xs:annotation>
+ <xs:documentation>
+ sample
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="kbd">
+ <xs:annotation>
+ <xs:documentation>
+ something user would type
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="var">
+ <xs:annotation>
+ <xs:documentation>
+ variable
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cite">
+ <xs:annotation>
+ <xs:documentation>
+ citation
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="abbr">
+ <xs:annotation>
+ <xs:documentation>
+ abbreviation
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="acronym">
+ <xs:annotation>
+ <xs:documentation>
+ acronym
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="q">
+ <xs:annotation>
+ <xs:documentation>
+ inlined quote
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sub">
+ <xs:annotation>
+ <xs:documentation>
+ subscript
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="sup">
+ <xs:annotation>
+ <xs:documentation>
+ superscript
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tt">
+ <xs:annotation>
+ <xs:documentation>
+ fixed pitch font
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="i">
+ <xs:annotation>
+ <xs:documentation>
+ italic font
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="b">
+ <xs:annotation>
+ <xs:documentation>
+ bold font
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="big">
+ <xs:annotation>
+ <xs:documentation>
+ bigger font
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="small">
+ <xs:annotation>
+ <xs:documentation>
+ smaller font
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ==================== Object ====================================== object is used to
+ embed objects as part of HTML pages. param elements should precede
+ other content. Parameters can also be expressed as attribute/value
+ pairs on the object element itself when brevity is desired.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="object">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="param" />
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="declare">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="declare" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="classid" type="URI" />
+ <xs:attribute name="codebase" type="URI" />
+ <xs:attribute name="data" type="URI" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="codetype" type="ContentType" />
+ <xs:attribute name="archive" type="UriList" />
+ <xs:attribute name="standby" type="Text" />
+ <xs:attribute name="height" type="Length" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="usemap" type="URI" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="param">
+ <xs:annotation>
+ <xs:documentation>
+ param is used to supply a named property value. In XML it would seem
+ natural to follow RDF and support an abbreviated syntax where the
+ param elements are replaced by attribute value pairs on the object
+ start tag.
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="name" />
+ <xs:attribute name="value" />
+ <xs:attribute name="valuetype" default="data">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="data" />
+ <xs:enumeration value="ref" />
+ <xs:enumeration value="object" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="type" type="ContentType" />
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ =================== Images =========================================== To avoid
+ accessibility problems for people who aren't able to see the image,
+ you should provide a text description using the alt and longdesc
+ attributes. In addition, avoid the use of server-side image maps.
+ Note that in this DTD there is no name attribute. That is only
+ available in the transitional and frameset DTD.
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="img">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="src" use="required" type="URI" />
+ <xs:attribute name="alt" use="required" type="Text" />
+ <xs:attribute name="longdesc" type="URI" />
+ <xs:attribute name="height" type="Length" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="usemap" type="URI">
+ <xs:annotation>
+ <xs:documentation>
+ usemap points to a map element which may be in this document or an
+ external document, although the latter is not widely supported
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ismap">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ismap" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ================== Client-side image maps ============================ These can be
+ placed in the same document or grouped in a separate document
+ although this isn't yet widely supported
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="map">
+ <xs:complexType>
+ <xs:choice>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ <xs:element maxOccurs="unbounded" ref="area" />
+ </xs:choice>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attributeGroup ref="events" />
+ <xs:attribute name="id" use="required" type="xs:ID" />
+ <xs:attribute name="class" />
+ <xs:attribute name="style" type="StyleSheet" />
+ <xs:attribute name="title" type="Text" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="area">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="shape" default="rect" type="Shape" />
+ <xs:attribute name="coords" type="Coords" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="nohref">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="nohref" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="alt" use="required" type="Text" />
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ================ Forms ===============================================
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="form">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="form.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="action" use="required" type="URI" />
+ <xs:attribute name="method" default="get">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="get" />
+ <xs:enumeration value="post" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="enctype" type="ContentType"
+ default="application/x-www-form-urlencoded" />
+ <xs:attribute name="onsubmit" type="Script" />
+ <xs:attribute name="onreset" type="Script" />
+ <xs:attribute name="accept" type="ContentTypes" />
+ <xs:attribute name="accept-charset" type="Charsets" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="label">
+ <xs:annotation>
+ <xs:documentation>
+ Each label must not contain more than ONE field Label elements shouldn't
+ be nested.
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="for" type="xs:IDREF" />
+ <xs:attribute name="accesskey" type="Character" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="InputType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="text" />
+ <xs:enumeration value="password" />
+ <xs:enumeration value="checkbox" />
+ <xs:enumeration value="radio" />
+ <xs:enumeration value="submit" />
+ <xs:enumeration value="reset" />
+ <xs:enumeration value="file" />
+ <xs:enumeration value="hidden" />
+ <xs:enumeration value="image" />
+ <xs:enumeration value="button" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="input">
+ <xs:annotation>
+ <xs:documentation>
+ form control
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="type" default="text" type="InputType" />
+ <xs:attribute name="name">
+ <xs:annotation>
+ <xs:documentation>
+ the name attribute is required for all but submit and reset
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="value" />
+ <xs:attribute name="checked">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="checked" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="readonly">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="readonly" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="size" />
+ <xs:attribute name="maxlength" type="Number" />
+ <xs:attribute name="src" type="URI" />
+ <xs:attribute name="alt" />
+ <xs:attribute name="usemap" type="URI" />
+ <xs:attribute name="onselect" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ <xs:attribute name="accept" type="ContentTypes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="select">
+ <xs:annotation>
+ <xs:documentation>
+ option selector
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="optgroup" />
+ <xs:element ref="option" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="name" />
+ <xs:attribute name="size" type="Number" />
+ <xs:attribute name="multiple">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="multiple" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="optgroup">
+ <xs:annotation>
+ <xs:documentation>
+ option group
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="option" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="label" use="required" type="Text" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="option">
+ <xs:annotation>
+ <xs:documentation>
+ selectable choice
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="selected">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="selected" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="label" type="Text" />
+ <xs:attribute name="value" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="textarea">
+ <xs:annotation>
+ <xs:documentation>
+ multi-line text field
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="name" />
+ <xs:attribute name="rows" use="required" type="Number" />
+ <xs:attribute name="cols" use="required" type="Number" />
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="readonly">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="readonly" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="onselect" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="fieldset">
+ <xs:annotation>
+ <xs:documentation>
+ The fieldset element is used to group form fields. Only one legend
+ element should occur in the content and if present should only be
+ preceded by whitespace. NOTE: this content model is different from
+ the XHTML 1.0 DTD, closer to the intended content model in HTML4 DTD
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element ref="legend" />
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="legend">
+ <xs:annotation>
+ <xs:documentation>
+ fieldset label
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="accesskey" type="Character" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="button">
+ <xs:annotation>
+ <xs:documentation>
+ Content is "Flow" excluding a, form and form controls
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="button.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="name" />
+ <xs:attribute name="value" />
+ <xs:attribute name="type" default="submit">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="button" />
+ <xs:enumeration value="submit" />
+ <xs:enumeration value="reset" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ ======================= Tables ======================================= Derived from IETF
+ HTML table standard, see [RFC1942]
+</xs:documentation>
+ </xs:annotation>
+ <xs:simpleType name="TFrame">
+ <xs:annotation>
+ <xs:documentation>
+ The border attribute sets the thickness of the frame around the table.
+ The default units are screen pixels. The frame attribute specifies
+ which parts of the frame around the table should be rendered. The
+ values are not the same as CALS to avoid a name clash with the
+ valign attribute.
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="void" />
+ <xs:enumeration value="above" />
+ <xs:enumeration value="below" />
+ <xs:enumeration value="hsides" />
+ <xs:enumeration value="lhs" />
+ <xs:enumeration value="rhs" />
+ <xs:enumeration value="vsides" />
+ <xs:enumeration value="box" />
+ <xs:enumeration value="border" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TRules">
+ <xs:annotation>
+ <xs:documentation>
+ The rules attribute defines which rules to draw between cells: If rules
+ is absent then assume: "none" if border is absent or border="0"
+ otherwise "all"
+</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none" />
+ <xs:enumeration value="groups" />
+ <xs:enumeration value="rows" />
+ <xs:enumeration value="cols" />
+ <xs:enumeration value="all" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:attributeGroup name="cellhalign">
+ <xs:annotation>
+ <xs:documentation>
+ horizontal alignment attributes for cell contents char alignment char, e.g.
+ char=':' charoff offset for alignment char
+</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left" />
+ <xs:enumeration value="center" />
+ <xs:enumeration value="right" />
+ <xs:enumeration value="justify" />
+ <xs:enumeration value="char" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char" type="Character" />
+ <xs:attribute name="charoff" type="Length" />
+ </xs:attributeGroup>
+ <xs:attributeGroup name="cellvalign">
+ <xs:annotation>
+ <xs:documentation>
+ vertical alignment attributes for cell contents
+</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top" />
+ <xs:enumeration value="middle" />
+ <xs:enumeration value="bottom" />
+ <xs:enumeration value="baseline" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="table">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="caption" />
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup" />
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead" />
+ <xs:element minOccurs="0" ref="tfoot" />
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tbody" />
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ <xs:attribute name="summary" type="Text" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="border" type="Pixels" />
+ <xs:attribute name="frame" type="TFrame" />
+ <xs:attribute name="rules" type="TRules" />
+ <xs:attribute name="cellspacing" type="Length" />
+ <xs:attribute name="cellpadding" type="Length" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="caption">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:annotation>
+ <xs:documentation>
+ Use thead to duplicate headers when breaking table across page
+ boundaries, or for static headers when tbody sections are rendered in
+ scrolling panel. Use tfoot to duplicate footers when breaking table
+ across page boundaries, or for static footers when tbody sections are
+ rendered in scrolling panel. Use multiple tbody sections when rules
+ are needed between groups of table rows.
+</xs:documentation>
+ </xs:annotation>
+ <xs:element name="thead">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tfoot">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tbody">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="colgroup">
+ <xs:annotation>
+ <xs:documentation>
+ colgroup groups a set of col elements. It allows you to group several
+ semantically related columns together.
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="span" default="1" type="Number" />
+ <xs:attribute name="width" type="MultiLength" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="col">
+ <xs:annotation>
+ <xs:documentation>
+ col elements define the alignment properties for cells in one or more
+ columns. The width attribute specifies the width of the columns,
+ e.g. width=64 width in screen pixels width=0.5* relative width of
+ 0.5 The span attribute causes the attributes of one col element to
+ apply to more than one column.
+</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="span" default="1" type="Number" />
+ <xs:attribute name="width" type="MultiLength" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="tr">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="th" />
+ <xs:element ref="td" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ <xs:attributeGroup ref="xforms:Repeat.Attributes" />
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="Scope">
+ <xs:annotation>
+ <xs:documentation>
+ Scope is simpler than headers attribute for common tables
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="row" />
+ <xs:enumeration value="col" />
+ <xs:enumeration value="rowgroup" />
+ <xs:enumeration value="colgroup" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:annotation>
+ <xs:documentation>
+ th is for headers, td for data and for cells acting as both
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="th">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="abbr" type="Text" />
+ <xs:attribute name="axis" />
+ <xs:attribute name="headers" type="xs:IDREFS" />
+ <xs:attribute name="scope" type="Scope" />
+ <xs:attribute name="rowspan" default="1" type="Number" />
+ <xs:attribute name="colspan" default="1" type="Number" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="td">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="abbr" type="Text" />
+ <xs:attribute name="axis" />
+ <xs:attribute name="headers" type="xs:IDREFS" />
+ <xs:attribute name="scope" type="Scope" />
+ <xs:attribute name="rowspan" default="1" type="Number" />
+ <xs:attribute name="colspan" default="1" type="Number" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/2.0/core/schema/xsd/xhtml1-strict.xml Thu Apr 19 11:01:18 2012 +0200
@@ -0,0 +1,2218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema version="1.0" xml:lang="en"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3.org/1999/xhtml"
+ xmlns="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:documentation>
+ This is xhtml1-strict.html exactly as available at
+ http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd except for (a)
+ the addition of this annotation and (b) automatic reformating using
+ Eclipse to simplify comparison with the xhtml+xforms.xsd
+ file, which provides and XForms integration based on this schema.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>
+ XHTML 1.0 (Second Edition) Strict in XML Schema
+
+ This is the same as HTML 4 Strict except for
+ changes due to the differences between XML and SGML.
+
+ Namespace = http://www.w3.org/1999/xhtml
+
+ For further information, see: http://www.w3.org/TR/xhtml1
+
+ Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+ All Rights Reserved.
+
+ The DTD version is identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+
+ $Id: xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd" />
+
+ <xs:annotation>
+ <xs:documentation>
+ ================ Character mnemonic entities =========================
+
+ XHTML entity sets are identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
+
+ PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
+
+ PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
+ SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================== Imported Names ====================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:simpleType name="ContentType">
+ <xs:annotation>
+ <xs:documentation>
+ media type, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="ContentTypes">
+ <xs:annotation>
+ <xs:documentation>
+ comma-separated list of media types, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Charset">
+ <xs:annotation>
+ <xs:documentation>
+ a character encoding, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Charsets">
+ <xs:annotation>
+ <xs:documentation>
+ a space separated list of character encodings, as per [RFC2045]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="LanguageCode">
+ <xs:annotation>
+ <xs:documentation>
+ a language code, as per [RFC3066]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:language" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Character">
+ <xs:annotation>
+ <xs:documentation>
+ a single character, as per section 2.2 of [XML]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:length value="1" fixed="true" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="Number">
+ <xs:annotation>
+ <xs:documentation>
+ one or more digits
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:nonNegativeInteger">
+ <xs:pattern value="[0-9]+" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="tabindexNumber">
+ <xs:annotation>
+ <xs:documentation>
+ tabindex attribute specifies the position of the current element
+ in the tabbing order for the current document. This value must be
+ a number between 0 and 32767. User agents should ignore leading
+ zeros.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="Number">
+ <xs:minInclusive value="0" />
+ <xs:maxInclusive value="32767" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="LinkTypes">
+ <xs:annotation>
+ <xs:documentation>
+ space-separated list of link types
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKENS" />
+ </xs:simpleType>
+
+ <xs:simpleType name="MediaDesc">
+ <xs:annotation>
+ <xs:documentation>
+ single or comma-separated list of media descriptors
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[^,]+(,\s*[^,]+)*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="URI">
+ <xs:annotation>
+ <xs:documentation>
+ a Uniform Resource Identifier, see [RFC2396]
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:anyURI" />
+ </xs:simpleType>
+
+ <xs:simpleType name="UriList">
+ <xs:annotation>
+ <xs:documentation>
+ a space separated list of Uniform Resource Identifiers
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Datetime">
+ <xs:annotation>
+ <xs:documentation>
+ date and time information. ISO date format
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:dateTime" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Script">
+ <xs:annotation>
+ <xs:documentation>
+ script expression
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="StyleSheet">
+ <xs:annotation>
+ <xs:documentation>
+ style sheet data
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Text">
+ <xs:annotation>
+ <xs:documentation>
+ used for titles etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="Length">
+ <xs:annotation>
+ <xs:documentation>
+ nn for pixels or nn% for percentage length
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="MultiLength">
+ <xs:annotation>
+ <xs:documentation>
+ pixel, percentage, or relative
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="Pixels">
+ <xs:annotation>
+ <xs:documentation>
+ integer representing length in pixels
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:nonNegativeInteger" />
+ </xs:simpleType>
+
+ <xs:annotation>
+ <xs:documentation>
+ these are used for image maps
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:simpleType name="Shape">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="rect" />
+ <xs:enumeration value="circle" />
+ <xs:enumeration value="poly" />
+ <xs:enumeration value="default" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="Coords">
+ <xs:annotation>
+ <xs:documentation>
+ comma separated list of lengths
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Generic Attributes ===============================
+ </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="StyleSheet" />
+ <xs:attribute name="title" type="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="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="Script" />
+ <xs:attribute name="ondblclick" type="Script" />
+ <xs:attribute name="onmousedown" type="Script" />
+ <xs:attribute name="onmouseup" type="Script" />
+ <xs:attribute name="onmouseover" type="Script" />
+ <xs:attribute name="onmousemove" type="Script" />
+ <xs:attribute name="onmouseout" type="Script" />
+ <xs:attribute name="onkeypress" type="Script" />
+ <xs:attribute name="onkeydown" type="Script" />
+ <xs:attribute name="onkeyup" type="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="Character" />
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="attrs">
+ <xs:attributeGroup ref="coreattrs" />
+ <xs:attributeGroup ref="i18n" />
+ <xs:attributeGroup ref="events" />
+ </xs:attributeGroup>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Text Elements ====================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:group name="special.pre">
+ <xs:choice>
+ <xs:element ref="br" />
+ <xs:element ref="span" />
+ <xs:element ref="bdo" />
+ <xs:element ref="map" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="special">
+ <xs:choice>
+ <xs:group ref="special.pre" />
+ <xs:element ref="object" />
+ <xs:element ref="img" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="fontstyle">
+ <xs:choice>
+ <xs:element ref="tt" />
+ <xs:element ref="i" />
+ <xs:element ref="b" />
+ <xs:element ref="big" />
+ <xs:element ref="small" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="phrase">
+ <xs:choice>
+ <xs:element ref="em" />
+ <xs:element ref="strong" />
+ <xs:element ref="dfn" />
+ <xs:element ref="code" />
+ <xs:element ref="q" />
+ <xs:element ref="samp" />
+ <xs:element ref="kbd" />
+ <xs:element ref="var" />
+ <xs:element ref="cite" />
+ <xs:element ref="abbr" />
+ <xs:element ref="acronym" />
+ <xs:element ref="sub" />
+ <xs:element ref="sup" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="inline.forms">
+ <xs:choice>
+ <xs:element ref="input" />
+ <xs:element ref="select" />
+ <xs:element ref="textarea" />
+ <xs:element ref="label" />
+ <xs:element ref="button" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="misc.inline">
+ <xs:choice>
+ <xs:element ref="ins" />
+ <xs:element ref="del" />
+ <xs:element ref="script" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="misc">
+ <xs:annotation>
+ <xs:documentation>
+ these can only occur at block level
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element ref="noscript" />
+ <xs:group ref="misc.inline" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="inline">
+ <xs:choice>
+ <xs:element ref="a" />
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="inline.forms" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:complexType name="Inline" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ "Inline" covers inline or "text-level" elements
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="inline" />
+ <xs:group ref="misc.inline" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================== Block level elements ==============================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:group name="heading">
+ <xs:choice>
+ <xs:element ref="h1" />
+ <xs:element ref="h2" />
+ <xs:element ref="h3" />
+ <xs:element ref="h4" />
+ <xs:element ref="h5" />
+ <xs:element ref="h6" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="lists">
+ <xs:choice>
+ <xs:element ref="ul" />
+ <xs:element ref="ol" />
+ <xs:element ref="dl" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="blocktext">
+ <xs:choice>
+ <xs:element ref="pre" />
+ <xs:element ref="hr" />
+ <xs:element ref="blockquote" />
+ <xs:element ref="address" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:group name="block">
+ <xs:choice>
+ <xs:element ref="p" />
+ <xs:group ref="heading" />
+ <xs:element ref="div" />
+ <xs:group ref="lists" />
+ <xs:group ref="blocktext" />
+ <xs:element ref="fieldset" />
+ <xs:element ref="table" />
+ </xs:choice>
+ </xs:group>
+
+ <xs:complexType name="Block">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="Flow" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ "Flow" mixes block and inline and is used for list items etc.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================== Content models for exclusions =====================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:complexType name="a.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ a elements use "Inline" excluding a
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="inline.forms" />
+ <xs:group ref="misc.inline" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="pre.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ pre uses "Inline" excluding big, small, sup or sup
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="a" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="special.pre" />
+ <xs:group ref="misc.inline" />
+ <xs:group ref="inline.forms" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="form.content">
+ <xs:annotation>
+ <xs:documentation>
+ form uses "Block" excluding form
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="button.content" mixed="true">
+ <xs:annotation>
+ <xs:documentation>
+ button uses "Flow" but excludes a, form and form controls
+ </xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="p" />
+ <xs:group ref="heading" />
+ <xs:element ref="div" />
+ <xs:group ref="lists" />
+ <xs:group ref="blocktext" />
+ <xs:element ref="table" />
+ <xs:group ref="special" />
+ <xs:group ref="fontstyle" />
+ <xs:group ref="phrase" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================ Document Structure ==================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="html">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="head" />
+ <xs:element ref="body" />
+ </xs:sequence>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================ Document Head =======================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:group name="head.misc">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="script" />
+ <xs:element ref="style" />
+ <xs:element ref="meta" />
+ <xs:element ref="link" />
+ <xs:element ref="object" />
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:element name="head">
+ <xs:annotation>
+ <xs:documentation>
+ content model is "head.misc" combined with a single
+ title and an optional base element in any order
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="head.misc" />
+ <xs:choice>
+ <xs:sequence>
+ <xs:element ref="title" />
+ <xs:group ref="head.misc" />
+ <xs:sequence minOccurs="0">
+ <xs:element ref="base" />
+ <xs:group ref="head.misc" />
+ </xs:sequence>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element ref="base" />
+ <xs:group ref="head.misc" />
+ <xs:element ref="title" />
+ <xs:group ref="head.misc" />
+ </xs:sequence>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="profile" type="URI" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="title">
+ <xs:annotation>
+ <xs:documentation>
+ The title element is not considered part of the flow of text.
+ It should be displayed, for example as the page header or
+ window title. Exactly one title is required per document.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="base">
+ <xs:annotation>
+ <xs:documentation>
+ document base URI
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="href" use="required" type="URI" />
+ <xs:attribute name="id" type="xs:ID" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="meta">
+ <xs:annotation>
+ <xs:documentation>
+ generic metainformation
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="http-equiv" />
+ <xs:attribute name="name" />
+ <xs:attribute name="content" use="required" />
+ <xs:attribute name="scheme" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="link">
+ <xs:annotation>
+ <xs:documentation>
+ Relationship values can be used in principle:
+
+ a) for document specific toolbars/menus when used
+ with the link element in document head e.g.
+ start, contents, previous, next, index, end, help
+ b) to link to a separate style sheet (rel="stylesheet")
+ c) to make a link to a script (rel="script")
+ d) by stylesheets to control how collections of
+ html nodes are rendered into printed documents
+ e) to make a link to a printable version of this document
+ e.g. a PostScript or PDF version (rel="alternate" media="print")
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="hreflang" type="LanguageCode" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="rel" type="LinkTypes" />
+ <xs:attribute name="rev" type="LinkTypes" />
+ <xs:attribute name="media" type="MediaDesc" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="style">
+ <xs:annotation>
+ <xs:documentation>
+ style info, which may include CDATA sections
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="i18n" />
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="type" use="required" type="ContentType" />
+ <xs:attribute name="media" type="MediaDesc" />
+ <xs:attribute name="title" type="Text" />
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="script">
+ <xs:annotation>
+ <xs:documentation>
+ script statements, which may include CDATA sections
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="type" use="required" type="ContentType" />
+ <xs:attribute name="src" type="URI" />
+ <xs:attribute name="defer">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="defer" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="noscript">
+ <xs:annotation>
+ <xs:documentation>
+ alternate content container for non script-based rendering
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Document Body ====================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="body">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="onload" type="Script" />
+ <xs:attribute name="onunload" type="Script" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="div">
+ <xs:annotation>
+ <xs:documentation>
+ generic language/style container
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Paragraphs =======================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="p">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Headings =========================================
+
+ There are six levels of headings from h1 (the most important)
+ to h6 (the least important).
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="h1">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="h2">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="h3">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="h4">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="h5">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="h6">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Lists ============================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="ul">
+ <xs:annotation>
+ <xs:documentation>
+ Unordered list
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="li" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="ol">
+ <xs:annotation>
+ <xs:documentation>
+ Ordered (numbered) list
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="li" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="li">
+ <xs:annotation>
+ <xs:documentation>
+ list item
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ definition lists - dt for term, dd for its definition
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="dl">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="dt" />
+ <xs:element ref="dd" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="dt">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="dd">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Address ==========================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="address">
+ <xs:annotation>
+ <xs:documentation>
+ information on author
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Horizontal Rule ==================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="hr">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Preformatted Text ================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="pre">
+ <xs:annotation>
+ <xs:documentation>
+ content is "Inline" excluding "img|object|big|small|sub|sup"
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="pre.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute ref="xml:space" fixed="preserve" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Block-like Quotes ================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="blockquote">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Block">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Inserted/Deleted Text ============================
+
+ ins/del are allowed in block and inline content, but its
+ inappropriate to include block content within an ins element
+ occurring in inline content.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="ins">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ <xs:attribute name="datetime" type="Datetime" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="del">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ <xs:attribute name="datetime" type="Datetime" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================== The Anchor Element ================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="a">
+ <xs:annotation>
+ <xs:documentation>
+ content is "Inline" except that anchors shouldn't be nested
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="a.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="charset" type="Charset" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="hreflang" type="LanguageCode" />
+ <xs:attribute name="rel" type="LinkTypes" />
+ <xs:attribute name="rev" type="LinkTypes" />
+ <xs:attribute name="shape" default="rect" type="Shape" />
+ <xs:attribute name="coords" type="Coords" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ===================== Inline Elements ================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="span">
+ <xs:annotation>
+ <xs:documentation>
+ generic language/style container
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="bdo">
+ <xs:annotation>
+ <xs:documentation>
+ I18N BiDi over-ride
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="coreattrs" />
+ <xs:attributeGroup ref="events" />
+ <xs:attribute name="lang" type="LanguageCode" />
+ <xs:attribute ref="xml:lang" />
+ <xs:attribute name="dir" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ltr" />
+ <xs:enumeration value="rtl" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="br">
+ <xs:annotation>
+ <xs:documentation>
+ forced line break
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="coreattrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="em">
+ <xs:annotation>
+ <xs:documentation>
+ emphasis
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="strong">
+ <xs:annotation>
+ <xs:documentation>
+ strong emphasis
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="dfn">
+ <xs:annotation>
+ <xs:documentation>
+ definitional
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="code">
+ <xs:annotation>
+ <xs:documentation>
+ program code
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="samp">
+ <xs:annotation>
+ <xs:documentation>
+ sample
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="kbd">
+ <xs:annotation>
+ <xs:documentation>
+ something user would type
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="var">
+ <xs:annotation>
+ <xs:documentation>
+ variable
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="cite">
+ <xs:annotation>
+ <xs:documentation>
+ citation
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="abbr">
+ <xs:annotation>
+ <xs:documentation>
+ abbreviation
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="acronym">
+ <xs:annotation>
+ <xs:documentation>
+ acronym
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="q">
+ <xs:annotation>
+ <xs:documentation>
+ inlined quote
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="cite" type="URI" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="sub">
+ <xs:annotation>
+ <xs:documentation>
+ subscript
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="sup">
+ <xs:annotation>
+ <xs:documentation>
+ superscript
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tt">
+ <xs:annotation>
+ <xs:documentation>
+ fixed pitch font
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="i">
+ <xs:annotation>
+ <xs:documentation>
+ italic font
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="b">
+ <xs:annotation>
+ <xs:documentation>
+ bold font
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="big">
+ <xs:annotation>
+ <xs:documentation>
+ bigger font
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="small">
+ <xs:annotation>
+ <xs:documentation>
+ smaller font
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ==================== Object ======================================
+
+ object is used to embed objects as part of HTML pages.
+ param elements should precede other content. Parameters
+ can also be expressed as attribute/value pairs on the
+ object element itself when brevity is desired.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="object">
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="param" />
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="declare">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="declare" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="classid" type="URI" />
+ <xs:attribute name="codebase" type="URI" />
+ <xs:attribute name="data" type="URI" />
+ <xs:attribute name="type" type="ContentType" />
+ <xs:attribute name="codetype" type="ContentType" />
+ <xs:attribute name="archive" type="UriList" />
+ <xs:attribute name="standby" type="Text" />
+ <xs:attribute name="height" type="Length" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="usemap" type="URI" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="param">
+ <xs:annotation>
+ <xs:documentation>
+ param is used to supply a named property value.
+ In XML it would seem natural to follow RDF and support an
+ abbreviated syntax where the param elements are replaced
+ by attribute value pairs on the object start tag.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:ID" />
+ <xs:attribute name="name" />
+ <xs:attribute name="value" />
+ <xs:attribute name="valuetype" default="data">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="data" />
+ <xs:enumeration value="ref" />
+ <xs:enumeration value="object" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="type" type="ContentType" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ =================== Images ===========================================
+
+ To avoid accessibility problems for people who aren't
+ able to see the image, you should provide a text
+ description using the alt and longdesc attributes.
+ In addition, avoid the use of server-side image maps.
+ Note that in this DTD there is no name attribute. That
+ is only available in the transitional and frameset DTD.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="img">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="src" use="required" type="URI" />
+ <xs:attribute name="alt" use="required" type="Text" />
+ <xs:attribute name="longdesc" type="URI" />
+ <xs:attribute name="height" type="Length" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="usemap" type="URI">
+ <xs:annotation>
+ <xs:documentation>
+ usemap points to a map element which may be in this document
+ or an external document, although the latter is not widely supported
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="ismap">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="ismap" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================== Client-side image maps ============================
+
+ These can be placed in the same document or grouped in a
+ separate document although this isn't yet widely supported
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="map">
+ <xs:complexType>
+ <xs:choice>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ <xs:element maxOccurs="unbounded" ref="area" />
+ </xs:choice>
+ <xs:attributeGroup ref="i18n" />
+ <xs:attributeGroup ref="events" />
+ <xs:attribute name="id" use="required" type="xs:ID" />
+ <xs:attribute name="class" />
+ <xs:attribute name="style" type="StyleSheet" />
+ <xs:attribute name="title" type="Text" />
+ <xs:attribute name="name" type="xs:NMTOKEN" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="area">
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="shape" default="rect" type="Shape" />
+ <xs:attribute name="coords" type="Coords" />
+ <xs:attribute name="href" type="URI" />
+ <xs:attribute name="nohref">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="nohref" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="alt" use="required" type="Text" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ================ Forms ===============================================
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="form">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="form.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="action" use="required" type="URI" />
+ <xs:attribute name="method" default="get">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="get" />
+ <xs:enumeration value="post" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="enctype" type="ContentType"
+ default="application/x-www-form-urlencoded" />
+ <xs:attribute name="onsubmit" type="Script" />
+ <xs:attribute name="onreset" type="Script" />
+ <xs:attribute name="accept" type="ContentTypes" />
+ <xs:attribute name="accept-charset" type="Charsets" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="label">
+ <xs:annotation>
+ <xs:documentation>
+ Each label must not contain more than ONE field
+ Label elements shouldn't be nested.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="for" type="xs:IDREF" />
+ <xs:attribute name="accesskey" type="Character" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="InputType">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="text" />
+ <xs:enumeration value="password" />
+ <xs:enumeration value="checkbox" />
+ <xs:enumeration value="radio" />
+ <xs:enumeration value="submit" />
+ <xs:enumeration value="reset" />
+ <xs:enumeration value="file" />
+ <xs:enumeration value="hidden" />
+ <xs:enumeration value="image" />
+ <xs:enumeration value="button" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:element name="input">
+ <xs:annotation>
+ <xs:documentation>
+ form control
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="type" default="text" type="InputType" />
+ <xs:attribute name="name">
+ <xs:annotation>
+ <xs:documentation>
+ the name attribute is required for all but submit & reset
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="value" />
+ <xs:attribute name="checked">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="checked" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="readonly">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="readonly" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="size" />
+ <xs:attribute name="maxlength" type="Number" />
+ <xs:attribute name="src" type="URI" />
+ <xs:attribute name="alt" />
+ <xs:attribute name="usemap" type="URI" />
+ <xs:attribute name="onselect" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ <xs:attribute name="accept" type="ContentTypes" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="select">
+ <xs:annotation>
+ <xs:documentation>
+ option selector
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="optgroup" />
+ <xs:element ref="option" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="name" />
+ <xs:attribute name="size" type="Number" />
+ <xs:attribute name="multiple">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="multiple" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="tabindex" type="tabindexNumber" />
+ <xs:attribute name="onfocus" type="Script" />
+ <xs:attribute name="onblur" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="optgroup">
+ <xs:annotation>
+ <xs:documentation>
+ option group
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="option" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="label" use="required" type="Text" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="option">
+ <xs:annotation>
+ <xs:documentation>
+ selectable choice
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="selected">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="selected" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="label" type="Text" />
+ <xs:attribute name="value" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="textarea">
+ <xs:annotation>
+ <xs:documentation>
+ multi-line text field
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="name" />
+ <xs:attribute name="rows" use="required" type="Number" />
+ <xs:attribute name="cols" use="required" type="Number" />
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="readonly">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="readonly" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="onselect" type="Script" />
+ <xs:attribute name="onchange" type="Script" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="fieldset">
+ <xs:annotation>
+ <xs:documentation>
+ The fieldset element is used to group form fields.
+ Only one legend element should occur in the content
+ and if present should only be preceded by whitespace.
+
+ NOTE: this content model is different from the XHTML 1.0 DTD,
+ closer to the intended content model in HTML4 DTD
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:sequence>
+ <xs:element ref="legend" />
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:group ref="block" />
+ <xs:element ref="form" />
+ <xs:group ref="inline" />
+ <xs:group ref="misc" />
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="legend">
+ <xs:annotation>
+ <xs:documentation>
+ fieldset label
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="accesskey" type="Character" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="button">
+ <xs:annotation>
+ <xs:documentation>
+ Content is "Flow" excluding a, form and form controls
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="button.content">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="focus" />
+ <xs:attribute name="name" />
+ <xs:attribute name="value" />
+ <xs:attribute name="type" default="submit">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="button" />
+ <xs:enumeration value="submit" />
+ <xs:enumeration value="reset" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="disabled">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="disabled" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ ======================= Tables =======================================
+
+ Derived from IETF HTML table standard, see [RFC1942]
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:simpleType name="TFrame">
+ <xs:annotation>
+ <xs:documentation>
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="void" />
+ <xs:enumeration value="above" />
+ <xs:enumeration value="below" />
+ <xs:enumeration value="hsides" />
+ <xs:enumeration value="lhs" />
+ <xs:enumeration value="rhs" />
+ <xs:enumeration value="vsides" />
+ <xs:enumeration value="box" />
+ <xs:enumeration value="border" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="TRules">
+ <xs:annotation>
+ <xs:documentation>
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+ "none" if border is absent or border="0" otherwise "all"
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="none" />
+ <xs:enumeration value="groups" />
+ <xs:enumeration value="rows" />
+ <xs:enumeration value="cols" />
+ <xs:enumeration value="all" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:attributeGroup name="cellhalign">
+ <xs:annotation>
+ <xs:documentation>
+ horizontal alignment attributes for cell contents
+
+ char alignment char, e.g. char=':'
+ charoff offset for alignment char
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="align">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="left" />
+ <xs:enumeration value="center" />
+ <xs:enumeration value="right" />
+ <xs:enumeration value="justify" />
+ <xs:enumeration value="char" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="char" type="Character" />
+ <xs:attribute name="charoff" type="Length" />
+ </xs:attributeGroup>
+
+ <xs:attributeGroup name="cellvalign">
+ <xs:annotation>
+ <xs:documentation>
+ vertical alignment attributes for cell contents
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="valign">
+ <xs:simpleType>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="top" />
+ <xs:enumeration value="middle" />
+ <xs:enumeration value="bottom" />
+ <xs:enumeration value="baseline" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:attributeGroup>
+
+ <xs:element name="table">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" ref="caption" />
+ <xs:choice>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup" />
+ </xs:choice>
+ <xs:element minOccurs="0" ref="thead" />
+ <xs:element minOccurs="0" ref="tfoot" />
+ <xs:choice>
+ <xs:element maxOccurs="unbounded" ref="tbody" />
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="summary" type="Text" />
+ <xs:attribute name="width" type="Length" />
+ <xs:attribute name="border" type="Pixels" />
+ <xs:attribute name="frame" type="TFrame" />
+ <xs:attribute name="rules" type="TRules" />
+ <xs:attribute name="cellspacing" type="Length" />
+ <xs:attribute name="cellpadding" type="Length" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="caption">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Inline">
+ <xs:attributeGroup ref="attrs" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:annotation>
+ <xs:documentation>
+ Use thead to duplicate headers when breaking table
+ across page boundaries, or for static headers when
+ tbody sections are rendered in scrolling panel.
+
+ Use tfoot to duplicate footers when breaking table
+ across page boundaries, or for static footers when
+ tbody sections are rendered in scrolling panel.
+
+ Use multiple tbody sections when rules are needed
+ between groups of table rows.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="thead">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tfoot">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tbody">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" ref="tr" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="colgroup">
+ <xs:annotation>
+ <xs:documentation>
+ colgroup groups a set of col elements. It allows you to group
+ several semantically related columns together.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="col" />
+ </xs:sequence>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="span" default="1" type="Number" />
+ <xs:attribute name="width" type="MultiLength" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="col">
+ <xs:annotation>
+ <xs:documentation>
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+ width=64 width in screen pixels
+ width=0.5* relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="span" default="1" type="Number" />
+ <xs:attribute name="width" type="MultiLength" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="tr">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element ref="th" />
+ <xs:element ref="td" />
+ </xs:choice>
+ <xs:attributeGroup ref="attrs" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="Scope">
+ <xs:annotation>
+ <xs:documentation>
+ Scope is simpler than headers attribute for common tables
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="row" />
+ <xs:enumeration value="col" />
+ <xs:enumeration value="rowgroup" />
+ <xs:enumeration value="colgroup" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:annotation>
+ <xs:documentation>
+ th is for headers, td for data and for cells acting as both
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="th">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="abbr" type="Text" />
+ <xs:attribute name="axis" />
+ <xs:attribute name="headers" type="xs:IDREFS" />
+ <xs:attribute name="scope" type="Scope" />
+ <xs:attribute name="rowspan" default="1" type="Number" />
+ <xs:attribute name="colspan" default="1" type="Number" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="td">
+ <xs:complexType mixed="true">
+ <xs:complexContent>
+ <xs:extension base="Flow">
+ <xs:attributeGroup ref="attrs" />
+ <xs:attribute name="abbr" type="Text" />
+ <xs:attribute name="axis" />
+ <xs:attribute name="headers" type="xs:IDREFS" />
+ <xs:attribute name="scope" type="Scope" />
+ <xs:attribute name="rowspan" default="1" type="Number" />
+ <xs:attribute name="colspan" default="1" type="Number" />
+ <xs:attributeGroup ref="cellhalign" />
+ <xs:attributeGroup ref="cellvalign" />
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+</xs:schema>