Suppose you need to serialize a DOM tree, with the result being an XML document. Xerces-J allows you to specify a maximum line length and an indent value. Here’s an example:
//the XML document used in this example is://"C://Data_local//xml//docs//AirWings_xml.xml"//The application has two steps:// 1. - Get the DOM tree of this XML document;// 2. - Serialize the DOM by using Xerces-J;// Notice that the indentation is set to 5 characters and the maximum //line length to 100 characters.import javax.xml.parsers.*;import org.w3c.dom.*;import java.io.*;import org.apache.xml.serialize.*;class DOM{ DocumentBuilderFactory DBF=null; DocumentBuilder DB=null; Document D=null; FileOutputStream FOS=null; public DOM(){} //get the DOM public void createDOMTree(String XMLdoc) { try{ System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); //get a DocumentBuilderFactory object DBF=DocumentBuilderFactory.newInstance(); //get a DocumentBuilder object DB=DBF.newDocumentBuilder(); //get the DOM tree from the XML document D=DB.parse(new File(XMLdoc)); //get a OutputFormat object OutputFormat OF=new OutputFormat(); //setting indentation and maximum line length OF.setIndent(5); OF.setLineWidth(100); //get an OutputStream object try{ FOS=new FileOutputStream ("C://Data_Local//xml//docs//SerXerces.xml"); }catch(java.io.FileNotFoundException e) {System.err.println(e.getMessage());} //configure an XMLSerializer object XMLSerializer XMLS=new XMLSerializer(); XMLS.setOutputFormat(OF); XMLS.setOutputByteStream((OutputStream)FOS); //start serialization XMLS.serialize(D); }catch(javax.xml.parsers.ParserConfigurationException e) {System.out.println(e.getMessage()); }catch(org.xml.sax.SAXException e) {System.out.println(e.getMessage()); }catch(java.io.IOException e) {System.out.println(e.getMessage());} } }public class SerializareXerces{ public static void main(String[] args) { DOM t=new DOM(); t.createDOMTree("C://Data_local//xml//docs//AirWings_xml.xml"); }}