一个文档中的多个XML声明是否是格式良好的XML?

7 浏览
0 Comments

一个文档中的多个XML声明是否是格式良好的XML?

在同一文档中有两个XML声明是否符合良好的XML格式?



 
 
  hello
 

我认为不符合,但是我找不到支持我的来源。

来自可扩展标记语言(XML)1.0

定义:XML文档应该以指定所使用的XML版本的XML声明开始。

这里有个讨厌的词“应该”。它表示理想情况下文档应该以XML声明开始。它没有提到在文档中再有另一个声明的情况。

文档类型声明必须出现在文档中第一个元素之前。

这很接近,但它没有涉及XML声明本身,尽管它应该出现在之前。

0
0 Comments

在一个符合规范的XML文档中,只允许有一个XML声明,并且该声明必须出现在文档的顶部。

根据XML Recommendation中“Well-Formed XML Documents”部分对document的定义,一个文档由prolog、element和Misc*组成。

然后查看prolog的定义,prolog由XMLDecl、Misc*和(doctypedecl Misc*)?组成。

再查看XMLDecl的定义,XMLDecl由''组成。

因此,我们可以看到EBNF允许XML声明出现在文档的顶部。

然而,根据Processing instructions的定义,处理指令可以在其他位置出现,但是由于PITarget的定义以及以下说明:

"The target names " XML ", " xml ", and so on are reserved for standardization in this or future versions of this specification."

所以,第二个XML声明是被禁止的。

0