Sunday, February 13, 2011

Why do I get web exception when creating an XPathDocument?

Creating an XPathDocument with referenced DTD sometimes throws a web exception. Why?

  • See http://todotnet.com/archive/2006/07/27/8248.aspx

    Because in the construction of XPathDocument, there's an http GET command to see if it can access the DTD. It's not doing anything with the DTD. It's for just in case. So while XPathDocument is initially set up to be a faster alternative to XmlDocument, you'll have the additional overhead of an http request that needs to be resolved. Imagine that server being on the other side of the globe!

    From Goran
  • You can write a custom XmlUrlResolver and then ignore the remote DTD. Also, I believe you can set use XmlResolver = null on the XmlTextReader.

    Goran : But the MSDN should clearly state this might happen. Looking at the XPathDocument you can't tell it will look for DTD on the web. Also why is the exception thrown? If DTD is not needed - works offline doesn't it? Thanks for the suggestions anyway - I'll try them next time!
    From duckworth

0 comments:

Post a Comment