Requirements

Notes:

1. Some requirements below are taken from "XML Processing Model
Requirements" (5 April 2004) [1]. Our intention is to emphasis the
importance of some requirements mentioned in [1] by including them
here. Requirements 1 to 5 below fall in this category and some of the
wording has been modified.
2. The list below is numbered to make it easier to reference a
particular requirement. The position in the list does not reflect the
importance of a given requirement.
3. The make the discussion easier in this working group, we should
agree on a common vocabulary and come up with a set of definitions
sooner than later. For the sake of this list, we will use the
following vocabulary. The "language" refers to the XML Processing
Language. A specific file in the language is referred to as a
"process". The language allows the use of "XML processors" like XSLT,
W3C schema validation, SOAP call. A specific call to an XML processor
in a process is an "operation".

Requirements for the XML Processing Language:

1. It should be relatively easy to implement a conformant
implementation of the language, but it should also be possible to
build a sophisticated implementation that can perform parallel
operations, lazy or greedy processing, and other optimizations.
2. The language should not prohibit an implementation from streaming
operations, for instance starting processing a second operation that
depends on the output of a first operation before the output of the
first operation is entirely completed.
3. The language should allow conditional processing so that different
operations are selected depending on run-time evaluation. This could
be not unlike conditional processing in XSLT [2].
4. The language should allow XML processors to accept zero, one or
multiple inputs and zero, one or multiple outputs.
5. The language should be expressed in XML. It should be possible to
author and manipulate documents expressed in the pipeline language
using standard XML tools.
6. Just like an XML processor, a process should be able to accept
zero, one or multiple inputs and zero, one or multiple outputs.
7. The language should provide mechanisms for repetition a number of
operations. The two most common forms of repetition found in languages
are "for-each" and "while". The language should allow for "for-each"
repetitions where a number of operations are executed on a set of
documents. This could be not unlike repetition in XSLT [3]. The
language could allow for "while" repetition where a number of
operations are executed while a condition is met.
8. The language could provide mechanisms for addressing error handling
and fallback behaviors.

[1] http://www.w3.org/TR/2004/NOTE-proc-model-req-20040405/
[2] http://www.w3.org/TR/2005/CR-xslt20-20051103/#conditionals
[3] http://www.w3.org/TR/2005/CR-xslt20-20051103/#for-each

Alex
--
Blog (XML, Web apps, Open Source): http://www.orbeon.com/blog/

Received on Thursday, 5 January 2006 03:04:15 UTC