1

XML を HTML に変換しようとしています。XML には、HTML タグにマップされるいくつかの既知の要素のみが含まれています。テキスト ノードを html エンコードする必要がありますか?

HTMLタグのみを使用していると仮定すると、有効なXMLは有効なHTMLでもありますか?

4

2 に答える 2

0

HTMLタグのみを使用していると仮定すると、有効な* XMLも有効なHTMLですか?

* 「有効」は「整形式」と同じではないことに注意してください。有効性は、整形式であり、DTD またはスキーマとの比較が成功することを必要とするプロパティです。整形式とは、構文の正確さを意味するだけであり、それがここでの意味です。

はい。HTML は、XML には存在しないいくつかの規則を使用します (目立って閉じられていないタグ、 のようなエンコードされていないタグ本体<script>、名前空間はサポートされていません、不適切なタグのネストは見過ごされています)。名前は HTML パーサーによって理解されます。

この場合のバニラとは、カスタム DTD やカスタムの名前付き文字エンティティがないことを意味します。

テキスト ノードを html エンコードする必要がありますか?

いいえ。特定のエンコーディング (UTF-8 など) で有効なすべての文字は、エンコーディングが正しく宣言されている限り、XML と HTML の両方で受け入れられます。文字エスケープ スキームは互換性があるため、たとえば&#160;(または&xA0;) は、XML と HTML の両方で非改行スペースを表します。その非改行スペースを逐語的に(つまり、シングルバイトとしてxA0)テキストに書き込むことも同様に機能します。、、、および以外の名前付き文字エンティティは XMLではサポートされていませんが、XML で使用できる番号付き文字エンティティはすべて HTML で機能します。つまり、そこで問題が発生することはありません。&lt;&gt;&amp;&quot;&apos;

エンコーディングを宣言しない XML は、デフォルトで UTF-8 になります。HTML に同じエンコーディングを使用している限り、すべてのテキスト ノードと属性値をそのままにしておくことに問題はありません。

于 2013-10-08T08:03:59.063 に答える