Hub Nexus
АвторАвтора пока нетВзять себе

Есть что улучшить? Предложите правку.

Поддержка

В издании XForms · страница 13 из 137

Motivation

There are three core concepts that you will learn in building XForms applications:

  • The model is a tree of data elements
  • The presentation is a tree of data elements
  • To build your form, these two trees need to be wired together - this is called "binding"

Many of the exercises in this cookbook give examples of this binding. This process is a small example of how this can work. In practice there are many ways to bind the user interface to the model.

Screen Image

The screen image is similar to input programs from a prior example. This example has two input fields for a person's first and last name and two output controls.

Sample Program

xmlns="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;

Your Title Here

xmlns="">

id="PersonGivenName" nodeset="/data/PersonGivenName"/>
id="PersonSurName" nodeset="/data/PersonSurName"/>

bind="PersonGivenName" incremental="true">
Input First Name:

bind="PersonSurName" incremental="true">
Input Last Name:

bind="PersonGivenName">
Output First Name:

bind="PersonSurName">
Output Last Name:

Discussion

Here are the two lines in the model that bind the data element paths to identifiers:

id="PersonGivenName" nodeset="/data/PersonGivenName"/>
id="PersonSurName" nodeset="/data/PersonSurName"/>

Note that bind uses nodeset, not ref to specify the path name to the leaf element in the instance document.

After this is done, each user interface element that inputs or outputs the data elements just adds the bind attribute:

>bind="PersonGivenName"**>

We should also note that in this case there is a single input and a single output for each data element. This does not need to be the case. A single input can be bound to many outputs and an output could also depend on many inputs. An example of this would be using the "calculate" attribute of the bind statement.

Bind attributes

Here are the following attributes of the bind element and a short description of how they are used:

type

  • Associate an instance variable with a specific XML Schema data type
  • Extend or restrict schema type definitions

relevant

  • Enabling or disable controls based on the values of data elements in the model

required

  • Conditionally make fields required based on the values of data elements in the model

readonly

  • Disable editing of fields based on model data elements such as role

constraint

  • Create complex schema constraints between two or more data elements
  • Set the limits of minimum or maximum values of a node-set

calculate

  • Creating computational dependency among data elements
  • Compute the value of new data elements based on other data elements
  • Enable spread-sheet like calculations within XForms

Where this page came from

This page was imported from Wikibooks. From “XForms” on Wikibooks, by its contributors, under CC BY-SA 4.0. Changed here: set as a page; navigation and edit links left out; each image under its own licence, credited in its caption.

Nobody has written it yet — it is the source material at a new address, which is why search engines are asked to skip it and why no one earns from it. It is up for grabs: take it on, and it is yours to rewrite and to earn from.

В изданияхXForms

ЯзыкиEnglish

Лицензия: CC BY-SA 4.0 · По материалам en.wikibooks.org

1

0

0

0

Spinner Logo

Комментарии

Spinner Logo
Версия: 2CC0 1.0 — public domain
The runaway star that left the Tarantula Nebula
Версия: 2CC0 1.0 — public domain
The Blackwell School, where segregation had no law behind it
Версия: 2CC0 1.0 — public domain
The Eagle Nebula, seen in the infrared
Версия: 2CC0 1.0 — public domain
The house where the Equal Rights Amendment was written
Версия: 2CC0 1.0 — public domain
The Aleutians, the forgotten front of the Second World War
Версия: 2CC0 1.0 — public domain
The Cosmic Cliffs are not cliffs