XPath and XQuery Processor Survey
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 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 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. 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 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. 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 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 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.
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)