我有一个XML文件file1.xml,我试图在其中包含一个来自file2.xml的代码段,如下所示:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE Context [
<!ENTITY File2Contents SYSTEM "file2.xml">
]>
<Context>
&File2Contents;
</Context>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Manager path=""/>
我一直在我的file2.xml中得到关于“伪属性”的奇怪的解析器投诉,所以我的问题是该XML声明是否应该在file2.xml中,或者file2.xml是否真的是一个格式正确的XML文档或更多独立代码段文件...
答案 0 :(得分:1)
The spec says,XML声明很好,它甚至应该在那里:
外部解析的实体应该每个都以文本声明开头。
Text Declaration [77] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'
文本声明必须按字面提供,而不是通过引用已解析的实体。文本声明绝不能出现在外部解析实体的开头之外的任何位置。外部解析实体中的文本声明不被视为其替换文本的一部分。
看来,问题在于解析器。