私の Java アプリケーションでは、0x2
CDATA 内に制御文字を含む XML ドキュメントを解析する必要があります。
いくつかの方法を試しましたが、うまくいきませんでした。あらゆる種類のエンコーディングを避けたい。
XML1.1に何か方法はありますか?
私の Java アプリケーションでは、0x2
CDATA 内に制御文字を含む XML ドキュメントを解析する必要があります。
いくつかの方法を試しましたが、うまくいきませんでした。あらゆる種類のエンコーディングを避けたい。
XML1.1に何か方法はありますか?
CDATA 内に制御文字 0x2 を含む xml を解析する必要があります
それでは、それは XML ではありません。生の制御文字 U+0002 は、整形式ではないため、XML ドキュメントではないことを意味します。
XML 1.1 のみで、文字参照としてエンコードされた制御文字を含めることができます。そのため、解析\x02
する前に文字列を置換して修正しようとした可能性があります。
ただし、CDATA セクションに文字参照を入れることはできないため、これもうまくいきません。
編集:すべての浮遊 U+0002 文字が CDATA セクション内にあることが絶対に確実な場合は、それぞれを次のように置き換えることで、おそらく短期的に修正できます。
]]><![CDATA[
しかし、これは超シャンキーです。最初に問題のある XML を生成したものはすべて修正する必要があります。それを作成した責任者を蹴ってください!
XML cannt contain ASCII control characters (apart from TAB, CR and LF), not even inside a CDATA section. They are disallowed by the XML spec.
Encode binary data into Base64 strings and write them to XML. No need for CDATA in this case.