Проверка задач XML-файл с локальным файлом DTD в C#

Мы используем "Справку & Руководство" от EC Software и это работает вполне хорошо. Наши авторы распространены через США, таким образом, мы совместно используем наши файлы содержания через размещенный сервер SVN для управления управлением версиями. На каждой рабочей станции мы используем Черепаху SVN для пребывания в синхронизации. Продукт чрезвычайно прост в использовании и продуктивен.

5
задан Jonathan 2 October 2009 в 10:36
поделиться

3 ответа

Из моих поисков единственный способ заставить его работать - это не добавлять схему в XmlReader . DTD, указанное в XML-документе, должно быть действующим URL-адресом, и XmlReader будет загружать его каждый раз.

Если вам нужно, чтобы схема была локальной, вы можете изменить URL-адрес DTD таким образом, чтобы он указывал на локальный файл с помощью регулярного выражения, чтобы он выглядел примерно как

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "file:C:\wml.dtd">

Обратите внимание на файл : в URL. Сделайте это в памяти перед передачей в XmlReader, и тогда вам не придется изменять XML-файл только для того, чтобы убедиться в его правильности.

0
ответ дан 15 December 2019 в 06:30
поделиться

Попробуйте добавить схему DTD в коллекцию схем перед вызовом XmlReader.Create.

XmlReaderSettings settings = new XmlReaderSettings();
settings.ProhibitDtd = false;
settings.ValidationType = ValidationType.DTD;

settings.ValidationEventHandler += new ValidationEventHandler(validationError);        

XmlSchemaSet schemas = new XmlSchemaSet();

schemas.Add(null, lblDTDPath.Text);
settings.Schemas = schemas;

XmlReader reader = XmlReader.Create(lblXmlPath.Text, settings);

while (reader.Read())
{ 
          // empty by now
}
reader.Close();
0
ответ дан 15 December 2019 в 06:30
поделиться

У меня была аналогичная проблема. Для меня ответ заключался в том, что DTD не нужно подключать через схемы, поскольку XML-файл указывает на это, добавление через схемы вызвало у меня проблему.

0
ответ дан 15 December 2019 в 06:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: