<?xml-stylesheet type="text/xsl" href="/xforms-tests/xsltforms/xsltforms.xsl"?>
<html xmlns:my="http://commerce.example.com/payment" xmlns:txs="http://sourceforge.net/projects/txs" xmlns="http://www.w3.org/1999/xhtml" xmlns:req="http://www.agencexml.com/requests" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <head>
    <title>5.2.1.c built-in data types which allow empty content for basic processors</title>
    <xforms:model id="emptyData_model">
      <xforms:instance>
	<types xmlns="">
	  <my_dateTime/>
	  <my_date/>
	  <my_time/>
	  <my_gYearMonth/>
	  <my_gYear/>
	  <my_gMonthDay/>
	  <my_gDay/>
	  <my_gMonth/>
	  <my_string/>
	  <my_boolean/>
	  <my_base64Binary/>
	  <my_decimal/>
	  <my_anyURI/>
	  <my_integer/>
	  <my_nonPositiveInteger/>
	  <my_negativeInteger/>
	  <my_long/>
	  <my_int/>
	  <my_short/>
	  <my_byte/>
	  <my_nonNegativeInteger/>
	  <my_unsignedLong/>
	  <my_unsignedInt/>
	  <my_unsignedShort/>
	  <my_unsignedByte/>
	  <my_positiveInteger/>
	</types>
      </xforms:instance>

	  <xforms:bind nodeset="my_dateTime" type="xforms:dateTime"/>
	  <xforms:bind nodeset="my_date" type="xforms:date"/>
	  <xforms:bind nodeset="my_time" type="xforms:time"/>
	  <xforms:bind nodeset="my_gYearMonth" type="xforms:gYearMonth"/>
	  <xforms:bind nodeset="my_gYear" type="xforms:gYear"/>
	  <xforms:bind nodeset="my_gMonthDay" type="xforms:gMonthDay"/>
	  <xforms:bind nodeset="my_gDay" type="xforms:gDay"/>
	  <xforms:bind nodeset="my_gMonth" type="xforms:gMonth"/>
	  <xforms:bind nodeset="my_string" type="xforms:string"/>
	  <xforms:bind nodeset="my_boolean" type="xforms:boolean"/>
	  <xforms:bind nodeset="my_base64Binary" type="xforms:base64Binary"/>
	  <xforms:bind nodeset="my_decimal" type="xforms:decimal"/>
	  <xforms:bind nodeset="my_anyURI" type="xforms:anyURI"/>
	  <xforms:bind nodeset="my_integer" type="xforms:integer"/>
	  <xforms:bind nodeset="my_nonPositiveInteger" type="xforms:nonPositiveInteger"/>
	  <xforms:bind nodeset="my_negativeInteger" type="xforms:negativeInteger"/>
	  <xforms:bind nodeset="my_long" type="xforms:long"/>
	  <xforms:bind nodeset="my_int" type="xforms:int"/>
	  <xforms:bind nodeset="my_short" type="xforms:short"/>
	  <xforms:bind nodeset="my_byte" type="xforms::byte"/>
	  <xforms:bind nodeset="my_nonNegativeInteger" type="xforms:nonNegativeInteger"/>
	  <xforms:bind nodeset="my_unsignedLong" type="xforms:unsignedLong"/>
	  <xforms:bind nodeset="my_unsignedInt" type="xforms:unsignedInt"/>
	  <xforms:bind nodeset="my_unsignedShort" type="xforms:unsignedShort"/>
	  <xforms:bind nodeset="my_unsignedByte" type="xforms:unsignedByte"/>
	  <xforms:bind nodeset="my_positiveInteger" type="xforms:positiveInteger"/>

      <xforms:bind nodeset="/types" relevant="false()"/>
    </xforms:model>
    <xforms:model id="event_model">
      <xforms:instance>
	<events xmlns="">
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	  <event/>
	</events>
      </xforms:instance>
    </xforms:model>
    <link rel="stylesheet" href="../../../driverPages/forms/TestSuite11.css" type="text/css"/>
  </head>
  <body>
    <xforms:group>
      <xforms:label class="title">5.2.1.c built-in data types which allow empty content for basic processors</xforms:label>
    </xforms:group>
    <xforms:group>
      <xforms:label>
	When you activate the Run Test trigger below you must see an 'xforms-valid' output for all the 
	data types. If the data type does not accept empty content you will see an 'XFORMS-INVALID' output. 
	An 'XFORMS-INVALID' output is a failure for this test case. 
      </xforms:label>
    </xforms:group>
    <xforms:trigger>
      <xforms:label>Run Test</xforms:label>
      <xforms:reset model="emptyData_model" ev:event="DOMActivate"/>
    </xforms:trigger>
    <xforms:repeat model="event_model" nodeset="/events/event">
      <xforms:output ref=".">
	<xforms:label>Result: </xforms:label>
      </xforms:output>
    </xforms:repeat>
    <xforms:group>
      <xforms:input ref="my_dateTime">
	<xforms:label>dateTime</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[1]">
	  XFORMS-INVALID (dateTime)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[1]">
	  xforms-valid (dateTime)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_time">
	<xforms:label>time</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[2]">
	  XFORMS-INVALID (time)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[2]">
	  xforms-valid (time)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_date">
	<xforms:label>date</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[3]">
	  XFORMS-INVALID (date)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[3]">
	  xforms-valid (date)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_gYearMonth">
	<xforms:label>gYearMonth</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[4]">
	  XFORMS-INVALID (gYearMonth)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[4]">
	  xforms-valid (gYearMonth)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_gYear">
	<xforms:label>gYear</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[5]">
	  XFORMS-INVALID (gYear)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[5]">
	  xforms-valid (gYear)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_gMonthDay">
	<xforms:label>gMonthDay</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[6]">
	  XFORMS-INVALID (gMonthDay)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[6]">
	  xforms-valid (gMonthDay)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_gDay">
	<xforms:label>gDay</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[7]">
	  XFORMS-INVALID (gDay)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[7]">
	  xforms-valid (gDay)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_gMonth">
	<xforms:label>gMonth</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[8]">
	  XFORMS-INVALID (gMonth)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[8]">
	  xforms-valid (gMonth)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_string">
	<xforms:label>string</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[9]">
	  XFORMS-INVALID (string)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[9]">
	  xforms-valid (string)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_boolean">
	<xforms:label>boolean</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[10]">
	  XFORMS-INVALID (boolean)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[10]">
	  xforms-valid (boolean)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:upload ref="my_base64Binary">
	<xforms:label>base64Binary</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[11]">
	  XFORMS-INVALID (base64Binary)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[11]">
	  xforms-valid (base64Binary)
	</xforms:setvalue>
      </xforms:upload>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_decimal">
	<xforms:label>decimal</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[12]">
	  XFORMS-INVALID (decimal)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[12]">
	  xforms-valid (decimal)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_anyURI">
	<xforms:label>anyURI</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[13]">
	  XFORMS-INVALID (anyURI)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[13]">
	  xforms-valid (anyURI)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_integer">
	<xforms:label>integer</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[14]">
	  XFORMS-INVALID (integer)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[14]">
	  xforms-valid (integer)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_nonPositiveInteger">
	<xforms:label>nonPositiveInteger</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[15]">
	  XFORMS-INVALID (nonPositiveInteger)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[15]">
	  xforms-valid (nonPositiveInteger)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_negativeInteger">
	<xforms:label>negativeInteger</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[16]">
	  XFORMS-INVALID (negativeInteger)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[16]">
	  xforms-valid(negativeInteger)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_long">
	<xforms:label>long</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[17]">
	  XFORMS-INVALID (long)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[17]">
	  xforms-valid (long)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_int">
	<xforms:label>int</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[18]">
	  XFORMS-INVALID (int)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[18]">
	  xforms-valid (int)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_short">
	<xforms:label>short</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[19]">
	  XFORMS-INVALID (short)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[19]">
	  xforms-valid (short)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_byte">
	<xforms:label>byte</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[20]">
	  XFORMS-INVALID (byte)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[20]">
	  xforms-valid (byte)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_nonNegativeInteger">
	<xforms:label>nonNegativeInteger</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[21]">
	  XFORMS-INVALID (nonNegativeInteger)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[21]">
	  xforms-valid (nonNegativeInteger)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_unsignedLong">
	<xforms:label>unsignedLong</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[22]">
	  XFORMS-INVALID (unsignedLong)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[22]">
	  xforms-valid (unsignedLong)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_unsignedInt">
	<xforms:label>unsignedInt</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[23]">
	  XFORMS-INVALID (unsignedInt)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[23]">
	  xforms-valid (unsignedInt)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_unsignedShort">
	<xforms:label>unsignedShort</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[24]">
	  XFORMS-INVALID (unsignedShort)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[24]">
	  xforms-valid (unsignedShort)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_unsignedByte">
	<xforms:label>unsignedByte</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[25]">
	  XFORMS-INVALID (unsignedByte)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[25]">
	  xforms-valid (unsignedByte)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    <xforms:group>
      <xforms:input ref="my_positiveInteger">
	<xforms:label>positiveInteger</xforms:label>
	<xforms:setvalue ev:event="xforms-invalid" model="event_model" ref="/events/event[26]">
	  XFORMS-INVALID (positiveInteger)
	</xforms:setvalue>
	<xforms:setvalue ev:event="xforms-valid" model="event_model" ref="/events/event[26]">
	  xforms-valid event (positiveInteger)
	</xforms:setvalue>
      </xforms:input>
    </xforms:group>
    
  </body>
</html>
