<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.w3.org/MarkUp/Forms/Group/Test/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>
<p class="MUST UA">local values are assigned by processing all bind elements in document order.  NON-TESTABLE.  Should be removed.</p>

<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 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 class="MUST UA">Default value MUST be false if no calculate property is present.</p>
<p class="MUST UA">Default value MUST be true if a calculate property is present.</p>
<p class="MUST UA">readonly MUST support any legal XPath boolean expression that is convertible to boolean.</p>
<p class="MUST UA">The readonly property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">(UPDATE SPEC) readonly MUST throw "xforms-blahblah" exception on a non-XPath expression or an XPath expression that is not convertible to boolean.</p>
<p class="MUST UA">If an ancestor of a node is readonly, the node MUST be readonly as well.</p>
<p class="MUST UA">(UPDATE SPEC) An attempt to change a readonly node MUST throw the "xforms-blahblah" exception MUST NOT allow changes to the node.</p>
<p class="SHOULD UA">Controls bound to a readonly node SHOULD hint to the user somehow that the data is readonly.</p>
<p class="SHOULD UA">(UPDATE SPEC--UNCLEAR) An implementation SHOULD NOT change navigation, focus and visibility of readonly controls.</p>
</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-required">6.1.3 The required property</h>
<p class="MUST UA">Default value MUST be false.</p>
<p class="MUST UA">required MUST support any legal XPath boolean expression that is convertible to boolean.</p>
<p class="MUST UA">The required property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">(UPDATE SPEC) required MUST throw "xforms-blahblah" exception on a non-XPath expression or an XPath expression that is not convertible to boolean.</p>
<p class="MUST UA">Ancestor nodes MUST have no effect on whether a node is readonly.</p>
<p 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 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 class="MUST UA">Except the two next assertions, controls bound to a required node MUST NOT have navigation, focus and visibility hints.</p>
<p class="MAY UA">Controls bound to required nodes MAY indicate that the control is required.</p>
<p class="MAY UA">Controls bound to required, irrelevant nodes MAY indicate that the control would be required if made relevant.</p>
<p class="MAY UA">Controls bound to non-required nodes MAY indicate that the control is optional.</p>
<p 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 class="MUST UA">Default value MUST be true.</p>
<p class="MUST UA">relevant MUST support any legal XPath boolean expression that is convertible to boolean.</p>
<p class="MUST UA">The relevant property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">(UPDATE SPEC) relevant MUST throw "xforms-blahblah" exception on a non-XPath expression or an XPath expression that is not convertible to boolean.</p>
<p class="MUST UA">If an ancestor of a node is relevant, the node MUST be relevant as well.</p>
<p class="MUST UA">A control bound to an irrelevant node MUST evaluate as invalid during revalidation.</p>
<p class="MUST UA">Except the two next assertions, controls bound to a readonly node MUST NOT have navigation, focus and visibility hints.</p>
<p class="MUST UA">When true, associated form controls MUST be made visible.</p>
<p 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 class="MUST UA">After a recalculate, the value of the node must be the result of the XPath expression.</p>
<p class="MUST UA">The calculate property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">(UPDATE SPEC) calculate property MUST throw "xforms-blahblah" exception on a non-XPath expression.</p>
</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-validate">6.1.6 The constraint property</h>
<p class="MUST UA">Default value MUST be true.</p>
<p class="MUST UA">constraint MUST support any legal XPath boolean expression that is convertible to boolean.</p>
<p class="MUST UA">The constraint property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">(UPDATE SPEC) constraint MUST throw "xforms-blahblah" exception on a non-XPath expression or an XPath expression that is not convertible to boolean.</p>
<p class="MUST UA">The node MUST evaluate as invalid during revalidation if its constraint expression returns false.</p>
</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-maxOccurs">6.1.7 The maxOccurs property</h>
<p class="MUST UA">Default value MUST be infinity.</p>
<p class="MUST UA">maxOccurs MUST support any legal XPath expression that is convertible to number.</p>
<p class="MUST UA">The maxOccurs property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">Negative, infinity and NaN results MUST have the effect of not setting any limit.</p>
<p class="MUST UA">(UPDATE SPEC) The (WHAT???) MUST evaluate as invalid during revalidation if nodeset has more children than the specified value.</p>
</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-minOccurs">6.1.8 The minOccurs property</h>
<p class="MUST UA">Default value MUST be 0.</p>
<p class="MUST UA">minOccurs MUST support any legal XPath expression that is convertible to number.</p>
<p class="MUST UA">The minOccurs property of a node MUST be dynamic (updated when dependencies change).</p>
<p class="MUST UA">Negative, infinity and NaN results MUST have the effect of not setting any limit.</p>
<p class="MUST UA">(UPDATE SPEC) The (WHAT???) MUST evaluate as invalid during revalidation if nodeset has fewer children than the specified value.</p>
</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-prop-p3ptype">6.1.9 The p3ptype property</h>
<p class="MUST UA">Default p3ptype MUST be a string.</p>
<p class="MAY UA">Implementations MAY do enhance the premium form-filling experience with this information.</p>
</section>

</section>

<section>
<h href="http://www.w3.org/TR/xforms/slice6.html#model-using">6.2 Schema Constraints</h>
<p 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 class="NOTE">NOTE: the document order assertions appear to be problematic.  <span href="http://lists.w3.org/Archives/Member/w3c-forms/2002OctDec/0205.html">Proposal put forth.</span>  Will be discussed.</p>
</section>

</section>

</body>
</html>

