# HG changeset patch # User Ingo Weinzierl # Date 1263056340 0 # Node ID 8b72676698b504f093fb7cabdf862d691ee51b03 # Parent 824dd614e6471bb266a742238b4e10556f8bff9c 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 diff -r 824dd614e647 -r 8b72676698b5 ChangeLog --- a/ChangeLog Thu Dec 17 14:06:52 2009 +0000 +++ b/ChangeLog Sat Jan 09 16:59:00 2010 +0000 @@ -1,3 +1,13 @@ +2010-01-09 Ingo Weinzierl + + * artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java: + Added convenient method to add attributes to nodes. Attributes have no + prefix as default. + + * artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java: + Adapted xpath (added prefix) to find action and made the document which is + created by this resource namespace aware. + 2009-12-17 Sascha L. Teichmann RELEASE 0.3 diff -r 824dd614e647 -r 8b72676698b5 artifact-database/src/main/java/de/intevation/artifactdatabase/XMLUtils.java --- 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); diff -r 824dd614e647 -r 8b72676698b5 artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java --- a/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java Thu Dec 17 14:06:52 2009 +0000 +++ b/artifact-database/src/main/java/de/intevation/artifactdatabase/rest/ArtifactResource.java Sat Jan 09 16:59:00 2010 +0000 @@ -33,7 +33,7 @@ { private static Logger logger = Logger.getLogger(ArtifactResource.class); - public static final String XPATH_ACTION = "/action/type/@name"; + public static final String XPATH_ACTION = "/art:action/art:type/@name"; public static final String PATH = "/artifact/{uuid}"; @@ -112,6 +112,7 @@ Document inputDocument = null; try { DomRepresentation input = new DomRepresentation(requestRepr); + input.setNamespaceAware(true); inputDocument = input.getDocument(); } catch (IOException ioe) {