数値を属性名として使用できないのはなぜですか?
次の XML はerror parsing attribute name
エラーを生成します
<?xml version="1.0" encoding="utf-8"?>
<root version="8">
<My 0="myVal"/>
</root>
数値を属性名として使用できないのはなぜですか?
次の XML はerror parsing attribute name
エラーを生成します
<?xml version="1.0" encoding="utf-8"?>
<root version="8">
<My 0="myVal"/>
</root>
XML 言語仕様によると、名前は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 が明示的に許可されていることに注意してください。
数値を属性名として使用できないのはなぜですか?
「なぜ」という質問に答えようとする方法は 3 つあります。
(a) 仕様がそう言っているからです。
(b) 歴史的分析: なぜ仕様はそう言っているのですか? いつ決定が下されたのか、どのような議論が決定につながったのか、どの議論が賛成または反対されたのか、ワーキンググループの個々のメンバーがどちらか一方に投票したのはなぜですか? 残念ながら、そのような分析はほとんど不可能です。意思決定を行う WG のメンバーであり、関連する会議に出席している場合でも、なぜその決定を行ったのかを知るのは難しい場合があります。ドキュメンタリーの記録だけから数年後にそれを行うことは通常不可能です。
(c) 事後的な正当化: その決定はユーザーに利益をもたらしますか? たとえば、属性名が Java のメソッド名にマップされるべきであるという根拠に基づいて、決定を正当化することができます (それが履歴とは関係なくても)。
実際には、XML におけるこれらの決定の多くは SGML の歴史にたどることができます。XML は SGML のサブセットとして定義され、SGML には、SGML コンテキストでは必要であるが XML コンテキストでは必要ではない多くの規則がありました。
私が www 評議会に従う理由については、ルールは次のとおりです。