Inproceedings,

Generating User Interfaces from Composite Schemas

, and .
Proceedings of XML 2003, Philadelphia, Pennsylvania, (December 2003)

Abstract

Many web applications collect and manipulate user input as XML documents, usually by receiving input through forms. It is natural to think of a schema for a document created by the form to be the specification for the application's user interface. This schema defines the structure and type information for the documents moving in and out of the application. Incoming documents may be treated differently by the application depending on whether they conform to a schema. Because W3C XML Schema is itself an XML vocabulary, XML Schema files can be transformed using XSLT into any number of target formats: HTML, XML, text, etc. Our goal was to transform XML Schemas into XForms user interfaces. By doing so we tie the user experience of the application directly to the application's data model. Changes in the data model are reflected in the user interface via a "push of a button", thus eliminating the need for tedious rewriting of presentation code. There have been other efforts to construct interfaces from XML Schemas, but most of those we found are limited by the types of schemas they could consume. For instance, many make assumptions that there will be no named global types, or neglect imported types and extension. To be truly generic, a schema processor should be able to identify and process types and elements from any imported schema. It should be able to recognize when a type is extending or restricting another type, and locate, in any namespace, the parent type to process its content model as well. A generic processor also must be able to handle different schema encoding styles, such as Venetian Blind or Garden of Eden. This paper will address some of the key design and implementation issues we addressed to create a generic XSD to XForms processor. We will then outline how the processor is being used today, and how it might be improved in the future.

Tags

Users

  • @dret
  • @neilernst

Comments and Reviews