MIP functions

From W3C XForms Group Wiki (Public)

The valid() Function

See the spec-ready text in the XPath Expressions Module.

The relevant() Function

boolean relevant(node-set?)

The relevant() returns the relevant state of the node from the node-set which is first in document order. If the node-set is empty then the function returns false. If the argument is omitted, it defaults to a node-set with the context node as its only member. If the function is used in binding expressions or in a model binding expression then an xforms-compute-exception should be dispatched and processing terminated.

Example: how to use relevant()

<xforms:model>
  <xforms:instance>
    <data xmlns="">
      <node1/>
      <node2/>
    </data>
  </xforms:instance>
  <xforms:bind nodeset="data1" relevant="false()"/>
</xforms:model>
<xforms:repeat nodeset="*[relevant()]">
  <xf:input ref=".">
    <xf:label>All relevant nodes (node2)</xf:label>
  </xf:input>
</xforms:repeat>


The readonly() Function

boolean readonly(node-set?)

The readonly() returns the readonly state of the node from the node-set which is first in document order. If the node-set is empty then the function returns false. If the argument is omitted, it defaults to a node-set with the context node as its only member. If the function is used in binding expressions or in a model binding expression then an xforms-compute-exception should be dispatched and processing terminated.

Example: how to use readonly()

<xforms:model>
  <xforms:instance>
    <data xmlns="" readonly="false">Data</data>
  </xforms:instance>
  <xforms:bind nodeset="/data" readonly="@readonly"/>
</xforms:model>
<xforms:repeat nodeset="*[not(readonly())]">
  <xf:input ref=".">
    <xf:label>All nodes that are readwrite:</xf:label>
  </xf:input>
</xforms:repeat>


The required() Function

boolean required(node-set?)

The required() returns the required state of the node from the node-set which is first in document order. If the node-set is empty then the function returns false. If the argument is omitted, it defaults to a node-set with the context node as its only member. If the function is used in binding expressions or in a model binding expression then an xforms-compute-exception should be dispatched and processing terminated.

Example: how to use required()

<xforms:model>
  <xforms:instance>
    <data xmlns="" required="false">Data</data>
  </xforms:instance>
  <xforms:bind nodeset="." required="boolean-from-string(@required)"/>
</xforms:model>
...
<xforms:value output="concat('element required is ', required(/data))"/>

User:Ebruchez