package org.madore.damlengine; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import javax.xml.transform.TransformerFactory; import javax.xml.transform.Transformer; import javax.xml.transform.OutputKeys; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.xml.sax.EntityResolver; import org.apache.xerces.dom.DOMImplementationSourceImpl; import org.apache.xerces.jaxp.DocumentBuilderFactoryImpl; public final class DamlEngine { private static Document doc; private DamlEngine() { } // Forbid instantiation public static void processDocument() { // ... } public static void main(String[] args) throws Exception { final Resolver resolver = new Resolver(); final DOMImplementationSourceImpl source = new DOMImplementationSourceImpl(); final DOMImplementation impl = source.getDOMImplementation("XML 3.0 Core 3.0 LS 3.0"); final DocumentBuilderFactory dbf = new DocumentBuilderFactoryImpl(); dbf.setNamespaceAware(true); dbf.setValidating(false); final DocumentBuilder db = dbf.newDocumentBuilder(); db.setEntityResolver((EntityResolver)resolver); final TransformerFactory tf = TransformerFactory.newInstance(); final Transformer t = tf.newTransformer(); t.setOutputProperty(OutputKeys.METHOD, "xml"); t.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "-//W3C//DTD XHTML 1.0 Strict//EN"); t.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"); if ( args.length == 0 ) { System.err.println("expecting filename as argument"); } for (String fname : args) { doc = db.parse(fname); processDocument(); t.transform(new DOMSource(doc), new StreamResult(System.out)); } } }