signinstance

Specifies what XForms instance data is filtered for a particular signature. Filtering instances means keeping or omitting specific data from each data instance.

When instance data is omitted from a signature but the associated user interface elements are signed, the user can still enter data into those elements. Furthermore, the overlap and layout tests are not performed on those items. This leaves them free to change certain characteristics, such as size (for expanding tables or fields), to accommodate the user input. This facilitates signing the presentation layer of a form while leaving the actual data open to change.

Syntax

   <signinstance>
      <filter>instance filter</filter>
      <dataref1>
         <model>model ID</model>
         <ref>XPath</ref>
      </dataref>
      ...
      <datarefn>
         ...
      </dataref>
   </signinstance>
Note: There may be any number of group reference entries.
Table 1. signinstance parameters
Parameter Type Description
instance filter keep include groups of cells in the group reference list with the signature
  omit omit groups of cells in the group reference list from the signature; include those not in the list
model ID string The ID of the <xforms:model> that the contains the data you want to filter. Set to empty to default to the first model in the form.
XPath XPath An XPath reference to the root node of the data you want to filter. All children of this node are filtered in the same manner.

This reference is evaluated relative to the root node of the first instance in the model.

Available in

button, signature

Example

The following code shows an XForms model for a purchase order:

   <xforms:model>
      <xforms:instance id="po" xmlns="">
         <po>
            <order>
            <row>
               <product/>
               <unitCost>0</unitCost>
               <qty></qty>
               <lineTotal></lineTotal>
            </row>
            </order>
            <subtotal>0</subtotal>
            <tax>0</tax>
            <total>0</total>    
         </po>
      </xforms:instance>
      <xforms:instance id="temps" xmlns="">
         <root>
            <productCode/>
            <submitting>false</submitting>
         </root>
      </xforms:instance>
   </xforms:model>

In this case, you might want to omit the temporary information that is stored in the temps instance. To do this, you would use the following filter:

   <signinstance>
      <filter>omit</filter>
      <dataref>
         <model></model>
         <ref>instance('temps')</ref>
      </dataref>
   </signinstance>

Usage details

  1. Default: omit nothing (keep instance data)
  2. Avoid using other signature filters with signinstance except when absolutely necessary. Because signed items still accept input so long as the associated data elements are not signed, you do not need to worry about filtering most user interface elements out of the signature. However, you must still omit some elements, such as additional signature buttons, signature items, data items, and the triggeritem option.