<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="../test.css" ?>
<!DOCTYPE html [
	<!ATTLIST section id ID #IMPLIED>
	<!ATTLIST h       id ID #IMPLIED>
	<!ATTLIST div     id ID #IMPLIED>
	<!ATTLIST nl      id ID #IMPLIED>
]>
<html xmlns="http://www.w3.org/2002/06/xhtml2"
      xmlns:xforms="http://www.w3.org/2002/xforms"
      xmlns:ev="http://www.w3.org/2001/xml-events"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:my="urn:my"
      xml:lang="en">
  <head>
    <title>MUST support derived XML Schema types</title>
    <xforms:model id="model-002">
      <xforms:instance id="instance-002">
        <data xmlns="urn:my">
          <valid>
	   <normalizedString>normalizedString</normalizedString>
	   <token>thisIsAToken</token>
	   <language>en</language>
	   <Name>ev:name</Name>
	   <NCName>name</NCName>
	   <!-- <ID/> -->
	   <IDREF>model-002</IDREF>
	   <IDREFS>model002 instance-002</IDREFS>
	   <ENTITY>name</ENTITY><!-- we do not do anything about the DTD declaration see http://www.w3.org/TR/xmlschema-2/#ENTITY  -->
	   <ENTITIES>name1 name2</ENTITIES><!-- we do not do anything about the DTD declaration see http://www.w3.org/TR/xmlschema-2/#ENTITY  -->
	   <NMTOKEN>name</NMTOKEN>
	   <NMTOKENS>name1 name2</NMTOKENS>
	   <integer>259</integer>
	   <nonPositiveInteger>0</nonPositiveInteger>
	   <negativeInteger>-1</negativeInteger>
	   <long>-9223372036854775808</long>
	   <int>-2147483648</int>
	   <short>-32768</short>
	   <byte>-128</byte>
	   <nonNegativeInteger>0</nonNegativeInteger>
	   <unsignedLong>18446744073709551615</unsignedLong>
	   <unsignedInt>4294967295</unsignedInt>
	   <unsignedShort>65535</unsignedShort>
	   <unsignedByte>255</unsignedByte>
	   <positiveInteger>+100000</positiveInteger>
         </valid>
         <invalid>
	   <normalizedString>this wasn't normalized whenI typed it</normalizedString>
	   <token>   this  is   not  a  
token   </token>
	   <language>42</language>
	   <Name>42q</Name>
	   <NCName>ev:name</NCName>
	   <ID>259</ID>
	   <IDREF>259 321</IDREF>
	   <IDREFS>259 321</IDREFS>
	   <ENTITY>---</ENTITY>
	   <ENTITIES>--- ---</ENTITIES>
	   <NMTOKEN>---::::;;=-</NMTOKEN>
	   <NMTOKENS>-:-:-:;-)</NMTOKENS>
	   <integer>3.14159</integer>
	   <nonPositiveInteger>3x3</nonPositiveInteger>
	   <negativeInteger>0</negativeInteger>
	   <long>9223372036854775808</long>
	   <int>2147483648</int>
	   <short>32768</short>
	   <byte>128</byte>
	   <nonNegativeInteger>-1e</nonNegativeInteger>
	   <unsignedLong>-18446744073709551616</unsignedLong>
	   <unsignedInt>-4294967296</unsignedInt>
	   <unsignedShort>-65536</unsignedShort>
	   <unsignedByte>-256</unsignedByte>
	   <positiveInteger>-100000</positiveInteger>
          </invalid>
        </data>
      </xforms:instance>

     <xforms:bind nodeset="//my:normalizedString" type="xsd:normalizedString"/>
     <xforms:bind nodeset="//my:token" type="xsd:token"/>
     <xforms:bind nodeset="//my:language" type="xsd:language"/>
     <xforms:bind nodeset="//my:Name" type="xsd:Name"/>
     <xforms:bind nodeset="//my:NCName" type="xsd:NCName"/>
     <xforms:bind nodeset="//my:ID" type="xsd:ID"/>
     <xforms:bind nodeset="//my:IDREF" type="xsd:IDREF"/>
     <xforms:bind nodeset="//my:IDREFS" type="xsd:IDREFS"/>
     <xforms:bind nodeset="//my:ENTITY" type="xsd:ENTITY"/>
     <xforms:bind nodeset="//my:ENTITIES" type="xsd:ENTITIES"/>
     <xforms:bind nodeset="//my:NMTOKEN" type="xsd:NMTOKEN"/>
     <xforms:bind nodeset="//my:NMTOKENS" type="xsd:NMTOKENS"/>
     <xforms:bind nodeset="//my:integer" type="xsd:integer "/>
     <xforms:bind nodeset="//my:nonPositiveInteger" type="xsd:nonPositiveInteger "/>
     <xforms:bind nodeset="//my:negativeInteger" type="xsd:negativeInteger "/>
     <xforms:bind nodeset="//my:long" type="xsd:long "/>
     <xforms:bind nodeset="//my:int" type="xsd:int "/>
     <xforms:bind nodeset="//my:short" type="xsd:short "/>
     <xforms:bind nodeset="//my:byte" type="xsd:byte "/>
     <xforms:bind nodeset="//my:nonNegativeInteger" type="xsd:nonNegativeInteger "/>
     <xforms:bind nodeset="//my:unsignedLong" type="xsd:unsignedLong "/>
     <xforms:bind nodeset="//my:unsignedInt" type="xsd:unsignedInt "/>
     <xforms:bind nodeset="//my:unsignedShort" type="xsd:unsignedShort "/>
     <xforms:bind nodeset="//my:unsignedByte" type="xsd:unsignedByte "/>
     <xforms:bind nodeset="//my:positiveInteger" type="xsd:positiveInteger "/>
    </xforms:model>
  </head>
  <body>
    <h1>MUST support derived XML Schema types</h1>
    <xforms:repeat nodeset="*" model="model-002"><!-- repeats over my:valid|my:invalid -->
      <xforms:group>
	<xforms:label>The following should be <xforms:output value="name()" /></xforms:label>
          <xforms:repeat nodeset="*"><!-- repeats over typed elements -->
	    <xforms:group>
		<xforms:output value="name(../..)"/> test for type <xforms:output value="name()"/>
		<xforms:output><xforms:label>output</xforms:label></xforms:output>
		<xforms:input>
		  <xforms:label>input for <xforms:output value="name()"/></xforms:label>
		  <xforms:alert>TEST FAILS</xforms:alert>
		</xforms:input>
	    </xforms:group>
          </xforms:repeat>
      </xforms:group>
    </xforms:repeat>
  </body>
</html>
