Re: [xsl] Are there any free, fully-compliant XSLT/XPath 3.0 processors?

Subject: Re: [xsl] Are there any free, fully-compliant XSLT/XPath 3.0 processors?
From: Michael Sokolov <msokolov@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 27 Jan 2013 15:12:14 -0500
On 1/27/2013 11:09 AM, davep wrote:

My simple questions, Who is aligned to each of the 3 specs? Agreed it's a bit early
for 3.0 and many won't have decided yet, though the 1 to 2 changes are a good
intimation of where 3.0 has gone.

Suggested form of a question.

For the majority of your work do you use 1, 2 or (plan to move to) 3.0?
We are slow adopters: used to use 1, switched to 2 only in the last couple of years. The main advantages we noticed at first were enhanced function library (especially the string functions), and the ability to have more powerful XPath expressions - I think being able to express sequences wasn't possible in XPath 1 (vague on the details, sorry), and there were some real pain points there. Even now, I don't think anyone in my office has quite figured out how to use the grouping operators in XSLT 2 - not because they're dumb, but just because the need only arises infrequently and they've already figured out how to write complex recursive XSLT 1 expressions that do the job, howeever painfully. I am advocating the use of more X-technologies, but most of the guys I work with are Java- and Javascript-oriented, and interested in staying up with the latest trends, which seems to mean node.js, Grails, and other stuff I'm not current with. I don't think they're even aware there *is* such a thing as X*/3.0. But of course this is only one shop, and maybe not the sweet spot for the tech?

OK diverging a little from the topic, but I feel a rant coming, so skip if you don't like rants:

My personal feeling is that the spread of XQuery/XSLT/XPath as web development languages (I know that's not the only goal folks have, but I think it's instructive to look at) is hampered less by deficiencies in the language than by deficiencies in supporting and surrounding technologies in the ecosystem like libraries, servers, applications, modules, etc. There are a few brave souls putting libraries out in the wild, like in EXPath, there is ndw's OAuth (Marklogic only though?), and there must be many others, but: if I'm working in Java, or Perl, or Python, or another general-purpose programming language, and I need to connect to a service using SSL, send mail via SMTP, connect to a relational database, navigate the filesystem, construct a SOAP service, or consume one, or I have specialized needs like I want an algorithm for singular value decomposition, I want to do image, audio or video processing, there are a huge number of free libraries available to me: often there are multiple competing technologies for every single problem. Probably for many of the things I mentioned, there are actually XQuery-based solutions (in eXist, MarkLogic, BaseX and in other application servers), and with Saxon you can call extension functions, and you can always call a web service (if you have http support loaded in), but that's not the same as having a CPAN with 117000 modules, a Maven repo with an astounding 422000 jars (not sure what the Python equivalent is?), all free.

Am I missing the point? Is XQuery/XSLT/XPath really an embedded capability to be used primarily from within one of these other languages? Perhaps we don't need to be all things to all people, but I still think we benefit as much or more from having library extensions rather than language extensions. (Having said all that I am excited about some new features like maps and streaming and exception handling - I hate my SAX code that chunks huge documents and feeds them to XSLT - OTOH would I pay to get rid of it now that I've solved that problem? not sure).

I really think that having a standard like EXPath (EXQuery?) or a centralized service like CXAN get adopted in a real way could spark an explosion of interest and activity. It should be as easy for joe programmer to add value to the X* community as checking in some library on github or posting a module to Maven. Am I naive? Maybe this has been tried and hasn't succeeded? Maybe it is succeeding?

Sorry for the long post - this isn't something I've spent a lot of time thinking about deeply and it probably shows in the rambling incoherency...


Current Thread