XML文档可以以“

问题描述 投票:1回答:2

XML文档可以以<字符以外的其他字符开头吗?

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

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

xml string file w3c
2个回答
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
  • 文档类型声明
  • 元素

XML文档不能以其他字符开头。

注意:

  1. 这些规则的含义是,如果XML文档包含XML声明,它必须出现在顶部(否则您可能会收到一个somewhat cryptic error message)。因此,对于带有XML声明,第一个字符必须为<,并且不能为空格。
  2. A BOM可能出现在XML文档实体的开头,以指示使用的字符编码的字节顺序。这些两个字节通常不被视为XML的一部分文档本身,而是支持XML文档的physical structure存储单元。 BOM,以及XML声明,辅助character encoding detection中的XML处理器。 [感谢JonHanna]提出BOM表的建议

1
投票

格式良好的XML文档实体始终将“

格式良好的外部通用分析实体不必以“

因此,如果用“ XML”来表示“格式正确的XML文档实体”,则答案为“否”。

© www.soinside.com 2019 - 2024. All rights reserved.