2011-09-11 49 views
3
<?xml version="1.0" ?> 
<accounts> 
    <1167/> 
    <1328/> 
    <1505/> 
    <1536 default="true" /> 
    <1966/> 
</accounts> 

當我通過上述XML http://www.w3schools.com/XML/xml_validator.asp我得到一個錯誤,指出< 1167 />行是無效的。我研究了元素的w3描述,並沒有看到任何理由說明它應該是錯的。我相信它是一個簡單的錯誤,所以將不勝感激任何幫助。爲什麼XML元素無效?

感謝

回答

6

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

XML命名規則所採取

XML元素必須遵循以下命名規則:

名稱不能以數字或者標點符號開始

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

名稱開始字符必須具有的類別的L1,路,蘆,LT,NL中的一個。

哪裏開始L類別各種類別的「字母」的Unicode和Nl是數字,看起來像一個字母,如羅馬數字(Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ...) 。

2

因爲它以數字開頭,所以不允許。見here

XML命名規則

XML元素必須遵循以下命名規則:

  • 名稱可以包含字母,數字和其他字符
  • 名稱不能以數字或者標點符號開始字符
  • 名稱不能以字母xml(或XML或Xml等)開頭
  • 名稱不能包含空格
  • 可以使用任何名稱,不保留任何單詞。
1

XML元素名稱不能以數字開頭。例如,請參閱here

9

元素的名稱必須爲not start with a digit¹。

另外,元素的名稱應該描述表示實體的「類」或「類型」,並且是靜態的。我可能會建議:

<accounts> 
    <account number="1167"/> 
    <account number="1328"/> 
    <account number="1505"/> 
    <account number="1536" default="true" /> 
    <account number="1966"/> 
</accounts> 

¹出於某種原因,很多答案在這裏鏈接到W3Schools的(這是與W3C下屬)。相反,您只應該信任XML standard

+4

+1 [未鏈接](http://w3fools.com/)到w3schools。 – vcsjones

+1

+1爲官方參考 –

+1

+1爲不推廣w3schools與一個新的鏈接到他們的網站!鏈接http://www.w3fools.com而不是:)。 –