0

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(任意のテキスト)

4

1 に答える 1

2

XML 1.1 では文字制限が緩和されました。XML 1.0ではほとんどの ASCII 制御文字が許可されていませんが、XML 1.1 ではNUL 以外のすべての制御文字が許可されています (どちらもサロゲートを禁止しています)。

禁止文字を含む文字列を処理する必要がある場合は、アプリケーションに依存するスキームを使用してエスケープするか、削除するかの 2 つの選択肢があります。XML文字参照(別名数値エンティティ) を使用して値を「エスケープ」することはできないことに注意してください。パーサーはこれらの参照を翻訳して拒否します。

ただし、これを実行する前に、実際に実行する必要があるかどうかを確認する必要があります。

于 2012-09-07T20:18:54.097 に答える