Emitting DOCTYPE Declaration while writing XML File
This Example shows you how to Emmit a DOCTYPE Declaration in a DOM document. JAXP (Java
API for XML Processing) is an interface which provides parsing of xml documents.
Here the Document BuilderFactory is used to create new DOM parsers.Some of the methods used in code given below for Emitting DOCTYPE Declaration are described below:-
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance():-This method Creates a DocumentBuilder Factory .DocumentBuilder Factory is a Class that enables application to obtain parser for building DOM trees from XML Document
DocumentBuilder builder = Factory.newDocumentBuilder():-This method creates a DocumentBuilder object with the help of a DocumentBuilderFactory
File file = new File("Document2.xml"):-Creates a new File.
TransformerFactory factory = TransformerFactory.newInstance():-TransformerFactory is a class that is used to create Transformer objects. A TransformerFactory instance can be used to create Transformer and Templates objects.
transformer.transform(source, result):-This function organize data according to a style sheet as we are retrieving it from the File.
t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "publicId"):-By this method we can set an output property that will be in effect for the transformation.
Xml code for the program generated is:-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Company>
<Employee>
<name Girish="Gi">Roseindia.net
</name>
</Employee>
<Employee>
<name Komal="Ko">newsTrack
</name>
</Employee>
<Employee>
<name Mahendra="Rose">Girish Tewari
</name>
</Employee>
</Company>
|
|
EmittingDOCType.java
/*
* @Program for emitting a DOCTYPE Declaration while writing an
XML File
from a DOM Document
* EmittingDOCType.java
* Author:-RoseIndia Team
* Date:-23-July-2008
*/
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
public class EmittingDOCType {
public static void main(String[] args) throws Exception {
File xmlfile = new File("Document2.xml");
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlfile);
new EmittingDOCType().emit(doc);
}
public void emit(Document doc) throws Exception {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "publicId");
t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "systemId");
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
DOMSource source = new DOMSource(doc);
t.transform(source, result);
String XString = writer.toString();
System.out.println(XString);
}
}
|
Output of the program:-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE Company PUBLIC "publicId" "systemId">
<Company>
<Employee>
<name Girish="Gi">Roseindia.net
</name>
</Employee>
<Employee>
<name Komal="Ko">newsTrack
</name>
</Employee>
<Employee>
<name Mahendra="Rose">Girish Tewari
</name>
</Employee>
</Company>
|
|
DownLoad Source Code