|Table of Contents||Prev||Next||Bottom|
Quick Table of Contents
|4 Document Structure
4.1 The XForms Namespace
4.2 Horizontally Applicable Markup
4.3 XForms Head Elements
4.4 XForms and XLink
4.4.1 XLink Conformance and Examples
The XForms specification is an application of XML [XML 1.0], and has been designed for use within other XML vocabularies, in particular XHTML [XHTML 1.0]. This chapter discusses the structure and high-level features of XForms that allow this specification to be used with other document types.
The XForms namespace has the URI:
http://www.w3.org/2001/12/xforms. Any future Working Drafts are expected to
use a different identifier, though a final identifier will
be allocated before XForms becomes a W3C Recommendation.
XForms Processors must use the XML namespaces mechanism [XML Names] to recognize elements and attributes from this namespace.
For cases when a particular element needs to be referred to
from another context, every element in the XForms namespace has declared an
id of type
xsd:ID in the Schema for XForms.
Foreign-namespaced attributes are allowed on any XForms element. The XForms Processor must ignore any foreign-namespaced elements or attributes that are unrecognized.
Except where specifically allowed by the Schema for XForms, foreign-namespaced elements are not allowed as content of elements in the XForms namespace.
model is used as a container for other
XForms elements, embedded in the head
section of other document types such as XHTML. A single
containing document may
contain any number of
<model id = xsd:ID > <!-- Content: instance?, schema?, (privacy|submitInfo|bind|action|extension)* --> </model>
id = xsd:ID - Optional unique identifier used to refer to this particular
<model xmlns="http://www.w3.org/2001/12/xforms" id="Person"> <instance xlink:href="http://example.com/cgi-bin/get-instance" /> <schema xlink:href="Schema-Questionnaire.xsd" /> ... </model>
instance is used to define initial instance data. The
instance data may be defined inline or obtained from a external URI.
<instance xlink:href = xsd:anyURI > <!-- Content: (##other) --> </instance>
xlink:href = xsd:anyURI - Optional link to externally defined instance data
The content of the
instance element is arbitrary XML in any
namespace other than the XForms namespace. Authors must ensure that proper
namespace declarations are used for content within the
schema is used to define the
schema portion of the XForms Model. The
schema information may be defined inline or
obtained from an external URI.
<schema xlink:href = xsd:anyURI > <!-- Content: ##other (though typically <xsd:schema>) --> </schema>
xlink:href = xsd:anyURI - Optional link to an externally defined XForms Model.
submitInfo provides information on how, where and
what to submit .
<submitInfo (single node binding attributes) action = xsd:anyURI mediaTypeExtension = "none" | qname-but-not-ncname : "none" method = "post" | "get" | qname-but-not-ncname : "post" version = xsd:NMTOKEN indent = xsd:boolean encoding = xsd:string mediaType = xsd:string omitXMLDeclaration = xsd:boolean standalone = xsd:boolean CDATASectionElements = list of xsd:QName replace = "all" | "instance" | "none" | qname-but-not-ncname : "all" > <!-- Content: (##empty) --> </submitInfo>
single node binding attributes - optional selector enabling submission of a portion of the instance data
action - Required destination for submitted instance data.
mediaTypeExtension - Optional information, additional to the mediaType, describing the serialization format.
method - Optional indicator as to the protocol to be used to deliver the serialized instance data.
version - corresponds to the
indent - corresponds to the
encoding - corresponds to the
mediaType - corresponds to the
omitXMLDeclaration - corresponds to the
standalone - corresponds to the
CDATASectionElements - corresponds to the
replace - specifier for how the information returned after submit should be applied.
Many of these attributes correspond to XSLT attributes [XSLT].
Note that the XSLT attributes
doctype-public are not
supported in XForms processing.
Note also that
mediaTypeExtension is useful in cases where a media type alone is not sufficiently
precise. For instance, a SOAP envelope would not be adequately described simply by "text/xml", additional
information would be required.
bind is defined at 6 Constraints.
privacy is used to associate a P3P
[P3P 1.0] policy reference with a particular form.
<privacy xlink:href = xsd:anyURI > <!-- Content: (##empty) --> </privacy>
xlink:href = xsd:anyURI - Optional link to an externally defined P3P policyref file (not an actual policy).
Defined at 9.16 action.
Defined at 188.8.131.52 extension.
XForms use XLink [XLink] features for linking, or defining an explicit relationship between resources (or portions of resources), which may be either local or remote.
To that end, the XForms schema references
the XLink namespace with
sensible defaults.Other than
attributes, form authors in most cases will not be required to explicitly write
XLink-specific elements or attributes.
All XLinks in XForms are simple links. For further details, see 4.4.1 XLink Conformance and Examples.
An XForms processor is not required to implement full
XLink—correct behavior of the
xlink:href attribute (as defined
in this chapter) is sufficient. For example, an XForms Processor must accept
and correctly process the schema in both of the following:
<xforms:model> <xforms:schema xlink:href="URI-to-remote-schema.xsd" /> </xforms:model>
<xforms:model> <xforms:schema> <xsd:schema ...> <!-- Content: ... --> </xsd:schema> </xforms:schema> </xforms:model>
This second example is unusual in that the
element defaults an attribute
xlink:type="simple" but lacks an
xlink:href attribute to make the link
meaningful. In this situation, the XForms Processor should switch from
simple mode to
none mode for the element lacking attribute
compatibility with XLink, the second example should be explicitly authored as
<xforms:model> <xforms:schema xlink:type="none"> <xsd:schema...> <!-- Content: ... --> </xsd:schema> </xforms:schema> </xforms:model>
Manual override of the
If both inline content and external reference is provided, a processor must use the external reference and ignore the inline content.
|Table of Contents||Top|