From 3365a175e1721e0fda7a56ad53e24a7e337c13cf Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Sun, 4 Sep 2011 20:19:48 +0200 Subject: Eliminate use of DocumentBuilder (use DOM LS everywhere) + use validation to catch undefined entities. There seems to be no way to catch the undefined entity error (when it is considered a validation error, e.g., when the document has an external subset) other than by turning on validation. So we register an error handler to throw away useless validation errors. --- org/madore/damlengine/WeblogRSS.java | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'org/madore/damlengine/WeblogRSS.java') diff --git a/org/madore/damlengine/WeblogRSS.java b/org/madore/damlengine/WeblogRSS.java index 5d918b8..3bf6489 100644 --- a/org/madore/damlengine/WeblogRSS.java +++ b/org/madore/damlengine/WeblogRSS.java @@ -6,7 +6,6 @@ import java.io.OutputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; -import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.*; import org.w3c.dom.ls.DOMImplementationLS; import org.w3c.dom.ls.LSParser; @@ -32,21 +31,19 @@ public final class WeblogRSS { final ResultSet selRes = selSt.executeQuery(); - final DocumentBuilder db = DamlEngine.GetDocumentBuilder.db; - - final DOMImplementationLS domi - = (DOMImplementationLS)(db.getDOMImplementation()); - LSSerializer ser = domi.createLSSerializer(); + final DOMImplementation domi + = (DamlEngine.IncantDOM.getDOMI()); + final DOMImplementationLS domils = (DOMImplementationLS)(domi); + LSSerializer ser = domils.createLSSerializer(); ser.getDomConfig().setParameter("xml-declaration", true); - LSParser par = domi.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null); + LSParser par = domils.createLSParser(DOMImplementationLS.MODE_SYNCHRONOUS, null); - final LSOutput lsout = domi.createLSOutput(); + final LSOutput lsout = domils.createLSOutput(); lsout.setByteStream(out); lsout.setEncoding("UTF-8"); - Document rssDoc = db.newDocument(); - Element rssRoot = rssDoc.createElementNS(DamlEngine.RDF_NS, "rdf:RDF"); - rssDoc.appendChild(rssRoot); + Document rssDoc = domi.createDocument(DamlEngine.RDF_NS, "rdf:RDF", null); + Element rssRoot = rssDoc.getDocumentElement(); // rssDoc.appendChild(rssDoc.createTextNode("\n")); rssRoot.setAttributeNS(DamlEngine.XMLNS_NS, "xmlns:rdf", DamlEngine.RDF_NS); @@ -138,7 +135,7 @@ public final class WeblogRSS { item.appendChild(itemDate); item.appendChild(rssDoc.createTextNode("\n")); itemDate.appendChild(rssDoc.createTextNode(cdate)); - LSInput input = domi.createLSInput(); + LSInput input = domils.createLSInput(); input.setStringData(contentXml); Document temp = par.parse(input); String contentStr = temp.getDocumentElement().getTextContent(); -- cgit v1.2.3