Alex Barnett blog

Stuff

Good news for XQuery and XSLT fans

Good news for XQuery and XSLT fans - the W3C has announced the W3C Recommendations for XQuery 1.0 as an XML-aware syntax for querying collections of structured and semi-structured data both locally and over the Web and XSLT Version 2.0, a specification for transforming data model instances (XML and non-XML) into other documents. The third spec that's made Recommendation status is XPath 2.0, an expression syntax for referring to parts of XML documents.

Some of the big players behind getting these standards ratified (IBM, Oracle, Microsoft) are quoted on this testimonials page.

From the official press release:

"These new Web Standards will play a significant role in enterprise computing by connecting databases with the Web. XQuery allows data mining of everything from memos and Web service messages to multi-terabyte relational databases. XSLT 2.0 adds significant new functionality to the already widely deployed XSLT 1.0, which enables the transformation and styled presentation of XML documents. Both specifications rely on XPath 2.0, also significantly enriched from its previous version.

..."This is a red-letter day for XSLT users," said Michael Kay, editor of the XSLT 2.0 specification, "both for those who have been waiting patiently for this Recommendation to appear before they could use the new features, and for those who have taken a gamble by deploying the new technology before its final stamp of approval. Our biggest achievement, in my view, has been to deliver a huge step forward in functionality and developer productivity, while also retaining a very high level of backwards compatibility, thereby keeping transition costs to the minimum."

But not everyone agrees XQuery is slam dunk. Ex Microsoftee 'Derek' in this November post on hearing the news of the proposed recommendations, wrote at the time:

"I just noticed, XSLT 2.0, XML Query and XPath 2.0 Are Proposed Recommendations.  Since leaving MS, I've stopped tracking these.  It baffles me that XQuery is only just now 'shipping'.  This + the-mess-that-is-XSD spell the doom of XML.  This isn't just doom, like the Outlook spell-checker would try an correct the DOM to; this is real doom.  These standards to too complicated and too late

...I honestly think we would be better without XQuery.  Let the vendors think for themselves and see what customers actually use.  XQuery is a standard looking for a use, which is backward and guaranteed to produce a problematic result.

XSLT/XPath 2.0 is a harder one... There are a couple things that XSLT 2.0 adds that were desperately needed vs XSLT 1.0.  But I've managed a team implementing a commercial quality XSLT 1.0 implementation and that was a huge amount of work.  XSLT 2.0 is at least 4x as much work.  That is terrifying.  Why not just 'fix' XSLT 1.0?  It would be dramatically less work, and provide 80% of the gains, at 10% the cost."

Generally however, the reaction I've seen to the news seems fairly positive. Kimbro Staken never thought he'd see the day. Jonathan Robbie of DataDirect seems chuffed (mind you, his cmapny has been a member of XML Query WG). Alex Miller seems happy too (he's at BEA).

Bob Beauchemin, SQL Server MVP is speculating on the impact this news will have on the Microsoft SQL Server future product line:

"Although SQL Server 2005's XML data type doesn't exactly follow the XQuery 1.0/XPath 2.0 Data Model, rumor has it that the next version of the ISO/ANSI SQL spec (SQL2007?) may have some something to say about this, as well as something to say about XQuery in general. Right now, the SQL2003 spec doesn't specify a query language. [also a view shared by Matija Lah]

It will also be interesting to see what the SQL Server folks do with regards to updates to support the new specs in the next release, and support of a larger portion of the language constructs." 

Given that Michael Rys (who also posted on this news) is a member of the SQL Server product team and has been closely involved in the relevant standards Working Groups, I think Bob's speculation may be justified... :-)