<name>Smith & Jones</name>
私の顧客は私のxmlファイルをではなくとして書きたいと思ってい<name>Smith & Jones</name>
ます。
これについて説明している品質リファレンスが見つかりません。
<name>Smith & Jones</name>
私の顧客は私のxmlファイルをではなくとして書きたいと思ってい<name>Smith & Jones</name>
ます。
これについて説明している品質リファレンスが見つかりません。
XML仕様(§2.4)から:
アンパサンド文字(&)と左山括弧(<)は、マークアップ区切り文字として、またはコメント、処理命令、またはCDATAセクション内で使用される場合にのみ、リテラル形式で表示されます。これらは、内部エンティティ宣言のリテラルエンティティ値内でも有効です。「4.3.2整形式の解析済みエンティティ」を参照してください。他の場所で必要な場合は、数字参照または文字列「&」と「<」をそれぞれ使用してエスケープする必要があります。
この状況は記載されているカテゴリのいずれにも当てはまらないため、違法です。
CDDATAタグを使用して、XMLでこれらの文字を解析せずにXMLタグ内に挿入します。
<name>Smith & Jones</name>
になります
<name><![CDATA[ Smith & Jones ]]></name>
このようにして、xmlを使用してプレーンなhtmlを配置することもできます。
少なくとも、ファイルを「XML」と呼び続けたい場合は、できません。XMLはエスケープされていないアンパサンドを許可せず、準拠するパーサーはそれらを含むファイルを「不適切に形成された」ものとして拒否します。
CDATAを使用できますが、それ自体が醜くなり、ほとんどのシリアライザーはデフォルトでCDATAを生成しません。
XML仕様は、これが整形式のXMLではないことを明確にしています。
なぜ仕様がそのように書かれたのかを知りたいのであれば、それは常に答えるのがはるかに難しい質問です。http://www.xml.com/axml/testaxml.htmにあるTimBrayの注釈付きバージョンのXML推奨事項が明らかになることがあります(今回はそうではありません)。http://www.w3.org/TR/1998/REC-xml-19980210.xmlにある仕様のXMLソースのコメントやその他のメモが明らかになることがあります(今回はそうではありません)。このような手がかりがない場合、XMLの作成者はSGMLとの互換性を維持することを非常に切望しており、XMLの作成を容易にするのではなく、XMLのエラーを検出できるパーサーを使用する傾向があったことを思い出してください。