XPath and XQuery Processor Survey


Introduction
Once you have the data in hand, it is important to be able to query and serve it according to users' needs. By the development of internet huge data sources are created and started be exchanged between different web applications. Since XML is the popular, easy and structured way of exchanging data across web sites and applications, querying the XML data becomes a major issue. Therefore W3C[1] come up with solutions to this problem; XPath and XQuery are two of those querying languages that are defined by the groups in W3C. XPath is a subset of XQuery and XQuery uses the XPath expression syntax. In order to compile the code that is written in these languages, XPath and XQuery processors are developed. In this survey, we will discuss three XML processors and compare them.

Saxon XSLT and XQuery Processor (Home Edition)
Saxon[2] started as an XSLT 1.0 processor and only supported language was Java. After the release of XSLT 2.0 and XQuery 1.0, Saxon comes up with two different versions; Saxon-B and Saxon-SA. Saxon-B version is the basic version of XQuery processor which is free and open source with MPL[3]. Nonetheless, Saxon-B does not support XML schemas in its queries. Saxon-SA(schema available), which is a commercial product, can process the query with XML schemas that are used within the query. In the latest version of Saxon which is 9, both .NET and Java languages are supported. Both XPath(1.0, 2.0) or XQuery(1.0) can be processed by Saxon 9.

Zorba XQuery Processor
Zorba[4] is a modular and embeddable XQuery processor. Although, it supports only Xquery(1.0) XML query language, because of its modular design in its architecture it can be used in my possible areas(i.e. Smartphones, browsers). The source code is in C++ and available as an open source library with ALv2[5]. Live version of Zorba gives users the ability of testing their code on the processor without installing any software. There are XQuery Development Tools which let Zorba XQuery processor to integrate with Eclipse[6] IDE. By this way users can use Eclipse as their XQuery editor. Most importantly, Zorba is XML schema aware and can run the queries that contain XML schemas.

XMLSpy Altova XQuery Processor
XMLSpy[7] is one of the most popular XML query processor which supports both XQuery and XPath queries. Company has a user friendly and advanced editor for XQuery and XPath queries. Trial version is free to download and use but the source code is not open to public. XML schemas within the query are successfully processed with XMLSpy. In addition to the editor, it has XQuery debugger, XQuery profiler and XPath analyzer which may help developers while writing complex queries. Application is only compatible with Windows. The user interface supports two languages; English and German.

Conclusion
In conclusion, Saxon-B supports both XQuery and Xpath but it lacks on with XML schema awareness inside the queries. XMLSpy understands XML schema within queries and it has advanced editor features; however, processor is not modular and integrated into application. Since the application is not open source, users will not be modify it if needed. On the other hand, Zorba is XML schema aware, open source, modular and integrated with free IDEs. If the queries will be written in XQuery only then Zorba is the best choice in between these three processors.(See Table 1)

Comments

Anonymous said…
the most powerful and advanced XML/XPath processor is vtd-xml, nothing comes close

http://vtd-xml.sf.net
Anonymous said…
Altova also makes its schema-aware XQuery, XSLT, and XML parser engines available for free in AltovaXML, which you can integrate in your applications. These are the same engines that drive XMLSpy.

http://www.altova.com/altovaxml.html
John Snelson said…
You should check out XQilla - it's open source (Apache License v2), schema aware, written in C++ and is working on XSLT 2.0 support.

http://xqilla.sourceforge.net/HomePage
One more implementation.. You are invited to try BaseX, which also supports the W3C Full Text and Update extensions: http://basex.org/
Andrew Spyker said…
You should add the IBM implementation to your list:

http://webspherecommunity.blogspot.com/2009/11/websphere-xml-feature-pack-v10-released.html
Joshua Smith said…
Thanks for such helpful review. If you need to insure your house, try cheap homeowners insurance

Popular posts from this blog

3 Must Haves of a Status Report

AWS encryption chart (SSE-S3 vs SSE-KMS vs SSE-C)

Curl "No status code specified in the response"