这是一个有效的XML实例吗?它在XML声明和根节点之间没有任何内容。
<?xml version="1.0" encoding="UTF-8"?><data></data>
我自己在XML规范中找不到合适的位置,希望有人能帮助我......
答案 0 :(得分:9)
规范(参见2.8 Prolog and Document Type Declaration)不要求(但允许)新行遵循XML声明。
正式将其写成:
[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
...
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
...
[27] Misc ::= Comment | PI | S
正如您在[22] prolog
中看到的那样,XML声明是可选(请参阅符号后面的问号)和零,一个或多个(见星号)Misc
可以遵循以下内容:评论,其他处理说明(PI
)或空白(S
)。空白包括换行符。
由于此处Misc
是可选的,因此声明后可以但不必遵循换行符。
答案 1 :(得分:2)
新行或左右不是规范的一部分。例如,当您使用XMLOutputter类(在Java中)编写XML文档时,您将获得没有换行符的文件。新线适用于人类。