Addison-Wesley has published Elliotte Rusty Harold's substantial volume Processing XML with Java: A Guide to SAX, DOM, JDOM, JAXP, and TrAX, also provided online by the author. "Written for Java programmers who want to integrate XML into their systems, this practical, comprehensive guide and reference shows how to process XML documents with the Java programming language. It leads experienced Java developers beyond the basics of XML, allowing them to design sophisticated XML applications and parse complicated documents. Processing XML with Java provides a brief review of XML fundamentals, including XML syntax: DTDs, schemas, and validity; stylesheets; and the XML protocols XML-RPC, SOAP, and RSS. The core of the book comprises in-depth discussions on the key XML APIs Java programmers must use to create and manipulate XML files with Java. These include the Simple API for XML (SAX), the Document Object Model (DOM), and JDOM (a Java native API). In addition, the book covers many useful supplements to these core APIs, including XPath, XSLT, TrAX, and JAXP. The book supplies over two hundred examples that demonstrate how to accomplish various important tasks related to file formats, data exchange, document transformation, and database integration. The reader will learn how to read and write XML documents with Java code, convert legacy flat files into XML documents, communicate with network servers that send and receive XML data, and much more."
Bibliographic information: Processing XML with Java: A Guide to SAX, DOM, JDOM, JAXP, and TrAX. By Elliotte Rusty Harold. Boston, MA: Addison Wesley Professional [Pearson Education], (c) 2003. Published November 2002. ISBN: 0-201-77186-1. 1120 pages.
From the author's note: "The entire book is available online. You can read every chapter and every page so you can see for yourself how well this book answers your questions such as, 'Why does SAX truncate the text in my documents after a few thousand characters?', 'How do I serialize a DOM Document object in an implementation-independent way?', or, 'Why doesn't my significant other understand the importance of a building a life size Millennium Falcon in our backyard?'. Consequently, I'll forego the usual hype. Check the book out for yourself; and if you like it, please buy a copy. I promise it's cheaper than printing all 1100+ pages on your laser printer."
Readers will find detailed coverage of the following in Processing XML with Java:
- How to choose the right API for the job
- Reading documents with SAX
- SAX filters
- Validation in several schema languages
- DOM implementations for Java
- The DOM Traversal Module
- Output from DOM
- Reading and writing XML documents with JDOM
- Searching XML documents with XPath
- Combining XSLT transforms with Java code
- TrAX, the Transformations API for XML
- JAXP, the Java API for XML Processing
From the Colophon, page 1073: "I wrote this book in XML from start to finish. The specific XML application used is DocBook 4.2.0; I use the jEdit text editor on Windows and Linux to write. XInclude is used to merge the individual chapters and examples. I used Michael Kay's SAXON XSLT processor and Norm Walsh's XSL stylesheets for Docbook 1.52.0 to produce the HTML and XSL-FO output. I used FOP 0.20.4 to convert the XSL-FO files to PDFs."