Occurrence value of an object

The square bracket ( [ ] ) notation denotes the occurrence value of an object.

In language-specific forms for Arabic, Hebrew, Thai, and Vietnamese, the reference syntax is always on the right (even for right-to-left languages).

Notation

[ ]

Example

To construct an occurrence value reference, place square brackets ( [ ] ) after an object name, and enclose within the brackets one of the following values:

  • [ n ] , where n is an absolute occurrence index number beginning at 0. An occurrence number that is out of range does not return a value. For example,

    xfa.form.form1.#subform.Quantity[3]

    refers to the fourth occurrence of the Quantity object.

  • [ +/- n ] , where n indicates an occurrence relative to the occurrence of the object making the reference. Positive values yield higher occurrence numbers, and negative values yield lower occurrence numbers. For example,

    xfa.form.form1.#subform.Quantity[+2]

    This reference yields the occurrence of Quantity whose occurrence number is two more than the occurrence number of the container making the reference. For example, if this reference was attached to the Quantity[2]object , the reference would be the same as

    xfa.template.Quantity[4]

    If the computed index number is out of range, the reference returns an error.

    The most common use of this syntax is for locating the previous or next occurrence of a particular object. For example, every occurrence of the Quantity object (except the first) might use Quantity[-1] to get the value of the previous Quantity object.

  • [*] indicates multiple occurrences of an object. The first named object is found, and objects of the same name that are siblings to the first are returned. Note that using this notation returns a collection of objects. For example,

    xfa.form.form1.#subform.Quantity[*]
  • This expression refers to all objects with a name of Quantity that are siblings to the first occurrence of Quantity found by the reference.

Using the tree for reference, these expressions return the following objects:

  • Subform_Page.Subform1[*] returns both Subform1 objects.

  • Subform_Page.Subform1.Subform3.TextField2[*] returns two TextField2 objects. Subform_Page.Subform1 resolves to the first Subform1 object on the left, and TextField2[*] evaluates relative to the Subform3 object.

  • Subform_Page.Subform1[*].TextField1 returns both of the TextField1 instances. Subform_Page.Subform1[*] resolves to both Subform1 objects, and TextField1 evaluates relative to the Subform1 objects.

  • Subform_Page.Subform1[*].Subform3.TextField2[1] returns the second and fourth TextField2 objects from the left. Subform_Page.Subform1[*] resolves to both Subform1 objects, and TextField2[1] evaluates relative to the Subform3 objects.

  • Subform_Page.Subform1[*].Subform3[*] returns both instances of the Subform3 object.

  • Subform_Page.* returns both Subform1 objects and the Subform2 object.

  • Subform_Page.Subform2.* returns the two instances of the NumericField2 object.

  • You can use the ‘ [ ] ’ (square bracket) syntax with JavaScript if it used with the resolveNode method.

// Ethnio survey code removed