Processing XML Data. I'm always looking for some software that will let me process XML data (or any data for that matter) using... [Dreams of a Rarebit Fiend]
Another tool to add to your list is Jelly. It supports many different ways to process XML all of which can be combined into the same XML script.
- XML event based (SAX) pipeline. Jelly is based on a SAX pipeline architecture like Cocoon and XPipe and XPDL (the last 2 are already on your list) so you can easily perform XML parsing, filtering, transforming and routing in a traditional XML pipeline way. In Jelly each Tag can consume, emit, filter or transform SAX events generated by its children, so its easy to build custom pipelines using a variety of techniques.
- XPath based processing. You can parse any piece of XML or the output of any fragment of a Jelly script into a DOM and process it via XPath
- XSLT based processing. Perform XSLT on any DOM or SAX or XML resource and use this in part of the pipeline. Perform XSLT pipelines with your own custom processing inside or outside the pipeline
- Ant tasks or Jelly libraries. You can reuse Ant tasks or Jelly libraries for working with things like XML Schema validation (XSD, RelaxNG, DTD), XMLUnit, JellyUnit, JSL (which is a declarative XSLT-like way to process XML but allowing any Jelly script to be used), HTTP, HTML, SQL, JMS, SOAP as well as higher level semantics like rule engines and workflow (drools, werkflow) etc
- JavaBeans. Use your own custom beans which could be created from or turned into SAX events, or use beans to process XPath values, SAX events, DOM objects etc
There doesn't seem to be one way to process XML, there are many ways (SAX, DOM, XPath, XSLT, validation, beans etc). The nice thing about Jelly is its easy to extend, so if you can think of another way to process XML you can just drop it in.