为什么XML元素无效?

Sup*_*ock 4 xml

<?xml version="1.0" ?>
<accounts>
    <1167/>
    <1328/>
    <1505/>
    <1536 default="true" />
    <1966/>
</accounts>
Run Code Online (Sandbox Code Playgroud)

当我在http://www.w3schools.com/XML/xml_validator.asp传递上述XML时,我收到一条错误,指出<1167 />的行无效.我查看了元素的w3描述,并没有看到为什么它应该是错误的任何原因.我确定这是一个简单的错误,所以会感激任何帮助.

谢谢

phi*_*hag 9

元素的名称不能以数字 ¹ 开头.

此外,元素的名称应描述所表示实体的"类"或"类型",并且是静态的.我可能会建议:

<accounts>
    <account number="1167"/>
    <account number="1328"/>
    <account number="1505"/>
    <account number="1536" default="true" />
    <account number="1966"/>
</accounts>
Run Code Online (Sandbox Code Playgroud)

¹ 出于某种原因,这里的许多答案都链接到w3schools(与W3C 无关).相反,您应该只信任XML标准.


xan*_*tos 6

取自http://www.w3schools.com/xml/xml_elements.asp

XML命名规则

XML元素必须遵循以下命名规则:

名称不能以数字或标点字符开头

或(更权威)http://www.w3.org/TR/xml/

名称起始字符必须具有类别L1,Lu,Lo,Lt,Nl中的一个.

以类别开头的类别L是Unicode中的各种"字母"类别,并且Nl是看起来像字母的数字,例如罗马数字(Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ......).