- /*
- * NAMESPACE CONTEXT
- */
-
- default ContentName parsePrefixedName(String nameWithPrefix) {
- Objects.requireNonNull(nameWithPrefix, "Name cannot be null");
- if (nameWithPrefix.charAt(0) == '{') {
- return new ContentName(QName.valueOf(nameWithPrefix), this);
- }
- int index = nameWithPrefix.indexOf(':');
- if (index < 0) {
- return new ContentName(nameWithPrefix);
- }
- String prefix = nameWithPrefix.substring(0, index);
- // TODO deal with empty name?
- String localName = nameWithPrefix.substring(index + 1);
- String namespaceURI = getNamespaceURI(prefix);
- if (XMLConstants.NULL_NS_URI.equals(namespaceURI))
- throw new IllegalStateException("Prefix " + prefix + " is unbound.");
- return new ContentName(namespaceURI, localName, prefix);
- }
-
- default String toPrefixedName(QName name) {
- if (XMLConstants.NULL_NS_URI.equals(name.getNamespaceURI()))
- return name.getLocalPart();
- String prefix = getPrefix(name.getNamespaceURI());
- if (prefix == null)
- throw new IllegalStateException("Namespace " + name.getNamespaceURI() + " is unbound.");
- return prefix + ":" + name.getLocalPart();
- }
-