XML:可擴展標記語言(eXtensible Markup Language),是格式嚴謹的HTML!
誕生背景
在現實生活中大量存在有關係的數據,如圖所示。這樣的數據如何交給計算機處理呢?
於是,出現了XML語言,XML出現的根本目標在於描述上圖那種,在現實生活中經常出現的有關係的數據。
在XML中,它允許用戶自定義標籤
。一個標籤用於描述一段數據;一個標籤可分爲開始標籤和結束標籤,在開始標籤和結束標籤之間,又可以使用其它標籤描述其它數據,以此來實現數據關係的描述。
常見應用:
- XML技術除用於保存有關係的數據之外,它還經常用作軟件配置文件,以描述程序模塊之間的關係。
- 在一個軟件系統中,爲提高系統的靈活性,它所啓動的模塊通常由其配置文件決定
例如:一個軟件在啓動時,它需要啓動A、B兩個模塊,而A、B這兩個模塊在啓動時,又分別需要A1、A2和B1、B2模塊的支持,爲了準確描述這種關係,此時使用XML文件最爲合適不過。
第一個XML程序
<html>
<head>
<title>this is title</title>
</head>
<body>
<p>html標籤</p>
<P>html標籤</P>
<abc>abc標籤</abc> 自定義標籤
</body>
</html>
什麼是XML
XML技術是w3c組織發佈的,目前推薦遵循的是W3C組織於2000發佈的XML1.0規範。
HTML
- 名稱:HyperText Markup Languae(超文本標記語言)
- 標籤:標籤是w3c組成指定,固定的,約100來個
- 作用:負責網頁的結構
XML
- 名稱:Extend Markup Languge(可擴展標籤語言)
- 標籤:由開發者自己制定的(要按照一定的語法定義)
- 作用:
1)描述帶關係的數據(作爲軟件的配置文件):描述包含與被包含的關係
properties文件:
key-value
name=eric
password=123456
XML描述爲:
<user>
<name>eric</name>
<password>123456</password>
</user>
2)作爲數據的載體(存儲數據,小型的“數據庫”)
XML的初衷是替換掉語法鬆散的HTML,但是現在看來並沒有實現;所以XML轉移陣地,走向作爲配置文件,而不再作爲頁面結構了!
如何寫一個漂亮的XML
一個XML文件分爲如下幾部分內容:
- 文檔聲明
- 標籤
- 屬性
- 註釋
- 轉義字符
- CDATA區
- 處理指令(processing instruction)
核心特性:
- xml文件以xml後綴名結尾。
- xml文件需要使用xml解析器去解析。瀏覽器內置了xml解析器。
- 語法由w3c組織規定的;
文檔聲明
語法格式:
<?xml version="1.0" encoding="utf-8"?>
語法解析:
version: XML的版本號,注意是w3c發佈的XML版本號,不是你的軟件的版本號!
encoding:說明XML文件的字符編碼類型
standalone:說明文檔是否獨立。
注意:
- 如果在Eclipse工具中開發xml文件,保存xml文件時自動按照文檔聲明的encoding來保存文件。
- 如果用Windows記事本工具修改xml文件,注意保存xml文件按照文檔聲明的encoding的碼錶來保存,因爲Windows會智障地按照自己的編碼方式,從而導致整個xml失效。
- 結論:第一是關注文件本身編碼和聲明的編碼是否一致;第二是禁止使用notepad編輯代碼!
標籤
語法格式:
<student> 內容 </student> :開始標籤 標籤體內容 結束標籤
標籤的特性:
- xml標籤名稱區分大小寫。
- xml標籤一定要正確配對。允許自閉標籤:
- xml標籤名中間不能使用空格
- xml標籤名不能以數字開頭,不能包含空格,名稱中間不能包含冒號和Java的命名規範一樣;
- 注意: 在一個xml文檔中,有且僅有一個根標籤,即就像一個HTML文件不能有兩個
<html></html>
如下圖: - 正確的XML文件成功的運行
屬性
語法格式:
<Student name="eric">student</Student>
屬性約束:
屬性值必須以引號包含,不能省略,但不能單雙引號混用,即要麼同時用雙引號、同時用單引號!!!
一個標籤內可以有多個屬性,但不能出現重複的屬性名!!!
屬性只能出現在開始標籤中。
屬性名不能使用空格、冒號的特殊字符,且必須以字母開頭。
註釋
語法格式:
<!-- xml註釋 -->
轉義字符
定義:
- 在xml中內置了一些特殊字符,這些特殊字符不能直接被瀏覽器原樣輸出。
- 如果希望把這些特殊字符按照原樣輸出到瀏覽器,對這些特殊字符進行轉義。
- 轉義之後的字符就叫轉義字節。
- XML中的轉義字符與HTML中的一樣。
CDATA區
**作用:**可以讓一些需要進行包含特殊字符的內容統一進行原樣輸出。
<![CAATA[
<ShaBi>zhi zhang </ShaBi>
]]>
處理指令(processing instruction)
**功能:**告訴xml解析如何解析xml文檔
語法格式:
處理指令必須以“<?”作爲開頭,以“?>”作爲結尾,XML聲明語句就是最常見的一種處理指令。