Appending dummy root node to XML data format
[ccsdk/sli/plugins.git] / restconf-client / provider / src / main / java / org / onap / ccsdk / sli / plugins / yangserializers / dfserializer / XmlSerializer.java
index 6eeb4b8..f3c6723 100644 (file)
@@ -61,7 +61,7 @@ public class XmlSerializer extends DataFormatSerializer {
         PropertiesNodeXmlListener xmlListener = new PropertiesNodeXmlListener();
         nodeWalker.walk(xmlListener, propNode);
         Writer writer = xmlListener.getWriter();
-        return writer.toString();
+        return removeRootNode(writer.toString(), propNode.name());
     }
 
     @Override
@@ -85,4 +85,20 @@ public class XmlSerializer extends DataFormatSerializer {
         return serializerContext().getPropNodeSerializer().decode(
                 listener.serializerHelper().getPropertiesNode());
     }
+
+    /**
+     * Removes root node from the XML data format message and makes the
+     * string to be pretty print.
+     *
+     * @param xml      XML data format message
+     * @param rootName root node name
+     * @return pretty print format XML message
+     */
+    private static String removeRootNode(String xml, String rootName) {
+        xml = xml.replace("\n<" + rootName + ">", "\n");
+        xml = xml.replace("</" + rootName + ">" + "\n", "");
+        xml = xml.replaceAll("\n" + "    ", "\n");
+        xml = xml.replaceFirst("\n", "");
+        return xml;
+    }
 }
\ No newline at end of file