为什么我不能使用数字作为属性名称?
以下XML产生error parsing attribute name
错误
<?xml version="1.0" encoding="utf-8"?>
<root version="8">
<My 0="myVal"/>
</root>
答案 0 :(得分:1)
至于为什么我会遵从www理事会,但这里有规则:
答案 1 :(得分:1)
根据XML language specification名称必须从 NameStartChar 开始,并且(几乎)任何其他字符必须是 NameChars ; 此机制用于防止名称以欧洲(ASCII)数字或基本组合字符开头。
NameStartChar 可以包含以下值
":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] |
[#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] |
[#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] |
[#x10000-#xEFFFF]
鼓励文档作者使用自然语言中有意义的单词或单词组合的名称,并避免名称中的符号或空白字符。请注意,明确允许使用COLON,HYPHEN-MINUS,FULL STOP(句点),LOW LINE(下划线)和MIDDLE DOT。
答案 2 :(得分:1)
为什么我不能使用数字作为属性名称?
有三种方法可以回答“为什么”的问题:
(a)因为规范是这样说的。
(b)历史分析:为什么规范会这样说?什么时候作出决定,是什么讨论导致了这个决定,提出了哪些论据支持和反对,为什么工作组的个别成员以某种方式投票?可悲的是,这种分析很少可能。即使你是工作组的成员,做出决定并出席相关会议,也很难知道它为什么做出决定。多年以后从纪录片记录中做这件事通常是不可能的。
(c)事后理由:该决定是否对用户有利?例如,可以根据属性名称应映射到Java中的方法名称来证明决策的合理性,即使这与历史记录无关。
实际上,XML中的许多决策都可以追溯到SGML历史:XML被定义为SGML的子集,而SGML有许多规则在SGML上下文中是必需的,但在XML上下文中不是必需的