我正在尝试包含一个内部通用实体,但它不起作用。 XML Copy Editor告诉我,XML文件格式正确且有效。我使用在线资源来检查我的DTD文件是否有效,这也是,但是当我在网络浏览器中检查xml文件时,我得到了这个:
以下是XML代码:
<instructor>
<first>Bob</first>
<last>Dole</last>
</instructor>
<instructor>
&instructor-name;
</instructor>
这是DTD代码:
<!-- Element instructor -->
<!ELEMENT instructor (first, last)>
<!-- Create an internal, general entity for instructor -->
<!ENTITY instructor-name "
<first>Jimmy</first>
<last>Davis</last>">
列出了两名教师。 Bob Dole和Jimmy Davis(存储在DTD文件中)。我最初使用相同的格式为两个教师,并没有使用任何实体,它工作得很好。当我尝试使用内部通用实体列出Jimmy Davis时,我收到了上图中显示的错误消息。我做错了什么?
答案 0 :(得分:1)
如果你的DTD是真正的内部,就像内部子集一样,如评论中所述,你不应该在浏览器中打开XML时遇到任何问题。
例如,以下XML在IE或Firefox中没有问题...
<!DOCTYPE instructors [
<!ELEMENT instructors (instructor+)>
<!ELEMENT instructor (first, last)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT last (#PCDATA)>
<!ENTITY instructor-name "
<first>Jimmy</first>
<last>Davis</last>">
]>
<instructors>
<instructor>
<first>Bob</first>
<last>Dole</last>
</instructor>
<instructor>
&instructor-name;
</instructor>
</instructors>
IE显示
Firefox展示