diff options
author | David A. Madore <david+git@madore.org> | 2011-09-04 20:19:48 +0200 |
---|---|---|
committer | David A. Madore <david+git@madore.org> | 2011-09-04 20:19:48 +0200 |
commit | 3365a175e1721e0fda7a56ad53e24a7e337c13cf (patch) | |
tree | 14206f14ba0168f741fe12cffdb476c669824b4d /org/madore/damlengine/WeblogRSS.java | |
parent | c17d2165ea20325fc78f95791875ffa4c785e548 (diff) | |
download | damlengine-3365a175e1721e0fda7a56ad53e24a7e337c13cf.tar.gz damlengine-3365a175e1721e0fda7a56ad53e24a7e337c13cf.tar.bz2 damlengine-3365a175e1721e0fda7a56ad53e24a7e337c13cf.zip |
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.
Diffstat (limited to 'org/madore/damlengine/WeblogRSS.java')
-rw-r--r-- | org/madore/damlengine/WeblogRSS.java | 21 |
1 files changed, 9 insertions, 12 deletions
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(); |