XForms

XForms is an XML format used for collecting inputs from web forms. XForms was designed to be the next generation of HTML / XHTML forms, but is generic enough that it can also be used in a standalone manner or with presentation languages other than XHTML to describe a user interface and a set of common data manipulation tasks.

XForms 1.0 (Third Edition) was published on 29 October 2007. The original XForms specification became an official W3C Recommendation on 14 October 2003, while XForms 1.1, which introduced a number of improvements, reached the same status on 20 October 2009.

Differences from web forms

In contrast to the original web forms (originally defined in HTML), the creators of XForms have used a model–view–controller (MVC) approach. The model consists of one or more XForms models describing form data, constraints upon that data, and submissions. The view describes what controls appear in the form, how they are grouped together, and what data they are bound to. CSS can be used to describe a form's appearance.

An XForms document can be as simple as a web form (by only specifying the submission element in the model section, and placing the controls in the body), but XForms includes many advanced features. For example, new data can be requested and used to update the form while it is running, much like using XMLHttpRequest/AJAX except without scripting. The form author can validate user data against XML Schema data types, require certain data, disable input controls or change sections of the form depending on circumstances, enforce particular relationships between data, input variable length arrays of data, output calculated values derived from form data, prefill entries using an XML document, respond to actions in real time (versus at submission time), and modify the style of each control depending on the device they are displayed on (desktop browser versus mobile versus text only, etc.). There is often no need for any scripting with languages such as JavaScript. However, XForms does include an event model and actions for implementing more complex form behaviors.[1] Actions and event handling are specified using the XForms XML dialect rather than more common scripting languages like JavaScript.

Like web forms, XForms can use various non-XML submission protocols (multipart/form-data, application/x-www-form-urlencoded), but a new feature is that XForms can send data to a server in XML format. XML documents can also be used to prefill data in the form. Because XML is a standard, many tools exist that can parse and modify data upon submission. Similar tools for legacy forms also exist. XForms is itself an XML dialect, and therefore can create and be created from other XML documents using XSLT. Using transformations, XForms can be automatically created from XML schemas, and XForms can be converted to XHTML forms.

Software support

At the time of this writing, no widely used web browser supports XForms natively. However, various browser plugins, client-side extensions and server/client solutions exist. The following lists some implementations:

  • The Firefox XForms extension was part of the Mozilla Project.[2] XForms 1.0 SE support is not complete but covers most of the specification with a notable exception of attribute-based repeating used in HTML tables. The extension was available for both Firefox 2 and Firefox 3, but is not upgraded to support Firefox 4 and higher. In July 2011 the lead developer wrote that XForms support would no longer get updated.[3] Support for XForms was eventually deprecated in Firefox 19.[4]
  • IBM Lotus Forms supports development and deployment of XForms-based pure XML forms. Trial downloads are available of an Eclipse-based visual design environment and a client-side viewer that can run XForms-based forms both in the web browser and as a standalone desktop application.
  • OpenOffice.org versions 2.0 and greater and LibreOffice support XForms.[5][6]

Implementation technologies compared

FormFaces, AJAXForms, XSLTForms, betterFORM, Chiba, Orbeon and Smartsite Forms are based on Ajax technology. The amount of server-side and client-side processing varies between these implementations. For example, Ubiquity XForms, FormFaces and XSLTForms provide 100% XForms client-side processing and data model updates via pure Ajax processing on the XForms standard. The others use server-side Java/.NET XForms processing transcoding to Ajax markup prior to delivering the content to the browser. Both techniques can work across browsers. Each implementation is significantly different with respect to dependencies, scalability, performance, licensing, maturity, network traffic, offline capability, and cross browser compatibility. System architects should evaluate these constraints against their needs to determine potential risks and objectives.

Plugins like FormsPlayer and other client-side technology can have some benefits as well: because they integrate themselves into the browser, they will work with existing server architectures, can be more responsive, and require fewer server fetches.

The tradeoff between server-side and client plug-in solutions is where the software is maintained; either each client must install the required plug-in, or the server architecture must change to accommodate the XForms transcoder engine language technology. It is in theory possible to mix both of these solutions, for instance testing the browser for a client-side XForms implementation and serving native XForms in that case, and defaulting to a server solution in other cases.

Ubiquity XForms, FormFaces and XSLTForms provide a "zero software" solution on either the client or server: no new software needs to be installed on the client and the solution can be used in conjunction with any server-side architecture. This is possible because FormFaces and Ubiquity XForms are written 100% in Ajax and because XSLTForms is written in XSLT and in Ajax. The tradeoff is that compared to other solutions, more code is initially downloaded to the client (code can be cached on the client), and FormFaces does not yet support XML Schema validation. Furthermore, XForms submissions with replace "all" behaviour will typically not result in true page replacements and therefore break the normal back button behaviour.

XRX application architecture

Because XForms makes it easy to edit complex XML data there are many advantages to using XForms with native XML databases that frequently leverage REST interfaces. The combination of three technologies (XForms on the client, REST interfaces and XQuery on the server) is collectively known as XRX application development. XRX is known for its simple architecture that uses XML both on the client and in the database and avoids the transformations to object or relational data structures. See "XRX:Simple, Elegant, Disruptive".

XForms for mobile devices

Benefits

XForms provides specific benefits when used on mobile devices:

  • User interfaces using XForms require fewer round trips with the server and are in that sense more self-contained than user interfaces using HTML 4 forms.
  • Capabilities of mobile devices vary greatly; consequently the amount of the work involved in generating different user interfaces for different devices is of particular concern in the mobile world. XForms has been designed from the ground up to allow forms to be described independently of the device, which reduces the amount of work required to target multiple devices.
  • XForms reduces the need for JavaScript, which is particularly interesting as JavaScript support varies greatly on mobile devices and cannot be widely relied upon. This also allows systems on which JavaScript is disabled for security concerns to continue to operate flawlessly.

Implementations

Enketo

Enketo is an in-browser XForms client built using javascripts.

Xfolite

Xfolite is a light-weight XForms client for the J2ME platform. It was originally created at Nokia Research Center, and it includes a DOM and XPath 1.0 implementation as well as an XForms engine that implements the XForms 1.1 specification almost completely. XFolite was released as beta software and should not be considered ready for production use as such. However, it does contain a mature XForms engine that has been designed to work with different UI implementations. XML Schemas and CSS are outside project scope, however. Xfolite is open source and licensed under the LGPL license, but is not being actively developed further.

JavaRosa

JavaRosa is an XForms client written in Java Mobile Edition (J2ME), and supports a wide array of devices, from top-end smart phones and PDAs with large screens and abundant memory, to low-end devices like the Nokia 6085 and 2630. Making JavaRosa usable on low-resource devices is one of the project's highest priorities. JavaRosa 1.0 Alpha was released in September 2010.

ODK Collect

ODK Collect is part of the Open Data Kit, and is an XForms client for Android devices. The client displays XForm in sequential order obeying form logic, entry constraints, and repeating sub-structures. Users work through the prompts and save the submission as completed or partially completed (allowing later revision), and can record pictures as well as their location using the phone's built-in camera and GPS device, respectively.

Group Complete

Group Complete is a mobile data collection system that includes Group Complete Mobile (GC Mobile), an XForms client for Android devices. GC Mobile provides an interface to create XForms on the mobile device as well as XForms data entry with capabilities similar to ODKCollect. Forms and data are stored in CouchDB databases allowing mobile workers to make changes to forms and data while offline, collaborate on data entry and share collected data with team members and backoffice data consumers in real-time. Group Complete is compatible with all major ODK systems. Group Complete was discontinued as of March 2012 [7] and the code released in February 2013 as open source.[8]

See also

References

  1. ^ Pemberton, Steven (June 2014). "Live XML Data". XML London 2014: 96–102. doi:10.14337/XMLLondon14.Pemberton01. ISBN 978-0-9926471-1-7.
  2. ^ Mozilla: Mozilla XForms Project - Download. Accessed 2013-03-12.
  3. ^ Philipp Wagner: The Future of Mozilla XForms, 13 July 2011
  4. ^ Mozilla Developer Network (MDN): XForms. Accessed 2013-03-12.
  5. ^ Apache OpenOffice: User Manual/Writer Guide/XForms. Accessed 2013-03-12.
  6. ^ The Document Foundation: XML Form Documents (XForms). Accessed 2013-03-12.
  7. ^ Group Complete website announcement, 03/2012
  8. ^ Group Complete blog announcement, 02/2013

External links

Comparison of layout engines (XHTML)

The following tables compare XHTML compatibility and support for a number of layout engines.

Only XHTML 1.1 is considered. XHTML 1.1 is necessarily XHTML 1.0 Strict with more elements and attributes deprecated. XHTML 2.0 was a working draft with no layout engine support, but work on it was abandoned in 2009 in favor of work on HTML5 and XHTML5. XHTML 1.0 and HTML 4 (both served with text/html) are covered in comparison of layout engines (HTML). The comparison of XML capabilities are covered in comparison of layout engines (XML).

Compound Document Format

Compound Document Format (CDF) is a set of W3C candidate standards describing electronic compound document file formats that contains multiple formats, such as SVG, XHTML, SMIL and XForms.

The core standards are the Web Integration Compound Document and the Compound Document by Reference Framework (CDR). As of August 19, 2010, the Compound Document Format working group has been closed, and W3C's development of the standard discontinued.

Dave Raggett

Dave Raggett is an English computer specialist who has played a major role in implementing the World Wide Web since 1992.

He has been a W3C Fellow at the World Wide Web Consortium since 1995 and worked on many of the key web protocols, including HTTP, HTML, XHTML, MathML, XForms, and VoiceXML.

Raggett also wrote HTML Tidy and is currently pioneering W3C's work on the Web of Things. He lives in the west of England.

EXtensible Tag Framework

eXtensible Tag Framework is a framework for implementing new XML elements for Mozilla. The framework allows Mozilla to support a new XML dialect without modifying the Gecko rendering engine. In fact, support of XForms can now be added via the installation of Mozilla extension [1].

Extensible Forms Description Language

Extensible Forms Description Language (XFDL) is a high-level computer language that facilitates defining a form as a single, stand-alone object using elements and attributes from the Extensible Markup Language (XML). Technically, it is a class of XML originally specified in a World Wide Web Consortium (W3C) Note. See Specifications below for links to the current versions of XFDL. XFDL It offers precise control over form layout, permitting replacement of existing business/government forms with electronic documents in a human-readable, open standard.

In addition to precision layout control, XFDL provides multiple page capabilities, step-by-step guided user experiences, and digital signatures. XFDL also provides a syntax for in-line mathematical and conditional expressions and data validation constraints as well as custom items, options, and external code functions. Current versions of XFDL (see Specifications below) are capable of providing these interactive features via open standard markup languages including XForms, XPath, XML Schema and XML Signatures.XFDL not only supports multiple digital signatures, but the signatures can apply to specific sections of a form and prevent changes to signed content.

These advantages to XFDL led large organizations such as the United States Army and Air Force to migrate to XFDL from using forms in other formats. Later, though, the lack of portable software capable of creating XFDL led them to investigate moving away from it. The Army migrated to Adobe fillable PDFs in 2014.

FormFaces

FormFaces is a pure JavaScript XForms processor.This means that XForms+HTML can be sent directly to the browser where JavaScript translates XForms controls into regular HTML form controls and processes the bindings directly within the browser. FormFaces is compatible with browsers that implement XHTML 1.0, ECMAScript-262 3rd Edition, and DOM Level 2 which includes Internet Explorer, Mozilla, Firefox, Opera, Konqueror, Safari, and NetFront.FormFaces has been useful in rendering XForms in web browsers where the browsers did not support the XForms standard fully.

GTK-server

GTK-server is an open-source project released under the GNU General Public License. The GTK-server project aims to bring Graphical User Interface programming to any interpreted language using the GIMP Tool Kit (GTK) or XForms.

IBM Lotus Forms

IBM Forms is a suite of products by IBM's Lotus Software division that interact to develop and deliver data-driven, XML-based electronic forms (e-forms) to end-users. IBM Forms consists of a server, designer, and client viewer that enable creation, deployment, and streamlining of forms-based processes. IBM Forms originally used Extensible Forms Description Language (XFDL) as the format for its electronic forms, and it has gradually added XForms to XFDL as that standard has matured.

With IBM Forms, organizations can use electronic forms to gather information from users and transmit that information to other systems. IBM Forms can be used as the front-end for business processes such as opening a new account. When a customer enters their information into a form and submits it for processing, their information could pass into a workflow application (such as FileNet or WebSphere Business Integration), a database (such as DB2 Universal Database or DB2 Content Manager), or any other type of application or process.

There are four IBM Forms products:

IBM Forms Server serves e-forms to web browsers and provides an API and platform to integrate e-forms with other business processes.

IBM Forms Designer provides a WYSIWYG environment within Eclipse for designing e-forms.

IBM Forms Viewer is a rich client that allows users to interact with e-forms online and offline.

IBM Forms Turbo allows users to create, deploy, fill and perform basic reports on eForms using a Web browser.

Intelligent document

Intelligent documents are electronic documents with more functionality than a page designed to emulate paper. Formats include PDF from Adobe, InfoPath from Microsoft, and XForms from W3C. Each is based on using XML as a format for data.

Intelligent documents are essentially interactive electronic documents. Intelligent documents include forms that change on request, personalized web pages, and personalised presentations. They usually require web access and server software.

Intelligent documents are used to help automate business processes, improve customer service, and reduce costs. Intelligent documents are also being used by marketing firms to target consumers more precisely. Programming marketing documents with customer data helps to improve customer loyalty, increase response rates, reduce marketing costs, and build brand recognition.

Some examples would be online shopping sites or free email services which usually use AJAX technology to add "intelligence" to its documents. Other more document-centric examples include commercial lending or leasing documents where, by the transactional nature, they can be automated using an assembly line approach with the logic and data embedded directly into the document.

The future of the intelligent document includes tight integration with "meaning-based computing", allowing intelligent completion of forms with recommendations on subject-matter experts and related documents as well as dynamic regeneration based on rules or logic.

Today's more advanced document automation systems allow users to create their own data and rules (logic) without the need for programming.

List box

A list box is a graphical control element that allows the user to select one or more items from a list contained within a static, multiple line text box. The user clicks inside the box on an item to select it, sometimes in combination with the ⇧ Shift or Ctrl in order to make multiple selections. "Control-clicking" an item that has already been selected, unselects it.

A list box is called select or select1 in the XForms standard. Select is used for allowing the user to select many items from a list whereas select1 only allows the user to select a single item from a list.

MXML

MXML is an XML-based user interface markup language first introduced by Macromedia in March 2004. Application developers use MXML in combination with ActionScript to develop rich Internet applications, with products such as Apache Flex.

Adobe Systems, which acquired Macromedia in December 2005, gives no official meaning for the acronym MXML. Some developers suggest it should stand for "Magic eXtensible Markup Language" (which is a backronym). It is likely that the name comes from the MX suffix given to Macromedia Studio products released in 2002 and 2004, or simply "Macromedia eXtensible Markup Language".

MXML is used mainly to declaratively lay out the interface of applications and can also be used to implement business logic and internet application behaviors. It can contain chunks of ActionScript code, either when creating the body of an event handler function, or with data binding where the curly braces ({) syntax is used.

MXML is often used with Flex Server, which dynamically compiles it into standard binary SWF files. However, the Adobe Flash Builder IDE (formerly Adobe Flex Builder) and free Flex SDK can also compile MXML into SWF files without the use of a Flex Server.

There is also a PHP PEAR package called XML_MXML, which is a framework to build Adobe Flex applications.

MXML is considered a proprietary standard due to its tight integration with Adobe technologies. It is like XAML in this respect. No published translators exist for converting an MXML document to another user interface language such as UIML, XUL, XForms, XAML, or SVG. However, there do exist third party vendor plugins for Flex Builder that are capable of generating a result other than a SWF file from Flex applications, for instance native mobile applications.

Mark Overmars

Markus Hendrik Overmars (Dutch pronunciation: [ˈmɑrkɵs ˈɦɛndrɪk ˈmɑrk ˈoːvərˌmɑrs]; born 29 September 1958 in Zeist, Netherlands) is a Dutch computer scientist and teacher of game programming known for his game development application Game Maker. Game Maker lets people create computer games using a drag-and-drop interface. He is the former head of the Center for Geometry, Imaging, and Virtual Environments at Utrecht University, in the Netherlands. This research center concentrates on computational geometry and its application in areas like computer graphics, robotics, geographic information systems, imaging, multimedia, virtual environments, and games.

Overmars received his Ph.D. in 1983 from Utrecht University under the supervision of Jan van Leeuwen, and has since been a member of the faculty of the same university. Overmars has published over 100 journal papers, largely on computational geometry, and is the co-author of several books including a widely used computational geometry text.

Overmars has also worked in robotics. He was the first to develop the probabilistic roadmap method in 1992, which was later independently discovered by Kavraki and Latombe in 1994. Their joint paper, Probabilistic roadmaps for path planning in high-dimensional configuration spaces, is considered one of the most influential studies in motion planning, and has been widely cited (more than 2500 times as of 2014 according to Google Scholar).In 2011, Overmars and game designer Jochem Schut developed a snake video game called Super Snake HD as a mobile app; it was published by YoYo Games.Overmars founded and is CTO of Tingly Games in 2012. Tingly focuses on HTML5 games and e-cards / casual games, the latter of which is called "greeting games".He is also the original author of the XForms toolkit.

Steven Pemberton

Steven Pemberton (born 19 February 1953) is a researcher in the Distributed and Interactive Systems group at the Centrum Wiskunde & Informatica (CWI), the national research institute for mathematics and computer science in the Netherlands.Pemberton served as a contributing author of HTML 4.0 and HTML 4.01 as well as chair of the W3C HTML Working Group and contributing author during the specification of XHTML 1.0. These web standards defined the W3C recommended formats of world wide web content for over 15 years starting in 1997. Pemberton also served as chair of the XHTML 2 working group until the conclusion of its charter at the end of 2009, after which work on the XML version of HTML was subsumed under the specification of HTML 5Pemberton has also served as a contributing author of Cascading Style Sheets (CSS) specifications, Level 1, Level 2, and Level 3. Since 1998, CSS has been a cornerstone World Wide Web technology, along with HTML and JavaScript.From 2000-2007, Pemberton served as co-chair of the W3C Forms Working Group. He was a co-author of the XForms 1.0, XML Events, and XForms 1.1 W3C Recommendations. During this time, he was also a member of the RDFa taskforce. Starting in 2010, he was reappointed as co-chair of the W3C Forms Working Group, and he has continued since 2015 as a member of the W3C XForms Users Community Group.In addition to his substantial contributions to web standards, Pemberton was also one of the developers of the ABC programming language and of the Views System, an open-architecture user interface system and application environment. He also implemented ALGOL 68 for the Manchester MU5 Computer.Pemberton was editor-in-chief of SIGCHI Bulletin from 1993 to 1999 and of ACM Interactions from 1998 to 2004.

In 2009 Pemberton was awarded the CHI Lifetime Service Award by SIGCHI.

XForms (toolkit)

XForms is a GUI toolkit based on Xlib for the X Window System. It features a rich set of objects, such as buttons, scrollbars, and menus etc. In addition, the library is extensible and new objects can easily be created and added to the library.

Distributed under the GNU Lesser General Public License, XForms is a free software.

XForms was based on the Forms Library by Mark Overmars, converted from IRIS GL (a precursor to OpenGL that also included calls to create windows and manage events) to X11. A similar conversion was used to make the first versions of FLTK, so all these toolkits are distantly related.

The toolkit was originally used by the Xfce desktop environment before the switch to the GTK+ toolkit.

XML Events

In computer science and web development, XML Events is a W3C standard for handling events that occur in an XML document. These events are typically caused by users interacting with the web page using a device, such as a web browser on a personal computer or mobile phone.

XPath

XPath (XML Path Language) is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML document. XPath was defined by the World Wide Web Consortium (W3C).

XQuery and XPath Data Model

The XQuery and XPath Data Model (XDM) is the data model shared by the XPath 2.0, XSLT 2.0, XQuery, and XForms programming languages. It is defined in a W3C recommendation. Originally, it was based on the XPath 1.0 data model which in turn is based on the XML Information Set.

The XDM consists of flat sequences of zero or more items which can be typed or untyped, and are either atomic values or XML nodes (of seven kinds: document, element, attribute, text, namespace, processing instruction, and comment). Instances of the XDM can optionally be XML schema-validated.

XRX (web application architecture)

In software development XRX is a web application architecture based on XForms, REST and XQuery. XRX applications store data on both the web client and on the web server in XML format and do not require a translation between data formats. XRX is considered a simple and elegant application architecture due to the minimal number of translations needed to transport data between client and server systems. The XRX architecture is also tightly coupled to W3C standards (CSS, XHTML 2.0, XPath, XML Schema) to ensure XRX applications will be robust in the future. Because XRX applications leverage modern declarative languages on the client and functional languages on the server they are designed to empower non-developers who are not familiar with traditional imperative languages such as JavaScript, Java or .Net.

Xfce

Xfce or XFCE (pronounced as four individual letters) is a free and open-source desktop environment for Unix-like operating systems such as Linux and BSD.

Xfce aims to be fast and lightweight while still being visually appealing and easy to use. Xfce embodies the traditional Unix philosophy of modularity and re-usability. It consists of separately packaged parts that together provide all functions of the desktop environment, but can be selected in subsets to suit user needs and preference. Another priority of Xfce is adherence to standards, specifically those defined at freedesktop.org.

Products and
standards
Organizations
Software
Conferences

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.