一个文档中的多个XML声明是否是格式良好的XML?
一个文档中的多个XML声明是否是格式良好的XML?
在同一文档中有两个XML声明是否符合良好的XML格式?
hello
我认为不符合,但是我找不到支持我的来源。
定义:XML文档应该以指定所使用的XML版本的XML声明开始。
这里有个讨厌的词“应该”。它表示理想情况下文档应该以XML声明开始。它没有提到在文档中再有另一个声明的情况。
文档类型声明必须出现在文档中第一个元素之前。
这很接近,但它没有涉及XML声明本身,尽管它应该出现在之前。
在一个符合规范的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声明是被禁止的。