web-dev-qa-db-ja.com

XML属性で無効な(エンコードされていない)文字はどれですか?

この情報に簡単にアクセスできるとは思えないので、次のようにします。

1)エンティティをエンコードせずにXML属性に組み込むことができない文字はどれですか?

明らかに、引用符をエンコードする必要があります。 <および>?ほかに何か?

2)公式リストは正確にどこにありますか?

46
Euro Micelli

属性値で許可されるもの の定義は次のとおりです。

'"' ([^<&"] | Reference)* '"'  |  "'" ([^<&'] | Reference)* "'" 

だから、あなたが持つことはできません:

  • 属性値を開く/閉じるのと同じ文字(either'または"
  • 裸のアンパサンド(& でなければなりません &amp;
  • 左山括弧(< でなければなりません &lt;

また、XML文書のどこでも(フォームフィードなど)正当ではない 文字 を使用しないでください。

51
great_llama

(2) 現在の推奨 、特に 文字データとマークアップ に関しては、(1)アンパサンド(&)、左山括弧(<)、右角ブラケット(>)、および単一引用符( ')と二重引用符( ")の両方。

5
codehead

"Extensible Markup Language(XML)1.0(Third Edition)"2.2文字 を参照してください。

少なくとも.NETでは、XML APIを使用してXMLを操作している場合、これについて心配する必要はありません。 XMLをテキストとして扱わない理由です。

1
John Saunders