import java.io.*;

import org.w3c.dom.*;

import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;
import javax.xml.parsers.*;

public class TestXerces {
  public static void main(java.lang.String[] args) throws Exception
  {
    TestXerces test;
    
    test = new TestXerces();
    
    test.testXerces();
  } // main
    

  public void testXerces() throws Exception {
    Document doc;
    Element tag = null;
    File file;
    TransformerFactory tFactory;
    Transformer transformer;
    StreamResult streamResult;
    BufferedOutputStream bos;
    String completeFileName = "test.xml";
    DocumentBuilderFactory dbf;
    
    doc = getDocumentBuilder().newDocument(); 
    tag = doc.createElement("root");    
    doc.appendChild(tag);
        
    file = new File(completeFileName);
     
    bos = new BufferedOutputStream(new FileOutputStream(file));
    
    tFactory = TransformerFactory.newInstance();
    transformer = tFactory.newTransformer();      
    transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    streamResult = new StreamResult(bos);
    transformer.transform(new DOMSource(doc), streamResult);
    bos.close();       
  } // testXerces()
  
  
  private static DocumentBuilder getDocumentBuilder() throws Exception {
    DocumentBuilder documentBuilder;
    DocumentBuilderFactory dbf;
        
    dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);

    dbf.setValidating(true); 

    dbf.setAttribute("http://apache.org/xml/features/validation/dynamic",
                     Boolean.valueOf(true));

    dbf.setAttribute("http://apache.org/xml/features/validation/schema", 
                     Boolean.valueOf(true));
    
    documentBuilder = dbf.newDocumentBuilder();
    return(documentBuilder);
  } // getDocumentBuilder  
} // TestXerces 
