一個XML文檔包含XML元素。
什麼是XML元素?
XML元素是一切(including)元素的開始標記(including)該元素的結束標記。
<price>29.99</price>
一個元素可以包含:
- 文本
- 屬性
- 其他元素
- 或上述的混合
<bookstore>
<book category="children">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的例子:
<title>, <author>, <year>和<price>有text content ,因為它們包含文本(like 29.99)
<bookstore>和<book>有element contents ,因為它們含有的元素。
<book>有一個attribute (category="children")
空XML元素
沒有內容的元素被認為是空的。
在XML中,你可以指示像這樣的空元素:
<element></element>
您還可以使用所謂的自閉標籤:
<element />
這兩種形式產生XML軟件(讀者,解析器,瀏覽器)相同的結果。
空元素可以有屬性。
XML命名規則
XML元素必須遵循以下命名規則:
- 元素名稱是區分大小寫
- 元素名稱必須以字母或下劃線開始
- 元素名稱不能以字母的xml啟動(or XML, or Xml, etc)
- 元素名稱可以包含字母,數字,連字符,下劃線和句號
- 元素名稱不能包含空格
任何名稱都可以使用,沒有的話被保留(except xml)
最佳命名做法
創建描述性名稱,例如: <person>, <firstname> , <lastname> 。
創建簡短的名稱,像這樣: <book_title>不喜歡這樣的: <the_title_of_the_book>
避免"-" 如果命名的東西"first-name" ,一些軟件會認為你想減去"name" ,從"first" 。
避免"." 。 如果你的東西命名為"first.name"一些軟件會認為"name"是對象的屬性"first" 。
避免":" 冒號被保留用於名字空間(more later) 。
像EOA非英文字母是XML完全合法的,但要注意的問題,如果你的軟件不支持他們。
樣式命名
有用於XML元素定義沒有命名的樣式。 但這裡有一些常用的有:
樣式 | 例 | 描述 |
---|---|---|
Lower case | <firstname> | 所有字母小寫 |
Upper case | <FIRSTNAME> | 所有字母大寫 |
Underscore | <first_name> | 下劃線分隔詞 |
Pascal case | <FirstName> | 每個單詞首字母大寫 |
Camel case | <firstName> | 每個單詞首字母大寫,除了第一 |
如果你選擇的命名風格,這是好事,是一致的!
XML文檔通常有一個相應的數據庫。 通常的做法是使用數據庫的命名規則的XML元素。
駱駝的情況是JavaScript中常見的命名規則。
XML元素是可擴展
XML元素可以擴展到攜帶更多的信息。
請看下面的XML例子:
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don't forget me this weekend!</body>
</note>
讓我們想像一下,我們創建了一個提取的應用程序中的<至>,<距離>和<body>從XML文檔元素產生這樣的輸出:
MESSAGE To:托芙 不要忘了我這個週末! |
想像一下,XML文檔的作者增加了一些額外的信息,它:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
如果應用程序中斷或崩潰?
第應用程序仍然應該能夠找到<to>, <from>和<body> XML文檔中的元素,並產生相同的輸出。
這是XML的美女之一。 它可以在不破壞的應用程序進行擴展。