在文档格式良好的XML中是多个XML声明?
在相同的文档格式良好的XML中有两个XML声明?
<?xml version="1.0" encoding="UTF-8"?> <a> <?xml version="1.0" encoding="UTF-8"?> <b> hello </b> </a>
我相信这不是,但是我找不到一个资料来支持我。
来自可扩展标记语言(XML)1.0
定义:XML文档应该以一个XML声明开始,该声明指定了正在使用的XML的版本。
讨厌的词“应该”在那里。 它说,理想情况下,文档从一个XML声明开始。 它没有提到在文件中有另外一个。
文档types声明必须出现在文档的第一个元素之前。
这很接近,但是它并不谈论XML声明本身,即使它应该在它之前。
在格式良好的XML中只允许有一个 XML声明,并且在任何地方都必须在顶部 。
必须在顶部
请参阅XMLbuild议书的格式 良好的XML文档部分中的文档定义 :
[1] document ::= prolog element Misc*
然后检查prolog
:
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
然后XMLDecl
:
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
所以,我们看到EBNF允许在文档顶部的XML声明。
只有一个
处理说明 …
[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>' [17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))
…一般可能在其他地方发生,但由于PITarget
的定义和PITarget
声明,第二个XML声明被排除:
目标名称“XML”,“xml”等在本规范的这个版本或未来版本中保留用于标准化。