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 (QName keyValue : predicates.keySet()) {
- String predicateValue = String.valueOf(predicates.get(keyValue));
+ for (Map.Entry<QName, Object> entry : predicates.entrySet()) {
+ final QName key = entry.getKey();
textContent.append('[');
- textContent.append(prefixes.encodeQName(keyValue));
+ 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) {