按照W3C XML Recommendation,启动标签名称的定义:冒号是XML标记名称中的合法第一个字符吗?
STag ::= '<' Name (S Attribute)* S? '>'
..where 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解析器接受我已经尝试过了。
因此,冒号是标签名中的有效第一个字符,而且我使用的解析器是错误的,或者我读的规范是错误的?