1.什麼是xml
XML 是可擴充標記語言(Extensible Markup Language)的縮寫,其中的 標記(markup)是關鍵部分。您可以建立內容,然後使用限定標記來標記它,從而使每個單字、短語或區塊成為可識別、可分類的資訊。您建立的文件,或文件實例 由元素(標記)和內容構成。當從列印輸出讀取或以電子形式處理文件時,元素能夠幫助更好地理解文件。元素的描述性越強,文件各部分越容易辨識。自從出現標記至今,標記的內容就有一個優勢,即在電腦系統缺失時,仍然可以透過標記理解列印出來資料
2.#建構xml
#如前所述,XML 檔案由內容和標記組成。您透過以標記包圍內容的方式將大部分內容包含在元素中。例如,假設您需要建立一本 XML 烹飪書。您需要用 XML 編寫名為 Ice Cream Sundae 的食譜。為了標記食譜名,您需要將這個文字包含到元素中,即分別在文字的首末兩端添加開始和結束標記。可以將元素命名為 recipename。要標記元素的開始標記,像這樣將元素名稱放到尖括號中(<>):<recipename>。然後輸入文字Ice Cream Sundae。在文字的後面輸入結束標記,即將元素名稱放在尖括號內,然後在元素名稱前面加上終止斜線(/),例如:</recipename>。這些標記構成一個元素,您可以在元素的內部添加內容或其他元素。
您可以為某個文件或文件集建立元素名稱。可以建立規則讓元素根據您的特定需求組合起來。元素名可以是比較有針對性的,也可以是比較通用的。您也可以建立決定要新增何種元素的規則。這些規則可以是嚴格的,也可以是鬆散的,這完全由您決定。請務必為文件建立元素,以識別您認為重要的部分。
3.建立xml
XML 文件的第一行可以是一個 XML 宣告。這是文件的可選部分,它將文件識別為 XML 文件,有助於工具和人類識別 XML(不會誤認為 SGML 或其他標記)。這個聲明可以簡單寫成 <?xml?>,或包含XML 版本(<?xml version="1.0"?>),甚至包含字元編碼,例如針對Unicode 的 <?xml version=" 1.0" encoding="utf-8"?>。因為這個聲明必須出現在文件的開頭,所以如果打算將多個小的XML 文件合併為一個大XML 文件,則可以忽略這個可選資訊
#4.#建立根元素
根元素的開始和結束標記用於包圍 XML 文件的內容。一個檔案只能有一個根元素,並且需要使用 “包裝器” 包含它。清單 1 顯示了經過刪節的範例,其中的根元素名稱為 <recipe>。 (請參閱 下載 小節以取得完整的 XML 檔案)。
5.命名元素
到目前為止,都使用 <recipe> 作為根元素。在 XML 中,先為元素選擇名稱,然後再根據這些名稱定義對應的 DTD 或 schema。建立名稱時可以使用英文字母、數字和特殊字符,例如底線(_)。以下給出命名時需要注意的地方:
· 元素名中不能出現空格。
· 名稱只能以英文字母開始,不能是數字或符號。 (在第一個字母之後就可以使用字母、數字或規定的符號,或它們的混合)。
· 對大小寫沒有限制,但前後要保持一致,以免造成混亂。
我們繼續以前面的範例為例,如果新增了一個名為 <recipename> 的元素,它將有一個開始標記 <recipename> 和對應的結束標記</recipename>。
6.巢狀元素
嵌套 即把某個元素放到其他元素的內部。這些新的元素稱為子 元素,包含它們的元素稱為父 元素。 <recipe> 根元素中嵌套有幾個其他元素,如 清單 3 所示。這些嵌套的子元素包括 <recipename>、<ingredlist> 和 <preptime>。 <ingredlist> 元素內部包含多個子元素 <listitem>。 XML 文件可以使用多層巢狀。
一個常見的語法錯誤是父元素和子元素的錯誤巢狀。任何子元素都要完全包含在其父元素的開始和結束標記內部。每個同胞(Sibling)元素必須在下一個同胞元素開始之前結束
<?xml version="1.0" encoding="UTF-8"?> <recipe> <recipename>Ice Cream Sundae</recipename> <ingredlist> <listitem> <quantity>3</quantity> <itemdescription>chocolate syrup or chocolate fudge</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>nuts</itemdescription> </listitem> <listitem> <quantity>1</quantity> <itemdescription>cherry</itemdescription> </listitem> </ingredlist> <preptime>5 minutes</preptime> </recipe>
7.帶有元素和屬性的xml檔案
<?xml version="1.0" encoding="UTF-8"?> <recipe type="dessert"> <recipename cuisine="american" servings="1">Ice Cream Sundae</recipename> <preptime>5 minutes</preptime> </recipe>