XFDL items

An item is a single object in a page of a form. Some items represent GUI widgets, such as buttons, check boxes, popup lists, and text fields. Other items are used to carry information such as attached word processing documents or digital signatures.

Each item must have a sid attribute, which provides a scope identifier that uniquely identifies the item from among all child items of its parent element.

An item can contain zero or more option elements. The options define the characteristics of the item, and many take default values if not defined. XForms user interface controls appear as options of XFDL items, and the XFDL item is said to be the skin of the XForms form control that it contains.

[12]			<!ELEMENT %items; (%options;*)>
[13]			<!ATTLIST %items; sid CDATA #REQUIRED>

XFDL allows elements in custom namespaces to appear at the item level (as long as they contain an xfdl:sid attribute). To define the items available in the XFDL namespace, the parameter entity reference to "%item;" could be defined partially as:

[14]			<!ENTITY % items "(action | box | button | check | checkgroup |
    			combobox | data | field | label | line | list | pane | popup |
    			radiogroup | richtext | signature | slider | spacer | table | toolbar)">

The details of each type of item listed in the rule are discussed elsewhere, but are summarized here for your convenience.

action
A non-visible item that can perform similar tasks to a button (print, cancel, submit, and so on) either after a certain period of time or with a regular frequency.

Skin for: <xforms:submit>, <xforms:trigger>

box
An item that provides a graphic effect used to visually group a set of the GUI widgets on the page. A box is drawn under all widgets on a page. This item is useful in some circumstances, but it is usually better to use a pane item (see the following) to both visually and logically group related user interface elements.
button
Performs one of a variety of tasks when pressed by the user, such as saving, printing, canceling, submitting, digitally signing the form, viewing documents enclosed in the form, and so on. A button can have a text or image face.

Skin for: <xforms:submit>, <xforms:trigger>, <xforms:upload>

check
Defines a single check box.

Skin for: <xforms:input>

checkgroup
Defines a group of check boxes that operate together to provide a multiselection capability.

Skin for: <xforms:select> with appearance="full", <xforms:select1> with appearance="full"

combobox
An edit field combined with a popup list; its value can be either selected or typed.

Skin for: <xforms:select1> with appearance="minimal" and selection="open" (select or type input), <xforms:input> (date selector)

data
Used to carry binary information using base-64 encoding and compression, such as enclosed files or digital images, using base-64 encoding. This item appears when advanced XFDL enclosure mechanisms are used. When a basic <xforms:upload> is used, the data appears in an <xforms:instance> data node.
field
Used to capture single- or multiple-line textual input from the user; it includes input validation and formatting features as well as enriched text capabilities.

Skin for: <xforms:input> (single-line text), <xforms:secret> (single-line, write-only), <xforms:textarea> (for multiline plain text or enriched text)

label
Shows either an image or a single or multiple line text value.

Skin for: <xforms:output>

line
A simple graphic effect used as a separator.
list
Shows a list box populated with choices from which the user may select one.

Skin for: <xforms:select> with appearance="compact", <xforms:select1> with appearance="compact"

pane
Provides an hierarchic grouping capability for other items that are defined within the content of the pane. Also, may provide the ability to switch between multiple groupings.

Skin for: <xforms:group>, <xforms:switch>

popup
Shows either the text of the currently selected choice or a label if there is no selection; the popup provides a small button that causes the list of selectable choices to appear, from which the user may select one.

Skin for: <xforms:select1> with appearance="minimal"

radiogroup
Defines a group of radio buttons. Initially none may be selected, but a maximum of one radio button can be selected within the group.

Skin for: <xforms:select1> with appearance="full"

richtext
Defines a rich text message to display on the form.

Skin for: <xforms:output>

signature
Receives the signature that ultimately results when a user presses a signature button.

slider
Creates a sliding control, similar to a volume control, that lets the user set a value within a specific range.

Skin for: <xforms:range>

spacer
An invisible GUI widget that facilitates spacing in the relational positioning scheme.
table
Provides a template of XFDL items that are to be duplicated according to the amount of data available to be displayed. This item provides the ability to dynamically adjust the form rendition based on the amount of data and the amount of changes to that data.

Skin for: <xforms:repeat>

toolbar
Items associated with a toolbar item appear in a separate window pane before the pane for the form page; it is the typical location for page switching and other buttons as its contents are not printed if the form is rendered on paper.
Note: The parameter entity %items is not intended as a formal definition of the content model of a page (after the global element). It is only intended to present the list of items. The items could be explicitly namespace qualified with a prefix bound to the XFDL URI (given in Rule 1). Moreover, XFDL permits form authors to intersperse custom elements among the items as long as those elements have a 'sid' attribute in the XFDL namespace. Custom elements can be used, for example, to carry complex instructions and logic for server-side components. While simple static application-specific information could be represented with XML processing instructions, many server side applications (e.g. workflow and database requests) require complex instructions that can include the use of the XFDL compute system to collect information from around the form. For more information, see <custom_option>.