XML を HTML に変換しようとしています。XML には、HTML タグにマップされるいくつかの既知の要素のみが含まれています。テキスト ノードを html エンコードする必要がありますか?
HTMLタグのみを使用していると仮定すると、有効なXMLは有効なHTMLでもありますか?
HTMLタグのみを使用していると仮定すると、有効な* XMLも有効なHTMLですか?
* 「有効」は「整形式」と同じではないことに注意してください。有効性は、整形式であり、DTD またはスキーマとの比較が成功することを必要とするプロパティです。整形式とは、構文の正確さを意味するだけであり、それがここでの意味です。
はい。HTML は、XML には存在しないいくつかの規則を使用します (目立って閉じられていないタグ、 のようなエンコードされていないタグ本体<script>
、名前空間はサポートされていません、不適切なタグのネストは見過ごされています)。名前は HTML パーサーによって理解されます。
この場合のバニラとは、カスタム DTD やカスタムの名前付き文字エンティティがないことを意味します。
テキスト ノードを html エンコードする必要がありますか?
いいえ。特定のエンコーディング (UTF-8 など) で有効なすべての文字は、エンコーディングが正しく宣言されている限り、XML と HTML の両方で受け入れられます。文字エスケープ スキームは互換性があるため、たとえば 
(または&xA0;
) は、XML と HTML の両方で非改行スペースを表します。その非改行スペースを逐語的に(つまり、シングルバイトとしてxA0
)テキストに書き込むことも同様に機能します。、、、および以外の名前付き文字エンティティは XMLではサポートされていませんが、XML で使用できる番号付き文字エンティティはすべて HTML で機能します。つまり、そこで問題が発生することはありません。<
>
&
"
'
エンコーディングを宣言しない XML は、デフォルトで UTF-8 になります。HTML に同じエンコーディングを使用している限り、すべてのテキスト ノードと属性値をそのままにしておくことに問題はありません。