加载带有无效字符“”的DTD-&”;
本文关键字:DTD- 无效 字符 加载 | 更新日期: 2023-09-27 17:53:31
我想加载并读取一个DTD文件,其中的内容我无法控制。这些DTD文件包含字符为"-"的行:
<!ELEMENT Test ITD-O(警告(>
所以下面的代码在的"-"位置失败
XmlReaderSettings settings = new XmlReaderSettings();
settings.CheckCharacters = false;
settings.DtdProcessing = DtdProcessing.Parse;
XmlReader reader = XmlReader.Create(strURL, settings);
XDocument xml = XDocument.Load(reader);
是否可以读取带有非法字符的DTD?
您的DTD似乎是为处理SGML而不是XML的系统设计的。很难说您应该对此做些什么,但XML库拒绝DTD也就不足为奇了。
该元素声明的- O
部分<!ELEMENT Test-ITD - O (warning) >
提供了"最小化参数"。这意味着可以省略元素的结束标签。这是一个在SGML中可用但在XML中不可用的功能。
评论中提到了第二个有问题的元素声明:
<!ELEMENT emphasis (#PCDATA | quantity | indexFlag | emphasis | subScript | superScript | captionGroup)+ >
由于"混合内容"的限制,此构造不起作用。不能使用+
量词;仅允许CCD_ 4。
参考文献:
- http://www.w3.org/TR/NOTE-sgml-xml
- http://www.tei-c.org/Vault/ML/mlw01.htm#ID1