デフォルトのJAXP実装に依存し、OracleJREを使用しています。不明な名前空間プレフィックスを含むXPathを評価する場合、(予期される)例外はスローされません。
IBM JREで同じアプリケーションを実行すると、すべてが正常であり、予期された例外がスローされます。javax.xml.xpath.XPathExpressionException: org.apache.xpath.domapi.XPathStylesheetDOM3Exception: Prefix must resolve to a namespace
無効な名前空間unknownnsにアクセスしようとする次のコードを使用しています
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory
.newInstance();
documentBuilderFactory.setNamespaceAware(true);
documentBuilderFactory.setValidating(true);
documentBuilderFactory.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder();
Document doc = builder.parse(xmlFile_);
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xpath.evaluate("path/to/node/unknowns:@bla", doc,
XPathConstants.NODESET);
質問:
JAXP実装とは別にこの検証を実施するにはどうすればよいですか?