我并不知道有什么区别,但是一位同事说有,尽管他无法支持.有什么区别?
根据W3C XML Recommendation,开始标记名称具有定义:
STag ::= '<' Name (S Attribute)* S? '>'
Run Code Online (Sandbox Code Playgroud)
..哪里Name是:
Name ::= NameStartChar (NameChar)*
NameStartChar ::= ":" | [A-Z] | ...
Run Code Online (Sandbox Code Playgroud)
..(注意,说明冒号可以作为第一个字符出现)表明以下是一个有效的 XML 文档:
<?xml version="1.0" ?><:doc></:doc>
Run Code Online (Sandbox Code Playgroud)
..但是我尝试的任何解析器都将冒号显示为格式错误。
此外,在附录 B(虽然现在是文档的折旧部分)下,它明确指出:
Characters ':' and '_' are allowed as name-start characters.
Run Code Online (Sandbox Code Playgroud)
..和:
<?xml version="1.0" ?><_doc></_doc>
Run Code Online (Sandbox Code Playgroud)
.. 被我尝试过的 XML 解析器所接受。
那么,冒号是标签名中的第一个有效字符吗,我使用的解析器是错误的,还是我读错了规范?