如何在没有System.Xml.Utils.Dll(XmlPreloadedResolver)的情况下解析本地DTD?

时间:2010-01-06 15:40:24

标签: .net xml gac dtd resolve

我使用外部DTD来验证我的xml文件。由于XmlReader似乎只在xml文件所在的文件夹中查找DTD,因此我需要以某种方式告诉读者查看我的dtd所在的特定文件夹。

我虽然使用XmlPreloadedResolver来解决这个问题但我在GAC中找不到System.Xml.Utils.Dll。这不是标准的.NET框架程序集吗?

编辑:看来这个DLL依赖于Silverlight来安装。是否有另一种方法可以使用dtd进行验证,该文件位于xml文件本身的另一个文件夹中?

3 个答案:

答案 0 :(得分:1)

根据this articleSystem.Xml.Utils.dll “是可选的,将根据用法”包含在包(XAP)中。

似乎这个程序集与Silverlight有关;在我的机器上,我刚刚在%ProgramFiles%\Microsoft SDKs\Silverlight\v?.0\Libraries\Client目录

中找到它

答案 1 :(得分:0)

System.Xml.Utils.dll不是标准.NET Framework的一部分。它包含在Silverlight SDK中。如果您尚未安装它,可以从此处执行此操作:http://www.microsoft.com/downloads/details.aspx?FamilyID=1ea49236-0de7-41b1-81c8-a126ff39975b&displaylang=en

安装完成后,要在项目中引用的程序集将位于%PROGRAMFILES%\ Microsoft SDKs \ Silverlight \ v3.0 \ Libraries \ Client \

此程序集包含System.Xml.Resolvers.XmlPreloadedResolver类

答案 2 :(得分:0)

.netfx 4.0在System.Xml.dll中包含XmlPreloadedResolver。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.xml.resolvers.xmlpreloadedresolver.aspx