class 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 {
			// as a last resort, use the node name
			return new QName(node.getNodeName());
		}
	}

}