Drew did the heavy lifting and points out that the problem isn't with .NET but with the DTDs themselves which include a module which simply doesn't exist. I must also sheepishly admit that he had responses to some earlier questions that I missed. One was about FTP client services in .NET and the other was about creating a custom XmlResolver. Sorry Drew.
David Johnson is having a helluva time with CQHost and is trying to find an alternative hosting service that privides Java Servlets. Until then I'll keep both his Radio and Roller based weblogs news feeds in Aggie.
Andy McMullen pointed out to me via e-mail that I can write an XmlResolver all my own and fix the default XmlResolver's problems with relative directory names. There's even an MSDN article on creating custom resolvers. Way cool. My first experiment will be a little resolver that just passes all the work to the default resolver but lets me see exactly where .Net falls down on job when processing the XHTML 1.1 DTD.
A reader dropped me a note to point out that my solution to XmlDocument loading up DTDs was sub-optimal, noting that if the DTD defines any entities and they are used in the document then the document will fail to load.
Now this leaves me in a bit of trouble. I want to load and manipulate an XHTML 1.1 document using System.Xml.XmlDocument, but can't because .Net chokes on the 1.1 DTD. I suppose I could download, fix, merge and pre-feed all the XHTML 1.1 DTD's before I load my document which I could modify to only have half a doc-type, though I'm sure that has other consequences. On the other hand, I could just find and pre-feed all the entities defined for XHTML 1.1 and still use my XmlResolver = null
hack.
I have just checked a fairly large change to Aggie into CVS. This change breaks out all the configuration information and puts it into a dialog box. This includes support for a proxy server (needs testing) and the ability to choose a 'skin'. The skin is for the look of the generated HTML page used for viewing the news, the application itself is currently not skinnable. Once Aggie's support for international feeds is fixed then this will become RC4.