diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonWalker.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonWalker.java
index f106a3e..46a5b98 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonWalker.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonWalker.java
@@ -138,20 +138,31 @@
         }
     }
 
-    private void addDataNode(String fieldName, String value, DataNode.Type nodeType) {
+    private void addDataNode(String fieldName, String value, String valNamespace,
+                             DataNode.Type nodeType) {
         String nodeName = getLatterSegment(fieldName, COLON);
         String namespace = getPreSegment(fieldName, COLON);
+
         dataNodeBuilder = SerializerHelper.addDataNode(dataNodeBuilder,
                                                        nodeName, namespace,
-                                                       value, nodeType);
+                                                       value, valNamespace,
+                                                       nodeType);
     }
 
     private void addNoneLeafDataNode(String fieldName, DataNode.Type nodeType) {
-        addDataNode(fieldName, null, nodeType);
+        addDataNode(fieldName, null, null, nodeType);
     }
 
     private void addLeafDataNode(String fieldName, String value, DataNode.Type nodeType) {
-        addDataNode(fieldName, value, nodeType);
+        String valNamespace = null;
+        String actVal;
+        if (value != null) {
+            actVal = getLatterSegment(value, COLON);
+            valNamespace = getPreSegment(value, COLON);
+        } else {
+            actVal = value;
+        }
+        addDataNode(fieldName, actVal, valNamespace, nodeType);
     }
 
     private void addSingleInstanceNodeToDataTree(String fieldName) {
diff --git a/serializers/xml/src/main/java/org/onosproject/yang/serializers/xml/XmlSerializerListener.java b/serializers/xml/src/main/java/org/onosproject/yang/serializers/xml/XmlSerializerListener.java
index 76a44d9..eebc95c 100644
--- a/serializers/xml/src/main/java/org/onosproject/yang/serializers/xml/XmlSerializerListener.java
+++ b/serializers/xml/src/main/java/org/onosproject/yang/serializers/xml/XmlSerializerListener.java
@@ -27,6 +27,8 @@
 import static org.onosproject.yang.runtime.SerializerHelper.exitDataNode;
 import static org.onosproject.yang.runtime.SerializerHelper.getResourceId;
 import static org.onosproject.yang.serializers.utils.SerializersUtil.convertXmlAttributesToAnnotations;
+import static org.onosproject.yang.serializers.utils.SerializersUtil.getLatterSegment;
+import static org.onosproject.yang.serializers.utils.SerializersUtil.getPreSegment;
 import static org.onosproject.yang.serializers.xml.XmlNodeType.OBJECT_NODE;
 import static org.onosproject.yang.serializers.xml.XmlNodeType.TEXT_NODE;
 
@@ -35,6 +37,8 @@
  */
 class XmlSerializerListener implements XmlListener {
 
+    private static final String COLON = ":";
+
     /**
      * Data node builder.
      */
@@ -99,9 +103,22 @@
             }
         } else if (nodeType == TEXT_NODE) {
             if (dnBuilder != null) {
+                String valNamespace = null;
+                String actVal;
+                String valPrefix;
+                String value = element.getText();
+                if (value != null) {
+                    actVal = getLatterSegment(value, COLON);
+                    valPrefix = getPreSegment(value, COLON);
+                    if (valPrefix != null) {
+                        valNamespace = element.getNamespaceForPrefix(valPrefix).getURI();
+                    }
+                } else {
+                    actVal = value;
+                }
                 dnBuilder = addDataNode(dnBuilder, element.getName(),
                                         element.getNamespace().getURI(),
-                                        element.getText(), null);
+                                        actVal, valNamespace, null);
             }
         }
     }
