一、XML
● XML是一種通用的數據交換格式css
● 許多系統的配置文件搜使用XML格式數據庫
● JSP文檔也逐步向XML愈發格式過渡瀏覽器
● 許多項目都採用XML做爲數據交換格式網絡
● 在平常應用中會常常看到XML格式的文件dom
● 掌握XML是軟件開發人員的一項基本技能this
二、什麼是配置文件
● 配置文件就是記錄應用程序的配置信息的文件編碼
● 傳統配置文件的格式:spa
#Db.Properties翻譯
DBServer=192.168.0.100code
Database=emp
Port=1443
Username=zxx
Password=123
3、XML的起源與做用
● 在線電子商務活動交換的電子文檔必須採用某種標準格式,統一電子文檔的標準規範是電子商務的基礎。
● HTML不適合做爲電子商務的文檔標準。
● SGML(Standard Generalized Markup Language)國語複雜,沒法適應網絡上的平常應用。
● W3C於1998年2月批准了XML(Extensible Markup Language)的1.0版本。XML是SGML的建華,語法與HTML很是類似。
● XML具備SGML的強大功能和可擴展性,同時又具備HTML的簡單性。
● XML文檔很容易建立,並結構清晰,不只讓人可以明白,還然計算機也可以明白。
● XML做爲一種公訂的,開放 的標準,不受知識產權的限制。
4、XML與HTML的比較
● HTML將數據和顯示效果混在一塊兒,它是一種表現技術;XML文檔只是存儲了數據和描述了數據之間的關係,沒有規定該如何顯示數據。
● HTML的格式要求比較鬆散;而XML是很是嚴格的標記語言。
● HTML的標記集合是固定的;而XML只是提供了一個標準,人們能夠按照這個標準來定義本身專用的標記。
● XML容許粒度更新,HTML不支持相似功能。
● XML不是HTML的升級,也不是HTML的替代產品。
● HTML目前已經再也不是WEB標記的標準,它是已經被XHTML所取代,XHTML是HTML和XMl的混合物,是XML在WEB領域的一種應用。
五、XML與數據庫的比較
● 一個XML文檔就像數據庫中的一個表,具備三個要素:文檔結構、文檔數據和文檔樣式。
● XML文檔的結構至關與數據庫的表結構。
● XML標籤內嵌套的數據就至關於數據庫表中的某個字段內的數據。
● 數據庫表中的數據能夠採用表格、表單或其餘形式顯示,還能夠用程序來查詢、運算、修改。XML文檔中的數據也能夠被其餘應用程序查詢、運算、修改和以多種方式顯示。
● 多個XML文檔的元素之間還能夠想數據庫的表字段同樣定義主外鍵關係,能夠把XML文檔當作是一個很是小型的數據庫。
● XML很是適合信息交換,但不適合於大量數據處理。
一、文檔聲明
● 最簡單的聲明語法:
<?xml version=」1.0」 ?>
● 用encoding屬性說明文檔的字符編碼:
<?xml version=」1.0」encoding=」GB2312」?>(未設置默認爲UTF-8或UTF-16)
● 用standalone屬性說明文檔是否獨立:
<?xml vesion=」1.0」encoding=」GB2312」standalone=」yes」?>(須要配合其餘文件,standalone設置爲「no」,encoding和standalone同時設置時,standalone必須在encoding後面)
二、元素定義
● 一個XML元素由一個標記來定義,包括開始和借宿標記以及其中的內容,例如:
<書名>JavaWeb</書名>
● 一個元素中能夠嵌套若干子元素。
● 格式良好的XML文檔必須有且僅有一個根元素,其餘元素都是這個根元素的子孫元素。
● 空元素能夠不實用借宿標記,但必須在起始標記的借宿定界符(>)前面增長一個正斜槓(/)字符,例如:
<img src=」log.gif」 />
● 全部的元素都必須況且i的嵌套,絕對不容許標籤交叉,c錯例:
<b>welcome to<i>www.baidu.com<b><i>
元素的標記名稱規範
能夠包含自摸、數字以及其餘一些可見字符,但必須遵照下面的一些規範:
● 區分大小寫,例如<P><p>是兩個不一樣的標籤。
● 不能以數字或「_」(下劃線)開頭。
● 不能以字符組合xml(或XML、Xml等)開頭。
● 不能包含空格。
● 名稱中間不能包含冒號:。
元素的標記名稱建議
● 不要使用「.」,由於在不少程序語言中,「.」用於引用對象的屬性。
● 最好不要用減號(-),而如下劃線(_)代替,以免與表達式中的減號(-)運算符發生衝突。
● 名稱儘可能簡短,以減小XML文檔的大小。
● 名稱的大小寫儘可能採用同一標準,要麼所有大寫,要麼所有小寫。
● 名稱可使用非英文字符,例如中文,可是有些軟件可能不支持英文字符之外的字符,在使用時應考慮這種狀況。
三、屬性定義
● 一個標籤能夠有多個屬性,每一個屬性都有它本身的名稱和取值,例如:
<售價 單位=」元「>58</售價>
● 屬性值必定要用雙引號(」」)或單引號(’’)引發來
● 屬性遵循與標籤相同呃命名規範
● 屬性能夠被改爲用子元素來描述一樣的信息,例如:
<售價>
<單位>元</單位>
<價格>58</價格>
</售價>
四、註釋
● 用」<!--註釋—>「這種格式加入註釋
● XML聲明以前不能有註釋
● 一對註釋符號之中不能包含另外一對註釋符號,錯例:
<!--大段註釋
……
<!--局部註釋-->
……
-->
五、空格和換行的處理
● 對於XML中的標籤之外的全部空格和換行,XML解析程序都要一個個如是地交割下游程序去處理。
● 下面兩段內容的意義是不同的
第一段: 第二段:
<網址>
<網址>www.baidu.com</網址> www.baidu.com
</網址>
● 因爲在XML中,空格和換行都做爲原始內容被處理,因此在編寫XML文件時,使用換行和縮進等方式來讓原文件中的內容清晰可讀的」良好「書寫習慣可能要被迫改變。
六、CDATA區
● 問題:
XML文檔中包含相似」Elements look like <this>「的文本,其中的」<this>「將被解析程序解釋成一個元素,而人們實際想要的是」<this>」所表示的願意文本。
● CDATA區全稱爲character data,以」<![CDATA[「開始,以」]]>「結束,在二者之間嵌入不想被解析程序解析的原始數據,解析器不對CDATA區中的內容進行解析,而是將這些數據原封不動地交給下游程序去處理。
● CDATA區中的起始和結束處有沒有空格和換行字符是有區別的,例如:
<![CDATA[www.baidu.com]]>
和
<![CDATA[
www.baidu.com
]]>
● 」<![CDATA[「不能寫成」<![cdata[「或」<![Cdata[「。
● CDATA區內部不能出現字符串」]]>「,該如何解決?
在CDATA內部的全部內容都會被解析器忽略。一個 CDATA 部件以"<![CDATA[" 標記開始,以"]]>"標記結束。可是要記住,CDATA是不可以嵌套的。可是如今,就是有人要求實現CDATA的嵌套。
好比,將下面這段XML加到另一個XML的某個元素裏面:
<?xml version="1.0" encoding="UTF-8" ?>
<System><id>library</id>
<name>Library Management</name>
<description><![CDATA[This is a sample library management subsystem for Signet.]]></description>
<Categories>
<System/>將內部的CDATA的結尾轉義?那就變成了"<![CDATA[" 和"]]>amp;",這樣很差,接收XML的那一方怎麼會知道你在裏面加上了轉義?
那麼,能夠把CDATA的結尾的"]]>"破壞掉,把它分到兩個CDATA中,而後調用Java的API讀取該元素的數據時,實際上API同時讀取兩個CDATA塊,而後合成一個。
那麼,把上面的XML做爲一個字符串來處理,將"]]>"替換爲"]]]]><![CDATA[",千萬要記住,不要包含空格進去。這樣,結果應該是
<?xml version="1.0" encoding="UTF-8"?>
<Messages>
<Message type="data">
<code>1199242678515-176590595</code>
<date>2008/01/02</date>
<time>10:57:58</time>
<content><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
<System><id>library</id>
<name>Library Management</name>
<description><![CDATA[This is a sample library management subsystem for Signet.]]]]><![CDATA[></description>
<Categories>
<System/>]]></content>
</Message></Messages>
這樣,利用Object org.dom4j.Element.getData()方法獲得的數據纔是原始的XML片斷。
七、特殊字符
特殊字符 替代符號 & & < < > > 「 " ‘ ' 八、處理指令(processing instruction)
● 處理指令是processing instruction 的中文翻譯,一般簡稱PI,用來爲處理XML文檔的應用程序提供指示信息。
● 處理指令以「<?」做爲開頭,以「?>」做爲結尾,XML聲明語句就是最多見的一種處理指令。
● XML分析器把處理指令原封不動的傳給應用程序,由應用程序來解析這個指令,按照它所提供的信息進行處理。例如,在某個XML文檔中能夠包含下面的語句來告訴瀏覽器使用book.css控制起顯示效果:
<?xml-stylesheet type=」text/css」href=」book.css」?>