public String getNamespaceURI()

in src/main/java/org/apache/commons/jxpath/ri/model/dom/DOMNodePointer.java [518:560]


    public String getNamespaceURI(final String prefix) {
        if (prefix == null || prefix.isEmpty()) {
            return getDefaultNamespaceURI();
        }
        if (prefix.equals("xml")) {
            return XML_NAMESPACE_URI;
        }
        if (prefix.equals("xmlns")) {
            return XMLNS_NAMESPACE_URI;
        }
        String namespace = null;
        if (namespaces == null) {
            namespaces = new HashMap<>();
        } else {
            namespace = namespaces.get(prefix);
        }
        if (namespace == null) {
            final String qname = "xmlns:" + prefix;
            Node aNode = node;
            if (aNode instanceof Document) {
                aNode = ((Document) aNode).getDocumentElement();
            }
            while (aNode != null) {
                if (aNode.getNodeType() == Node.ELEMENT_NODE) {
                    final Attr attr = ((Element) aNode).getAttributeNode(qname);
                    if (attr != null) {
                        namespace = attr.getValue();
                        break;
                    }
                }
                aNode = aNode.getParentNode();
            }
            if (namespace == null || namespace.isEmpty()) {
                namespace = UNKNOWN_NAMESPACE;
            }
        }
        namespaces.put(prefix, namespace);
        if (namespace == UNKNOWN_NAMESPACE) {
            return null;
        }
        // TBD: We are supposed to resolve relative URIs to absolute ones.
        return namespace;
    }