<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?>
<?xsltforms-options debug="no"?><!-- Copyright 2012 Stephen Cameron This file is part of 'Schema-to-XForms'. 
	Schema-to-XForms is free software; you can redistribute it and/or modify 
	it under the terms of the GNU Lesser General Public License as published 
	by the Free Software Foundation; either version 2.1 of the License, or (at 
	your option) any later version. This library is distributed in the hope that 
	it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
	of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser 
	General Public License for more details. You should have received a copy 
	of the GNU Lesser General Public License along with Schema-to-XForms; if 
	not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 
	Boston, MA 02110-1301 USA --><!-- revision 71 --><html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"
      xmlns:ev="http://www.w3.org/2001/xml-events"
      xmlns:xs="http://www.w3.org/2001/XMLSchema"
      xmlns:s2x="http://www.sourceforge.net/schema2xforms"
      xmlns:sch="http://purl.oclc.org/dsdl/schematron">
   <head>
      <title/>
      <link rel="stylesheet" type="text/css" href="designer.css"/>
      <xf:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="model1">
         <xf:instance id="designer">
            <s2x:data>
               <s2x:select1 element=""/>
            </s2x:data>
         </xf:instance>
         <xf:instance id="schemas" src="schemas.xml">
            <s2x:data/>
         </xf:instance>
         <xf:instance id="built_schema">
            <xs:schema>
               <xs:annotation>
                  <xs:documentation/>
                  <xs:appinfo>
                     <s2x:schema-config>
                        <s2x:single-form>true</s2x:single-form>
                        <s2x:selected-element/>
                        <s2x:base-xform-url/>
                        <s2x:base-data-url/>
                     </s2x:schema-config>
                  </xs:appinfo>
               </xs:annotation>
            </xs:schema>
         </xf:instance>
         <xf:instance id="schema">
            <s2x:data>
               <s2x:schema/>
            </s2x:data>
         </xf:instance>
         <xf:instance id="xform">
            <html/>
         </xf:instance>
         <xf:instance id="temp">
            <s2x:data>
               <s2x:posn>0</s2x:posn>
            </s2x:data>
         </xf:instance>
         <xf:instance id="rendering">
            <s2x:data>
               <s2x:select-config srcElement="" valueElement="" labelElement=""/>
               <s2x:render-option-list>
                  <s2x:render-for>xs:schema/xs:element</s2x:render-for>
                  <s2x:render-option as="form">
                     <s2x:title>Form</s2x:title>
                     <s2x:description>This element or type will be rendered as a separate form.
   </s2x:description>
                  </s2x:render-option>
               </s2x:render-option-list>
               <s2x:render-option-list>
                  <s2x:render-for>xs:sequence</s2x:render-for>
                  <s2x:render-for>xs:group</s2x:render-for>
                  <s2x:render-option as="vertical-block">
                     <s2x:title>Vertical Block</s2x:title>
                     <s2x:description>Contained elements will be in a single block and stacked vertically
      above one another</s2x:description>
                  </s2x:render-option>
                  <s2x:render-option as="horizontal-block">
                     <s2x:title>Horizontal Block</s2x:title>
                     <s2x:description>Contained elements will flow into a single block of space one after
      another</s2x:description>
                  </s2x:render-option>
               </s2x:render-option-list>
               <s2x:render-option-list>
                  <s2x:render-for>complex</s2x:render-for>
                  <s2x:render-option as="fieldset">
                     <s2x:title>fieldset box</s2x:title>
                     <s2x:description>Enclose in bounding box with name.</s2x:description>
                  </s2x:render-option>
                  <s2x:render-option as="no_fieldset">
                     <s2x:title>no fieldset box</s2x:title>
                     <s2x:description>No enclosing bounding box with name.</s2x:description>
                  </s2x:render-option>
                  <s2x:render-option as="table">
                     <s2x:title>table</s2x:title>
                     <s2x:description>A table presents multiple elements (minOccurs &gt; 1) efficiently.</s2x:description>
                  </s2x:render-option>
               </s2x:render-option-list>
               <s2x:render-option-list>
                  <s2x:render-for>xs:element</s2x:render-for>
                  <s2x:render-option as="select1">
                     <s2x:title>Select 1 List</s2x:title>
                     <s2x:description>This element or type will be rendered as a select 1 control. This
      allows the user to select one item from an itemset list.</s2x:description>
                  </s2x:render-option>
                  <s2x:render-option as="input">
                     <s2x:title>Input</s2x:title>
                     <s2x:description>This element or type will be rendered as an input control
   </s2x:description>
                  </s2x:render-option>
                  <s2x:render-option as="table">
                     <s2x:title>table</s2x:title>
                     <s2x:description>A table presents multiple elements (minOccurs &gt; 1) efficiently.</s2x:description>
                  </s2x:render-option>
               </s2x:render-option-list>
            </s2x:data>
         </xf:instance>
         <xf:submission id="save_schema" ref="instance('built_schema')" replace="instance"
                        instance="schemas"
                        method="put">
            <xf:resource value="concat('schema/',instance('schema')/s2x:schema)"/>
         </xf:submission>
         <xf:submission id="get_schema" replace="instance" instance="built_schema" method="get">
            <xf:resource value="concat('schema/',instance('schema')/s2x:schema)"/>
         </xf:submission>
         <xf:submission id="generate_xforms" ref="instance('built_schema')" replace="none"
                        method="post">
            <xf:resource value="concat('generate?schema=',instance('schema')/s2x:schema)"/>
            <xf:load ev:event="xforms-submit-done" show="new">
               <xf:resource value="concat('xform/', if(contains(instance('schema')/s2x:schema,'.'),substring-before(instance('schema')/s2x:schema,'.'),instance('schema')/s2x:schema),'/index.html')"/>
            </xf:load>
         </xf:submission>
         <xf:instance id="annotation_editor_tabs">
            <s2x:data>
               <s2x:tab title="" case="element_or_type_node_annotation">
                  <s2x:tab title="Title and Description" case="element_annotation_title"/>
                  <s2x:tab title="Restrictions" case="element_annotation_restrictions"/>
                  <s2x:tab title="Constraints" case="element_annotation_constraints"/>
                  <s2x:tab title="Rendering" case="element_annotation_rendering"/>
                  <s2x:index>1</s2x:index>
               </s2x:tab>
               <s2x:tab title="" case="content_annotation">
                  <s2x:tab title="Title and Description" case="content_annotation_title"/>
                  <s2x:tab title="Restrictions" case="content_annotation_restrictions"/>
                  <s2x:tab title="Constraints" case="content_annotation_constraints"/>
                  <s2x:tab title="Rendering" case="content_annotation_rendering"/>
                  <s2x:index>1</s2x:index>
               </s2x:tab>
               <s2x:index>1</s2x:index>
            </s2x:data>
         </xf:instance>
         <xf:instance id="base_types">
            <s2x:data selected="xs:string">
               <type>xs:string</type>
               <type>xs:double</type>
               <type>xs:float</type>
               <type>xs:decimal</type>
               <type>xs:integer</type>
               <type>xs:boolean</type>
               <type>xs:date</type>
               <type>xs:time</type>
               <type>xs:anyURI</type>
            </s2x:data>
         </xf:instance>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:integer']/xs:minExclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:integer']/xs:minInclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:integer']/xs:maxExclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:integer']/xs:maxInclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:integer']/xs:enumeration/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:float']/xs:minExclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:float']/xs:minInclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:float']/xs:maxExclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:float']/xs:maxInclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:float']/xs:enumeration/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:double']/xs:minExclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:double']/xs:minInclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:double']/xs:maxExclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:double']/xs:maxInclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:double']/xs:enumeration/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:minExclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:minInclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:maxExclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:maxInclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:totalDigits/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:fractionDigits/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:decimal']/xs:enumeration/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:string']/xs:length/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:string']/xs:minLength/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:string']/xs:maxLength/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:date']/xs:minExclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:date']/xs:minInclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:date']/xs:maxExclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:date']/xs:maxInclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:date']/xs:enumeration/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:time']/xs:minExclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:time']/xs:minInclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:time']/xs:maxExclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:time']/xs:maxInclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:time']/xs:enumeration/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:dateTime']/xs:minExclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:dateTime']/xs:minInclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:dateTime']/xs:maxExclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:dateTime']/xs:maxInclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('built_schema')//xs:element/xs:simpleType/xs:restriction[@base='xs:dateTime']/xs:enumeration/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:integer']/xs:minExclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:integer']/xs:minInclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:integer']/xs:maxExclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:integer']/xs:maxInclusive/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:integer']/xs:enumeration/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:float']/xs:minExclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:float']/xs:minInclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:float']/xs:maxExclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:float']/xs:maxInclusive/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:float']/xs:enumeration/@value"
                  type="xf:float"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:double']/xs:minExclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:double']/xs:minInclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:double']/xs:maxExclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:double']/xs:maxInclusive/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:double']/xs:enumeration/@value"
                  type="xf:double"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:minExclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:minInclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:maxExclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:maxInclusive/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:totalDigits/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:fractionDigits/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:decimal']/xs:enumeration/@value"
                  type="xf:decimal"/>
         <xf:bind nodeset="instance('xml_schema_elements')//xs:element//xs:simpleType/xs:restriction[@base='xs:string']/xs:length/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')//xs:element//xs:simpleType/xs:restriction[@base='xs:string']/xs:minLength/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')//xs:element//xs:simpleType/xs:restriction[@base='xs:string']/xs:maxLength/@value"
                  type="xf:integer"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:date']/xs:minExclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:date']/xs:minInclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:date']/xs:maxExclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:date']/xs:maxInclusive/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:date']/xs:enumeration/@value"
                  type="xf:date"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:time']/xs:minExclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:time']/xs:minInclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:time']/xs:maxExclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:time']/xs:maxInclusive/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:time']/xs:enumeration/@value"
                  type="xf:time"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:dateTime']/xs:minExclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:dateTime']/xs:minInclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:dateTime']/xs:maxExclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:dateTime']/xs:maxInclusive/@value"
                  type="xf:dateTime"/>
         <xf:bind nodeset="instance('xml_schema_elements')/xs:restriction[@base='xs:dateTime']/xs:enumeration/@value"
                  type="xf:dateTime"/>
         <xf:action ev:event="xforms-model-construct-done">
            <xf:setvalue ref="instance('annotation_editor_tabs')/*[1]/@title"
                         value="concat(local-name(instance('built_schema')/*[1]),': ',instance('built_schema')/*[1]/@name)"/>
            <xf:setvalue ref="instance('annotation_editor_tabs')/*[2]/@title"
                         value="concat(local-name(instance('built_schema')/*[1]/*[1]/*[1]),': ',instance('built_schema')/*[1]/*[1]/*[1]/@name)"/>
         </xf:action>
      </xf:model>
      <xf:model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="model2">
         <xf:instance id="xml_schema_elements">
            <s2x:data>
               <xs:element name="start-here" type="">
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:element" as="input"/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:element name="" type="xs:string" default="" nillable="true" minOccurs="1" maxOccurs="1">
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:element" as="input" class="" prev-sibling="" next-sibling=""
                                       parent=""
                                       identifier=""/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:element>
               <xs:complexType name="">
                  <xs:annotation/>
               </xs:complexType>
               <xs:simpleType name="">
                  <xs:annotation/>
                  <xs:restriction base="">
                     <s2x:data/>
                  </xs:restriction>
               </xs:simpleType>
               <xs:group name="" ref="">
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:group" as="vertical-block" class="" prev-sibling=""
                                       next-sibling=""
                                       parent=""
                                       identifier=""/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:group>
               <xs:all>
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:all" as="" class="" prev-sibling="" next-sibling="" parent=""
                                       identifier=""/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:all>
               <xs:choice>
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:choice" as="" class="" prev-sibling="" next-sibling=""
                                       parent=""
                                       identifier=""/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:choice>
               <xs:sequence>
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:sequence" as="vertical-block"/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:sequence>
               <xs:attribute name="" type="xs:string" default="" nillable="true">
                  <xs:annotation>
                     <xs:documentation/>
                     <xs:appinfo>
                        <s2x:element-config>
                           <s2x:title/>
                           <s2x:render options-key="xs:attribute" as="" class="" prev-sibling="" next-sibling=""
                                       parent=""
                                       identifier=""/>
                        </s2x:element-config>
                     </xs:appinfo>
                  </xs:annotation>
               </xs:attribute>
               <xs:restriction base="xs:string">
                  <xs:enumeration value=""/>
                  <xs:length value=""/>
                  <xs:minLength value=""/>
                  <xs:maxLength value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:integer">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:float">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:double">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:decimal">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:totalDigits value=""/>
                  <xs:fractionDigits value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:duration">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:dateTime">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:time">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:date">
                  <xs:enumeration value=""/>
                  <xs:minExclusive value=""/>
                  <xs:minInclusive value=""/>
                  <xs:maxExclusive value=""/>
                  <xs:maxInclusive value=""/>
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
               <xs:restriction base="xs:boolean">
                  <xs:whiteSpace value=""/>
                  <xs:pattern value=""/>
               </xs:restriction>
            </s2x:data>
         </xf:instance>
      </xf:model>
      <script type="text/javascript"> var view = 'main'; function toggleView(){ if(view==='main'){
         document.getElementById('config_background').style.display='block';
         document.getElementById('config').style.display='block'; view = 'conf'; }else{
         document.getElementById('config_background').style.display='none';
         document.getElementById('config').style.display='none'; view = 'main'; } }</script>
   </head>
   <body>
      <div id="page">
         <div id="top">
            <div id="top1">
               <table class="header_layout">
                  <tbody>
                     <tr>
                        <td colspan="2" style="height:67%;background-color:#0239b5;">
                           <span class="designer_name">SCHEMA =&gt; FORMS</span>
                           <div id="xsltforms_banner">
                              <a href="http://www.agencexml.com/xsltforms" title="powered by XSLTForms"
                                 target="_blank">
                                 <img src="xsltforms/poweredbyXSLTForms.png"/>
                              </a>
                           </div>
                        </td>
                     </tr>
                     <tr>
                        <td style="width:33%;">Schema Elements and Types</td>
                        <td style="width:67%;border-left:solid 1px white;">Element/Type Details</td>
                     </tr>
                  </tbody>
               </table>
            </div>
            <div id="top2">
               <div style="position:absolute;top:0%;left:0%;height:100%;width:33%;">
                  <div style="position:absolute;top:0%;left:0px;width:100%;margin:0px;background-color:grey;height:10%;background-color:grey;overflow:hidden;">
                     <table style="position:absolute;top:0%;left:0%;height:100%;width:100%;border-collapse:collapse;">
                        <tbody>
                           <tr>
                              <td style="border-width:0px;vertical-align:middle;border-right:solid 1px white;">
                                 <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="add_element">
                                    <xf:group ref="instance('xml_schema_elements')/xs:element[1]">
                                       <xf:input id="new_element_name" ref="@name"/>
                                       <xf:trigger>
                                          <xf:label>Add</xf:label>
                                          <xf:hint>Adds a new schema element</xf:hint>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:setvalue ref="@name" value="translate(normalize-space(current()/@name),' ','-')"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate"
                                                     if="string-length(@name) &gt; 0 and instance('built_schema')/*/@name = current()/@name">
                                             <xf:message>An element with name '<span style="font-weight:bold;">
                                                   <xf:output ref="@name"/>
                                                </span>' already exists</xf:message>
                                             <xf:setfocus control="new_element_name"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate"
                                                     if="string-length(@name) &gt; 0 and not(instance('built_schema')/*/@name = current()/@name)">
                                             <xf:setvalue ref="instance('temp')/s2x:posn"
                                                          value="count(instance('built_schema')/xs:element)+1"/>
                                             <xf:insert nodeset="instance('built_schema')/*" origin="current()"
                                                        at="instance('temp')/s2x:posn"
                                                        position="after"/>
                                             <xf:setfocus control="new_element_name"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate"
                                                     if="instance('temp')/s2x:posn = count(instance('built_schema')/xs:element)">
                                             <xf:setindex repeat="elements_and_types" index="instance('temp')/s2x:posn"/>
                                             <xf:setvalue ref="instance('temp')/s2x:posn" value="0"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Delete</xf:label>
                                          <xf:hint>Deletes the currently highlighted schema element</xf:hint>
                                          <xf:action ev:event="DOMActivate" if="index('elements_and_types')&gt;0">
                                             <xf:delete nodeset="instance('built_schema')/*[index('elements_and_types')+1]"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Edit</xf:label>
                                          <xf:hint>Change the name and/or other aspects of the highlighted schema
      element</xf:hint>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:toggle case="element_or_type_node_editor"/>
                                             <xf:toggle case="element_or_type_node_annotation"/>
                                          </xf:action>
                                       </xf:trigger>
                                    </xf:group>
                                 </div>
                              </td>
                           </tr>
                        </tbody>
                     </table>
                  </div>
                  <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       id="elements_and_types_list">
                     <xf:repeat nodeset="instance('built_schema')/*[not(self::xs:annotation)]"
                                id="elements_and_types">
                        <div>
                           <xf:trigger class="node_label" appearance="minimal">
                              <xf:label>
                                 <xf:output value="if(self::xs:element,'element: ','type: ')"/>
                                 <span class="element_name">
                                    <xf:output value="@name"/>
                                 </span>
                              </xf:label>
                              <xf:action ev:event="DOMActivate">
                                 <xf:toggle case="sq_complex_start"/>
                                 <xf:toggle case="sq_start"/>
                                 <xf:toggle case="element_or_type_content_editor"/>
                              </xf:action>
                              <xf:action ev:event="DOMActivate" if="count(*)&gt;1">
                                 <xf:toggle case="content_annotation"/>
                                 <xf:setindex repeat="content_tabs" index="1"/>
                              </xf:action>
                           </xf:trigger>
                           <xf:output value="if(@type and not(@type=''),concat(' of type: ', @type),'')"/>
                           <xf:output value="if(xs:restriction/@base,concat(' of base-type: ', xs:restriction/@base),'')"/>
                           <xf:output value="if(xs:simpleType/xs:restriction/@base,concat(' of base-type: ', xs:simpleType/xs:restriction/@base),'')"/>
                        </div>
                     </xf:repeat>
                  </div>
               </div>
               <div style="position:absolute;top:0%;left:33%;height:100%;width:33%;">
                  <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="element_or_type_tree">
                     <xf:group ref="instance('built_schema')/*[index('elements_and_types')+1]">
                        <xf:repeat nodeset="descendant::*[self::xs:element|self::xs:attribute|self::xs:sequence|self::xs:all|self::xs:choice|self::xs:group]"
                                   id="element_details">
                           <div>
                              <xf:output value="substring('                  ',1,3*(count(current()/ancestor::*[not(self::xs:element|self::xs:complexType|self::xs:simpleType)])))"/>
                              <xf:trigger class="node_label" appearance="minimal">
                                 <xf:label>
                                    <xf:output value="concat(local-name(),': ')"/>
                                    <span class="element_name">
                                       <xf:output value="@name"/>
                                    </span>
                                 </xf:label>
                                 <xf:action ev:event="DOMActivate">
                                    <xf:toggle case="content_annotation"/>
                                    <xf:setindex repeat="content_tabs" index="1"/>
                                 </xf:action>
                                 <xf:action ev:event="DOMActivate">
                                    <xf:toggle case="element_or_type_content_editor"/>
                                 </xf:action>
                              </xf:trigger>
                              <xf:output value="if(@type and not(@type=''),concat('   ', 'type: ', @type),'')"/>
                              <xf:output value="if(self::xs:group and not(@ref=''),concat('   ', 'reference: ', @ref),'')"/>
                              <xf:output value="if(xs:restriction/@base,concat('   ', 'base-type: ', xs:restriction/@base),'')"/>
                              <xf:output value="if(xs:simpleType/xs:restriction/@base,concat('   ', 'base-type: ', xs:simpleType/xs:restriction/@base),'')"/>
                              <xf:output value="if(@value,concat(' ', @value),'')"/>
                           </div>
                        </xf:repeat>
                     </xf:group>
                  </div>
               </div>
               <div style="position:absolute;top:0%;left:66%;height:100%;width:34%;padding:5x;">
                  <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="element_or_type_editor">
                     <xf:group ref="instance('built_schema')/*[index('elements_and_types')+1]">
                        <xf:switch>
                           <xf:case id="element_or_type_content_editor" selected="true">
                              <xf:group ref="self::xs:element[@type and @type='' and not(xs:simpleType or xs:complexType)]">
                                 <xf:switch id="simple_or_complex">
                                    <xf:case id="start" selected="true">
                                       <div class="edit_content_instruction">Is this new element a simple or a complex one?<ul>
                                             <li>Simple elements have a single value and have no sub-elements or
      attributes.</li>
                                             <li>Complex elements do have sub-elements and/or attributes.
   </li>
                                             <li>If just a single value (simple), or even empty, an element becomes
      complex by having attributes.</li>
                                          </ul>
                                       </div>
                                       <xf:trigger>
                                          <xf:label>Simple</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="simple"/>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Complex</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="complex"/>
                                       </xf:trigger>
                                    </xf:case>
                                    <xf:case id="simple">
                                       <div class="edit_content_instruction">Select a data-type for the simple element.</div>
                                       <xf:select1 ref="instance('base_types')/@selected">
                                          <xf:itemset nodeset="instance('base_types')/*">
                                             <xf:value ref="."/>
                                             <xf:label ref="."/>
                                          </xf:itemset>
                                       </xf:select1>
                                       <xf:trigger>
                                          <xf:label>OK</xf:label>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:setvalue ref="@type" value="instance('base_types')/@selected"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <div>
                                          <xf:trigger>
                                             <xf:label>Back</xf:label>
                                             <xf:toggle ev:event="DOMActivate" case="start"/>
                                          </xf:trigger>
                                       </div>
                                    </xf:case>
                                    <xf:case id="complex">
                                       <xf:switch>
                                          <xf:case id="complex_start" selected="true">
                                             <div class="edit_content_instruction">
      Does this new complex element contain other sub-elements, is it a single value only, is it
      empty, or is it a mixture of text and sub-elements?
      <ul xmlns="">
                                                   <li>
                                                      <span style="font-weight: bold;">Sub-elements</span>
            may be in a prescribed sequence or allow a choice of sub-elements, each sub-element may
            itself be simple or complex.
         </li>
                                                   <li>
            A
            <span style="font-weight: bold;">single-value</span>
            , or
            <span style="font-weight: bold;">empty</span>
            , element becomes complex by having attributes.
         </li>
                                                   <li>
            A
            <span style="font-weight: bold;">mixed</span>
            content element contains just text but within which are other sub-elements.
         </li>
                                                </ul>
                                             </div>
                                             <xf:trigger>
                                                <xf:label>Sub-elements</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_with_subelements"/>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Single Value</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_value"/>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Mixed</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_mixed"/>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Empty</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_empty"/>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Back</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="start"/>
                                             </xf:trigger>
                                          </xf:case>
                                          <xf:case id="complex_with_subelements">
                                             <div class="edit_content_instruction">
      What ordering arrangement is needed for this
      <span xmlns="" style="font-weight: bold;">complex</span>
      element?
      <ul xmlns="">
                                                   <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">all</span>
            group from which each sub-element can be present zero or once, in any order
         </li>
                                                   <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">choice</span>
            group, from which just one sub-element can be present once.
         </li>
                                                   <li>
            Sub-elements may be in a
            <span style="font-weight: bold;">sequence</span>
            group, with each sub-element being absent, present or replicated, in the prescribed
            order.
         </li>
                                                </ul>
                                             </div>
                                             <xf:trigger>
                                                <xf:label>All</xf:label>
                                                <xf:action ev:event="DOMActivate" if="self::xs:element">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:delete nodeset="current()/xs:complexType/@name"/>
                                                   <xf:insert nodeset="current()/xs:complexType/*"
                                                              origin="instance('xml_schema_elements')/xs:all"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                                <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:all" at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Choice</xf:label>
                                                <xf:action ev:event="DOMActivate" if="self::xs:element">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:delete nodeset="current()/xs:complexType/@name"/>
                                                   <xf:insert nodeset="current()/xs:complexType/*"
                                                              origin="instance('xml_schema_elements')/xs:choice"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                                <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:choice" at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Sequence</xf:label>
                                                <xf:action ev:event="DOMActivate" if="self::xs:element">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:delete nodeset="current()/xs:complexType/@name"/>
                                                   <xf:insert nodeset="current()/xs:complexType/*"
                                                              origin="instance('xml_schema_elements')/xs:sequence"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                                <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                                   <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:sequence"
                                                              at="1"
                                                              position="after"/>
                                                   <xf:setvalue ref="current()/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                value="'vertical-block'"/>
                                                   <xf:toggle case="start"/>
                                                </xf:action>
                                             </xf:trigger>
                                             <xf:trigger>
                                                <xf:label>Back</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_start"/>
                                             </xf:trigger>
                                          </xf:case>
                                          <xf:case id="complex_value">
               single value
               <xf:trigger>
                                                <xf:label>Back</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_start"/>
                                             </xf:trigger>
                                          </xf:case>
                                          <xf:case id="complex_mixed">Mixed<xf:trigger>
                                                <xf:label>Back</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_start"/>
                                             </xf:trigger>
                                          </xf:case>
                                          <xf:case id="complex_empty">Empty<xf:trigger>
                                                <xf:label>Back</xf:label>
                                                <xf:toggle ev:event="DOMActivate" case="complex_start"/>
                                             </xf:trigger>
                                          </xf:case>
                                       </xf:switch>
                                    </xf:case>
                                 </xf:switch>
                              </xf:group>
                              <xf:group ref="self::xs:element[(@type and not(@type='')) or xs:simpleType/xs:restriction]"/>
                              <xf:group ref="self::xs:complexType[count(child::*)=1]">
                                 <xf:switch>
                                    <xf:case id="new_ctype_start" selected="true">
                                       <div class="edit_content_instruction">
      Does this new complex type contain other sub-elements, is it a single value only, is it empty,
      or is it a mixture of text and sub-elements?
      <ul xmlns="">
                                             <li>
                                                <span style="font-weight: bold;">Sub-elements</span>
            may be in a prescribed sequence or allow a choice of sub-elements, each sub-element may
            itself be simple or complex.
         </li>
                                             <li>
            A
            <span style="font-weight: bold;">single-value</span>
            , or
            <span style="font-weight: bold;">empty</span>
            , type becomes complex by having attributes.
         </li>
                                             <li>
            A
            <span style="font-weight: bold;">mixed</span>
            content type contains just text but within which are other sub-elements.
         </li>
                                          </ul>
                                       </div>
                                       <xf:trigger>
                                          <xf:label>Sub-elements</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_with_subelements"/>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Single Value</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_value"/>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Mixed</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_mixed"/>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Empty</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_empty"/>
                                       </xf:trigger>
                                    </xf:case>
                                    <xf:case id="new_ctype_with_subelements">
                                       <div class="edit_content_instruction">
      What ordering arrangement is needed for this
      <span xmlns="" style="font-weight: bold;">complex</span>
      element?
      <ul xmlns="">
                                             <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">all</span>
            group from which each sub-element can be present zero or once, in any order
         </li>
                                             <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">choice</span>
            group, from which just one sub-element can be present once.
         </li>
                                             <li>
            Sub-elements may be in a
            <span style="font-weight: bold;">sequence</span>
            group, with each sub-element being absent, present or replicated, in the prescribed
            order.
         </li>
                                          </ul>
                                       </div>
                                       <xf:trigger>
                                          <xf:label>All</xf:label>
                                          <xf:action ev:event="DOMActivate" if="self::xs:element">
                                             <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                        at="1"
                                                        position="after"/>
                                             <xf:insert nodeset="current()/xs:complexType/*"
                                                        origin="instance('xml_schema_elements')/xs:all"
                                                        at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                             <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:all" at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Choice</xf:label>
                                          <xf:action ev:event="DOMActivate" if="self::xs:element">
                                             <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                        at="1"
                                                        position="after"/>
                                             <xf:insert nodeset="current()/xs:complexType/*"
                                                        origin="instance('xml_schema_elements')/xs:choice"
                                                        at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                             <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:choice" at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Sequence</xf:label>
                                          <xf:action ev:event="DOMActivate" if="self::xs:element">
                                             <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:complexType"
                                                        at="1"
                                                        position="after"/>
                                             <xf:insert nodeset="current()/xs:complexType/*"
                                                        origin="instance('xml_schema_elements')/xs:sequence"
                                                        at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                          <xf:action ev:event="DOMActivate" if="self::xs:complexType">
                                             <xf:insert nodeset="current()/xs:complexType/*"
                                                        origin="instance('xml_schema_elements')/xs:sequence"
                                                        at="1"
                                                        position="after"/>
                                             <xf:toggle case="start"/>
                                          </xf:action>
                                       </xf:trigger>
                                       <xf:trigger>
                                          <xf:label>Back</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_start"/>
                                       </xf:trigger>
                                    </xf:case>
                                    <xf:case id="new_ctype_value">Single Value<xf:trigger>
                                          <xf:label>Back</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_start"/>
                                       </xf:trigger>
                                    </xf:case>
                                    <xf:case id="new_ctype_mixed">Mixed<xf:trigger>
                                          <xf:label>Back</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_start"/>
                                       </xf:trigger>
                                    </xf:case>
                                    <xf:case id="new_ctype_empty">Empty<xf:trigger>
                                          <xf:label>Back</xf:label>
                                          <xf:toggle ev:event="DOMActivate" case="new_ctype_start"/>
                                       </xf:trigger>
                                    </xf:case>
                                 </xf:switch>
                              </xf:group>
                              <xf:group ref="self::xs:group[not(xs:all|xs:choice|xs:sequence)]">
                                 <div class="edit_content_instruction">
      What ordering arrangement is needed for elements in this group?
      <ul xmlns="">
                                       <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">all</span>
            group from which each sub-element can be present zero or once, in any order.
         </li>
                                       <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">choice</span>
            group, from which just one sub-element can be present once.
         </li>
                                       <li>
            Sub-elements may be in a
            <span style="font-weight: bold;">sequence</span>
            group, with each sub-element being absent, present or replicated, in the prescribed
            order.
         </li>
                                    </ul>
                                 </div>
                                 <xf:trigger>
                                    <xf:label>All</xf:label>
                                    <xf:action ev:event="DOMActivate">
                                       <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:all" position="after"/>
                                    </xf:action>
                                 </xf:trigger>
                                 <xf:trigger>
                                    <xf:label>Choice</xf:label>
                                    <xf:action ev:event="DOMActivate">
                                       <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:choice" position="after"/>
                                    </xf:action>
                                 </xf:trigger>
                                 <xf:trigger>
                                    <xf:label>Sequence</xf:label>
                                    <xf:action ev:event="DOMActivate">
                                       <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:sequence"
                                                  position="after"/>
                                    </xf:action>
                                 </xf:trigger>
                              </xf:group>
                              <xf:group ref="descendant::*[self::xs:element|self::xs:attribute|self::xs:sequence|self::xs:all|self::xs:choice|self::xs:group][index('element_details')]">
                                 <xf:group ref="self::xs:sequence">
                                    <xf:switch id="sq_simple_or_complex_or_group">
                                       <xf:case id="sq_start" selected="true">
                                          <div class="edit_content_instruction">
      Add a new simple element, a new complex element, or a group of elements to this element
      sequence?
      <ul xmlns="">
                                                <li>Simple elements have a single value and have no sub-elements or attributes.</li>
                                                <li>Complex elements do have sub-elements and/or attributes.</li>
                                                <li>If just a single value (simple), or even empty, an element becomes complex by having
            attributes.</li>
                                                <li>One use of groups is for creating structure in form layout.</li>
                                             </ul>
                                          </div>
                                          <xf:trigger>
                                             <xf:label>Simple</xf:label>
                                             <xf:action ev:event="DOMActivate">
                                                <xf:toggle case="sq_simple"/>
                                                <xf:toggle case="sq_simple_start"/>
                                             </xf:action>
                                          </xf:trigger>
                                          <xf:trigger>
                                             <xf:label>Complex</xf:label>
                                             <xf:action ev:event="DOMActivate">
                                                <xf:toggle case="sq_complex"/>
                                                <xf:toggle case="sq_complex_start"/>
                                             </xf:action>
                                          </xf:trigger>
                                          <xf:trigger>
                                             <xf:label>Group</xf:label>
                                             <xf:action ev:event="DOMActivate">
                                                <xf:toggle case="sq_group"/>
                                                <xf:toggle case="sq_group_start"/>
                                             </xf:action>
                                          </xf:trigger>
                                       </xf:case>
                                       <xf:case id="sq_simple">
                                          <xf:switch>
                                             <xf:case id="sq_simple_start" selected="true">
                                                <div class="edit_content_instruction">
      A simple element is added to a sequence by adding an instance of a simple type; either an
      standard simple type or a new 'named' type derived from a standard simple type.
      <ul xmlns="">
                                                      <li>An simple element of standard simple type can be further restricted.</li>
                                                      <li>Creating a named type allows the type to be used more than once.</li>
                                                   </ul>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Use Standard Type</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_simple_base_type"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Use Existing Type</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_simple_named_type"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Create New Type</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_simple_new_type"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                             <xf:case id="sq_simple_base_type">
                                                <xf:group ref="instance('xml_schema_elements')/xs:element[2]">
                                                   <div class="attribute">
                                                      <xf:input ref="@name">
                                                         <xf:label>Element Name:</xf:label>
                                                         <xf:hint/>
                                                      </xf:input>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:select1 ref="@type">
                                                         <xf:label>Type:</xf:label>
                                                         <xf:hint/>
                                                         <xf:itemset nodeset="instance('base_types')/*">
                                                            <xf:value ref="."/>
                                                            <xf:label ref="."/>
                                                         </xf:itemset>
                                                      </xf:select1>
                                                   </div>
                                                </xf:group>
                                                <div>
                                                   <xf:trigger>
                                                      <xf:label>Add</xf:label>
                                                      <xf:action ev:event="DOMActivate"
                                                                 if="not(instance('xml_schema_elements')/xs:element[2]/@name ='' or                            instance('xml_schema_elements')/xs:element[2]/@type ='')">
                                                         <xf:setvalue ref="@type" value="instance('base_types')/@selected"/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@options-key"
                                                                      value="'xs:element'"/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                      value="'input'"/>
                                                         <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:element[2]"
                                                                    position="after"/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@name" value=""/>
                                                      </xf:action>
                                                   </xf:trigger>
                                                </div>
                                                <div>
                                                   <xf:trigger>
                                                      <xf:label>Back</xf:label>
                                                      <xf:toggle ev:event="DOMActivate" case="sq_simple_start"/>
                                                   </xf:trigger>
                                                </div>
                                             </xf:case>
                                             <xf:case id="sq_simple_named_type">
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:element[2]/@name">
                                                      <xf:label>Element:</xf:label>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:select1 ref="instance('xml_schema_elements')/xs:element[2]/@type">
                                                      <xf:label>Simple named types:</xf:label>
                                                      <xf:itemset nodeset="instance('built_schema')/xs:simpleType">
                                                         <xf:value ref="@name"/>
                                                         <xf:label ref="@name"/>
                                                      </xf:itemset>
                                                   </xf:select1>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Create Element</xf:label>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="not(instance('xml_schema_elements')/xs:element[2]/@name = '' or                               instance('xml_schema_elements')/xs:element[2]/@type = '')">
                                                      <xf:setvalue ref="instance('temp')/s2x:posn" value="index('elements_and_types')"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@options-key"
                                                                   value="'xs:element'"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                   value="'input'"/>
                                                      <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:element[2]"
                                                                 position="after"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@name" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type" value=""/>
                                                      <xf:setindex repeat="elements_and_types" index="instance('temp')/s2x:posn"/>
                                                      <xf:toggle case="sq_simple_start"/>
                                                      <xf:toggle case="sq_start"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <div>
                                                   <xf:trigger>
                                                      <xf:label>Back</xf:label>
                                                      <xf:toggle ev:event="DOMActivate" case="sq_simple_start"/>
                                                   </xf:trigger>
                                                </div>
                                             </xf:case>
                                             <xf:case id="sq_simple_new_type">
                                                <div class="edit_content_instruction">Creating a new 'named' simple type allows multiple simple elements
      of that type to be created, preventing duplication. For example it can be used to create a
      list of names or values to use in form selects.</div>
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:element[2]/@name">
                                                      <xf:label>Element:</xf:label>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:simpleType/@name">
                                                      <xf:label>New Type Name</xf:label>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:select1 ref="instance('xml_schema_elements')/xs:simpleType/xs:restriction/@base">
                                                      <xf:label>Base type:</xf:label>
                                                      <xf:item>
                                                         <xf:value/>
                                                      </xf:item>
                                                      <xf:itemset nodeset="instance('base_types')/*">
                                                         <xf:value ref="."/>
                                                         <xf:label ref="."/>
                                                      </xf:itemset>
                                                   </xf:select1>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Create Element and Type</xf:label>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="not(instance('xml_schema_elements')/xs:element[2]/@name = '' or                               instance('xml_schema_elements')/xs:simpleType/@name = '' or                               instance('xml_schema_elements')/xs:simpleType/xs:restriction/@base = '' or                               instance('built_schema')/*/@name = instance('xml_schema_elements')/xs:simpleType/@name)">
                                                      <xf:setvalue ref="instance('temp')/s2x:posn" value="index('elements_and_types')"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type"
                                                                   value="instance('xml_schema_elements')/xs:simpleType/@name"/>
                                                      <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:element[2]"
                                                                 position="after"/>
                                                      <xf:insert nodeset="instance('built_schema')/*"
                                                                 origin="instance('xml_schema_elements')/xs:simpleType"
                                                                 at="count(instance('built_schema')/*)"
                                                                 position="after"/>
                                                      <xf:insert nodeset="instance('built_schema')/*[count(instance('built_schema')/*)]/*"
                                                                 origin="instance('xml_schema_elements')/xs:restriction"
                                                                 at="1"
                                                                 position="after"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@name" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:simpleType/xs:restriction/@base"
                                                                   value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:simpleType/@name" value=""/>
                                                      <xf:setindex repeat="elements_and_types" index="instance('temp')/s2x:posn"/>
                                                      <xf:toggle case="sq_simple_start"/>
                                                      <xf:toggle case="sq_start"/>
                                                   </xf:action>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="instance('built_schema')/*/@name = instance('xml_schema_elements')/xs:simpleType/@name">
                                                      <xf:message>There is an existing top level schema element with name
   <span style="font-weight:bold">
                                                            <xf:output ref="instance('xml_schema_elements')/xs:element[2]/@name"/>
                                                         </span>!</xf:message>
                                                   </xf:action>
                                                </xf:trigger>
                                                <div>
                                                   <xf:trigger>
                                                      <xf:label>Back</xf:label>
                                                      <xf:toggle ev:event="DOMActivate" case="sq_simple_start"/>
                                                   </xf:trigger>
                                                </div>
                                             </xf:case>
                                          </xf:switch>
                                       </xf:case>
                                       <xf:case id="sq_complex">
                                          <xf:switch>
                                             <xf:case id="sq_complex_start" selected="true">
                                                <div class="edit_content_instruction">A complex element is added to a sequence by adding an instance of a
      complex type. Either a new complex type, or, an existing one.</div>
                                                <xf:trigger>
                                                   <xf:label>Use Existing Type</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_existing_type"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Create New Type</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_new_type"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                             <xf:case id="sq_new_type">
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:element[2]/@name">
                                                      <xf:label>Element:</xf:label>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:complexType/@name">
                                                      <xf:label>Type:</xf:label>
                                                   </xf:input>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Create Element and Type</xf:label>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="not(instance('xml_schema_elements')/xs:element[2]/@name = '' or                               instance('xml_schema_elements')/xs:complexType/@name = '' or                               instance('built_schema')/*/@name = instance('xml_schema_elements')/xs:complexType/@name)">
                                                      <xf:setvalue ref="instance('temp')/s2x:posn" value="index('elements_and_types')"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type"
                                                                   value="instance('xml_schema_elements')/xs:complexType/@name"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@options-key"
                                                                   value="'complex'"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/xs:annotation/xs:appinfo/s2x:element-config/s2x:render/@as"
                                                                   value="'fieldset'"/>
                                                      <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:element[2]"
                                                                 position="after"/>
                                                      <xf:insert nodeset="instance('built_schema')/*"
                                                                 origin="instance('xml_schema_elements')/xs:complexType"
                                                                 at="count(instance('built_schema')/*)"
                                                                 position="after"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@name" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:complexType/@name" value=""/>
                                                      <xf:setindex repeat="elements_and_types" index="instance('temp')/s2x:posn"/>
                                                      <xf:toggle case="sq_complex_start"/>
                                                      <xf:toggle case="sq_start"/>
                                                   </xf:action>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="instance('built_schema')/*/@name = instance('xml_schema_elements')/xs:complexType/@name">
                                                      <xf:message>There is an existing top level schema element with name
   <span style="font-weight:bold">
                                                            <xf:output ref="instance('xml_schema_elements')/xs:element[2]/@name"/>
                                                         </span>
                           !
                        </xf:message>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_complex_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                             <xf:case id="sq_existing_type">
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:element[2]/@name">
                                                      <xf:label>Element:</xf:label>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:select1 ref="instance('xml_schema_elements')/xs:complexType/@name">
                                                      <xf:itemset nodeset="instance('built_schema')/xs:complexType/@name">
                                                         <xf:value ref="."/>
                                                         <xf:label ref="."/>
                                                      </xf:itemset>
                                                      <xf:label>Type:</xf:label>
                                                   </xf:select1>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Add Element</xf:label>
                                                   <xf:action ev:event="DOMActivate"
                                                              if="not(instance('xml_schema_elements')/xs:element[2]/@name = '' or                                                  instance('xml_schema_elements')/xs:complexType/@name = '')">
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@type"
                                                                   value="instance('xml_schema_elements')/xs:complexType/@name"/>
                                                      <xf:insert nodeset="current()/xs:annotation"
                                                                 origin="instance('xml_schema_elements')/xs:element[2]"
                                                                 position="after"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:element[2]/@name" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:complexType/@name" value=""/>
                                                      <xf:toggle case="sq_complex_start"/>
                                                      <xf:toggle case="sq_start"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_complex_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                          </xf:switch>
                                       </xf:case>
                                       <xf:case id="sq_group">
                                          <xf:switch>
                                             <xf:case id="sq_group_start" selected="true">
                                                <div class="edit_content_instruction">
      A group of elements is added to a sequence either by referencing an external 'named' group,
      or, by creating an internal 'anonymous' group.
      <ul xmlns="">
                                                      <li>Named external groups referenced by multiple complex elements avoids duplicated
            information</li>
                                                      <li>Adding a group does not add another sub-level to the document structure.</li>
                                                   </ul>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Reference External Group</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_external_group"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Create Internal Group</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:toggle case="sq_internal_group"/>
                                                   </xf:action>
                                                </xf:trigger>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                             <xf:case id="sq_external_group">
                                                <div class="edit_content_instruction">Add a group that references an existing named group</div>
                                                <div class="attribute">
                                                   <xf:select1 ref="instance('xml_schema_elements')/xs:group/@ref">
                                                      <xf:label>Group Name:</xf:label>
                                                      <xf:itemset nodeset="instance('built_schema')/xf:group">
                                                         <xf:label ref="@name"/>
                                                         <xf:value ref="@name"/>
                                                      </xf:itemset>
                                                   </xf:select1>
                                                   <xf:trigger>
                                                      <xf:label>Add</xf:label>
                                                      <xf:action ev:event="DOMActivate"
                                                                 if="not(instance('xml_schema_elements')/xs:group/@ref = '')">
                                                         <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:group"
                                                                    position="after"/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:group/@ref" value=""/>
                                                         <xf:toggle case="sq_group_start"/>
                                                      </xf:action>
                                                   </xf:trigger>
                                                </div>
                                                <div class="edit_content_instruction">Add a group that references a new named group</div>
                                                <div class="attribute">
                                                   <xf:input ref="instance('xml_schema_elements')/xs:group/@name">
                                                      <xf:label>Group Name:</xf:label>
                                                   </xf:input>
                                                   <xf:trigger>
                                                      <xf:label>Add</xf:label>
                                                      <xf:action ev:event="DOMActivate"
                                                                 if="not(instance('xml_schema_elements')/xs:group/@name = '') and not(instance('built_schema')/xs:group/@name = instance('xml_schema_elements')/xs:group/@name)">
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:group/@ref"
                                                                      value="instance('xml_schema_elements')/xs:group/@name"/>
                                                         <xf:insert nodeset="instance('built_schema')/*"
                                                                    origin="instance('xml_schema_elements')/xs:group"
                                                                    position="after"/>
                                                         <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:group"
                                                                    position="after"/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:group/@name" value=""/>
                                                         <xf:setvalue ref="instance('xml_schema_elements')/xs:group/@ref" value=""/>
                                                         <xf:delete nodeset="current()/xs:group/@name"/>
                                                         <xf:delete nodeset="instance('built_schema')/xs:group/@ref"/>
                                                         <xf:toggle case="sq_group_start"/>
                                                         <xf:toggle case="sq_start"/>
                                                      </xf:action>
                                                      <xf:action ev:event="DOMActivate"
                                                                 if="instance('built_schema')/xs:group/@name = instance('xml_schema_elements')/xs:group/@name">
                                                         <xf:message>
      A group with name
      
      already exists
   </xf:message>
                                                      </xf:action>
                                                   </xf:trigger>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_group_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                             <xf:case id="sq_internal_group">
                                                <div class="edit_content_instruction">Add an anonymous internal group</div>
                                                <div class="attribute">
                                                   <xf:trigger>
                                                      <xf:label>Add</xf:label>
                                                      <xf:action ev:event="DOMActivate">
                                                         <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:group"
                                                                    position="after"/>
                                                         <xf:delete nodeset="current()/xs:group[count(current()/xs:group)]/@name"/>
                                                         <xf:delete nodeset="current()/xs:group[count(current()/xs:group)]/@ref"/>
                                                         <xf:toggle case="sq_group_start"/>
                                                         <xf:toggle case="sq_start"/>
                                                      </xf:action>
                                                   </xf:trigger>
                                                </div>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="sq_group_start"/>
                                                </xf:trigger>
                                             </xf:case>
                                          </xf:switch>
                                       </xf:case>
                                    </xf:switch>
                                 </xf:group>
                                 <xf:group ref="self::xs:choice|self::xs:all">
            edit choice|all
         </xf:group>
                                 <xf:group ref="self::xs:choice">
            edit choice
         </xf:group>
                                 <xf:group ref="self::xs:all">
            edit all
         </xf:group>
                                 <xf:group ref="self::xs:group[not(@ref|xs:all|xs:choice|xs:sequence)]">
                                    <div class="edit_content_instruction">
      What ordering arrangement is needed for elements in this group?
      <ul xmlns="">
                                          <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">all</span>
            group from which each sub-element can be present zero or once, in any order.
         </li>
                                          <li>
            Sub-elements may occur in a
            <span style="font-weight: bold;">choice</span>
            group, from which just one sub-element can be present once.
         </li>
                                          <li>
            Sub-elements may be in a
            <span style="font-weight: bold;">sequence</span>
            group, with each sub-element being absent, present or replicated, in the prescribed
            order.
         </li>
                                       </ul>
                                    </div>
                                    <xf:trigger>
                                       <xf:label>All</xf:label>
                                       <xf:action ev:event="DOMActivate">
                                          <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:all" position="after"/>
                                       </xf:action>
                                    </xf:trigger>
                                    <xf:trigger>
                                       <xf:label>Choice</xf:label>
                                       <xf:action ev:event="DOMActivate">
                                          <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:choice" position="after"/>
                                       </xf:action>
                                    </xf:trigger>
                                    <xf:trigger>
                                       <xf:label>Sequence</xf:label>
                                       <xf:action ev:event="DOMActivate">
                                          <xf:insert nodeset="*" origin="instance('xml_schema_elements')/xs:sequence"
                                                     position="after"/>
                                       </xf:action>
                                    </xf:trigger>
                                 </xf:group>
                                 <xf:group ref="self::xs:element[@type and not(@type='')]">
                                    <div class="attribute">
                                       <xf:input ref="@name">
                                          <xf:label>Element Name:</xf:label>
                                          <xf:hint/>
                                       </xf:input>
                                    </div>
                                    <div class="attribute">
                                       <xf:select1 ref="@type[.=instance('base_types')/*]">
                                          <xf:label>Type:</xf:label>
                                          <xf:hint/>
                                          <xf:itemset nodeset="instance('base_types')/*">
                                             <xf:value ref="."/>
                                             <xf:label ref="."/>
                                          </xf:itemset>
                                       </xf:select1>
                                       <xf:output ref="@type[not(.='' or .=instance('base_types')/*)]">
                                          <xf:label>Type:</xf:label>
                                       </xf:output>
                                       <xf:output ref="xs:simpleType/xs:restriction/@base">
                                          <xf:label>Base-type:</xf:label>
                                       </xf:output>
                                    </div>
                                    <div class="attribute">
                                       <xf:input ref="@minOccurs">
                                          <xf:label>Min. Occurence:</xf:label>
                                          <xf:hint>
      Minimum number of
      
      elements required in the sequence.
   </xf:hint>
                                       </xf:input>
                                    </div>
                                    <div class="attribute">
                                       <xf:input ref="@maxOccurs">
                                          <xf:label>Max. Occurence:</xf:label>
                                          <xf:hint/>
                                       </xf:input>
                                    </div>
                                    <div class="attribute">
                                       <xf:input ref="@default">
                                          <xf:label>Default:</xf:label>
                                          <xf:hint>A default value to assign to the element.</xf:hint>
                                       </xf:input>
                                    </div>
                                    <xf:group ref="preceding-sibling::*[not(self::xs:annotation)][1]">
                                       <xf:trigger>
                                          <xf:label>Move Up</xf:label>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:insert nodeset="self::*" origin="following-sibling::*[1]" position="before"/>
                                             <xf:delete nodeset="following-sibling::*[1]"/>
                                          </xf:action>
                                       </xf:trigger>
                                    </xf:group>
                                    <xf:group ref="following-sibling::*[1]">
                                       <xf:trigger>
                                          <xf:label>Move Down</xf:label>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:setvalue ref="instance('temp')/s2x:posn" value="index('element_details')"/>
                                             <xf:insert nodeset="self::*" origin="preceding-sibling::*[1]" position="after"/>
                                             <xf:delete nodeset="preceding-sibling::*[1]"/>
                                             <xf:setindex repeat="element_details" index="instance('temp')/s2x:posn + 1"/>
                                          </xf:action>
                                       </xf:trigger>
                                    </xf:group>
                                    <xf:trigger>
                                       <xf:label>Delete</xf:label>
                                       <xf:delete ev:event="DOMActivate" nodeset="current()"/>
                                    </xf:trigger>
                                 </xf:group>
                                 <xf:group ref="self::xs:attribute">
                                    <div class="attribute">
                                       <xf:input ref="@name">
                                          <xf:label>Attribute Name:</xf:label>
                                          <xf:hint/>
                                       </xf:input>
                                    </div>
                                    <div class="attribute">
                                       <xf:select1 ref="@type">
                                          <xf:label>Type:</xf:label>
                                          <xf:hint/>
                                          <xf:itemset nodeset="instance('base_types')/*">
                                             <xf:value ref="."/>
                                             <xf:label ref="."/>
                                          </xf:itemset>
                                       </xf:select1>
                                    </div>
                                    <div class="attribute">
                                       <xf:input ref="@default">
                                          <xf:label>Default:</xf:label>
                                          <xf:hint>A default value to assign to the element.</xf:hint>
                                       </xf:input>
                                    </div>
                                    <div class="attribute">
                                       <xf:select1 ref="@fixed">
                                          <xf:label>Fixed:</xf:label>
                                          <xf:hint>Default value is fixed and cannot be changed.</xf:hint>
                                          <xf:item>
                                             <xf:value>false</xf:value>
                                             <xf:label>false</xf:label>
                                          </xf:item>
                                          <xf:item>
                                             <xf:value>true</xf:value>
                                             <xf:label>true</xf:label>
                                          </xf:item>
                                       </xf:select1>
                                    </div>
                                    <xf:group ref="preceding-sibling::xs:attribute">
                                       <xf:trigger>
                                          <xf:label>Move Up</xf:label>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:insert nodeset="self::*" origin="following-sibling::*[1]" position="after"/>
                                             <xf:delete nodeset="following-sibling::*[1]"/>
                                          </xf:action>
                                       </xf:trigger>
                                    </xf:group>
                                    <xf:group ref="following-sibling::xs:attribute">
                                       <xf:trigger>
                                          <xf:label>Move Down</xf:label>
                                          <xf:action ev:event="DOMActivate">
                                             <xf:insert nodeset="self::*" origin="preceding-sibling::*[1]" position="after" xx="yy"/>
                                             <xf:delete nodeset="preceding-sibling::*[1]"/>
                                          </xf:action>
                                       </xf:trigger>
                                    </xf:group>
                                    <xf:trigger>
                                       <xf:label>Delete</xf:label>
                                       <xf:delete nodeset="current()"/>
                                    </xf:trigger>
                                 </xf:group>
                              </xf:group>
                           </xf:case>
                           <xf:case id="element_or_type_node_editor">
                              <div class="element">
                                 <xf:group ref="self::xs:element">
                                    <xf:input ref="@name">
                                       <xf:label/>
                                    </xf:input>
                                 </xf:group>
                                 <xf:group ref="self::xs:complexType|self::xs:simpleType">
                                    <xf:input ref="@name">
                                       <xf:label/>
                                    </xf:input>
                                 </xf:group>
                              </div>
                              <xf:group ref="self::xs:element[not(@type = '')]">
                                 <xf:switch>
                                    <xf:case id="add_restriction" selected="true">
                                       <xf:switch>
                                          <xf:case id="simple_type_start">
                                             <div>
                                                <div class="edit_node_instruction">
      Does the
      
         
      
      simple element (type=
      
      ) need to be further restricted in terms of
      
   </div>
                                                <xf:trigger>
                                                   <xf:label>Add Restrictions</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:simpleType"
                                                                 at="1"
                                                                 position="after"/>
                                                      <xf:setvalue ref="current()/xs:simpleType/xs:restriction/@base" value="current()/@type"/>
                                                      <xf:setvalue ref="current()/@type" value=""/>
                                                   </xf:action>
                                                </xf:trigger>
                                             </div>
                                          </xf:case>
                                       </xf:switch>
                                    </xf:case>
                                 </xf:switch>
                              </xf:group>
                              <xf:group ref="self::xs:complexType|xs:complexType">
                                 <xf:switch>
                                    <xf:case id="create_attribute" selected="true">
                                       <xf:switch>
                                          <xf:case id="create_attribute_1">
                                             <div class="edit_node_instruction">
      Do you wish to add an attribute to this complex element/type?
      <ul xmlns="">
                                                   <li>Attributes are named values attached to an element.</li>
                                                   <li>Attributes are normally used to qualify an element, such as giving it an ID.</li>
                                                   <li>Attributes are uniquely named and occur at most once for an element/type</li>
                                                </ul>
                                             </div>
                                             <xf:trigger>
                                                <xf:label>Create Attribute</xf:label>
                                                <xf:action ev:event="DOMActivate">
                                                   <xf:toggle case="create_attribute_2"/>
                                                </xf:action>
                                             </xf:trigger>
                                          </xf:case>
                                          <xf:case id="create_attribute_2">
                                             <xf:group ref="instance('xml_schema_elements')/xs:attribute">
                                                <div class="attribute">
                                                   <xf:input ref="@name">
                                                      <xf:label>Attribute Name:</xf:label>
                                                      <xf:hint/>
                                                   </xf:input>
                                                </div>
                                                <div class="attribute">
                                                   <xf:select1 ref="@type">
                                                      <xf:label>Type:</xf:label>
                                                      <xf:hint/>
                                                      <xf:itemset nodeset="instance('base_types')/*">
                                                         <xf:value ref="."/>
                                                         <xf:label ref="."/>
                                                      </xf:itemset>
                                                   </xf:select1>
                                                </div>
                                             </xf:group>
                                             <div>
                                                <xf:trigger>
                                                   <xf:label>Add</xf:label>
                                                   <xf:action ev:event="DOMActivate">
                                                      <xf:setvalue ref="@type" value="instance('base_types')/@selected"/>
                                                      <xf:insert nodeset="current()/xs:annotation"
                                                                 origin="instance('xml_schema_elements')/xs:attribute"
                                                                 position="after"/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:attribute/@name" value=""/>
                                                      <xf:setvalue ref="instance('xml_schema_elements')/xs:attribute/@type" value=""/>
                                                      <xf:toggle case="create_attribute_1"/>
                                                   </xf:action>
                                                </xf:trigger>
                                             </div>
                                             <div>
                                                <xf:trigger>
                                                   <xf:label>Back</xf:label>
                                                   <xf:toggle ev:event="DOMActivate" case="create_attribute_1"/>
                                                </xf:trigger>
                                             </div>
                                          </xf:case>
                                       </xf:switch>
                                       <div style="margin-top:10px;">
                                          <xf:trigger>
                                             <xf:label>Close</xf:label>
                                             <xf:action ev:event="DOMActivate">
                                                <xf:toggle case="create_attribute_1"/>
                                                <xf:toggle case="element_or_type_content_editor"/>
                                             </xf:action>
                                          </xf:trigger>
                                       </div>
                                    </xf:case>
                                 </xf:switch>
                              </xf:group>
                           </xf:case>
                        </xf:switch>
                     </xf:group>
                  </div>
               </div>
            </div>
         </div>
         <div id="bottom">
            <div id="bottom1">
               <div class="annotations_header">
                  <table class="header_layout">
                     <tbody>
                        <tr>
                           <td>
                              <span>Element/Type Annotations</span>
                           </td>
                        </tr>
                     </tbody>
                  </table>
               </div>
               <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="annotation_editor">
                  <xf:switch>
                     <xf:case id="element_or_type_node_annotation">
                        <xf:group ref="instance('built_schema')/*[index('elements_and_types')+1]">
                           <div class="annotations_header">
                              <table class="header_layout">
                                 <tbody>
                                    <tr>
                                       <td>
                                          <span class="annotation_label">
                                             <xf:output value="concat(if(self::xs:element,'element: ','type: '),' ')"/>
                                             <span class="element_name">
                                                <xf:output value="@name"/>
                                             </span>
                                          </span>
                                          <span style="font-weight:bold;">Annotations</span>
                                       </td>
                                    </tr>
                                 </tbody>
                              </table>
                           </div>
                           <div class="horiz_tabs">
                              <div class="horiz_tabs_menu_box">
                                 <div class="horiz_tabs_menu">
                                    <xf:repeat nodeset="instance('annotation_editor_tabs')/s2x:tab[1]/s2x:tab"
                                               id="detail_tabs">
                                       <xf:trigger appearance="minimal">
                                          <xf:label>
                                             <xf:output class="tab_title" ref="@title"/>
                                          </xf:label>
                                          <xf:toggle ev:event="DOMActivate">
                                             <xf:case value="@case"/>
                                          </xf:toggle>
                                       </xf:trigger>
                                    </xf:repeat>
                                 </div>
                              </div>
                              <div class="horiz_tabs_content">
                                 <xf:switch>
                                    <xf:case id="element_annotation_title" selected="true">
                                       <div class="annotation">
                                          <xf:input ref="xs:annotation/xs:appinfo/s2x:element-config/s2x:title">
                                             <xf:label>Title </xf:label>
                                          </xf:input>
                                          <xf:textarea ref="xs:annotation/xs:documentation">
                                             <xf:label>Description </xf:label>
                                          </xf:textarea>
                                       </div>
                                    </xf:case>
                                    <xf:case id="element_annotation_restrictions">
                                       <div class="annotation">
                                          <xf:group ref="*/xs:restriction">
                                             <xf:group ref="self::*[name(.)='xs:simpleType' or starts-with(@type,'xs:')        or starts-with(descendant::xs:restriction/@base,'xs:')]">
                                                <div class="annotation_values">
                                                   <xf:group ref="self::*//xs:restriction">
                                                      <div id="restriction_values">
                                                         <xf:repeat nodeset="xs:enumeration">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Valid Value:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:repeat>
                                                         <xf:group ref="xs:length">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Length:</xf:label>
                                                                  <xf:hint/>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minLength">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Minimum Length:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxLength">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Maximum Length:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:pattern">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Pattern:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minExclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Min. Exclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minInclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Min. Inclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxExclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Max. Exclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxInclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Max. Inclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:totalDigits">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Total Digits:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:fractionDigits">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Fraction Digits:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                      </div>
                                                      <xf:group ref="self::*[count(*) &gt; 1]">
                                                         <div style="margin-top:10px;">
                                                            <xf:trigger>
                                                               <xf:label> Remove All Restrictions</xf:label>
                                                               <xf:action ev:event="DOMActivate">
                                                                  <xf:message>remove</xf:message>
                                                               </xf:action>
                                                            </xf:trigger>
                                                         </div>
                                                      </xf:group>
                                                   </xf:group>
                                                </div>
                                                <div class="annotation_options">
                                                   <xf:group ref="self::*[not(descendant::xs:restriction)]">
                                                      <div class="control_config">
                                                         <div class="control_config_heading">
                                                            <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                         </div>
                                                         <div class="control_config_content">
                                                            <div>
      Does the
      <span xmlns="" style="font-weight:bold;">
                                                                  <xf:output ref="@name"/>
                                                               </span>
      simple element (type=
      <xf:output ref="@type"/>
      ) need to be further restricted in terms of
      <xf:output value="if(@type='xs:string','its length or valid content?','the valid range of values that it can contain?')"/>
                                                            </div>
                                                            <xf:trigger>
                                                               <xf:label>Add Restrictions</xf:label>
                                                               <xf:action ev:event="DOMActivate">
                                                                  <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:simpleType"
                                                                             at="1"
                                                                             position="before"/>
                                                                  <xf:setvalue ref="current()/xs:simpleType/xs:restriction/@base" value="current()/@type"/>
                                                                  <xf:setvalue ref="current()/@type" value=""/>
                                                                  <xf:toggle case="restrict_element_string_start"/>
                                                               </xf:action>
                                                            </xf:trigger>
                                                         </div>
                                                      </div>
                                                   </xf:group>
                                                   <xf:group ref="self::*/descendant::xs:restriction">
                                                      <xf:group ref="self::*[@base='xs:string' and not(xs:enumeration)]">
                                                         <xf:group ref="self::*[not(xs:length|xs:pattern) and not(xs:maxLength and xs:minLength)]">
                                                            <div class="control_config">
                                                               <div class="control_config_heading">
                                                                  <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                               </div>
                                                               <div class="control_config_content">
                                                                  <xf:switch>
                                                                     <xf:case id="restrict_element_string_start" selected="true">
                                                                        <div>A string can be restricted in terms of a set of valid values, its
      length, or conformance to a pattern.</div>
                                                                        <xf:group ref="self::*[not(xs:length|xs:maxLength|xs:minLength|xs:pattern)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Valid Values</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_element_string_enumeration"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:enumeration|xs:length|xs:pattern) and not(xs:maxLength and xs:minLength)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Min./Max. Length</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_element_string_length"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:enumeration|xs:length|xs:maxLength|xs:minLength|xs:pattern)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Pattern</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_element_string_pattern"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_string_enumeration">
                                                                        <div>An simple type can be restricted to a set of valid values
      (Enumerations).</div>
                                                                        <div class="restriction">
                                                                           <xf:input id="new_element_enumeration"
                                                                                     ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                              <xf:label>Valid Value:</xf:label>
                                                                           </xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                              value=""/>
                                                                                 <xf:setfocus control="new_element_enumeration"/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </div>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_string_length">
                                                                        <div>An string type can be restricted to a specific length, or, a
      minimum and/or a maximum length.</div>
                                                                        <xf:group ref="self::*[not(xs:length|xs:minLength|xs:maxLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length/@value">Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:length|xs:minLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength/@value">Minimum Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Minimum Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:length|xs:maxLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength/@value">Maximum Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Maximum Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_string_pattern">
                                                                        <div>An string type can be restricted to conform to a pattern defined by
      a 'regular expression', which provides a concise and flexible means for "matching" strings of
      text, such as particular characters, words, or patterns of characters.</div>
                                                                        <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern/@value">Pattern:</xf:input>
                                                                        <xf:trigger>
                                                                           <xf:label>Add Pattern Restriction</xf:label>
                                                                           <xf:action ev:event="DOMActivate">
                                                                              <xf:insert nodeset="current()/*"
                                                                                         origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern"/>
                                                                              <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern/@value"
                                                                                           value=""/>
                                                                           </xf:action>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                  </xf:switch>
                                                               </div>
                                                            </div>
                                                         </xf:group>
                                                      </xf:group>
                                                      <xf:group ref="self::*[@base='xs:integer' or @base='xs:decimal' or @base='xs:double' or @base='xs:float']">
                                                         <xf:group ref="self::*[not((xs:enumeration|xs:pattern) or ((xs:maxExclusive|xs:maxInclusive) and (xs:minExclusive|xs:minInclusive)))]">
                                                            <div class="control_config">
                                                               <div class="control_config_heading">
                                                                  <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                               </div>
                                                               <div class="control_config_content">
                                                                  <xf:switch>
                                                                     <xf:case id="restrict_element_number_start" selected="true">
                                                                        <div>A numeric type can be restricted in terms of a set of valid values,
      a range of valid values, or conformance to a pattern.</div>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Valid Values</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_enumeration"/>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Min./Max. Values</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_bounds"/>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Pattern</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_pattern"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_number_enumeration">
                                                                        <div>An simple type can be restricted to a set of valid values
      (Enumerations).</div>
                                                                        <div class="restriction">
                                                                           <xf:input id="new_element_number_enumeration"
                                                                                     ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                              <xf:label>Valid Value:</xf:label>
                                                                           </xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                              value=""/>
                                                                                 <xf:setfocus control="new_element_number_enumeration"/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </div>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_number_bounds">
                                                                        <xf:group ref="self::*[not(xs:minInclusive|xs:minExclusive)]">
                                                                           <div>Define a valid range by adding a minimum (inclusive or exclusive)
      value</div>
                                                                           <xf:group ref="self::*[not(xs:minInclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive/@value">
                                                                                    <xf:label>Min. Inclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                           <xf:group ref="self::*[not(xs:minExclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive/@value">
                                                                                    <xf:label>Min. Exclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:maxInclusive|xs:maxExclusive)]">
                                                                           <div>Define a valid range by adding a maximum (inclusive or exclusive)
      value</div>
                                                                           <xf:group ref="self::*[not(xs:maxInclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive/@value">
                                                                                    <xf:label>Max. Inclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                           <xf:group ref="self::*[not(xs:maxExclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive/@value">
                                                                                    <xf:label>Max. Exclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                        </xf:group>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_element_number_pattern">
                                                                        <div/>
                                                                        <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern/@value">
                                                                           <xf:label>Pattern:</xf:label>
                                                                        </xf:input>
                                                                        <xf:trigger>
                                                                           <xf:label/>
                                                                           <xf:action ev:event="DOMActivate">
                                                                              <xf:insert nodeset="current()/*"
                                                                                         origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern"/>
                                                                              <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern/@value"
                                                                                           value=""/>
                                                                           </xf:action>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_element_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                  </xf:switch>
                                                               </div>
                                                            </div>
                                                         </xf:group>
                                                      </xf:group>
                                                      <xf:group ref="self::*[xs:enumeration]">
                                                         <div class="control_config">
                                                            <div class="control_config_heading">
                                                               <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                            </div>
                                                            <div class="control_config_content">
                                                               <div>Add another value to the set of valid values.</div>
                                                               <div class="restriction">
                                                                  <xf:input id="another_element_enum"
                                                                            ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                     <xf:label>Valid Value:</xf:label>
                                                                  </xf:input>
                                                                  <xf:trigger>
                                                                     <xf:label>Add</xf:label>
                                                                     <xf:action ev:event="DOMActivate">
                                                                        <xf:insert nodeset="current()/*"
                                                                                   origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                        <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                     value=""/>
                                                                        <xf:setfocus control="another_element_enum"/>
                                                                     </xf:action>
                                                                  </xf:trigger>
                                                               </div>
                                                            </div>
                                                         </div>
                                                      </xf:group>
                                                      <xf:group ref="self::*[@base='xs:date']"/>
                                                   </xf:group>
                                                </div>
                                             </xf:group>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                    <xf:case id="element_annotation_constraints">
                                       <div class="annotation">
                                          <xf:group ref="xs:annotation/xs:appinfo/s2x:constraints">
                                             <xf:trigger>
                                                <xf:label>Add Constraints</xf:label>
                                                <xf:hint>Add Constraints</xf:hint>
                                                <xf:action ev:event="DOMActivate">
                                                   <xf:insert nodeset="current()/s2x:constraints/*" origin="instance('schematron')/*"/>
                                                </xf:action>
                                             </xf:trigger>
                                             <table border="1">
                                                <thead>
                                                   <tr>
                                                      <th>Assertion</th>
                                                      <th>Message on Failure</th>
                                                   </tr>
                                                </thead>
                                                <tbody>
                                                   <xf:repeat nodeset="sch:assert">
                                                      <tr>
                                                         <td>
                                                            <xf:textarea ref="@test"/>
                                                         </td>
                                                         <td>
                                                            <xf:textarea ref="."/>
                                                         </td>
                                                      </tr>
                                                   </xf:repeat>
                                                </tbody>
                                             </table>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                    <xf:case id="element_annotation_rendering">
                                       <div class="annotation">
                                          <xf:group ref="xs:annotation/xs:appinfo/s2x:element-config/s2x:render">
                                             <div class="annotation_values">
                                                <xf:select1 ref="@as">
                                                   <xf:label>Render as:</xf:label>
                                                   <xf:hint>Select an option from the list to control the form rendering
      outcome.</xf:hint>
                                                   <xf:help>
                                                      <xf:output ref="instance('rendering')/s2x:render-option-list[s2x:render-for='xs:schema/xs:element']/s2x:render-option[@as=current()]/s2x:description"/>
                                                   </xf:help>
                                                   <xf:itemset nodeset="instance('rendering')/s2x:render-option-list[s2x:render-for='xs:schema/xs:element']/s2x:render-option">
                                                      <xf:label ref="s2x:title"/>
                                                      <xf:value ref="@as"/>
                                                   </xf:itemset>
                                                </xf:select1>
                                             </div>
                                             <div class="annotation_options"/>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                 </xf:switch>
                              </div>
                           </div>
                        </xf:group>
                     </xf:case>
                     <xf:case id="content_annotation" selected="true">
                        <xf:group ref="instance('built_schema')/*[index('elements_and_types')+1]/descendant::*[self::xs:element|self::xs:attribute|self::xs:sequence|self::xs:all|self::xs:choice|self::xs:group][index('element_details')]">
                           <div class="annotations_header">
                              <table class="header_layout">
                                 <tbody>
                                    <tr>
                                       <td>
                                          <span class="annotation_label">
                                             <xf:output value="concat(local-name(.),': ')"/>
                                             <span class="element_name">
                                                <xf:output value="@name"/>
                                             </span>
                                          </span>
                                          <span style="font-weight:bold;">Annotations</span>
                                       </td>
                                    </tr>
                                 </tbody>
                              </table>
                           </div>
                           <div class="horiz_tabs">
                              <div class="horiz_tabs_menu_box">
                                 <div class="horiz_tabs_menu">
                                    <xf:repeat nodeset="instance('annotation_editor_tabs')/s2x:tab[2]/s2x:tab"
                                               id="content_tabs">
                                       <xf:trigger appearance="minimal">
                                          <xf:label>
                                             <xf:output class="tab_title" ref="@title"/>
                                          </xf:label>
                                          <xf:toggle ev:event="DOMActivate">
                                             <xf:case value="@case"/>
                                          </xf:toggle>
                                       </xf:trigger>
                                    </xf:repeat>
                                 </div>
                              </div>
                              <div class="horiz_tabs_content">
                                 <xf:switch>
                                    <xf:case id="content_annotation_title" selected="true">
                                       <div class="annotation">
                                          <xf:input ref="xs:annotation/xs:appinfo/s2x:element-config/s2x:title">
                                             <xf:label>Title </xf:label>
                                          </xf:input>
                                          <xf:textarea ref="xs:annotation/xs:documentation">
                                             <xf:label>Description </xf:label>
                                          </xf:textarea>
                                       </div>
                                    </xf:case>
                                    <xf:case id="content_annotation_restrictions">
                                       <div class="annotation">
                                          <xf:group ref="self::xs:element">
                                             <xf:group ref="self::*[name(.)='xs:simpleType' or starts-with(@type,'xs:')        or starts-with(descendant::xs:restriction/@base,'xs:')]">
                                                <div class="annotation_values">
                                                   <xf:group ref="self::*//xs:restriction">
                                                      <div id="restriction_values">
                                                         <xf:repeat nodeset="xs:enumeration">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Valid Value:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:repeat>
                                                         <xf:group ref="xs:length">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Length:</xf:label>
                                                                  <xf:hint/>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minLength">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Minimum Length:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxLength">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Maximum Length:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:pattern">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Pattern:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minExclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Min. Exclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:minInclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Min. Inclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxExclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Max. Exclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:maxInclusive">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Max. Inclusive:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:totalDigits">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Total Digits:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                         <xf:group ref="xs:fractionDigits">
                                                            <div class="restriction">
                                                               <xf:input ref="@value">
                                                                  <xf:label>Fraction Digits:</xf:label>
                                                               </xf:input>
                                                               <xf:trigger>
                                                                  <xf:label>X</xf:label>
                                                                  <xf:action ev:event="DOMActivate">
                                                                     <xf:delete nodeset="current()"/>
                                                                  </xf:action>
                                                               </xf:trigger>
                                                            </div>
                                                         </xf:group>
                                                      </div>
                                                      <xf:group ref="self::*[count(*) &gt; 1]">
                                                         <div style="margin-top:10px;">
                                                            <xf:trigger>
                                                               <xf:label> Remove All Restrictions</xf:label>
                                                               <xf:action ev:event="DOMActivate">
                                                                  <xf:message>remove</xf:message>
                                                               </xf:action>
                                                            </xf:trigger>
                                                         </div>
                                                      </xf:group>
                                                   </xf:group>
                                                </div>
                                                <div class="annotation_options">
                                                   <xf:group ref="self::*[not(descendant::xs:restriction)]">
                                                      <div class="control_config">
                                                         <div class="control_config_heading">
                                                            <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                         </div>
                                                         <div class="control_config_content">
                                                            <div>
      Does the
      <span xmlns="" style="font-weight:bold;">
                                                                  <xf:output ref="@name"/>
                                                               </span>
      simple element (type=
      <xf:output ref="@type"/>
      ) need to be further restricted in terms of
      <xf:output value="if(@type='xs:string','its length or valid content?','the valid range of values that it can contain?')"/>
                                                            </div>
                                                            <xf:trigger>
                                                               <xf:label>Add Restrictions</xf:label>
                                                               <xf:action ev:event="DOMActivate">
                                                                  <xf:insert nodeset="current()/*" origin="instance('xml_schema_elements')/xs:simpleType"
                                                                             at="1"
                                                                             position="before"/>
                                                                  <xf:setvalue ref="current()/xs:simpleType/xs:restriction/@base" value="current()/@type"/>
                                                                  <xf:setvalue ref="current()/@type" value=""/>
                                                                  <xf:toggle case="restrict_content_string_start"/>
                                                               </xf:action>
                                                            </xf:trigger>
                                                         </div>
                                                      </div>
                                                   </xf:group>
                                                   <xf:group ref="self::*/descendant::xs:restriction">
                                                      <xf:group ref="self::*[@base='xs:string' and not(xs:enumeration)]">
                                                         <xf:group ref="self::*[not(xs:length|xs:pattern) and not(xs:maxLength and xs:minLength)]">
                                                            <div class="control_config">
                                                               <div class="control_config_heading">
                                                                  <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                               </div>
                                                               <div class="control_config_content">
                                                                  <xf:switch>
                                                                     <xf:case id="restrict_content_string_start" selected="true">
                                                                        <div>A string can be restricted in terms of a set of valid values, its
      length, or conformance to a pattern.</div>
                                                                        <xf:group ref="self::*[not(xs:length|xs:maxLength|xs:minLength|xs:pattern)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Valid Values</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_content_string_enumeration"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:enumeration|xs:length|xs:pattern) and not(xs:maxLength and xs:minLength)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Min./Max. Length</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_content_string_length"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:enumeration|xs:length|xs:maxLength|xs:minLength|xs:pattern)]">
                                                                           <xf:trigger>
                                                                              <xf:label>Define Pattern</xf:label>
                                                                              <xf:toggle ev:event="DOMActivate" case="restrict_content_string_pattern"/>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_string_enumeration">
                                                                        <div>An simple type can be restricted to a set of valid values
      (Enumerations).</div>
                                                                        <div class="restriction">
                                                                           <xf:input id="new_content_enumeration"
                                                                                     ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                              <xf:label>Valid Value:</xf:label>
                                                                           </xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                              value=""/>
                                                                                 <xf:setfocus control="new_content_enumeration"/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </div>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_string_length">
                                                                        <div>An string type can be restricted to a specific length, or, a
      minimum and/or a maximum length.</div>
                                                                        <xf:group ref="self::*[not(xs:length|xs:minLength|xs:maxLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length/@value">Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:length/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:length|xs:minLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength/@value">Minimum Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Minimum Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:minLength/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:length|xs:maxLength)]">
                                                                           <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength/@value">Maximum Length:</xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add Maximum Length Restriction</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:maxLength/@value"
                                                                                              value=""/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </xf:group>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_string_pattern">
                                                                        <div>An string type can be restricted to conform to a pattern defined by
      a 'regular expression', which provides a concise and flexible means for "matching" strings of
      text, such as particular characters, words, or patterns of characters.</div>
                                                                        <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern/@value">Pattern:</xf:input>
                                                                        <xf:trigger>
                                                                           <xf:label>Add Pattern Restriction</xf:label>
                                                                           <xf:action ev:event="DOMActivate">
                                                                              <xf:insert nodeset="current()/*"
                                                                                         origin="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern"/>
                                                                              <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base='xs:string']/xs:pattern/@value"
                                                                                           value=""/>
                                                                           </xf:action>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_string_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                  </xf:switch>
                                                               </div>
                                                            </div>
                                                         </xf:group>
                                                      </xf:group>
                                                      <xf:group ref="self::*[@base='xs:integer' or @base='xs:decimal' or @base='xs:double' or @base='xs:float']">
                                                         <xf:group ref="self::*[not((xs:enumeration|xs:pattern) or ((xs:maxExclusive|xs:maxInclusive) and (xs:minExclusive|xs:minInclusive)))]">
                                                            <div class="control_config">
                                                               <div class="control_config_heading">
                                                                  <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                               </div>
                                                               <div class="control_config_content">
                                                                  <xf:switch>
                                                                     <xf:case id="restrict_content_number_start" selected="true">
                                                                        <div>A numeric type can be restricted in terms of a set of valid values,
      a range of valid values, or conformance to a pattern.</div>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Valid Values</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_enumeration"/>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Min./Max. Values</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_bounds"/>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Define Pattern</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_pattern"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_number_enumeration">
                                                                        <div>An simple type can be restricted to a set of valid values
      (Enumerations).</div>
                                                                        <div class="restriction">
                                                                           <xf:input id="new_content_number_enumeration"
                                                                                     ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                              <xf:label>Valid Value:</xf:label>
                                                                           </xf:input>
                                                                           <xf:trigger>
                                                                              <xf:label>Add</xf:label>
                                                                              <xf:action ev:event="DOMActivate">
                                                                                 <xf:insert nodeset="current()/*"
                                                                                            origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                                 <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                              value=""/>
                                                                                 <xf:setfocus control="new_content_number_enumeration"/>
                                                                              </xf:action>
                                                                           </xf:trigger>
                                                                        </div>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_number_bounds">
                                                                        <xf:group ref="self::*[not(xs:minInclusive|xs:minExclusive)]">
                                                                           <div>Define a valid range by adding a minimum (inclusive or exclusive)
      value</div>
                                                                           <xf:group ref="self::*[not(xs:minInclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive/@value">
                                                                                    <xf:label>Min. Inclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minInclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                           <xf:group ref="self::*[not(xs:minExclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive/@value">
                                                                                    <xf:label>Min. Exclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:minExclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                        </xf:group>
                                                                        <xf:group ref="self::*[not(xs:maxInclusive|xs:maxExclusive)]">
                                                                           <div>Define a valid range by adding a maximum (inclusive or exclusive)
      value</div>
                                                                           <xf:group ref="self::*[not(xs:maxInclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive/@value">
                                                                                    <xf:label>Max. Inclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxInclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                           <xf:group ref="self::*[not(xs:maxExclusive)]">
                                                                              <div class="restriction">
                                                                                 <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive/@value">
                                                                                    <xf:label>Max. Exclusive:</xf:label>
                                                                                 </xf:input>
                                                                                 <xf:trigger>
                                                                                    <xf:label>Add</xf:label>
                                                                                    <xf:action ev:event="DOMActivate">
                                                                                       <xf:insert nodeset="current()/*"
                                                                                                  origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive"/>
                                                                                       <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:maxExclusive/@value"
                                                                                                    value=""/>
                                                                                    </xf:action>
                                                                                 </xf:trigger>
                                                                              </div>
                                                                           </xf:group>
                                                                        </xf:group>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                     <xf:case id="restrict_content_number_pattern">
                                                                        <div/>
                                                                        <xf:input ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern/@value">
                                                                           <xf:label>Pattern:</xf:label>
                                                                        </xf:input>
                                                                        <xf:trigger>
                                                                           <xf:label/>
                                                                           <xf:action ev:event="DOMActivate">
                                                                              <xf:insert nodeset="current()/*"
                                                                                         origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern"/>
                                                                              <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:pattern/@value"
                                                                                           value=""/>
                                                                           </xf:action>
                                                                        </xf:trigger>
                                                                        <xf:trigger>
                                                                           <xf:label>Back</xf:label>
                                                                           <xf:toggle ev:event="DOMActivate" case="restrict_content_number_start"/>
                                                                        </xf:trigger>
                                                                     </xf:case>
                                                                  </xf:switch>
                                                               </div>
                                                            </div>
                                                         </xf:group>
                                                      </xf:group>
                                                      <xf:group ref="self::*[xs:enumeration]">
                                                         <div class="control_config">
                                                            <div class="control_config_heading">
                                                               <s2x:string xml:id="s2x-restr-options-heading">Restriction Configuration Options</s2x:string>
                                                            </div>
                                                            <div class="control_config_content">
                                                               <div>Add another value to the set of valid values.</div>
                                                               <div class="restriction">
                                                                  <xf:input id="another_content_enum"
                                                                            ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value">
                                                                     <xf:label>Valid Value:</xf:label>
                                                                  </xf:input>
                                                                  <xf:trigger>
                                                                     <xf:label>Add</xf:label>
                                                                     <xf:action ev:event="DOMActivate">
                                                                        <xf:insert nodeset="current()/*"
                                                                                   origin="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration"/>
                                                                        <xf:setvalue ref="instance('xml_schema_elements')/xs:restriction[@base=current()/@base]/xs:enumeration/@value"
                                                                                     value=""/>
                                                                        <xf:setfocus control="another_content_enum"/>
                                                                     </xf:action>
                                                                  </xf:trigger>
                                                               </div>
                                                            </div>
                                                         </div>
                                                      </xf:group>
                                                      <xf:group ref="self::*[@base='xs:date']"/>
                                                   </xf:group>
                                                </div>
                                             </xf:group>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                    <xf:case id="content_annotation_constraints">
                                       <div class="annotation">
                                          <xf:group ref="xs:annotation/xs:appinfo/s2x:constraints">
                                             <xf:trigger>
                                                <xf:label>Add Constraints</xf:label>
                                                <xf:hint>Add Constraints</xf:hint>
                                                <xf:action ev:event="DOMActivate">
                                                   <xf:insert nodeset="current()/s2x:constraints/*" origin="instance('schematron')/*"/>
                                                </xf:action>
                                             </xf:trigger>
                                             <table border="1">
                                                <thead>
                                                   <tr>
                                                      <th>Assertion</th>
                                                      <th>Message on Failure</th>
                                                   </tr>
                                                </thead>
                                                <tbody>
                                                   <xf:repeat nodeset="sch:assert">
                                                      <tr>
                                                         <td>
                                                            <xf:textarea ref="@test"/>
                                                         </td>
                                                         <td>
                                                            <xf:textarea ref="."/>
                                                         </td>
                                                      </tr>
                                                   </xf:repeat>
                                                </tbody>
                                             </table>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                    <xf:case id="content_annotation_rendering">
                                       <div class="annotation">
                                          <xf:group ref="xs:annotation/xs:appinfo/s2x:element-config/s2x:render">
                                             <div class="annotation_values">
                                                <xf:group ref="self::s2x:render[../../../xs:simpleType/xs:restriction/xs:enumeration]">
            
            enumeration
         </xf:group>
                                                <xf:group ref="self::s2x:render[not(../../../xs:simpleType/xs:restriction/xs:enumeration)]">
                                                   <div class="attribute">
                                                      <xf:select1 ref="@as">
                                                         <xf:label>Render as:</xf:label>
                                                         <xf:hint>Select an option from the list to control the form rendering
      outcome.</xf:hint>
                                                         <xf:help>
                                                            <xf:output ref="instance('rendering')/s2x:render-option-list[s2x:render-for = current()/../@options-key]/s2x:render-option[@as=current()]/s2x:description"/>
                                                         </xf:help>
                                                         <xf:itemset nodeset="instance('rendering')/s2x:render-option-list[s2x:render-for = current()/../@options-key]/s2x:render-option">
                                                            <xf:label ref="s2x:title"/>
                                                            <xf:value ref="@as"/>
                                                         </xf:itemset>
                                                         <xf:action ev:event="xforms-value-changed" if="starts-with(current(),'select')">
                                                            <xf:insert nodeset="current()/.." origin="instance('rendering')/s2x:select-config"/>
                                                         </xf:action>
                                                         <xf:action ev:event="xforms-value-changed" if="not(starts-with(current(),'select'))">
                                                            <xf:delete nodeset="current()/../../s2x:select-config"/>
                                                         </xf:action>
                                                      </xf:select1>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:input ref="@class">
                                                         <xf:label>CSS Class:</xf:label>
                                                         <xf:hint>Cascading Style Sheet (CSS) Class</xf:hint>
                                                         <xf:help>Cascading Style Sheet (CSS) Class</xf:help>
                                                      </xf:input>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:input ref="@previous-sibling">
                                                         <xf:label>Previous Sibling:</xf:label>
                                                         <xf:hint>A marker tag to insert before this form control.</xf:hint>
                                                         <xf:help>Marker tags are replaced in the second phase of form rendering,
      thus allowing anything to be injected into the form layout, in this case as the previous
      sibling (before) the element.</xf:help>
                                                      </xf:input>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:input ref="@next-sibling">
                                                         <xf:label>Next Sibling:</xf:label>
                                                         <xf:hint>A marker tag to insert after this form control.</xf:hint>
                                                         <xf:help>Marker tags are replaced in the second phase of form rendering,
      thus allowing formatting to be injected into the form layout, in this case as the next sibling
      (after) the element.</xf:help>
                                                      </xf:input>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:input ref="@parent">
                                                         <xf:label>Parent:</xf:label>
                                                         <xf:hint>A marker tag to insert as a parent of this form control.
   </xf:hint>
                                                         <xf:help>Marker tags are replaced in the second phase of form rendering,
      thus allowing formatting to be injected into the form layout, in this case as the parent
      (enclosing) of the element.</xf:help>
                                                      </xf:input>
                                                   </div>
                                                   <div class="attribute">
                                                      <xf:input ref="@identifier">
                                                         <xf:label>Identifier:</xf:label>
                                                         <xf:hint>An unique ID value to assign to this form control.</xf:hint>
                                                         <xf:help>This is an optional ID that can be used for specific form CSS
      styling.</xf:help>
                                                      </xf:input>
                                                   </div>
                                                </xf:group>
                                             </div>
                                             <div class="annotation_options">
                                                <xf:group ref="self::s2x:render[not(../../../xs:simpleType/xs:restriction/xs:enumeration)]">
                                                   <xf:group ref="self::s2x:render[@as='select' or @as='select1']">
                                                      <div class="control_config">
                                                         <div class="control_config_heading">Select List Configuration Options</div>
                                                         <div class="control_config_content">
                                                            <xf:switch>
                                                               <xf:case id="select_itemset_element" selected="true">
                                                                  <div class="description">
      Configure a source of data from which to create a set of select-list items:
      <ul xmlns="">
                                                                        <li>By adding the items to the select list itself as 'restriction' constraints</li>
                                                                        <li>By linking to a simple element rendered as a 'List Form'</li>
                                                                        <li>By linking to a complex element and then to simple sub-elements (or attributes).</li>
                                                                     </ul>
                                                                  </div>
                                                                  <xf:trigger>
                                                                     <xf:label>Add Restrictions</xf:label>
                                                                     <xf:toggle ev:event="DOMActivate" case="create_restrictions"/>
                                                                  </xf:trigger>
                                                                  <xf:trigger>
                                                                     <xf:label>Choose Simple Element</xf:label>
                                                                     <xf:toggle ev:event="DOMActivate" case="create_simpletype_nodeset"/>
                                                                  </xf:trigger>
                                                                  <xf:trigger>
                                                                     <xf:label>Choose Complex Element</xf:label>
                                                                     <xf:toggle ev:event="DOMActivate" case="create_complextype_nodeset"/>
                                                                  </xf:trigger>
                                                               </xf:case>
                                                               <xf:case id="create_restrictions">
                                                                  <div class="description">
      Consider the following options:
      <ol xmlns="">
                                                                        <li>Restricting an list element to a specific set of values allows precise validation, but
            no chance for form users to add to the list (click 'Open Restrictions Tab').</li>
                                                                        <li>If the same set of list items is to be used more than once, link to a shared restricted
            element (click 'Back' and then 'Choose Simple Element').</li>
                                                                        <li>Linking to an unrestricted element can allow form users to add new values to the list
            (click 'Back' and then 'Choose Simple Element' or 'Choose Complex Element')</li>
                                                                     </ol>
                                                                  </div>
                                                                  <div>
                                                                     <xf:trigger>
                                                                        <xf:label>Open Restrictions Tab</xf:label>
                                                                        <xf:action ev:event="DOMActivate">
                                                                           <xf:toggle case="select_itemset_element"/>
                                                                           <xf:toggle case="content_annotation_restrictions"/>
                                                                           <xf:setindex repeat="content_tabs" index="2"/>
                                                                        </xf:action>
                                                                     </xf:trigger>
                                                                     <xf:trigger>
                                                                        <xf:label>Back</xf:label>
                                                                        <xf:toggle ev:event="DOMActivate" case="select_itemset_element"/>
                                                                     </xf:trigger>
                                                                  </div>
                                                               </xf:case>
                                                               <xf:case id="create_simpletype_nodeset">
                                                                  <div class="description">Select (or add) a simple type from the top level of the schema to
      use as the data source for this form select control.</div>
                                                                  <div class="attribute">
                                                                     <xf:select1 ref="current()/../s2x:select-config/@srcElement">
                                                                        <xf:label>Simple types:</xf:label>
                                                                        <xf:itemset nodeset="instance('built_schema')/xs:element[not(@type='') or xs:simpleType]">
                                                                           <xf:label ref="@name"/>
                                                                           <xf:value ref="@name"/>
                                                                        </xf:itemset>
                                                                     </xf:select1>
                                                                  </div>
                                                                  <xf:trigger>
                                                                     <xf:label>Back</xf:label>
                                                                     <xf:toggle ev:event="DOMActivate" case="select_itemset_element"/>
                                                                  </xf:trigger>
                                                               </xf:case>
                                                               <xf:case id="create_complextype_nodeset">
                                                                  <div class="description">Select (or add) a complex type from the top level of the schema to
      use as the data source for this form select control.</div>
                                                                  <div class="attribute">
                                                                     <xf:select1 ref="current()/../s2x:select-config/@srcElement">
                                                                        <xf:label>Complex types:</xf:label>
                                                                        <xf:itemset nodeset="instance('built_schema')/xs:element[xs:complexType]">
                                                                           <xf:label ref="@name"/>
                                                                           <xf:value ref="@name"/>
                                                                        </xf:itemset>
                                                                     </xf:select1>
                                                                  </div>
                                                                  <div class="attribute">
                                                                     <xf:select1 ref="current()/../s2x:select-config/@valueElement">
                                                                        <xf:label>Value Sub-element:</xf:label>
                                                                        <xf:itemset nodeset="instance('built_schema')/xs:element[@name=current()/../@srcElement]/*/*/xs:element">
                                                                           <xf:label ref="@name"/>
                                                                           <xf:value ref="@name"/>
                                                                        </xf:itemset>
                                                                     </xf:select1>
                                                                  </div>
                                                                  <div class="attribute">
                                                                     <xf:select1 ref="current()/../s2x:select-config/@labelElement">
                                                                        <xf:label>Label Sub-element:</xf:label>
                                                                        <xf:itemset nodeset="instance('built_schema')/xs:element[@name=current()/../@srcElement]/*/*/xs:element">
                                                                           <xf:label ref="@name"/>
                                                                           <xf:value ref="@name"/>
                                                                        </xf:itemset>
                                                                     </xf:select1>
                                                                  </div>
                                                                  <xf:trigger>
                                                                     <xf:label>Back</xf:label>
                                                                     <xf:toggle ev:event="DOMActivate" case="select_itemset_element"/>
                                                                  </xf:trigger>
                                                               </xf:case>
                                                            </xf:switch>
                                                         </div>
                                                      </div>
                                                   </xf:group>
                                                   <xf:group ref="self::s2x:render[@as='horizontal_block']">
               edit_horizontal_block
            </xf:group>
                                                   <xf:group ref="self::s2x:render[@as='vertical_block']">
               edit_vertical_block
            </xf:group>
                                                </xf:group>
                                             </div>
                                          </xf:group>
                                       </div>
                                    </xf:case>
                                 </xf:switch>
                              </div>
                           </div>
                        </xf:group>
                     </xf:case>
                  </xf:switch>
               </div>
            </div>
            <div id="bottom2">
               <div style="float:right;margin-right:0.3em;">
                  <button onclick="javascript:toggleView();">Configuration</button>
               </div>
               <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="bottom_toolbar">
                  <xf:select1 ref="instance('schema')/s2x:schema">
                     <xf:label>Select Schema:</xf:label>
                     <xf:itemset nodeset="instance('schemas')/*">
                        <xf:label ref="."/>
                        <xf:value ref="."/>
                     </xf:itemset>
                  </xf:select1>
                  <xf:submit ev:event="DOMActivate" submission="get_schema">
                     <xf:label>Load Schema</xf:label>
                  </xf:submit>
                  <xf:trigger>
                     <xf:label>Clear Schema</xf:label>
                     <xf:action ev:event="DOMActivate">
                        <xf:reset model="model1"/>
                     </xf:action>
                  </xf:trigger>
                  <xf:input ref="instance('schema')/s2x:schema">
                     <xf:label>Schema Name:</xf:label>
                  </xf:input>
                  <xf:submit ev:event="DOMActivate" submission="save_schema">
                     <xf:label>Save Schema</xf:label>
                  </xf:submit>
                  <xf:trigger>
                     <xf:label>Generate Forms</xf:label>
                     <xf:action ev:event="DOMActivate"
                                if="instance('built_schema')/xs:annotation/xs:appinfo/s2x:schema-config/s2x:single-form='true'">
                        <xf:toggle case="do_select_xform"/>
                        <xf:setvalue ref="instance('built_schema')/xs:annotation/xs:appinfo/s2x:schema-config/s2x:selected-element"
                                     value="instance('built_schema')/xs:element[1]/@name"/>
                        <xf:load ev:event="DOMActivate" resource="javascript:toggleView();"/>
                     </xf:action>
                     <xf:action ev:event="DOMActivate"
                                if="not(instance('built_schema')/xs:annotation/xs:appinfo/s2x:schema-config/s2x:single-form='true' or instance('schema')/s2x:schema='')">
                        <xf:send submission="save_schema"/>
                        <xf:send submission="generate_xforms"/>
                     </xf:action>
                     <xf:action ev:event="DOMActivate"
                                if="not(instance('built_schema')/xs:annotation/xs:appinfo/s2x:schema-config/s2x:single-form='true') and instance('schema')/s2x:schema=''">
                        <xf:message>Enter a Schema Name.</xf:message>
                     </xf:action>
                  </xf:trigger>
               </div>
            </div>
         </div>
      </div>
      <div id="config_background"/>
      <div id="config">
         <div xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="configuration_editor">
            <xf:group ref="instance('built_schema')/xs:annotation/xs:appinfo/s2x:schema-config">
               <div style="float:right;">
                  <xf:trigger>
                     <xf:label>Close</xf:label>
                     <xf:action ev:event="DOMActivate">
                        <xf:toggle case="do_config_edit"/>
                        <xf:load resource="javascript:toggleView();"/>
                     </xf:action>
                  </xf:trigger>
               </div>
               <xf:switch>
                  <xf:case id="do_config_edit" selected="true">
                     <div style="font-size:0.6em">
                        <div class="annotation">
                           <xf:input ref="s2x:base-xform-url">
                              <xf:label>Base Form URL:</xf:label>
                              <xf:help>A path or URL that specifies a base location for the generated Xforms to be put.</xf:help>
                           </xf:input>
                        </div>
                        <div class="annotation">
                           <xf:input ref="s2x:base-data-url">
                              <xf:label>Base Resource URL:</xf:label>
                              <xf:help>A path or URL that specifies a base location for the generated Xform submissions to be sent. </xf:help>
                           </xf:input>
                        </div>
                     </div>
                  </xf:case>
                  <xf:case id="do_select_xform">
                     <xf:select1 ref="s2x:selected-element">
                        <xf:label> Select an top-level element to convert an XForm:</xf:label>
                        <xf:itemset nodeset="instance('built_schema')/xs:element">
                           <xf:label ref="@name"/>
                           <xf:value ref="@name"/>
                        </xf:itemset>
                     </xf:select1>
                     <div>
                        <xf:trigger>
                           <xf:label>Generate XForm</xf:label>
                           <xf:action ev:event="DOMActivate" if="s2x:selected-element/text()">
                              <xf:setnode ref="instance('xform')"
                                          outer="transform(instance('built_schema'),'xslt/generator_1.0.xsl')"/>
                              <!--xf:message>
                                 <xf:output value="serialize(instance('xform'))"/>
                              </xf:message-->
                              <xf:load resource="javascript:XsltForms_globals.open_xform();"/>
                           </xf:action>
                        </xf:trigger>
                     </div>
                     <div>
                        <xf:trigger>
                           <xf:label>Show XForm XML</xf:label>
                           <xf:action ev:event="DOMActivate" if="s2x:selected-element/text()">
                              <xf:setnode ref="instance('xform')"
                                          outer="transform(instance('built_schema'),'xslt/generator_1.0.xsl')"/>
                              <xf:load resource="javascript:XsltForms_globals.show_xform();"/>
                           </xf:action>
                        </xf:trigger>
                     </div>
                  </xf:case>
               </xf:switch>
            </xf:group>
         </div>
      </div>
      <div id="help">
         <span>HELP</span>
      </div>
   </body>
</html>