Как разрешить локальные DTD без System.Xml.Utils.Dll (XmlPreloadedResolver)? - PullRequest
0 голосов
/ 06 января 2010

Я использую внешний DTD для проверки моих файлов XML. Поскольку XmlReader, похоже, ищет DTD только в папке, где находится файл xml, мне нужно как-то сказать читателю, чтобы он посмотрел в определенную папку, где находятся мои dtd.

Я, хотя XmlPreloadedResolver, чтобы решить эту проблему, но я не могу найти System.Xml.Utils.Dll в GAC. Разве это не стандартная сборка .NET Framework?

РЕДАКТИРОВАТЬ: Кажется, эта DLL зависит от установки Silverlight. Есть ли другой способ использовать dtd для проверки, который находится в другой папке, чем сам файл xml?

Ответы [ 3 ]

1 голос
/ 06 января 2010

Согласно этой статье , System.Xml.Utils.dll является "необязательным и будет включен в пакет (XAP) в зависимости от использования" .

Кажется, эта сборка связана с Silverlight; на моей машине я просто нашел его внутри %ProgramFiles%\Microsoft SDKs\Silverlight\v?.0\Libraries\Client каталогов

0 голосов
/ 13 августа 2010

.netfx 4.0 включает XmlPreloadedResolver в System.Xml.dll. Подробнее см. http://msdn.microsoft.com/en-us/library/system.xml.resolvers.xmlpreloadedresolver.aspx.

0 голосов
/ 06 января 2010

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 SDK \ Silverlight \ v3.0 \ Libraries \ Client \

Эта сборка включает класс System.Xml.Resolvers.XmlPreloadedResolver

...