如果通过<! - ENTITY ... SYSTEM ... - >包含的XML文件是否有<! - ?xml? - >声明?

时间:2015-05-06 19:36:43

标签: xml

我有一个XML文件file1.xml,我试图在其中包含一个来自file2.xml的代码段,如下所示:

file1.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<!DOCTYPE Context [
    <!ENTITY File2Contents SYSTEM "file2.xml">
]>

<Context>
    &File2Contents;
</Context>

file2.xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<Manager path=""/>

问题

我一直在我的file2.xml中得到关于“伪属性”的奇怪的解析器投诉,所以我的问题是该XML声明是否应该在file2.xml中,或者file2.xml是否真的是一个格式正确的XML文档或更多独立代码段文件...

1 个答案:

答案 0 :(得分:1)

The spec says,XML声明很好,它甚至应该在那里:

  

外部解析的实体应该每个都以文本声明开头。

Text Declaration
[77]      TextDecl       ::=      '<?xml' VersionInfo? EncodingDecl S? '?>'
     

文本声明必须按字面提供,而不是通过引用已解析的实体。文本声明绝不能出现在外部解析实体的开头之外的任何位置。外部解析实体中的文本声明不被视为其替换文本的一部分。

看来,问题在于解析器。