外部dtd(xml)中的外部实体引用

时间:2011-04-19 04:14:49

标签: xml reference entity external dtd

我在外部DTD中使用外部实体引用时遇到一些问题

例如

[name.xml的]

<?xml version="1.0" ?>
<!DOCTYPE simple SYSTEM "simple.dtd">
<simple>
       <name> &a;   </name>
       <age>  21   </age>
       <address> bsk street </address>  
</simple>

[name.dtd]

<?xml version="1.0" ?>
<!ELEMENT simple (name,age,address)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT a "abhijeet">

当我在Internet Explorer上运行此程序时,我收到错误...

1 个答案:

答案 0 :(得分:8)

那是因为您正在使用ELEMENT声明来声明实体。

这是你的ENTITY声明应该是这样的:

<!ENTITY a "abhijeet">

此外,您的示例中有[name.dtd],但您的系统标识符显示simple.dtd。确保您的系统标识符指向正确的DTD。

内部子集的示例:

<?xml version="1.0"?>
<!DOCTYPE simple SYSTEM "simple.dtd" [
<!ENTITY a "abhijeet">
]>
<simple>
  <name> &a;   </name>
  <age>  21   </age>
  <address> bsk street </address>
</simple>