aboutsummaryrefslogtreecommitdiff
path: root/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java
diff options
context:
space:
mode:
authorgregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-12-03 08:54:36 +0000
committergregor <gregor@d688527b-c9ab-4aba-bd8d-4036d912da1d>2003-12-03 08:54:36 +0000
commit1d39a4fa10f410c5d4fdcc64413b9e0f0372f9e1 (patch)
tree83e060cf0c95e1ebfde2141bd19b9fe42e621188 /spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java
parent221be8b8869ed6658b6acd0ba10d78998da33080 (diff)
downloadmoa-id-spss-1d39a4fa10f410c5d4fdcc64413b9e0f0372f9e1.tar.gz
moa-id-spss-1d39a4fa10f410c5d4fdcc64413b9e0f0372f9e1.tar.bz2
moa-id-spss-1d39a4fa10f410c5d4fdcc64413b9e0f0372f9e1.zip
Zwischenstand, compilierbar
git-svn-id: https://joinup.ec.europa.eu/svn/moa-idspss/trunk@69 d688527b-c9ab-4aba-bd8d-4036d912da1d
Diffstat (limited to 'spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java')
-rw-r--r--spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java
index 8bc23efa9..814d7832e 100644
--- a/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java
+++ b/spss.slinterface/WEB-INF/src/at/gv/egovernment/moa/spss/slinterface/DOMUtils.java
@@ -5,18 +5,31 @@
*/
package at.gv.egovernment.moa.spss.slinterface;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
+import org.apache.xerces.parsers.DOMParser;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+import at.gv.egovernment.moa.spss.slinterface.listeners.XMLParserErrorHandler;
/**
* @author Gregor Karlinger (mailto:gregor.karlinger@cio.gv.at)
*/
public class DOMUtils
{
+ private static final String SAX_NAMESPACES_FEATURE = "http://xml.org/sax/features/namespaces";
+ private static final String XERCES_CREATE_ENTITY_REF_NODES_FEATURE =
+ "http://apache.org/xml/features/dom/create-entity-ref-nodes";
+ protected static final String XERCES_DEFER_NODE_EXPANSION_ =
+ "http://apache.org/xml/features/dom/defer-node-expansion";
+
/* ---------------------------------------------------------------------------------------------------- */
/**
@@ -123,4 +136,34 @@ public class DOMUtils
}
return (childElems.size() == 0) ? null : childElems;
}
+
+ /* ---------------------------------------------------------------------------------------------------- */
+
+ public static Document parseWellFormed(InputStream is) throws Exception
+ {
+ DOMParser xmlParser = new DOMParser();
+ try
+ {
+ xmlParser.setFeature(SAX_NAMESPACES_FEATURE, true);
+ xmlParser.setFeature(XERCES_CREATE_ENTITY_REF_NODES_FEATURE, false);
+ xmlParser.setFeature(XERCES_DEFER_NODE_EXPANSION_, false);
+ xmlParser.setErrorHandler(new XMLParserErrorHandler(false, true, true));
+
+ }
+ catch (SAXException e)
+ {
+ String message = "Initialization of XML parser failed.";
+ throw new Exception(message, e);
+ }
+ try
+ {
+ xmlParser.parse(new InputSource(is));
+ return xmlParser.getDocument();
+ }
+ catch (Exception e)
+ {
+ String message = "Wellformed parsing failed.";
+ throw new Exception(message, e);
+ }
+ }
}