XML 文档可以以除“<”以外的任何其他内容开头吗?
Can a XML document start with anything else than a "<"?
XML 文档能否以 <
字符以外的任何字符开头?
这是我的一个随机想法,当时我试图定义如何区分包含 XML 的字符串和包含 XML.
路径的字符串
我认为答案是否定的,但我希望确定。
只有 <
或空白字符可以开始 well-formed XML 文档。
W3C XML Recommendation includes a EBNF which definitively defines an XML document:
[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 文档不能以其他字符开头。
备注:
- 这些规则的含义是,如果 XML 文档包含
XML 声明,它必须出现在顶部(否则你会收到一个
somewhat cryptic error message)。因此,对于 XML 文档
XML 声明,第一个字符必须是
<
和
不能是空格。
- BOM 可能出现在 XML 文档实体的开头以
指示正在使用的字符编码的字节顺序。这些
两个字节通常不被视为 XML 的一部分
文档本身,而不是 实体的 存储单元
结构 支持XML 文档。一个 BOM,连同一个
XML声明,协助XML处理器进行字符编码
检测。 [BOM 提及的建议感谢 JonHanna]
well-formed XML 文档实体始终将“<”作为其第一个 non-whitespace 字符。
A well-formed 外部通用解析实体不需要以“<”开头。
所以如果 "a XML" 你的意思是 "a well-formed XML document entity",那么答案是 "no"。
XML 文档能否以 <
字符以外的任何字符开头?
这是我的一个随机想法,当时我试图定义如何区分包含 XML 的字符串和包含 XML.
路径的字符串我认为答案是否定的,但我希望确定。
只有 <
或空白字符可以开始 well-formed XML 文档。
W3C XML Recommendation includes a EBNF which definitively defines an XML document:
[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 文档不能以其他字符开头。
备注:
- 这些规则的含义是,如果 XML 文档包含
XML 声明,它必须出现在顶部(否则你会收到一个
somewhat cryptic error message)。因此,对于 XML 文档
XML 声明,第一个字符必须是
<
和 不能是空格。 - BOM 可能出现在 XML 文档实体的开头以 指示正在使用的字符编码的字节顺序。这些 两个字节通常不被视为 XML 的一部分 文档本身,而不是 实体的 存储单元 结构 支持XML 文档。一个 BOM,连同一个 XML声明,协助XML处理器进行字符编码 检测。 [BOM 提及的建议感谢 JonHanna]
well-formed XML 文档实体始终将“<”作为其第一个 non-whitespace 字符。
A well-formed 外部通用解析实体不需要以“<”开头。
所以如果 "a XML" 你的意思是 "a well-formed XML document entity",那么答案是 "no"。