1. 程式人生 > >x m l

x m l

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

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

編寫xml的語法: 1、序言 包含了(文件宣告 註釋 空白 ) 2、文件元素 包含了(註釋,空白,標籤,內容,標籤描述)

XML的文件宣告:

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

version=“1.0” 版本資訊 當前版本資訊預設就是1.0 不需要修改

encoding=“UTF-8” 表示文件採用的編碼集是UTF-8 預設編碼是:Unicode

standalone=“yes” 表示文件是獨立的,並沒有引起其他任何外部文件

順序不能改變,例外,就是需要記住的是:xml中嚴格區分大小寫

XML的註釋:

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

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

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

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

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

XML的文件元素:

<開始標籤>元素內容……</結束標籤>    例如:<userName>張三</userName>

元素可以是整個文件中,最基本的資料儲存單位,或者說最基本的邏輯單位

定義標籤名時 需要遵循以下規範: 1、標籤名的定義,可以使用中文,英文,數字, 下劃線 但是名稱必須使用字母或者下劃線或者中文開始(建議不使用:中文 下劃線) 數字一定不能作為開始 2、每一個xml文件中,必須要有一個根標籤 但是根標籤在內部 可以擴充套件非常多的子標籤 3、每一個xml文件中,至少需要存在1個標籤元素 否則該文件,就沒有存在的含義 4、定義標籤名時,一定不在名稱中使用空格 冒號 !; 等等的其他符號 5、定義標籤名時,一定不在名稱中包含xml(XML)或者xml.或者.xml 等內容

元素內容: 1、字元資料 所有的:中英文 數字 各種符號(但是一定要注意:< > & " ’ ) 2、巢狀標籤(元素),例如: 小劉 18 3、實體(所謂的實體,就是指< > & " ’ 的替代)

< 你應該用< 去替代它

你就應該用> 去替代它 & 你應該用& 去替代它 " 你應該用" 去替代它 ’ 你應該用’ 去替代它

4、靜態語句塊:

<![CDATA[ 靜態語句內容 ]]>
<![CDATA[  < > & ' "  ]]>

元素還可以新增屬性:

屬性的作用:進一步描述或者修飾該元素
定義屬性名稱的時候,也需要遵循一定的規則:

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



DTD  (Document Type Definition)    Schema

XML的解析技術:DOM/SAX ---- 完成OXM Object-XML-Mapping

DOM 文件物件模型,採用樹形結構來完成對文件的解析,它在解析時,會將整個文件載入記憶體中,然後形成"節點樹" 當文件內容過多,或者是需要解析的文件太多,此時
可能會造成伺服器記憶體緊張的問題

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

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