New XProc Working Draft
The XML Processing Model Working Group has published a new Working Draft of XProc: An XML Pipeline Language.
The working group has, I think, finished its review of all the comments received. Last November, we revealed several significant changes adopted by the Working Group. Today, we're revealing the rest of them.
The changes (since November) in the XProc working draft published today are:
-
Fairly substantial syntax changes. A
p:pipeline
is now just syntactic sugar for a particularp:declare-step
. -
Significantly reworked the syntax and semantics of variables, options, and parameters. Added
p:variable
. Imposed a syntactic distinction between declaration (p:option
) and use (p:with-option
/p:with-param
) of options and parameters. -
Clarified the scope of variables and options.
-
Removed
value
attribute fromp:variable
,p:option
,p:with-option
, andp:with-param
. -
Removed automatic declaration of parameter input ports; you have to declare them explicitly if you need them.
-
Added
p:base-uri()
andp:resolve-uri()
XPath extension functions to support (XPath 1.0) pipelines that need access to the base URI of documents. -
Removed ignored namespaces, added
p:pipeinfo
. -
Redefined the
p:label-elements
step to use a step-local variable in the XPath context. -
Added
psvi-required
attribute to pipelines. -
Changed definition of
p:error
to better address localization issues.
The syntax changes, and making p:pipeline
syntactic sugar
for a particular p:declare-step
, have the effect of making very
simple, straight-through pipelines syntactically simple again.
Reorganizing some of the option and parameter elements, and adding a variable element, makes the language bigger (in the sense that it has more elements) but I think it has significantly reduced some of the confusing sublty that used to exist around declaration and use of options.
In general, I think these are all changes for the better. And I think we're done. This is a Last Call working draft in all but name. The changes are significant enough that we thought it would be best to float them in an ordinary working draft first. That will, I hope, save us the embarrassment of having to do more than two last calls.
Read and review! Comments on these items, in particular, please.
Gazing into my crystal ball, I see another last call in June, Candidate Recommendation in July, and a Recommendation before the end of the summer.