<feed xmlns="http://www.w3.org/2005/Atom" xmlns:foaf="http://xmlns.com/foaf/0.1/"><title>norman.walsh.name: Comments on /2007/11/15/xprocXPath</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/11/15/xprocXPath"/><id>http://norman.walsh.name/2007/11/15/xprocXPath/comments.atom</id><updated>2012-05-23T12:19:10.630123Z</updated><entry><title>Comment 1 on /2007/11/15/xprocXPath</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/11/15/xprocXPath#comment0001"/><id>http://norman.walsh.name/2010/09/25/oauth#comment0001</id><published>2007-11-16T13:27:23Z</published><updated>2007-11-16T13:27:23Z</updated><author><name>Ed Davies</name><foaf:mbox_sha1sum>da39a3ee5e6b4b0d3255bfef95601890afd80709</foaf:mbox_sha1sum></author><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
    <p>Overall this seems like a reasonable compromise when it's not clear how quick the move to XPath 2.0 is likely to be.  
</p>
    <p>
However, I worry a bit about: <i>If authors don't say, then they get what the implementor decides.</i>  True, it'll usually work out fine, as you say, but maybe sometimes it won't in surprising ways.  It would have been better controlled to say it's XPath 1.0 unless the pipeline author says otherwise.  That way the default would only break with a 2.0 implementation which doesn't do backward-compatibility mode.  For many simple XPaths it might be sensible to allow the author to explicitly say that 1.0 and 2.0 are both OK.</p>
  </div></content></entry><entry><title>Comment 2 on /2007/11/15/xprocXPath</title><link rel="alternate" type="text/html" href="http://norman.walsh.name/2007/11/15/xprocXPath#comment0002"/><id>http://norman.walsh.name/2010/09/25/oauth#comment0002</id><published>2007-11-20T17:03:16Z</published><updated>2007-11-20T17:03:16Z</updated><author><name>Chris</name><foaf:mbox_sha1sum>da39a3ee5e6b4b0d3255bfef95601890afd80709</foaf:mbox_sha1sum></author><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">
    <p>As long as the xslt component leaves it up to the implementation whether or not to use an xsl/xpath 2 engine, I think it's very reasonable to limit xpath expressions in xproc to version 1.0.
</p>
    <p>
Thus if you really, <i>really</i> needed something from xpath 2 you could do a transform in the xslt component and have it come up with a some sort of the routing meta-document that you could use an input to other pipelines.  I think that this is a descent design pattern anyway because if you need xpath 2 you're probably doing something complex and encapsulating the complexity outside of the xproc flow makes sense.
</p>
    <p>
Futhermore, I think that the implementation support simply isn't there yet.  Of (what I think are) the big four xsl engines:saxon, msxml, libxml and xalan; only saxon is at the 2.0 level.  I think the msxml team has started on it, xalan is still thinking about it, and I haven't heard/seen anything from the libxml camp.  
</p>
    <p>
Therefore, I agree that it would be wise to keep it simple and require only xpath 1.0.</p>
  </div></content></entry></feed>

