FREE Open Source Tools for Java XML Developers
These projects have been developed by Andrei Cioroianu who co-authored Java XML Programmer's Reference and Professional Java XML published by Wrox Press.
XJTL contains two sub-libraries. One was designed to generate XML dynamically in JSP pages and the other contains JSP actions for parsing and processing XML on the server side. The JSP actions offered by Devsphere XJTL complement the XML support from JSP Standard Tag Library (JSTL).
The XML output JSP actions of XJTL
- write XML headers, elements, start tags, end tags, character data, CDATA sections, comments and processing instructions
- serialize DOM trees within a JSP, which means that the entire information from a DOM tree is outputted as XML to the JSP writer
The XML processing JSP actions of XJTL
- hide the complexities of the SAX and DOM APIs that are used internally
- export JSP variables holding the information from an XML document
- let you process each piece of information in a well defined context
- offer support for parsing very large XML documents in a scalable manner
XJTL comes with code generators that take XML samples and produce JSP pages.
SAXDOMIX is a small framework that can forward SAX events or DOM sub-trees to your application during the parsing of an XML document allowing you to get DOM sub-trees in the middle of a SAX parsing. After handling, all DOM sub-trees become eligible for garbage collection. This solves the well-known DOM scalability problem. For example, you can process a very large XML table and get each record as a DOM sub-tree.
By mixing SAX and DOM, you can reduce the memory requirements when the application doesn't need the entire DOM tree in memory. In addition, there are pieces of information that can be extracted directly from the SAX events without the need to build a DOM sub-tree. For example, the application could analyze the attributes of an element and decide if it needs the entire DOM sub-tree rooted by that element.
SAXDOMIX also provides support for XSLT, allowing you to apply the same XSLT instructions to each DOM sub-tree.
Choosing the parsing method is a very important decision in the case of any serious Java XML application. As explained in the overview of the SAXDOMIX framework, you may use SAX or DOM depending on whether you need serial or random access to the document's content, but you may also mix the two methods in order to improve the scalability and performance of your application. With SAXDOMIX, you get random access to document fragments (DOM sub-trees) that are acquired serially like the SAX events.
This benchmark answers the following questions:
- How fast are the Java XML parsing methods?
- How much memory resources do they need?
- Is the Java XML parsing scalable?
- How does the XML validation affect the performance?
- How does the namespace usage affect the performance?
- What is the best Java XML parser?
- What JDK version should be used?