From 36bb7f0af64624119f24158d410c60f91167d759 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 11 Apr 2010 06:38:42 +0200 Subject: Start a Java version of a daml engine. So far, just the identity transform. Even for something so completely trivial, this was a pain to write, because some stupid XML catalog was distributed with a DOCTYPE referencing a broken URL which could not be replaced by a local file because the catalog engine was bootstrapping; nor did Xerces provide a way, in org.apache.xerces.util.XMLCatalogResolver, to provide a bootstrap resolver: so I had to partially rewrite XMLCatalogResolver. --- org/madore/damlengine/DamlEngine.java | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 org/madore/damlengine/DamlEngine.java (limited to 'org/madore/damlengine/DamlEngine.java') diff --git a/org/madore/damlengine/DamlEngine.java b/org/madore/damlengine/DamlEngine.java new file mode 100644 index 0000000..8571319 --- /dev/null +++ b/org/madore/damlengine/DamlEngine.java @@ -0,0 +1,53 @@ +package org.madore.damlengine; + +import org.w3c.dom.DOMImplementation; +import org.w3c.dom.ls.DOMImplementationLS; +import org.w3c.dom.ls.LSParser; +import org.w3c.dom.ls.LSSerializer; +import org.w3c.dom.ls.LSInput; +import org.w3c.dom.ls.LSOutput; +import org.w3c.dom.Document; +import org.apache.xerces.dom.DOMImplementationSourceImpl; + +public final class DamlEngine { + + private static Document doc; + + private DamlEngine() { } // Forbid instantiation + + public static void processDocument() { + // ... + } + + public static void main(String[] args) { + + 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 DOMImplementationLS implLS = (DOMImplementationLS)impl; + final LSParser parser + = implLS.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, + null); + parser.getDomConfig().setParameter("resource-resolver", resolver); + final LSSerializer writer = implLS.createLSSerializer(); + + if ( args.length == 0 ) { + System.err.println("expecting filename as argument"); + } + + for (String fname : args) { + final LSInput in = implLS.createLSInput(); + in.setSystemId(fname); + doc = parser.parse(in); + processDocument(); + final LSOutput out = implLS.createLSOutput(); + out.setByteStream(System.out); + writer.write(doc, out); + System.out.println(""); + } + + } + +} -- cgit v1.2.3