まず、の外部エンティティと内部エンティティの組み合わせ"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
から適切な設定で行うことができますXmlValidatingReader
XmlTextReader
もし可能なら、[不可能な場合は可能にしてください!]XmlPreloadedResolver
そのDTDとそれに含まれる.entファイルのURIで貧弱な古いW3Cをヒットする人がたくさんいるので、XmlReaderを使用するように設定することをお勧めします。 'それのローカルコピーを使用して完全に大丈夫です(「完全に大丈夫」とは、誰もがサーバーをそれほどハンマーで叩くのをやめれば、彼らは本当に喜ぶことを意味します)。彼らにとって良いだけでなく、あなたにとってもはるかに速くなります。