QNameUtils { public static QName getQNameForNode(Node node) { if (node.getNamespaceURI() != null && node.getPrefix() != null && node.getLocalName() != null) { return new QName(node.getNamespaceURI(), node.getLocalName(), node.getPrefix()); } else if (node.getNamespaceURI() != null && node.getLocalName() != null) { return new QName(node.getNamespaceURI(), node.getLocalName()); } else if (node.getLocalName() != null) { return new QName(node.getLocalName()); } else { return new QName(node.getNodeName()); } }  @Deprecated static QName createQName(String namespaceUri, String localPart, String prefix); @Deprecated static String getPrefix(QName qName); static boolean validateQName(String text); static QName getQNameForNode(Node node); static String toQualifiedName(QName qName); static QName toQName(String namespaceUri, String qualifiedName); static QName parseQNameString(String qNameString);  }
@Test public void testGetQNameForNode() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactoryUtils.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); Element element = document.createElementNS("namespace", "prefix:localname"); QName qName = QNameUtils.getQNameForNode(element); Assert.assertNotNull("getQNameForNode returns null", qName); Assert.assertEquals("QName has invalid localname", "localname", qName.getLocalPart()); Assert.assertEquals("Qname has invalid namespace", "namespace", qName.getNamespaceURI()); Assert.assertEquals("Qname has invalid prefix", "prefix", qName.getPrefix()); }