我有以下非常简单的 XML 文件(出于此问题的目的,从原始文件中显着减少):
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY % entities SYSTEM "test.dtd">
%entities;
]>
<root>
</root>
该文件test.dtd
存在,但再次出于此问题的目的,它是空的。
麻烦的是 oXygen XML Editor 抛出错误:
E [Xerces] Element type "root" must be declared.
如果我从上面的行中删除该%entities;
行或%
符号,则不会引发错误,因为 oXygen 实际上并没有解析实体文件(因此,显然,当引入真正的实体时,对它们的引用会失败)。不幸的是,我所做的研究表明 Xerces 出于多种不同的原因引发了此错误,我无法缩小在这种情况下的错误范围。
为什么在引入实体时会引发此错误,即使那里没有实体,我该怎么办?
oXygen v10.3,如果这很重要(我的公司仅获得五年前软件的许可:-()