XML可以从“<”开始吗?

时间:2018-03-14 11:00:52

标签: xml string file w3c

XML可以使用<字符以外的任何内容开头吗?

当我试图定义如何区分包含XML的字符串和包含XML路径的字符串时,我只是随意想到的。

我相信答案是否定的,但我希望确定。

2 个答案:

答案 0 :(得分:3)

只有<或空白字符才能开始well-formed XML文档。

W3C XML Recommendation包含一个明确定义XML document的EBNF:

 [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)+

根据这些规则,XML文档可以从以下任何一个结构中的空白字符或<字符开始:

  • XML声明
  • 注释
  • PI
  • Doctype Declaration
  • 元素

XML文档可以从没有其他角色开始。

备注:

  1. 这些规则的含义是,如果XML文档包含 一个XML声明,它必须出现在顶部(或者你可以收到一个 somewhat cryptic error message)。所以,对于XML文档 一个XML声明,第一个字符必须是<和 不能是空白。
  2. BOM可能出现在XML文档实体的开头 表示正在使用的字符编码的字节顺序。这些 两个字节通常不被视为XML的一部分 文档本身,而不是支持XML文档的physical structure存储单元。 BOM,以及 XML声明,协助character encoding detection中的XML处理器。 [由于JonHanna]
  3. 对BOM提及的建议

答案 1 :(得分:1)

格式良好的XML文档实体始终具有&#34;&lt;&#34;作为它的第一个非空白字符。

格式良好的外部通用解析实体无需以&#34;&lt;&#34;开头。

所以如果通过&#34; XML&#34;你的意思是&#34;格式良好的XML文档实体&#34;,那么答案是&#34; no&#34;。