根据W3C XML Recommendation,开始标记名具有以下定义:
STag ::= '<' Name (S Attribute)* S? '>'
..哪里Name
是:
Name ::= NameStartChar (NameChar)*
NameStartChar ::= ":" | [A-Z] | ...
..(nb,表示冒号可以作为第一个字符出现)表明以下是有效的 XML 文档:
<?xml version="1.0" ?><:doc></:doc>
..但是我尝试的任何解析器都将冒号显示为格式错误。
此外,在附录 B 下(尽管现在是文件的贬值部分)它明确指出:
Characters ':' and '_' are allowed as name-start characters.
..和:
<?xml version="1.0" ?><_doc></_doc>
..被我尝试过的 XML 解析器接受。
那么,冒号是标签名中有效的第一个字符吗?我使用的解析器是错误的,还是我读错了规范?