Re: New draft, 13 Nov 2007

Norman Walsh wrote:
>   * Attempt to support both XPath 1.0 and XPath 2.0; there's more to
>     be done, but see Section 2.8, “XPaths in XProc”.

On a quick read of this part of the spec, I've come across the following:

"An XProc implementation can use either [XPath 1.0] or [XPath 2.0] to 
evaluate these expressions. [...]"

Which means that, within a pipeline, each expression may be evaluated 
against different XPath engines (read: versions). Correct?


If so, when I read on the spec the following system property:

"p:xpath-version
Returns the version of XPath implemented by the processor for evaluating 
XPath expressions on XProc elements."

Which value(s) should an XProc implementation return, if it provides two 
XPath engines? "1.0", "2.0", "1.0 2.0" ?


I propose that we should split the p:xpath-version property feature into:

* a p:xpath-version-available(version) function, to check the 
availability of a specific version;

* a p:xpath-versions property akin to p:xpath-version, but returning an 
xs:token value;

* a p:xpath-version-default property, returning the default XPath 
version to be used when the p:xpath-version attribute isn't explicitly 
specified.


Nevertheless, I would prefer to have the p:xpath-version available only 
at top-level elements (p:pipeline and p:pipeline-library). IMHO, this 
whould reduce the confusion of users when looking at a pipeline and read 
several XPath expressions written in different versions - on the same 
document. Isn't just top-level enough?


Thoughts?


Cheers,
Rui

Received on Tuesday, 13 November 2007 17:15:20 UTC