Как разрешить локальные DTD без System.Xml.Utils.Dll (XmlPreloadedResolver)?

StackOverflow https://stackoverflow.com/questions/2014077

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

Редактировать:Похоже, что эта DLL-библиотека зависит от установки silverlight.Есть ли другой способ использовать dtd для проверки, который находится в другой папке, чем сам XML-файл?

Это было полезно?

Решение

System.Xml.Utils.dll не является частью стандартной платформы .NET Framework.Он включен как часть Silverlight SDK.Если вы еще не установили его, вы можете сделать это отсюда: http://www.microsoft.com/downloads/details.aspx ?Идентификатор семейства=1ea49236-0de7-41b1-81c8-a126ff39975b&displaylang=ru

Как только вы его установите, сборка, на которую вы хотите ссылаться в своем проекте, будет находиться в разделе %PROGRAMFILES%\Microsoft SDKs\ Silverlight\v3.0\Libraries\ Client\

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

Другие советы

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

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

.netfx 4.0 включает в себя XmlPreloadedResolver в System.Xml.dll .Видишь http://msdn.microsoft.com/en-us/library/system.xml.resolvers.xmlpreloadedresolver.aspx для получения подробной информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top