Загрузить DTD с недопустимым символом "-"

Я хочу загрузить и прочитать файл DTD, содержимое которого я не могу контролировать. Эти файлы DTD содержат строки с символами "-":

Таким образом, следующий код завершается с ошибкой в ​​позиции "-"

XmlReaderSettings settings = new XmlReaderSettings();
settings.CheckCharacters = false;
settings.DtdProcessing = DtdProcessing.Parse;
XmlReader reader = XmlReader.Create(strURL, settings);
XDocument xml = XDocument.Load(reader);

Можно ли прочитать DTD с недопустимым символом?

1 ответ

Похоже, что ваш DTD предназначен для системы, которая обрабатывает SGML, а не XML. Трудно сказать, что вы должны делать с этим, но неудивительно, что библиотека XML отклоняет DTD.

- O часть этого объявления элемента, <!ELEMENT Test-ITD - O (warning) >, обеспечивает "параметры минимизации". Это означает, что конечный тег элемента может быть опущен. Эта функция доступна в SGML, но не в XML.

Второе объявление проблемного элемента упоминается в комментарии:

<!ELEMENT emphasis (#PCDATA | quantity | indexFlag | emphasis | subScript | superScript | captionGroup)+ >

Эта конструкция не работает из-за ограничений, касающихся "смешанного содержимого". + квантификатор не может быть использован; только * позволено.

Рекомендации:

Другие вопросы по тегам