Don’t Be Afraid to Use Format Transformations
Here, we will discuss a core feature of JAXP that is underused: conversion from one API format (SAX, a stream, or DOM) to another. While this has always been one of the basic features of JAXP, it is rarely used, probably due to a lack of understanding of JAXP’s Transformation API for XML, or TRaX.
An example is the best way to illustrate this sort of format
transformation. Example 5-17 shows a helper class
that will perform these conversions for you, so you
don’t have to constantly deal with new
Transformer
instances and the JAXP
TransformerFactory
.
package com.oreilly.xml; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.sax.SAXResult; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; public class FormatConverter { private static boolean initialized = false; private static Transformer transformer; private static void initialize( ) throws TransformerException { TransformerFactory factory = TransformerFactory.newInstance( ); transformer = factory.newTransformer( ); initialized = true; } public static void convert(StreamSource source, SAXResult result) throws TransformerException { transformer.transform(source, ...
Get Java Enterprise Best Practices now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.