1. 程式人生 > >XML(可擴充套件標記語言)

XML(可擴充套件標記語言)

20181024學習筆記

XML全稱:extended Markup Language可擴充套件的含義:允許程式設計師按照自己的想法擴充套件新的標籤,但是擴充套件的時候,必須要遵循XML規範(1-1)

XML的特點: 自帶描述性; 可以支援跨平臺; 保留了面向物件程式設計的層次感;

編寫XML的語法: 1.頭,也被稱之為序言包含了(文件宣告 註釋 空白) 2.文件元素 包含了(註釋,空白,標籤,內容)

XML的文件宣告:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

version="1.0"版本資訊 encoding="UTF-8"表示文件採用的編碼集是UTF-8,預設編碼:Unicode standalone="yes"表示文件獨立的,並沒有引起其他任何外部文件 順序不能改變,例外,xml嚴格區分大小寫

XML的註釋:

1.註釋不能放到XML的宣告之前 如:錯誤寫法:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

2.註釋需要嚴格遵循註釋的語法 3.儘量不要把註釋放到標籤中間去了,容易混淆 4.一定不要在一個註釋中,有多個註釋

註釋的作用:告訴xml解析器,不要解析被註釋的內容

空白的作用:在xml中,可以使用空格,製表符,回車等等的方式,讓文件看起來更加直觀

XML的文件元素: <開始標籤>內容…</結束標籤> 元素可以是整個文件中,最基本的資料儲存單位,或者說最基本的邏輯單位

定義標籤時,需要遵循以下規範: 1.標籤名的定義,可以使用中文,英文,數字,下劃線 但是名稱必須使用字母或者下劃線,中文開始(建議不使用:中文,下劃線)數字一定不能作為開始

2.每一個xml文件中,必須有一個根標籤,但是根標籤在內部可以擴充套件多個子標籤

3.每一個xml文件中,至少需要存在1個標籤元素,否則該文件,就沒有存在的含義

4.定義標籤名時,一定不在名稱中使用空格 冒號!;等等的其他符號

5.定義標籤名時,一定不在名稱中包含xml(XML)或者xml.或者.xml等內容

元素內容: 1.字元資料 所有的:中英文,數字,各種符號

2.巢狀標籤(元素)

3.實體(所謂的實體,就是指< >&”'的替代)

< &lt;去替代它;

&gt;去替代它;

& &amp;去替代它;

”&quot;去替代它;

’ &apos;去替代它;

<! – 靜態語句塊作用:告訴xml解析器,我內部的內容,沒有什麼特殊的含義,就是一個普通的字串 -->

<![CDATA[ ]]>

例:<![CDATA[小馬的年齡<20]]>

元素還可以新增屬性:

屬性的作用:進一步描述或者修飾該元素
定義屬性名稱的時候,也需要遵循一定的規則:
1.屬性名稱名稱可以包含字母,下劃線中文(但是不推薦中文)名稱中國不能有空格,也一定不在名稱中使用空格冒號!;等等的其他符號
2.在同一個元素中,屬性名不能重複
3.屬性名區分大小寫
4.定義標屬性名時,一定不在名稱中包含xml(XML)或者xml.或者.xml等內容
5.屬性定義的方式,採用k=v鍵值對的方式進行定義,例如:type=“string”值必須要包含在“”內,而且”必須成對出現。

XML的解析技術:DOM/SAX ----完成oxm object-xml-mapping 完成對文件的解析,在解析時,會將整個文件載入記憶體中,然後形成“節點樹”當文件內容過多,或者是需要解析的文件太多,此時可能會造成伺服器記憶體緊張的問題

SAX基於事件驅動模式下的文件解析技術

DOM4J框架,提供了一套完整的針對於DOM,和SAX的解析技術,使用廣泛。