Загрузить 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)+ >
Эта конструкция не работает из-за ограничений, касающихся "смешанного содержимого". +
квантификатор не может быть использован; только *
позволено.
Рекомендации: