2011-01-11 39 views
3

私はいくつかの.netリソースファイル(.resx)を解析しています。その中ó xmlファイルでは許可されていませんが、.netリソースファイルで許可されていますか?

、私はデータのこの部分を持っている:

información 

は、これは私の.NETアプリケーションで動作しますが、私は私のXMLドキュメント

XDocument xmlDoc = XDocument.Parse(s); 

でこのファイルをロードしようとすると、私が取得このエラー:

Reference to undeclared entity 'oacute'. 

なぜですか?

答えて

6

óは、XMLで定義されていないnamed HTML entityです。

XMLは、HTMLという名前のエンティティ(即ち&'"><メモリが機能する場合)のサブセットを定義します。 16進数で

información 

または::

はあなたではなく、数値エンティティ表現を使用することができます

información 
+0

をちょっとおかげで、私はいつも2は同じ意味と思ったが、そのたぶんHTMLでしかなく、XMLではありません。 – Michel

+0

@Fredericしたがって、エンティティのXMLで数値エンティティ表現を使用するのはいつも安全ですか?またはそこにもサブセットがありますか? – Matt

+1

@Matt、それは安全です、*ほとんどの時間*。数値エンティティフォームであっても、XMLでは使用できない文字があります。フォームフィード文字( ' ')が気になりますが、* allowed *文字の完全なリストは[この回答](http://stackoverflow.com/a/5110103/464709)にあります。 –

3

エンティティoacuteは、XMLのために、デフォルトで宣言されていません。代わりにóを試してください。 Hereは、他の同様の問題がある場合に備えて、対応するコードを持つHTMLエンティティのリストです。

óを引き続き使用する場合は、エンティティを自分で定義することができます。

あなたはDTDを使用している場合、あなたはこのように、このようにスキーマを使用して

<!ENTITY oacute "&#243;"> 

場合や、それを定義することができます。

<xsd:element name="oacute" type="xsd:token" fixed="&#243;"/> 
関連する問題