XML基礎

最基本的三個概念
XML語言-描述事物本身
XSL語言-展現事物表現形式
DTD(Schema)-定義XML語言的語法

XML基本概念

XML(eXtensible Markup Language,可擴展標記語言)是SGML(標準通用標記語言)針對特定應用領域的一個子集,是SGML的一種受限形式。XML描述了一類稱爲XML文件的數據對象,同時也部分地描述了處理這些數據對象的計算機程序的動作。XML是W3C的推薦標準之一,目前廣泛使用的是XML 1.0版,於1998年2月發佈,2004年2月W3C發佈了XML 1.1版

XML設計目標

XML應該可以直接用於因特網(Internet)。
XML應該支持大量不同的應用。
XML應該與SGML兼容。
處理XML文件的程序應該容易編寫。
XML中的可選項應無條件地保持最少,理想狀況下應該爲0個。
XML文件應該是人可以直接閱讀的,應該是條理清楚的。
XML的設計應快速完成。
XML的設計應該是形式化的,簡潔的。
XML文件應易於創建。
XML標記的簡潔性是最後考慮的目標。

XML文件的設計原則

1、儘量應用現有的標準DTD(schema)
省力、易於交換,應用現有軟件
2、屬性/子標籤
屬性裏還有屬性就用子標籤
多行用子標籤
出現過好多次,子標籤
經常改變,子標籤
比較重要的元素用子元素,說明性的或者輔助性的用屬性
需要用DTA做嚴格檢查的用子標籤
應用最關鍵,細節上要儘量少花費精力,不必刻意追求每一步細節的盡善盡美

XML的特點

XML是元語言,可以創建其他語言
允許通過標記定製,標識、交換或處理數據,實現數據信息的規範化、多樣化
基於文本格式,便於創建、處理XML文件
具有層次化、結構化特徵,易於數據結構的描述

XML的應用

設計XML的目的不是展示數據,而是存儲和交換數據
XML文檔按結構方式可分爲:
    敘述型文檔:用於表達語義
    數據記錄型文檔:用於數據傳遞
用於表達語義的XML文檔 常用於電子出版,如新聞、論文等。 結構複雜、層次嵌套
作爲數據載體,可描述爲數據表結構 一般結構較簡單,層次分明
用作應用程序的配置文件,如面向對象中對象的持久化
用於異構系統間的數據交換,如DOM、XSLT等

XML語法概要

格式良好(well-formed)的XML文檔:
元素和屬性的命名要規範,要區分大小寫
每個XML文檔有且僅有一個根元素
每個XML元素必須有開始標籤和結束標籤(或爲空元素)
元素之間不允許交叉嵌套
所有屬性都必須有屬性值(可以爲空串)
在文本、屬性值中不允許出現 “<”、“>”和“&”符號
XML文檔結構通常從XML聲明開始
通過XML元素來組織數據
爲了使數據更加清晰並且具有自身的格式可以引入CDATA區數據塊
可以在文檔中加入註釋
如果需要給XML處理程序提供一些信息,可以包含處理指示

標籤的命名

以字母、下劃線或漢字開頭,不能有空格
區分大小寫
不能以任何形式的“xml”3個字母開頭

標籤的含義

結構表達:xml文檔的結構描述
結構相同:
<公司><職員 姓名=“張三”/></公司>
<班級><學生 姓名=“張三”/></班級>
語義表達:領域描述
同一“術語”在不同語境下表達不同語義
樣式表達:呈現方式描述
常通過樣式表CSS表達

元素element和屬性attribute

元素標記:起始標籤+數據+結束標籤
<CPU>Intel酷睿2</CPU>
<分區><名稱>C</名稱></分區>
<分區><名稱>C</名稱>盤爲系統盤</分區>
<nil></nil>
屬性
<CPU 工作頻率=“3.0GHz”>Intel酷睿2</CPU>
空元素
<CPU 廠商=“Intel” 工作頻率=“3.0GHz” />
<nil/>

名稱空間namespace

XML中引入名稱空間以解決不同信息域的命名衝突問題
名稱空間的聲明:
xmlns:名稱空間前綴=“URI”
默認名稱空間:xmlns=“URI”
URI的表示形式
http://127.0.01/myns
myurn:myns,如xmlns:it=“myurn:it”

文本和分文本數據

文本數據
<文本>可以使用中文或英文符號</文本>
字符引用
<符號>可用字符引用表示:&lt;、&gt;和&amp; </符號>
CDATA段所有的標記、實體引用都被忽略,而被XML處理程序一視同仁地當做字符數據看待

空白

空白是指空格、製表符、回車換行符
空白不能出現在
  <?xml聲明之前
  元素的起始標籤的<和元素標籤之間
XML內容中的連續空白常被當作一個換行或空格處理,標籤間的空白常被剔出或規範化
如果內容中的空白是重要的,可以爲該元素添加“xml:space”屬性(或使用CDATA段)

注意事項

1、首行爲XML聲明
2、可以鏈接相應XSL
3、註釋爲<!---->和HTML裏一樣
4、屬性必須包引號
5、<![CDATA[```]]>CDATA區用來表示格式數據,例如C++代碼等,十分的方便。(區中不能出現"]]>"標誌,需要用]]&gt;替代)
6、空格
<name>jgoeirhgoe</name>
<name>  jgoeirhgoe  </name>
空白默認不會被保留,包括space,tab,CR(MAC)LF(UNIX)CR/LF(Microsoft)
<poem xml:space="preserve">
       ajal
    gajgafj
  jgoejgor
</poem>
不推薦,推薦用CDATA區
7、<?.......?>PI Process Instruction 處理指示
<?xml-stylesheet href="typical.xsl" type="text/xsl"?>
<?xml-stylesheet href="typical.css" type="text/css"?>
XML聲明不是PI,傳遞給下游程序
8、namespace命名空間,指明標籤是來自哪個DTD或者Schema
9、特殊字符 > &gt < &lt; & &amp; " &quot ' &apos;
20、編碼
Unicode世界上所有文字的編碼utf-16 utf-8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章