<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="xhtml2.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" lang="en">
  <head>
    <title>Chapter 6: Model Item Properties</title>
  </head>
  <body>
    <h>Chapter 6: Model Item Properties</h>
    
    <section>
      <h href="http://www.w3.org/TR/xforms/slice6.html#model-xformsconstraints">6.1 Model Item Property Definitions</h>
      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-type">6.1.1 The type property</h>
	<p href="chapter6/001.xml" class="MUST UA">Default type MUST be a string.</p>
	<p class="MUST UA">MUST support all XML Schema types defined in XForms: <a href="chapter6/002-1.xml">primitive</a>, <a href="chapter6/002-2.xml">derived</a>, <a href="chapter6/002-3.xml">defined in xforms</a>, and from external schema.</p>
	<p href="chapter6/002-1.xml" class="MUST UA">MUST support placing types on elements.</p>
	<p href="chapter6/002-1-attributes.xml" class="MUST UA">MUST support placing types on attributes.</p>
      </section>
      
      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-readOnly">6.1.2 The readonly property</h>
	<p href="chapter6/read-only.xml" class="MUST UA">Default value MUST be false if no calculate property is present.</p>
	<p href="chapter6/read-only.xml" class="MUST UA">Default value MUST be true if a calculate property is present.</p>
	<p href="chapter6/read-only.xml" class="MUST UA">readonly MUST support any legal XPath boolean expression that is convertible to boolean.</p>
	<p href="chapter6/read-only.xml" class="MUST UA">The readonly property of a node MUST be dynamic (updated when dependencies change).</p>
	<p href="chapter6/read-only.xml" class="MUST UA">If an ancestor of a node is readonly, the node MUST be readonly as well.</p>
      </section>

      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-required">6.1.3 The required property</h>
	<p href="chapter6/required.xml" class="MUST UA">Default value MUST be false.</p>
	<p href="chapter6/required.xml" class="MUST UA">required MUST support any legal XPath boolean expression that is convertible to boolean.</p>
	<p href="chapter6/required.xml" class="MUST UA">The required property of a node MUST be dynamic (updated when dependencies change).</p>
	<p href="chapter6/required.xml" class="MUST UA">Ancestor nodes MUST have no effect on whether a node is required.</p>
	<p href="chapter6/required.xml" class="MUST UA">A control bound to a required node with xsi:nil=true MUST evaluate as invalid during revalidation *regardless* of the element value.</p>
	<p href="chapter6/required.xml" class="MUST UA">A control bound to a required node with a value that is not convertible to a non-empty string MUST evaluate as invalid during revalidation.</p>
	<p href="chapter6/required.xml" class="MAY UA">Controls bound to required nodes MAY indicate that the control is required.</p>
	<p href="chapter6/required.xml" class="MAY UA">Controls bound to required, irrelevant nodes MAY indicate that the control would be required if made relevant.</p>
	<p href="chapter6/required.xml" class="MAY UA">Controls bound to non-required nodes MAY indicate that the control is optional.</p>
	<p href="chapter6/required.xml" class="MAY UA">Controls bound to required nodes MAY provide immediate feedback including limited navigation.</p>
      </section>

      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-relevant">6.1.4 The relevant property</h>
	<p href="chapter6/relevant.xml" class="MUST UA">Default value MUST be true.</p>
	<p href="chapter6/relevant.xml" class="MUST UA">relevant MUST support any legal XPath boolean expression that is convertible to boolean.</p>
	<p href="chapter6/relevant.xml" class="MUST UA">The relevant property of a node MUST be dynamic (updated when dependencies change).</p>
	<p href="chapter6/relevant.xml" class="MUST UA">If an ancestor of a node is relevant, the node MUST be relevant as well.</p>
	<p href="chapter6/relevant.xml" class="MUST UA">When true, associated form controls MUST be made available.</p>
	<p href="chapter6/relevant.xml" class="SHOULD UA">When false, associated form controls SHOULD be made unavailable, removed from navigation order, and not allowed focus.</p>
      </section>
      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-calculate">6.1.5 The calculate property</h>
	<p href="chapter6/read-only.xml" class="MUST UA">After a recalculate, the value of the node must be the result of the XPath expression.</p>
	<p href="chapter6/read-only.xml" class="MUST UA">The calculate property of a node MUST be dynamic (updated when dependencies change).</p>
      </section>
      
      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-validate">6.1.6 The constraint property</h>
	<p href="chapter6/atomic.xml" class="MUST UA">Default value MUST be true.</p>
	<p href="chapter6/atomic.xml" class="MUST UA">constraint MUST support any legal XPath boolean expression that is convertible to boolean.</p>
	<p href="chapter6/atomic.xml" class="MUST UA">The constraint property of a node MUST be dynamic (updated when dependencies change).</p>
	<p href="chapter6/atomic.xml" class="MUST UA">The node MUST evaluate as invalid during revalidation if its constraint expression returns false.</p>
      </section>
    </section>
    
    <section>
      <h href="http://www.w3.org/TR/xforms/slice6.html#model-using">6.2 Schema Constraints</h>
      <p href="chapter6/schemaLocation.xml" class="MUST UA">xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes in the instance MUST be ignored.</p>
      <section>
	<h href="http://www.w3.org/TR/xforms/slice6.html#model-using-atomic">6.2.1 Atomic Datatype</h>
	<p href="chapter6/atomic.xml">XML Schema facets MUST be associated with a model item using an XML Schema, xsi:type or the type attribute in a bind element.</p>
	<p href="chapter6/atomic.xml">If multiple type constraints apply to a model item, only the first, in document order, MUST be applied.</p>
      </section>
    </section>
  </body>
</html>

