我有以下的,很简单的XML文件(显著削减从原来的回这个问题的目的):实体引入氧引起的Xerces“元素类型...必须声明”的错误
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY % entities SYSTEM "test.dtd">
%entities;
]>
<root>
</root>
存在文件test.dtd
,但同样为了这个问题的目的,它是空的。
麻烦的是,氧XML编辑器引发错误:
E [Xerces] Element type "root" must be declared.
如果我删除%entities;
线或从上面的线%
符号,不会引发错误,因为氧气则是不实际解析实体文件(很明显,当引入真正的实体时,引用它们失败)。不幸的是,我所做的研究表明,Xerces由于多种不同的原因而抛出了这个错误,我无法缩小这种情况下的错误。
为什么在引入实体时会抛出此错误,即使这些实体没有,我该怎么办?
氧气10.3,如果该事项(我公司只授权给五岁的软件:-()
你怎么没有得到“没有与文档相关的模式或DTD”。当你尝试验证错误?上面的示例没有出现任何格式错误,但它肯定无法验证,因为没有DTD/Schema来验证。如果我将<!ELEMENT root(#PCDATA)>'添加到内部子集中,它会验证正确(使用空的'test.dtd')。 (这是在oxygen 15.) –
不知道为什么我没有得到那个错误。我并没有真正尝试验证(除了连续自动验证oXygen做),但我的XML知识不是很好,我不明白为什么添加空实体导致它引发错误。 我怀疑问题是在oXygen中的一些设置 - Microsoft XML记事本2007(它与我和旧软件?!;有什么关系)处理它很好。 – AJR