XML外部实体DTD的PEReference错误

XML外部实体DTD的PEReference错误,xml,import,entity,external,doctype,Xml,Import,Entity,External,Doctype,我有以下XML代码声明一个外部DTD实体: <!DOCTYPE customers [ <!ENTITY % itemCodes SYSTEM "codes.dtd"> %itemCodes; ]> 为什么会这样?为什么会这样 因为它找不到codes.dtd文件。如果您没有使用某种基于目录的解析机制,则codes.dtd必须位于正在运行的程序的工作目录中 但第53行的错误似乎很奇怪。对于DTD来说,这太远了。第53行看起来像什么 更新:重新考虑时,问题可能不是找不到

我有以下XML代码声明一个外部DTD实体:

<!DOCTYPE customers [
 <!ENTITY % itemCodes SYSTEM "codes.dtd">
 %itemCodes;
]>
为什么会这样?

为什么会这样

因为它找不到
codes.dtd
文件。如果您没有使用某种基于目录的解析机制,则
codes.dtd
必须位于正在运行的程序的工作目录中

但第53行的错误似乎很奇怪。对于DTD来说,这太远了。第53行看起来像什么


更新:重新考虑时,问题可能不是找不到
codes.dtd,而是使用的XML解析器不处理外部实体。(毕竟,它说找不到PE引用本身,而不是它的referent。)这是非验证解析器的一个常见限制,但错误诊断可能更有帮助(“对不起,不支持外部实体引用”。

如果你说的是真的,那么,为什么DTD文件不能在与XML文件相同的目录中找到呢?我把所有的东西都放在一起,只是想用Chrome打开文件。另外,第53行出现的原因是DOCTYPE有一些我排除的内部声明。在这种情况下,我可能误解了错误消息。我将添加一个更新。Chrome对XML的支持不是很有限吗?如果您将整个内部子集放在另一个dtd文件中,并且只有
,您可能会发现是否支持外部实体。它在Firefox上似乎工作正常。然而,Firefox似乎无法导入我保存在DTD中的代码。
<!ENTITY DCT5Z "Tapan Digital Camera 5 Mpx - zoom">
<!ENTITY SM128 "SmartMedia 128MB Card">
<!-- etc. -->
This page contains the following errors:

error on line 53 at column 8: PEReference: %itemCodes; not found