@Nonnull public final String getNamespaceURI (@Nonnull final String sPrefix) { // According to JavaDoc if (sPrefix == null) throw new IllegalArgumentException ("null prefix is not allowed!"); // special "xml:" namespace handling if (sPrefix.equals (XMLConstants.XML_NS_PREFIX)) return XMLConstants.XML_NS_URI; // special "xmlns:" namespace handling if (sPrefix.equals (XMLConstants.XMLNS_ATTRIBUTE)) return XMLConstants.XMLNS_ATTRIBUTE_NS_URI; // special "" namespace handling if (sPrefix.equals (XMLConstants.DEFAULT_NS_PREFIX)) { final String sDefNSURI = getDefaultNamespaceURI (); return sDefNSURI != null ? sDefNSURI : XMLConstants.NULL_NS_URI; } final String ret = getCustomNamespaceURI (sPrefix); return ret != null ? ret : XMLConstants.NULL_NS_URI; } }
@Nullable public final String getPrefix (@Nonnull final String sNamespaceURI) { // According to JavaDoc if (sNamespaceURI == null) throw new IllegalArgumentException (); // special "xml:" namespace handling if (sNamespaceURI.equals (XMLConstants.XML_NS_URI)) return XMLConstants.XML_NS_PREFIX; // special "xmlns:" namespace handling if (sNamespaceURI.equals (XMLConstants.XMLNS_ATTRIBUTE_NS_URI)) return XMLConstants.XMLNS_ATTRIBUTE; // special "" namespace handling if (sNamespaceURI.equals (getDefaultNamespaceURI ())) return XMLConstants.DEFAULT_NS_PREFIX; return getCustomPrefix (sNamespaceURI); }
@Nonnull @DevelopersNote ("Java 8: Iterator; Java 10: Iterator<String>") public final Iterator getPrefixes (@Nonnull final String sNamespaceURI) { // According to JavaDoc if (sNamespaceURI == null) throw new IllegalArgumentException (); if (sNamespaceURI.equals (XMLConstants.XML_NS_URI)) return new SingleElementIterator <> (XMLConstants.XML_NS_PREFIX); if (sNamespaceURI.equals (XMLConstants.XMLNS_ATTRIBUTE_NS_URI)) return new SingleElementIterator <> (XMLConstants.XMLNS_ATTRIBUTE); final Iterator <String> ret = getCustomPrefixes (sNamespaceURI); return ret != null ? ret : new EmptyIterator <> (); }