たとえば、ノードの場合、どちらが正しいですか?
XML仕様自体は、ノードについては説明していません(DTD構文を有限オートマトン正規表現と比較する場合を除く)。DOMノードは、属性、要素、テキスト、またはその他のノードタイプのいずれかです。
テキストノード内では、パーサーが別のノードを開始すると解釈する文字をエスケープするだけで済みます。したがって、&と<を&amp;としてエスケープします。および&lt; 。
移植性のために、中引用符をエスケープすることはしばしば良い考えですが、XMLテキストのプレーン引用符をエスケープする理由はありません。
属性ノード内では、以前と同様に、より少ないアンパサンドをエスケープする必要があります。また、属性を区切るために使用した引用符もエスケープする必要があります。
<foo attribute="'ok'" attribute2='"also-ok"' attribute3=""needed""/>
通常、1つのタイプのみを使用し、常にそれをエスケープする習慣を身に付ける方が簡単です。私はかなりの量のXSLTを作成し、「outside」と「inside」を使用することを好みます。
<xsl:value-of select="person[@name = 'bob']"/>
エスケープで妄想的になると、XPathは読みにくくなります。
<xsl:value-of select="person[@name = 'bob'"/>
(c)の場合、HTMLとXMLを混在させることは本当に適切ですか?
XMLは、名前付きエンティティamp、gt、lt、apos、&quotを定義します
HTMLはさらに多くのエンティティを定義します。
数値エンティティを使用するよりも、XMLでXML名前付きエンティティを使用できます。
ltエンティティは<をエスケープし、テキストと属性の値で使用する必要があります。ampエンティティは&をエスケープし、テキストと属性の値で使用する必要があります。aposおよびquotエンティティは'および"をエスケープし、属性値で使用する必要があります。gtエンティティは少し役に立たない-XMLでエスケープする構文要件はほとんどありません。請求する。
ソースコードを生成するXSLTでよく使用するもう1つは、&#xa;です。これは新しい行を挿入します。&nl; &gt;よりも多く使用されていたでしょう
同様に、一重引用符と中引用符をどのように処理しますか?
XMLはUnicodeテキストをマークアップするように設計されており、中引用符には特別な意味はありません。ただし、XMLドキュメントに使用されるエンコーディングが実際に誤って解釈されることは珍しくありません。したがって、閉じた環境にあり、プロデューサーとコンシューマーで正しいUnicodeエンコーディングを保証できる場合は、XMLに配置するだけです。それ以外の場合は、数字のエンティティを使用します。これは、コードポイントが127を超えるすべての文字に当てはまります。中引用符については特別なことは何もありません。