Bug 2766: Fixed parsing and serializing XPath Instance Identifiers
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / xml / XmlUtils.java
index 7312c363829832466c593d488f6bac31f7356621..cfb8fc0897cd5b2f620f940bd8358b1ed94a2524 100644 (file)
@@ -40,20 +40,32 @@ public final class XmlUtils {
         return superType;
     }
 
+    /**
+     *
+     * @deprecated Use {@link RandomPrefixInstanceIdentifierSerializer} instead.
+     */
+    @Deprecated
     static String encodeIdentifier(final RandomPrefix prefixes, final YangInstanceIdentifier id) {
         StringBuilder textContent = new StringBuilder();
         for (PathArgument pathArgument : id.getPathArguments()) {
             textContent.append('/');
-            textContent.append(prefixes.encodeQName(pathArgument.getNodeType()));
+
+            final QName nt = pathArgument.getNodeType();
+            textContent.append(prefixes.encodePrefix(nt.getNamespace()));
+            textContent.append(':');
+            textContent.append(nt.getLocalName());
+
             if (pathArgument instanceof NodeIdentifierWithPredicates) {
                 Map<QName, Object> predicates = ((NodeIdentifierWithPredicates) pathArgument).getKeyValues();
 
                 for (Map.Entry<QName, Object> entry : predicates.entrySet()) {
-                    String predicateValue = String.valueOf(entry.getValue());
+                    final QName key = entry.getKey();
                     textContent.append('[');
-                    textContent.append(prefixes.encodeQName(entry.getKey()));
+                    textContent.append(prefixes.encodePrefix(key.getNamespace()));
+                    textContent.append(':');
+                    textContent.append(key.getLocalName());
                     textContent.append("='");
-                    textContent.append(predicateValue);
+                    textContent.append(String.valueOf(entry.getValue()));
                     textContent.append("']");
                 }
             } else if (pathArgument instanceof NodeWithValue) {