Using JAXP 1.3; even in older JVMs!
JAXP 1.3 is in Tiger. The latest release of the Java API for XML processing includes support for all the latest versions of your favorite standards (DOM level 3, SAX 2, XML 1.1), the old goodies (Namespaces, XSLT 1.0, XPath 1.0, XML Schema), and some new standards (XInclude). It includes some very useful new APIs including a validation API that can be used to preparse an schema for performance. The validation API can support multiple validators, so it can support, for example, Relax NG. JAXP 1.3 also includes a new API for XPath manipulation, and other goodies.
Jeff, Ramesh and Bhakti gave a good overview of JAXP 1.3 at JavaOne this year. A PDF of the presentation is available for free at JavaOne Online.
JavaOne Online also has available the transcript and
voice recording of many (all?) presentations, since I expected significant
interest, I asked them to make this session
You may want to check it out; it uses a flash client and it is quite cool.
The spec itself was written by Jeff, Norm and Kohsuke with help from all the JSR-206 crowd and it is available at the JCP site. Jeff insisted in writing it in XML and automatically generate PDF and HTML from it. Unfortunately there seems to be something somewhat broken with the download page for the official final spec, but the proposed final draft 2 is available and my recollection is that it was pretty much the same as the final. Use that while I track down the problem.
Now, how do get your hands on an implementation of JAXP 1.3? The easiest way is to just download Tiger, J2SE 1.5. But if you need to use an older JVM like 1.3 or 1.4, you will need an unbundled implementation. We just released one at
Java.Net. It based on the same code base as the Tiger
implementation, including the high-performance XSLTC compiler. As with previous versions of JAXP,
we are cooperating with ASF and the code will eventually make it back to xerces and xalan, but
you don't have to wait to use it!
Enjoy, and start collecting ideas for JAXP 1,4, which will be part of Mustang.