XML文件的第一个字符必须是什么?

Bil*_*pus 3 xml linux bash shebang

具体来说,有没有办法为XML文件编写shebang?

我正在使用一些包含启动信息的XML文件.(Roslaunch文件,如果重要的话).我想直接调用该文件并让bash启动它.但是,对于XML,首先#!是语法错误.有没有办法用shebang写一个XML文件?

kjh*_*hes 5

XML文件中的第一个字符必须<空格或空格.格式良好的XML文档可以从没有其他角色开始,包括#.

根据可扩展标记语言(XML)1.0(第五版) XML EBNF for Well-Formed XML Documents:

[1]  document ::= prolog element Misc*
[22] prolog   ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl  ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
[27] Misc     ::= Comment | PI | S
[3]  S        ::= (#x20 | #x9 | #xD | #xA)+
[16] PI       ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[15] Comment  ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? 
                     ('[' intSubset ']' S?)? '>'
[39] element  ::= EmptyElemTag | STag content ETag
[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
[40] STag     ::= '<' Name (S Attribute)* S? '>'
Run Code Online (Sandbox Code Playgroud)

document生产及其组成部分可以看出,XML文档必须以下列之一开头:

  • 一个<(通过XMLDecl,Comment,PI,doctypedecl,或element)
  • 一个空格字符(如果没有XMLDecl).