in components/core-streams/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java [52:79]
private void ensureNamespaceDeclared(String prefix, String namespaceURI)
throws StreamException {
if (prefix.equals(XMLConstants.XML_NS_PREFIX)
&& namespaceURI.equals(XMLConstants.XML_NS_URI)) {
return;
}
boolean prefixFound = false;
for (int i = (bindings - 1) * 2; i >= 0; i -= 2) {
if (prefix.equals(namespaceStack[i])) {
if (namespaceURI.equals(namespaceStack[i + 1])) {
return;
} else {
prefixFound = true;
break;
}
}
}
if (!prefixFound && parentNamespaceContext != null) {
if (!parentNamespaceContext.isBound(prefix, namespaceURI)) {
super.processNamespaceDeclaration(prefix, namespaceURI);
}
// Always call setPrefix even if the namespace is bound, so that we cache the lookup
setPrefix(prefix, namespaceURI);
} else if (prefixFound || !prefix.isEmpty() || !namespaceURI.isEmpty()) {
super.processNamespaceDeclaration(prefix, namespaceURI);
setPrefix(prefix, namespaceURI);
}
}