XML 変換と Xpath のために、JDK のデフォルト実装 (Xalan だと思います) の代わりに Saxon を使用しようとしました。私のコードでは、document.createCDATASection(data) メソッドを使用して CDATA ノードを作成しています。コードは次のようになります。
CDATASection cdata = doc.createCDATASection("data");
Node valueNode = node.appendChild(doc.createElement("value"));
valueNode.appendChild(cdata);
node は、XML のランダムなノードです。JDK のデフォルトの実装で問題なく動作し、結果の XML は次のようになります。
<node>
<value><![CDATA[data]]></value>
</node>
Saxon maven アーティファクトをインクルードすると、同じコードが奇妙に動作し始めます (インクルードするだけで、以前のようにファクトリの選択/インスタンス化がデフォルトであることに注意してください)。すべての cdata ノードは単純なテキスト ノードとして扱われます。つまり、XML は次のようになります。
<node>
<value>data</value>
</node>
そのコードは、後で削除されたcdata要素を明確にチェックするため、取得時に問題を引き起こしています。なぜこれが起こっているのかわかりません(正しく使用していないようです)。また、POM (Saxon の推移的な依存関係) から Xerces アーティファクトを除外しようとしましたが、うまくいきませんでした。また、JDK 自体から DocumentBuilderFactory などの実装クラスが使用されていることを確認しました。私が何か間違ったことをしている場合は、専門家が私を助けてください。
前もって感謝します。