まず、の外部エンティティと内部エンティティの組み合わせ"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [ <!ENTITY nbsp " "> ]は不要です。これは、どのインクルードがあなたのものとまったく同じであるかをhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd含むためです。www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent<!ENTITY nbsp " ">
したがって、そのビットは次のようになります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
次に、XDocumentはデフォルトでDTDに対して検証されません。ただし、またはLoadから適切な設定で行うことができますXmlValidatingReaderXmlTextReader
もし可能なら、[不可能な場合は可能にしてください!]XmlPreloadedResolverそのDTDとそれに含まれる.entファイルのURIで貧弱な古いW3Cをヒットする人がたくさんいるので、XmlReaderを使用するように設定することをお勧めします。 'それのローカルコピーを使用して完全に大丈夫です(「完全に大丈夫」とは、誰もがサーバーをそれほどハンマーで叩くのをやめれば、彼らは本当に喜ぶことを意味します)。彼らにとって良いだけでなく、あなたにとってもはるかに速くなります。