eXforms - extending XForms 1.0

14 December 2006

This version:
http://exforms.org/extending.html
Editor:
David Landwehr, exforms.org

Status of this Document

The exf:requiredModules element is used to create compliant forms by combining the element with the mustUnderstand element from [XForms 1.0].

Table of Contents

1 Extension mechanism
    1.1 The exf:requiredModules Element
2 References
    2.1 Normative References

Appendix

A Acknowledgments (Non-Normative)


1 Extension mechanism

The [XForms 1.0] includes a mechanism to extend forms in a compliant way by using the mustUnderstand attribute. This specification uses this mechanism to extend forms with additional functionality in a conforming way by requiring an XForms processor to understand the exf:requiredModules element.

1.1 The exf:requiredModules Element

The exf:requiredModules element is used to create compliant forms by combining the element with the mustUnderstand element from [XForms 1.0].

Attributes:

modules

Required attribute of type xsd:list of xsd:QName specifying the extensions the model or page requires.

The extension mechanism works in the following way:

  • The exf:requiredModules must be included in an xforms:extension element. An author must specify the attribute xforms:mustUnderstand with the value true to ensure the processor will terminate processing if it does not support that element.

  • The modules attributes specifies the modules that the particular model or page requires to run the form. A module is defined by this specification for each extension as a QName.

  • If the exf:requiredModules element was specified in an xforms:extension element which is a descendant of a model then the processor is must disable that particular model when it is unable to process the required modules by disabling all form controls bound to that model. A processor may also terminate processing instead of disabling the model.

  • If the exf:requiredModules element was specified in an xforms:extension element outside of a model then the processor must understand all modules required. If a processor hasn't support for all required modules it must terminate processing.

Example: Example for how to use the exf:requiredModules
<xforms:model>
  <xforms:instance src="external.xml"/>
  <xforms:extension>
    <exf:requiredModules modules="" xforms:mustUnderstand="true"/>
  </xforms:extension>
</xforms:model>

2 References

2.1 Normative References

XForms 1.0
XForms - Version 1.0, John M. Boyer, David Landwehr, Roland Merrick, T. V. Raman, Micah Dubinko, Leigh L. Klotz, Jr., 2006. W3C Recommendation available at: http://www.w3.org/TR/xforms/.
XML Events
XML Events - An events syntax for XML, Steven Pemberton, T. V. Raman, Shane P. McCarron, 2002. W3C Recommendation available at: http://www.w3.org/TR/xml-events/.
XPath 1.0
XML Path Language (XPath) Version 1.0, James Clark, Steve DeRose, 1999. W3C Recommendation available at: http://www.w3.org/TR/xpath.
XML Schema part 1
XML Schema Part 1: Structures, Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, 2001. W3C Recommendation available at: http://www.w3.org/TR/xmlschema-1/.
XML Schema part 2
XML Schema Part 2: Datatypes, Paul V. Biron, Ashok Malhotra, 2001. W3C Recommendation available at: http://www.w3.org/TR/xmlschema-2/.
RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, 1997. Available at http://www.ietf.org/rfc/rfc2119.txt.

A Acknowledgments (Non-Normative)

eXforms.org would like to thank the following for their contributions in creating the extensions:

  • David Landwehr, exforms.org / SolidApp
  • Kenneth Sklander, picoforms.com
  • Allan Beaufour, beaufour.dk