Engines

From EXPath

Revision as of 01:21, 27 January 2010 by FGeorges (Talk | contribs)
Jump to: navigation, search

Contents

Languages using XPath

Implementations

  • Xalan by Apache, an XPath 1.0 and XSLT 1.0 processor, used in the Sun's Java standard distribution.
  • Saxon by Saxonica (by Michael Kay), an in-memory XPath 2.0, XSLT 2.0, XQuery and XML Schema processor.
  • MarkLogic, a native XML database with XQuery support.
  • eXist, a native XML database with XQuery support.
  • Oracle ? (XDB, BPEL, etc.)
  • IBM ?
  • Zorba by the FLWOR Foundation, an embeddable XQuery processor.
  • XQilla
  • BaseX, a native XML database with XQuery support.
  • MXQuery by ETH Zurich, an in-memory XQuery processor.
  • xDB by EMC, a native XML database with XQuery support.
  • Calabash, Norman Walsh's XProc processor.
  • Calumet, EMC's XProc processor, developed by Toman Vojtech.
  • Qizx, by XMLmind, a fast XML repository and search engine fully supporting XQuery.
  • Intel® SOA Expressway's XSLT 2.0 Processor (this is an alpha version, post comments on this forum).
  • Sausalito, by 28msec. Not an implementation, but a suite of tools that allow you to write, test, and deploy full-fledged Web-based applications, coded entirely in XQuery.
  • ...

Comparison

Processor XPath XSLT XQuery XProc Update Full Text Scripting try/catch function items ...
Xalan 1.0 1.0 No No No No No No No ...
Saxon 8+ 2.0 [1] 2.0 [1] 1.0 [1] No No No No Yes [2] Yes [2] ...
... ... ... ... ... ... ... ...

TODO

  • Create a feature matrix with processors on horiz. axis and features on vert. axis. Features are e.g. the specs and their versions, a try/catch feature, a packaging, a way to write web applications, etc.
  • Notes from an email by Abel on XSL List (look at the whole thread too). To integrate into this page, above...
Thanks to everyone for joining in on this discussion, which went slightly beyond my original intentions (a good thing), but learnt a few new things along the way. Was a bit surprised that throughout this thread, the market seems divided between LAMP and Java only. What happened to ASP, C#.NET or even desktop/tools? And what about browser's client-side XSLT 2.0? If I try to compile a little final list of all information so far, it'll look something like the following. If you have information about the gaps in my information gathering, I'm (still/always) all ears. Complete implementations
  • Saxon-HE, open source, basic [1][3]
  • Saxon-PE, commercial closed source, basic [2][3]
  • Saxon-EE, commercial closed source, schema-aware [2][3]
  • AltovaXML, free closed source, schema-aware[4]
  • IBM WebSphere Feature Pack, free^ closed source, schema aware[5]
^ the feature pack is free, WebSphere, to which it belongs, is not Incomplete implementations
  • Intel XSLT 2.0, public beta free dl, basic^, 90% conformance [6]
  • Gestalt, open source, no more development, unknown conformance [7]
  • Oracle 10.1+, unclear status, no dl, unknown conformance [8]
^ Intel wants feedback, in particular about whether to implement SA. Alternatives
  • EXSLT, extensions to XSLT 1.0 to close the gap, no conformance [9]
  • XSLT 2.0 through XSLT 1.0 (can't find the link anymore)
No plans
  • Microsoft has postponed plans for XSLT 2.0 indefinitely [10]
Wishes
  • Native XSLT 2.0 for .NET. The XPath 2.0 datamodel is already there
  • Native C/C++ XSLT 2.0 processor for LAMP and others
  • Open source C-interface for implementation in open source browsers
References

Notes

  1. 1.0 1.1 1.2 Saxon B is free and supports XSLT and XQuery Basic, Saxon SA is commercial and supports XSLT and XQuery Schema Aware. Beginning at 9.2, Saxon exists in 3 flavours: HE is free and supports XSLT and XQuery Basic, PE is commercial and supports XSLT and XQuery Basic with additional features, and Saxon EE is commercial and supports XSLT and XQuery Schema Aware. Saxon SA and EE are XML Schema processors too. Saxon PE and EE will also support XSLT 2.1 and XQuery 1.1 as the working drafts evolve [1].
  2. 2.0 2.1 Either as extensions in SA or as part of XPath 2.1/XQuery 1.1 in PE and EE.
Personal tools