XML 1.1 対 1.0
1.0 の特定の文字が 1.1 で受け入れられなくなった場合、xml 要素にテキストを設定する正しい方法はどれですか?
if Element e = new Element("foo")
私はこれを行う必要があります:
e.setText(sanitized_text_illegal_characters_removed_or_escaped) ?
また
e.setText(任意のテキスト)
XML 1.1 では文字制限が緩和されました。XML 1.0ではほとんどの ASCII 制御文字が許可されていませんが、XML 1.1 ではNUL 以外のすべての制御文字が許可されています (どちらもサロゲートを禁止しています)。
禁止文字を含む文字列を処理する必要がある場合は、アプリケーションに依存するスキームを使用してエスケープするか、削除するかの 2 つの選択肢があります。XML文字参照(別名数値エンティティ) を使用して値を「エスケープ」することはできないことに注意してください。パーサーはこれらの参照を翻訳して拒否します。
ただし、これを実行する前に、実際に実行する必要があるかどうかを確認する必要があります。