In primo luogo, la combinazione di entità esterne e interne "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [ <!ENTITY nbsp " "> ]
è necessario perché http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
include www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
che comprende <!ENTITY nbsp " ">
che è esattamente uguali ai suoi.
Così quel po 'dovrebbe essere solo:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
In secondo luogo, XDocument non convalida ad un DTD per impostazione predefinita. Tuttavia, è possibile Load
da un XmlValidatingReader
o XmlTextReader
con le impostazioni appropriate
Se possibile, [Se non è possibile, rendere possibile!] È una buona idea per impostare il XmlReader per usare un XmlPreloadedResolver
, perché c'è un molte persone colpiscono il povero vecchio W3C all'URI di quel DTD e i file .enti che include, e stanno completamente bene con voi usando una copia locale di esso (per "totalmente ok" intendo che sarebbero davvero contenti se tutti smettessero di battere il loro server così tanto). Oltre ad essere buono per loro, sarà molto più veloce per te.
fonte
2012-09-04 16:47:08