X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Futil%2Fxml%2FXmlUtil.java;h=d8907424f804f6d93262a38ddf107364a392cca1;hb=f330b481b7f70fb165f423cc566214d1efddade8;hp=238249dbbd8d49086b38c1696cb6d0cb685909fe;hpb=2395ecb818aa01bbd90821767715b3df67b65de0;p=controller.git diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java index 238249dbbd..d8907424f8 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java @@ -40,10 +40,12 @@ import org.w3c.dom.Node; import org.xml.sax.SAXException; import com.google.common.base.Charsets; +import com.google.common.base.Optional; public final class XmlUtil { public static final String XMLNS_ATTRIBUTE_KEY = "xmlns"; + private static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/"; private static final DocumentBuilderFactory BUILDERFACTORY; static { @@ -101,25 +103,30 @@ public final class XmlUtil { } } - public static Element createTextElement(Document document, String name, String content) { - Element typeElement = document.createElement(name); - typeElement.appendChild(document.createTextNode(content)); - return typeElement; - } - - public static void addNamespaceAttr(Element root, String namespace) { - root.setAttribute(XMLNS_ATTRIBUTE_KEY, namespace); + public static Element createElement(final Document document, String qName, Optional namespaceURI) { + if(namespaceURI.isPresent()) { + final Element element = document.createElementNS(namespaceURI.get(), qName); + String name = XMLNS_ATTRIBUTE_KEY; + if(element.getPrefix() != null) { + name += ":" + element.getPrefix(); + } + element.setAttributeNS(XMLNS_URI, name, namespaceURI.get()); + return element; + } + return document.createElement(qName); } - public static void addPrefixedNamespaceAttr(Element root, String prefix, String namespace) { - root.setAttribute(concat(XMLNS_ATTRIBUTE_KEY, prefix), namespace); + public static Element createTextElement(Document document, String qName, String content, Optional namespaceURI) { + Element typeElement = createElement(document, qName, namespaceURI); + typeElement.appendChild(document.createTextNode(content)); + return typeElement; } - public static Element createPrefixedTextElement(Document document, String key, String prefix, String content) { - return createTextElement(document, key, concat(prefix, content)); + public static Element createPrefixedTextElement(Document document, String qName, String prefix, String content, Optional namespace) { + return createTextElement(document, qName, createPrefixedValue(prefix, content), namespace); } - private static String concat(String prefix, String value) { + public static String createPrefixedValue(String prefix, String value) { return prefix + ":" + value; }