<xforms>
   <entry class="model">
      <name>model</name>
      <common>Common</common>
      <attribute class="notAVT">
	 <name>functions</name>
	 <type>QNameList</type>
      </attribute>
      <attribute class="notAVT">
	 <name>schema</name>
	 <type>list of anyURI</type>
      </attribute>
      <attribute class="notAVT">
	 <name>version</name>
	 <type>versionList</type>
      </attribute>
      <content>(<element>function</element> | <element>instance</element> | <element>schema</element> | <element>submission</element> | <element>bind</element> | <element>Action</element>)*</content>
   </entry>
   <entry class="model">
      <name>instance</name>
      <common>Common</common>
      <attribute class="notAVT">
	 <name>src</name>
	 <type>anyURI</type>
      </attribute>
      <attribute class="notAVT">
	 <name>resource</name>
	 <type>anyURI</type>
      </attribute>
      <attribute class="notAVT">
	 <name>response-mediatype</name>
	 <type>string</type>
      </attribute>
      <content>(ANY)</content>
   </entry>
   <entry class="model">
      <name>bind</name>
      <common>Common</common>
      <common>ref</common>
      <common class="deprecated">
	 <name>nodeset</name>
	 <type>model-binding-expression</type>
      </common>
      <attribute>
	 <name>type</name>
	 <type>Type</type>
      </attribute>
      <attribute>
	 <name>constraint</name>
	 <type>Boolean expression</type>
      </attribute>
      <attribute>
	 <name>relevant</name>
	 <type>Boolean expression</type>
      </attribute>
      <attribute>
	 <name>required</name>
	 <type>Boolean expression</type>
      </attribute>
      <attribute>
	 <name>readonly</name>
	 <type>Boolean expression</type>
      </attribute>
      <attribute>
	 <name>calculate</name>
	 <type>Expression</type>
      </attribute>
      <attribute>
	 <name>whitespace</name>
	 <type>"preserve"* | "remove"| "trim" | "collapse" | "normalize"</type>
      </attribute>
      <content>(<element>bind</element>)*</content>
   </entry>
   <entry class="model">
      <name>submission</name>
      <common>Common</common>
      <common>ref</common>
      <common>bind</common>
      <attribute>
	 <name>nonrelevant</name>
	 <type>"keep"| "remove" | "empty"</type>
      </attribute>
      <attribute class="deprecated">
	 <name>relevant</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>validate</name>
	 <type>boolean</type>
      </attribute>

      <attribute>
	 <name>resource</name>
	 <type>anyURI</type>
      </attribute>
      <attribute class="deprecated">
	 <name>action</name>
	 <type>anyURI</type>
      </attribute>
      <attribute>
	 <name>mode</name>
	 <type>"asynchronous"| "synchronous"</type>
      </attribute>
      <attribute>
	 <name>method</name>
	 <type>"post"| "get" | "put" | "delete" | "head" | "multipart-post" | "form-data-post" | "urlencoded-post" | Any other NCName | PrefixedName</type>
      </attribute>
      <attribute>
	 <name>serialization</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>mediatype</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>encoding</name>
	 <type>string</type>
      </attribute>

      <attribute>
	 <name>separator</name>
	 <type>";"| "&amp;"</type>
      </attribute>

      <attribute>
	 <name>version</name>
	 <type>NMTOKEN</type>
      </attribute>
      <attribute>
	 <name>indent</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>omit-xml-declaration</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>standalone</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>cdata-section-elements</name>
	 <type>QNameList</type>
      </attribute>
      <attribute>
	 <name>includenamespaceprefixes</name>
	 <type>NMTOKENS</type>
      </attribute>

      <attribute>
	 <name>response-mediatype</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>replace</name>
	 <type>"all" | "instance" | "text" | "none" | PrefixedName</type>
      </attribute>
      <attribute>
	 <name>instance</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>targetref</name>
	 <type>Single Item Binding</type>
      </attribute>
      <attribute>
	 <name>target</name>
	 <type>"_self" | "_blank" | string</type>
      </attribute>
      <content>(<element class="deprecated">resource¹</element>|  <element class="deprecated">method</element>|  <element>header</element>)*, <element>Action</element>*</content>
   </entry>
   <entry class="subelement">
      <name>header</name>
      <common>Sequence Binding</common>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <common>value</common>
      <content><element class="deprecated">name¹</element>, <element class="deprecated">value²</element>+</content>
   </entry>
   <entry class="deprecated">
      <name>resource¹</name>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="deprecated">
      <name>method</name>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="deprecated">
      <name>name¹</name>
      <common>Sequence Binding</common>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="deprecated">
      <name>value²</name>
      <common>Sequence Binding</common>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="model">
      <name>function</name>
      <common>Common</common>
      <attribute class="notAVT">signature</attribute>
      <attribute>override?</attribute>
      <content>(<element>var</element>*, <element>result</element>)?</content>
   </entry>
   <entry class="subelement">
      <name>result</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>
   <entry class="subelement">
      <name>var</name>
      <common>Common</common>
      <attribute>
	 <name>name</name>
	 <type>QName</type>
      </attribute>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="element">
      <name>extension</name>
      <common>Common</common>
      <content>ANY</content>
   </entry>

   <entry class="control">
      <name>input</name>
      <common>Control Common</common>
      <common>inputmode</common>
      <common>incremental</common>
      <content><element>UICommon</element>*</content>
   </entry>
   
   <entry class="subelement">
      <name>label</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Single Item Binding?</common>
      <common>value</common>
      <common>mediatype</common>
      <content>(PCDATA | <element>UIContent</element>)*</content>
   </entry>

   <entry class="subelement">
      <name>help</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Single Item Binding?</common>
      <common>value</common>
      <common>mediatype</common>
      <content>(PCDATA | <element>UIContent</element>)*</content>
   </entry>

   <entry class="subelement">
      <name>hint</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Single Item Binding?</common>
      <common>value</common>
      <common>mediatype</common>
      <content>(PCDATA | <element>UIContent</element>)*</content>
   </entry>

   <entry class="subelement">
      <name>alert</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Single Item Binding?</common>
      <common>value</common>
      <common>mediatype</common>
      <content>(PCDATA | <element>UIContent</element>)*</content>
   </entry>

   <entry class="control">
      <name>secret</name>
      <common>Control Common</common>
      <common>inputmode</common>
      <common>incremental</common>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>textarea</name>
      <common>Control Common</common>
      <common>inputmode</common>
      <common>incremental</common>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>output</name>
      <common>Control Common</common>
      <common>value</common>
      <common>mediatype</common>
      <content>PCDATA | (<element class="deprecated">mediatype¹</element>, <element>UICommon</element>*)</content>
   </entry>
   <entry class="deprecated">
      <name>mediatype¹</name>
      <common>Common</common>
      <common>Single Item Binding</common>
      <common>value</common>
      <content>EMPTY</content>
   </entry>
   <entry class="control">
      <name>upload</name>
      <common>Control Common</common>
      <common>incremental</common>
      <attribute>
	 <name>accept</name>
	 <type>string</type>
      </attribute>
      <common>incremental</common>
      <content><element>filename</element>?, <element>mediatype</element>?, <element>UICommon</element>*</content>
   </entry>
   <entry class="subelement">
      <name>filename</name>
      <common>Common</common>
      <common>Single Item Binding</common>
      <content>EMPTY</content>
   </entry>

   <entry class="control">
      <name>range</name>
      <common>Control Common</common>
      <common>incremental</common>
      <attribute>
	 <name>start</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>end</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>step</name>
	 <type>string</type>
      </attribute>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>trigger</name>
      <common>Control Common</common>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>submit</name>
      <common>Control Common</common>
      <attribute>
	 <name>submission</name>
	 <type>IDREF</type>
      </attribute>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>select</name>
      <common>Control Common</common>
      <attribute>
	 <name>selection</name>
	 <type>"open" | "closed"</type>
      </attribute>
      <common>incremental</common>
      <content><element>UICommon</element>*, <element>ListUICommon</element>+, <element>UICommon</element>*</content>
   </entry>

   <entry class="control">
      <name>select1</name>
      <common>Control Common</common>
      <attribute>
	 <name>selection</name>
	 <type>"open" | "closed"</type>
      </attribute>
      <common>incremental</common>
      <content><element>UICommon</element>*, <element>ListUICommon</element>+, <element>UICommon</element>*</content>
   </entry>

   <entry class="subelement">
      <name>choices</name>
      <common>Common</common>
      <attribute>
	 <name>label</name>
	 <type>string</type>
      </attribute>
      <content><element>label</element>?, <element>ListUICommon</element>+</content>
   </entry>

   <entry class="subelement">
      <name>item</name>
      <common>Common</common>
      <common>UICommon</common>
      <common>value</common>
      <content>(<element>value</element> | <element>UICommon</element>)*</content>
   </entry>

   <entry class="subelement">
      <name>value</name>
      <common>Common</common>
      <common>Single Item Binding</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="subelement">
      <name>itemset</name>
      <common>Common</common>
      <common>UICommon</common>
      <common>Sequence Binding</common>
      <common>value</common>
      <attribute>
	 <name>copy</name>
	 <type>Expression</type>
      </attribute>
      <content>(<element>value</element> | <element>copy</element>), <element>UICommon</element>*</content>
   </entry>

   <entry class="subelement">
      <name>copy</name>
      <common>Common</common>
      <common>Single Item Binding</common>
      <content>EMPTY</content>
   </entry>

   <entry class="control">
      <name>control</name>
      <common>Control Common</common>
      <attribute>
	 <name>resource</name>
	 <type>anyURI</type>
      </attribute>
      <attribute>
	 <name>initial</name>
	 <type>node-sequence Expression</type>
      </attribute>
      <content><element>UICommon</element>*</content>
   </entry>

   <entry class="subelement">
      <name>mediatype</name>
      <common>Common</common>
      <common>Single Item Binding</common>
      <content>EMPTY</content>
   </entry>

   <entry class="control">
      <name>group</name>
      <common>Control Common</common>
      <content>(<element>Controls</element> | <element>UICommon</element>)*</content>
   </entry>

   <entry class="control">
      <name>switch</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Single Item Binding</common>
      <content><element>case</element>+</content>
   </entry>

   <entry class="subelement">
      <name>case</name>
      <common>Common</common>
      <common>UICommon</common>
      <attribute>
	 <name>selected</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <content>(<element>Controls</element> | <element>UICommon</element>)*</content>
   </entry>

   <entry class="control">
      <name>repeat</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Sequence Binding</common>
      <attribute>
	 <name>indexref</name>
	 <type>node Expression</type>
      </attribute>
      <attribute>
	 <name>startindex</name>
	 <type>positiveInteger</type>
      </attribute>
      <attribute>
	 <name>number</name>
	 <type>nonNegativeInteger</type>
      </attribute>
      <content>(<element>Controls</element> | <element>Action</element>)*</content>
   </entry>

   <Collection>
      <name>Various (global attributes)</name>
      <attribute>repeat-ref</attribute>
      <attribute class="deprecated">repeat-nodeset</attribute>
      <attribute>repeat-bind</attribute>
      <attribute>
	 <name>repeat-model</name>
	 <type>Sequence Binding attributes</type>
      </attribute>
      <attribute>
	 <name>repeat-indexref</name>
	 <type>node Expression</type>
      </attribute>
      <attribute>
	 <name>repeat-startindex</name>
	 <type>positiveInteger</type>
      </attribute>
      <attribute class="notAVT">
	 <name>repeat-number</name>
	 <type>nonNegativeInteger</type>
      </attribute>
      <content>N/A</content>
   </Collection>

   <entry class="action">
      <name>action</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>type</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>src</name>
	 <type>anyURI</type>
      </attribute>
      <attribute>
	 <name>charset</name>
	 <type>string</type>
      </attribute>
      <content>(<element>Action</element> | <element>var</element>)* | <element>param</element>*, <element>body</element></content>
   </entry>

   <entry class="subelement">
      <name>param</name>
      <common>Common</common>
      <common>value</common>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <content>PCDATA</content>
   </entry>

   <entry class="subelement">
      <name>body</name>
      <common>Common</common>
      <common>Events</common>
      <content>PCDATA</content>
   </entry>

   <entry class="action">
      <name>setvalue</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <common>Single Item Binding</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="action">
      <name>insert</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <common>Sequence Binding</common>
      <attribute>
	 <name>at</name>
	 <type>number Expression</type>
      </attribute>
      <attribute>
	 <name>position</name>
	 <type>"before" | "after"</type>
      </attribute>
      <attribute>
	 <name>origin</name>
	 <type>node-sequence Expression</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>delete</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <common>Sequence Binding</common>
      <attribute>
	 <name>at</name>
	 <type>number Expression</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>setindex</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>repeat</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>index</name>
	 <type>number Expression</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>setfocus</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>control</name>
	 <type>IDREF</type>
      </attribute>
      <content><element class="deprecated">control¹</element>?</content>
   </entry>
   <entry class="deprecated">
      <name>control¹</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="action">
      <name>dispatch</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>name²</name>
	 <type>NMTOKEN</type>
      </attribute>
      <attribute>
	 <name>control</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>targetid</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>delay</name>
	 <type>nonNegativeInteger</type>
      </attribute>
      <attribute>
	 <name>bubbles</name>
	 <type>boolean</type>
      </attribute>
      <attribute>
	 <name>cancelable</name>
	 <type>boolean</type>
      </attribute>
      <content><element class="deprecated">name</element>, <element class="deprecated">targetid</element>?, <element class="deprecated">delay</element>?, <element>property</element>* [in any order]</content>
   </entry>
   <entry class="subelement">
      <name>property</name>
      <common>Common</common>
      <common>value</common>
      <attribute>
	 <name>name</name>
	 <type>string</type>
      </attribute>
      <content>PCDATA</content>
   </entry>
   <entry class="deprecated">
      <name>name²</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="deprecated">
      <name>targetid</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="deprecated">
      <name>delay</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>
   
   <entry class="action">
      <name>rebuild</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>recalculate</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>revalidate</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>update</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>refresh</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>reset</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>retain</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>load</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <common>Single Item Binding</common>
      <attribute>
	 <name>resource</name>
	 <type>anyURI</type>
      </attribute>
      <attribute>
	 <name>show</name>
	 <type>"new" | "replace"</type>
      </attribute>
      <content><element class="deprecated">resource²</element>?</content>
   </entry>

   <entry class="deprecated">
      <name>resource²</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>
   <entry class="action">
      <name>send</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>submission</name>
	 <type>IDREF</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>return</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>nonrelevant</name>
	 <type>"keep" | "remove" | "empty"</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>renew</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>control</name>
	 <type>IDREF</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>message</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <common>Single Item Binding</common>
      <attribute>
	 <name>level</name>
	 <type>"ephemeral" | "modeless" | "modal" | PrefixedName</type>
      </attribute>
      <content>(PCDATA | <element>UIInline</element>)*</content>
   </entry>

   <entry class="action">
      <name>toggle</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>case</name>
	 <type>IDREF</type>
      </attribute>
      <content><element class="deprecated">case²</element>?</content>
   </entry>
   <entry class="deprecated">
      <name>case²</name>
      <common>Common</common>
      <common>value</common>
      <content>PCDATA</content>
   </entry>

   <entry class="action">
      <name>dialog</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>UICommon</common>
      <attribute>
	 <name>level</name>
	 <type>"modeless" | "modal" | PrefixedName</type>
      </attribute>
      <attribute>
	 <name>hide</name>
	 <type>boolean</type>
      </attribute>
      <content>(<element>Controls</element> | <element>UICommon</element>)*</content>
   </entry>

   <entry class="action">
      <name>show</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>dialog</name>
	 <type>IDREF</type>
      </attribute>
      <content>EMPTY</content>
   </entry>

   <entry class="action">
      <name>hide</name>
      <common>Common</common>
      <common>Events</common>
      <common>Action Common</common>
      <attribute>
	 <name>dialog</name>
	 <type>IDREF</type>
      </attribute>
      <content>EMPTY</content>
   </entry>


   <!--

ELEMENT AND ATTRIBUTE SETS
   -->
   <attribute>
      <name>Common</name>
      <attribute>anyAttribute</attribute>
      <attribute class="notAVT">
	 <name>id</name>
	 <type>ID</type>
      </attribute>
      <attribute class="notAVT">
	 <name>model</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>context</name>
	 <type>expression</type>
      </attribute>
      <attribute>
	 <name>xml:lang</name>
	 <type>LANG</type>
      </attribute>
      <attribute>
	 <name>class</name>
	 <type>string</type>
      </attribute>
   </attribute>

   <attribute>
      <name>ControlCommon</name>
      <common>Common</common>
      <common>Appearance</common>
      <common>Navigation</common>
      <common>UICommon</common>
      <common>Single Item Binding</common>
   </attribute>

   <attribute>
      <name>Appearance</name>
      <attribute>
	 <name>appearance</name>
	 <type>"full" | "compact" | "minimal" | PrefixedName</type>
      </attribute>
   </attribute>

   <attribute>
      <name>UICommon</name>
      <attribute>
	 <name>label</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>help</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>hint</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>alert</name>
	 <type>string</type>
      </attribute>
   </attribute>

   <attribute>
      <name>Navigation</name>
      <attribute>navindex</attribute>
      <attribute>accesskey</attribute>
   </attribute>

   <attribute>
      <name>Single Item Binding</name>
      <attribute>ref</attribute>
      <attribute>bind</attribute>
      <attribute class="deprecated">nodeset</attribute>
   </attribute>

   <attribute>
      <name>Sequence Binding</name>
      <attribute>ref</attribute>
      <attribute>bind</attribute>
      <attribute class="deprecated">nodeset</attribute>
   </attribute>
   <attribute>
      <name>Events</name>
      <attribute>
	 <name>ev:observer</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>ev:target</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>ev:event</name>
	 <type>NMTOKEN</type>
      </attribute>
      <attribute>
	 <name>ev:handler</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>ev:phase</name>
	 <type>"capture" | "default"</type>
      </attribute>
      <attribute>
	 <name>ev:propagate</name>
	 <type>"stop" | "continue"</type>
      </attribute>
      <attribute>
	 <name>ev:defaultAction</name>
	 <type>"cancel" | "perform"</type>
      </attribute>
   </attribute>
   <entry class="collection">
      <name>UICommon</name>
      <content><element>label</element> | <element>help</element> | <element>hint</element> | <element>alert</element> | <element>Action</element></content>
   </entry>
   <entry class="collection">
      <name>ListUICommon</name>
      <content><element>choices</element> | <element>item</element> | <element>itemset</element></content>
   </entry>
   <entry class="collection">
      <name>CoreControls</name>
      <content><element>input</element> | <element>secret</element> | <element>textarea</element> | <element>output</element> | <element>upload</element> | <element>range</element> | <element>trigger</element> | <element>submit</element> | <element>select</element> | <element>select1</element></content>
   </entry>
   <entry class="collection">
      <name>Controls</name>
      <content><element>CoreControls</element> | <element>group</element> | <element>switch</element> | <element>repeat</element> | <element>dialog</element></content>
   </entry>
   <entry class="collection">
      <name>UIContent</name>
      <content><element>output</element></content>
   </entry>
   <entry class="collection">
      <name>Action</name>
      <common>Action Common</common>
      <content><element>toggle</element> | <element>show</element> | <element>hide</element> | <element>action</element> | <element>setvalue</element> | <element>insert</element> | <element>delete</element> | <element>setindex</element> | <element>toggle</element> | <element>setfocus</element> | <element>dispatch</element> | <element>rebuild</element> | <element>recalculate</element> | <element>revalidate</element> | <element>update</element> | <element>refresh</element> | <element>reset</element> | <element>retain</element> | <element>load</element> | <element>send</element> | <element>return</element> | <element>renew</element> | <element>message</element></content>
   </entry>

   <entry class="common">
      <name>Action Common</name>
      <common>Common</common>
      <common>Evaluation</common>
      <common>Events</common>
      <attibute>
	 <name>if</name>
	 <type>boolean Expression</type>
      </attibute>
      <attribute>
	 <name>while</name>
	 <type>boolean Expression</type>
      </attribute>
      <attribute>
	 <name>iterate</name>
	 <type>node-sequence Expression</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Appearance</name>
      <attribute>
	 <name>appearance</name>
	 <type>"full"|"compact"|"minimal" | PrefixedName</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Common</name>
      <attribute>anyAttribute</attribute>
      <attribute>
	 <name>class</name>
	 <type/>
      </attribute>
      <attribute>
	 <name>dir</name>
	 <type/>
      </attribute>
      <attribute>
	 <name>id</name>
	 <type/>
      </attribute>
      <attribute>
	 <name>xml:lang</name>
	 <type/>
      </attribute>
   </entry>
   <entry class="common">
      <name>Evaluation</name>
      <attribute>
	 <name>model</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>context</name>
	 <type>expression</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Binding</name>
      <attribute>
	 <name>bind</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>ref</name>
	 <type>expression</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Control Common</name>
      <common>Common</common>
      <common>Evaluation</common>
      <common>Appearance</common>
      <common>Navigation</common>
      <common>UI Common</common>
      <common>Single Item Binding</common>
   </entry>
   <entry class="common">
      <name>Events</name>
      <attribute>
	 <name>event</name>
	 <type>NMTOKEN</type>
      </attribute>
      <attribute>
	 <name>observer</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>target</name>
	 <type>IDREF</type>
      </attribute>
      <attribute>
	 <name>handler</name>
	 <type>URI</type>
      </attribute>
      <attribute>
	 <name>phase</name>
	 <type>"capture" | "default"*</type>
      </attribute>
      <attribute>
	 <name>propagate</name>
	 <type>"stop" | "continue"*</type>
      </attribute>
      <attribute>
	 <name>defaultAction</name>
	 <type>"cancel" | "perform"*</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Navigation</name>
      <attribute>
	 <name>navindex</name>
	 <type>integer</type>
      </attribute>
      <attribute>
	 <name>accesskey</name>
	 <type>character</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>Sequence Binding</name>
      <type>Binding expression</type>
   </entry>
   <entry class="common">
      <name>Single Item Binding</name>
      <type>Binding expression</type>
   </entry>
   <entry class="common">
      <name>UICommon</name>
      <attribute>
	 <name>label</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>help</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>hint</name>
	 <type>string</type>
      </attribute>
      <attribute>
	 <name>alert</name>
	 <type>string</type>
      </attribute>
   </entry>
   <entry class="common">
      <name>incremental</name>
      <type>boolean</type>
   </entry>
   <entry class="common">
      <name>inputmode</name>
      <type>string</type>
   </entry>
   <entry class="common">
      <name>value</name>
      <type>expression</type>
   </entry>

   <entry class="function">
      <name>avg</name>
      <type>double</type>
      <parameter>node()*</parameter>
      <description>The arithmetic average of the nodes.</description>
   </entry>
   <entry class="function">
      <name>min</name>
      <type>double</type>
      <parameter>node()*</parameter>
      <description>Minimum (numeric) value.</description>
   </entry>
   <entry class="function">
      <name>max</name>
      <type>double</type>
      <parameter>node()*</parameter>
      <description>Maximum (numeric) value.</description>
   </entry>
   <entry class="function">
      <name>power</name>
      <type>double</type>
      <parameter>$base as double</parameter>
      <parameter>$exponent as double</parameter>
      <description>The first argument raised to the power of the second.</description>
   </entry>
   <entry class="function">
      <name>random</name>
      <type>double</type>
      <parameter>boolean?</parameter>
      <description>A uniformly distributed pseudorandom number ≥ 0.0 and &lt; 1.0.</description>
   </entry>
   <entry class="function">
      <name>compare</name>
      <type>integer</type>
      <parameter>string</parameter>
      <parameter>string</parameter>
      <description>Lexicographic comparison of the two Unicode strings, returning -1 (less than), 0 (equal) or +1 (greater than).</description>
   </entry>
   <entry class="function">
      <name>is-card-number</name>
      <type>boolean</type>
      <parameter>string?</parameter>
      <description>Whether the string (or context item if absent) is a valid (credit-card) number.</description>
   </entry>
   <entry class="function">
      <name>local-date</name>
      <type>date</type>
      <description>The current date in the user agent time zone.</description>
   </entry>
   <entry class="function">
      <name>local-dateTime</name>
      <type>dateTime</type>
      <description>The current date and time in the user agent time zone.</description>
   </entry>
   <entry class="function">
      <name>now</name>
      <type>string</type>
      <description>The current date and time in UTC.</description>
   </entry>
   <entry class="function">
      <name>days-from-date</name>
      <type>numeric</type>
      <parameter>string</parameter>
      <description>Number of days since 1970 of the given date.</description>
   </entry>
   <entry class="function">
      <name>days-to-date</name>
      <type>string</type>
      <parameter>double</parameter>
      <description>The date of those number of days since 1970.</description>
   </entry>
   <entry class="function">
      <name>seconds-from-epoch</name>
      <type>double</type>
      <parameter>string</parameter>
      <description>The number of seconds since 1970 of the given date and time. An alias seconds-from-dateTime is available for backwards compatibility.</description>
   </entry>
   <entry class="function">
      <name>seconds-to-dateTime</name>
      <type>string</type>
      <parameter>double</parameter>
      <description>The date and time of that many seconds since 1970.</description>
   </entry>
   <entry class="function">
      <name>adjust-dateTime-to-timezone</name>
      <type>string</type>
      <parameter>string</parameter>
      <description>Takes a date and time (possibly in a different timezone) and returns it adjusted to the local timezone.</description>
   </entry>
   <entry class="function">
      <name>seconds</name>
      <type>numeric</type>
      <parameter>string</parameter>
      <description>Returns a duration of days, hours, minutes and seconds as the number of seconds.</description>
   </entry>
   <entry class="function">
      <name>months</name>
      <type>numeric</type>
      <parameter>string</parameter>
      <description>Returns a duration of years and months as the number of months.</description>
   </entry>
   <entry class="function">
      <name>location-uri</name>
      <type>anyURI</type>
      <description>The URI from which the current document has been loaded.</description>
   </entry>
   <entry class="function">
      <name>location-param</name>
      <type>string*</type>
      <parameter>string</parameter>
      <description>The current location URL's parameter values for the given name.</description>
   </entry>
   <entry class="function">
      <name>uri-scheme</name>
      <type>string?</type>
      <parameter>string</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-scheme-specific-part</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-authority</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-user-info</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-host</name>
      <type>string?</type>
      <parameter>string</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-port</name>
      <type>integer?</type>
      <parameter>string</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-path</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-query</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-fragment</name>
      <type>string?</type>
      <parameter>string</parameter>
      <parameter>boolean</parameter>
      <description>Returns the sub-part of the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-param-names</name>
      <type>string*</type>
      <parameter>string</parameter>
      <description>The names of the parameters used in the given URI.</description>
   </entry>
   <entry class="function">
      <name>uri-param-values</name>
      <type>string*</type>
      <parameter>string</parameter>
      <parameter>string</parameter>
      <description>The value(s) in the given URI of the given parameter name.</description>
   </entry>
   <entry class="function">
      <name>current</name>
      <type>item()</type>
      <description>The current context item.</description>
   </entry>
   <entry class="function">
      <name>context</name>
      <type>item()</type>
      <parameter>string?</parameter>
      <description>The current in-scope evaluation context item.</description>
   </entry>
   <entry class="function">
      <name>boolean-from-string</name>
      <type>boolean</type>
      <parameter>string</parameter>
      <description>"true" and "1" return true, all other strings return false.</description>
   </entry>
   <entry class="function">
      <name>count-non-empty</name>
      <type>integer</type>
      <parameter>node()*</parameter>
      <description>The number of non-empty nodes.</description>
   </entry>
   <entry class="function">
      <name>eval</name>
      <type>item()*</type>
      <parameter>string</parameter>
      <description>Evaluates the string as an expression in the current context.</description>
   </entry>
   <entry class="function">
      <name>eval-in-context</name>
      <type>item()*</type>
      <parameter>string</parameter>
      <parameter>node()*</parameter>
      <description>Evaluates the string as an expression in the given context.</description>
   </entry>
   <entry class="function">
      <name>choose</name>
      <type>item()*</type>
      <parameter>boolean</parameter>
      <parameter>item()*</parameter>
      <parameter>item()*</parameter>
      <description>If the first parameter is true, returns the second parameter, and otherwise the third. [Deprecated]</description>
   </entry>
   <entry class="function">
      <name>digest</name>
      <type>string</type>
      <parameter>$data as string</parameter>
      <parameter>$algo as string</parameter>
      <parameter>$encoding as string?</parameter>
      <description>The hash value of the data string.</description>
   </entry>
   <entry class="function">
      <name>hmac</name>
      <type>string</type>
      <parameter>$secret as string</parameter>
      <parameter>$data as string</parameter>
      <parameter>$algo as string</parameter>
      <parameter>$encoding as string?</parameter>
      <description>A cryptographic encoding of the data string.</description>
   </entry>
   <entry class="function">
      <name>instance</name>
      <type>element()?</type>
      <parameter>string?</parameter>
      <description>The identified instance data.</description>
   </entry>
   <entry class="function">
      <name>bind</name>
      <type>node()*</type>
      <parameter>string</parameter>
      <description>The nodes associated with the identified bind element.</description>
   </entry>
   <entry class="function">
      <name>valid</name>
      <type>boolean</type>
      <parameter>item*</parameter>
      <description>Whether the selected items are valid. By default recurses through the elements, and non-relevant items are ignored.</description>
   </entry>
   <entry class="function">
      <name>valid</name>
      <type>boolean</type>
      <parameter>item*</parameter>
      <parameter>boolean</parameter>
      <parameter>boolean?</parameter>
      <description>Whether the selected items are valid. By default recurses through the elements, and non-relevant items are ignored. The booleans control this default.</description>
   </entry>
   <entry class="function">
      <name>relevant</name>
      <type>boolean</type>
      <parameter>item*?</parameter>
      <description>Whether the selected items are relevant.</description>
   </entry>
   <entry class="function">
      <name>readonly</name>
      <type>boolean</type>
      <parameter>item*?</parameter>
      <description>Whether the selected items are read-only.</description>
   </entry>
   <entry class="function">
      <name>required</name>
      <type>boolean</type>
      <parameter>item*?</parameter>
      <description>Whether the selected items are required.</description>
   </entry>
   <entry class="function">
      <name>index</name>
      <type>numeric</type>
      <parameter>string</parameter>
      <description>The value of the repeat index for the identified repeat.</description>
   </entry>
   <entry class="function">
      <name>case</name>
      <type>string?</type>
      <parameter>string</parameter>
      <description>Returns the ID of the selected case for the identified switch.</description>
   </entry>
   <entry class="function">
      <name>event</name>
      <type>item()*</type>
      <parameter>string</parameter>
      <description>Returns the specified context information of the current event.</description>
   </entry>
   <entry class="function">
      <name>property</name>
      <type>string?</type>
      <parameter>string</parameter>
      <description>Returns details of the implementation.</description>
   </entry>
   <entry class="function">
      <name>element</name>
      <type>element()</type>
      <parameter>$qname as anyAtomicType</parameter>
      <parameter>$content as item()*</parameter>
      <description>Constructs an element from string values.</description>
   </entry>
   <entry class="function">
      <name>attribute</name>
      <type>attribute()</type>
      <parameter>$qname as anyAtomicType</parameter>
      <parameter>$value as anyAtomicType?</parameter>
      <description>Constructs an attribute.</description>
   </entry>
   <entry class="function">
      <name>parse</name>
      <type>element()?</type>
      <parameter>string</parameter>
      <parameter>string?</parameter>
      <description>Parses a string, and returns the resulting node.</description>
   </entry>
   <entry class="function">
      <name>serialize</name>
      <type>string</type>
      <parameter>item*</parameter>
      <parameter>$params?</parameter>
      <description>String serialization of the items. [NOTE: same as XPath 3.0]</description>
   </entry>
   <entry class="function">
      <name>id</name>
      <type>element()*</type>
      <parameter>string*</parameter>
      <parameter>node()*?</parameter>
      <description>The elements in the given data identified by the given IDs. [Deprecated]</description>
   </entry>
   <entry class="function">
      <name>id</name>
      <type>element()*</type>
      <parameter>node()*</parameter>
      <parameter>node()*?</parameter>
      <description>The elements in the given data identified by the given IDs. [Deprecated]</description>
   </entry>
</xforms>