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的解析技術 目前使用較為廣泛