A posting from Evan Lenz Evan Lenz announces the availability of TransQuery, a "flexible set of XSLT conventions and processing model constraints that enable the use of XSLT as a query language over multiple XML documents. TransQuery is an interoperability specification for XML databases, allowing them to use a standard XML query language today -- the XSLT Recommendation from W3C. The purpose of TransQuery is to promote interoperability between XML document management systems and XML databases that use XSLT as their primary data access language. Traditional XSLT processors are designed to process individual XML documents on the fly. They generally require the entire source tree to be loaded into memory. This obviously has some negative performance and scalability implications for large documents. TransQuery addresses interoperability between implementations of a new kind of XSLT processor -- one that instead functions as a query engine over an XML database, thus reversing the common paradigm of known stylesheet and unknown input. The TransQuery Demo is a browser-based demo illustrating use cases for TransQuery; it is hosted by XYZFind Corp. and utilizes the open-source software provided by the SourceForge TransQuery Project. The TransQuery SourceForge Project is home to an open-source implementation of the TransQuery processing model and experimental platform for the TransQuery interface."
Rationale for TransQuery, from the FAQ document: "As currently drafted, XQuery differs from XSLT in some important respects. For one thing, XQuery will be a strongly-typed language, which is important for applications that require certain kinds of guarantees about the types of query results. XSLT 1.0 was not designed to support these kinds of guarantees. Moreover, XQuery does not yet exist in a standard form. XSLT, on the other hand, is a standard and widely used XML manipulation language. TransQuery is thus able to satisfy the demand for an immediately useable interoperability specification for XML database implementations, rather than forcing vendors to wait for the release of a new query language specification, whose future, as with any new specification, is uncertain... XPath does not specify how its abstract expression values should be serialized. Any implementation of XPath alone has to make vendor-specific decisions about how to serialize attributes without elements, boolean values, etc. XSLT, on the other hand, defines a larger chunk of the processing model, such that both the input and output are XML documents. Moreover, XSLT is a full-featured transformation language. XPath does not allow you to execute close-to-engine transformations, aggregation, sorting, etc. XSLT, when given integrated access to the underlying operators of an XML database, opens up a world of possibility for XML database applications. These are the promises of XQuery. XSLT can answer them today. Finally, TransQuery describes conventions that go the last mile to full interoperability between XML database implementations, in a fully standard way..."
Principal references:
- Announcement 2001-10-30: "TransQuery - XSLT as Query Language"
- TransQuery web site
- TransQuery specification
- TransQuery FAQ document
- TransQuery Demo
- TransQuery as a SourceForge Project
- "XML and Query Languages" - Main reference page.