diff artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java @ 64:8b72676698b5

Create a namespace aware document out of the request. We consider namespaces now. Adapted xpath to find action. artifacts/trunk@523 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Sat, 09 Jan 2010 16:59:00 +0000
parents 76abf0c64d3b
children ed03cc0e5800
line wrap: on
line diff
--- a/artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java	Thu Dec 17 14:06:52 2009 +0000
+++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java	Sat Jan 09 16:59:00 2010 +0000
@@ -28,6 +28,9 @@
  */
 public final class XMLUtils
 {
+    public static final String XFORM_URL    = "http://www.w3.org/2002/xforms";
+    public static final String XFORM_PREFIX = "xform";
+
     private static Logger logger = Logger.getLogger(XMLUtils.class);
 
     private XMLUtils() {
@@ -52,19 +55,31 @@
         }
 
         public void addAttr(Element element, String name, String value) {
+            addAttr(element, name, value, false);
+        }
+
+        public void addAttr(
+            Element element,
+            String  name,
+            String  value,
+            boolean addPrefix
+        ) {
             Attr attr = document.createAttributeNS(ns, name);
             attr.setValue(value);
-            attr.setPrefix(prefix);
+
+            if (addPrefix)
+                attr.setPrefix(prefix);
+
             element.setAttributeNode(attr);
         }
     } // class ElementCreator
 
     public static final Document newDocument() {
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+
         try {
-            return DocumentBuilderFactory
-                .newInstance()
-                .newDocumentBuilder()
-                .newDocument();
+            return factory.newDocumentBuilder().newDocument();
         }
         catch (ParserConfigurationException pce) {
             logger.error(pce.getLocalizedMessage(), pce);
@@ -73,11 +88,11 @@
     }
 
     public static final Document parseDocument(File file) {
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+
         try {
-            return DocumentBuilderFactory
-                .newInstance()
-                .newDocumentBuilder()
-                .parse(file);
+            return factory.newDocumentBuilder().parse(file);
         }
         catch (ParserConfigurationException pce) {
             logger.error(pce.getLocalizedMessage(), pce);

http://dive4elements.wald.intevation.org