xmlを含む文字列からorg.w3c.dom.Documentに解析しようとすると、解析の問題が発生します。
これが私が解析しようとしているxml文字列の例です:
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<idLote>123</idLote>
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
...
</NFe>
</enviNFe>
問題は、que Stringが解析された後、次のコードによって次のようになることです。
private Document documentFactory(String xml) throws SAXException,
IOException, ParserConfigurationException, DocumentException, TransformerException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
Document document = factory.newDocumentBuilder().parse(
new ByteArrayInputStream(xml.getBytes()));
return document;
}
タグNFeは、名前空間なしでロードされます(xmlns = "http://www.portalfiscal.inf.br/nfe")
なぜこれが起こるのか、そしてこれを解決するために何ができるのか知りたいです。
どんな助けでも素晴らしいでしょう。ありがとう、そして私の英語をごめんなさい。
------編集----より良い理解のために:
このxmlは、解析直後に署名され、政府のサーバー(ブラジル)に送信されます。この後、このサーバーに対して別のリクエストを実行して、サーバーが処理されたかどうかを確認します。もしそうなら、エラーが発生した場合に私は肯定的な応答を受け取ります。私が最初に抱えた問題は、xmlの形式が正しくないことでした。これは、タグNFeにその名前空間なしでxmlを送信していたために発生しました。これを解決するために、xmlが署名された後、ファイルにそれ(名前空間)を追加しました。この問題は実際には解決されましたが、別の問題が発生しました。署名の違いです。名前空間なしでxmlに署名し、それを使用して送信するためです。