Download presentation
Presentation is loading. Please wait.
Published byきょういち だいほうじ Modified 6年之前
1
第二章 XML基本語法 XML文件的基本結構 XML文件的基本語法規則 Well-Formed XML文件 XML Parser
2
XML文件的基本架構 XML文件由文字所組成,文字在XML文件中伴演標示和資料的角色。XML文件的組成可分為兩個方向來討論: 邏輯結構
實體結構
3
XML文件的基本架構(續) 邏輯觀點 XML文件 實體觀點
4
XML文件的基本架構(續) XML文件的邏輯結構 library book cover
5
XML文件的基本架構(續) 在XML文件中,可以透過各種標示來組成這種結構。這些結構形成邏輯結構的標示包括宣告、元素、處理指示、字元參引、及註解等。 邏輯結構可以分為兩區塊 前言 文件本體
6
XML文件的基本架構(續) 前言(prolog)和文件類型宣告(DTD): 文件本體
主要在指明XML文件所循的標準版本;而DTD用來定義元素的名稱、屬性、以及架構文件的規則。 文件本體 即組成文件的資料及標示。
7
XML文件的基本架構(續) 前言 <?XML version=“1.0”> <library>
<book> …… </book> </library> 本體
8
XML文件的基本架構(續) XML文件邏輯結構的組成: 宣告(declaration) 元素(element)
處理指令(processing instruction) 字元參引(character reference) 註解(comment)
9
XML文件的基本架構(續) XML文件的實體結構: 以實體(entity)的單元組成,可分以下兩種: XML獨立文件
XML複合文件(p.54)
10
XML文件的基本架構(續) XML獨立文件 XML複合文件
11
XML複合文件 XML複合文件的建立: 更新文件結構 設計外部實體 使用實體參引連結文件
12
XML複合文件(續) XML複合文件: <!ENTITY author_file SYSTEM “grady_booch.txt”> <book> <author> <about_author> &author_file </about_author> … grady_booch.txt: Grady Booch’s work has …..(作者介紹)
13
XML文件的基本語法規則 元素、標籤及屬性 字元及實體參引 CDATA區段 註解 處理指示
14
XML文件的基本語法規則(續) 元素、標籤及屬性 標籤(Tag) 元素(Element) 屬性(Attribute)
15
XML文件的基本語法規則(續) 標籤 標籤可分三種 起始標籤 結束標籤 空標籤
16
XML文件的基本語法規則(續) 元素 由起始標籤開始,至結束標籤為止的內容,稱為一個元素。如<book>…</book>可視為一個元素。 在XML中,元素中,大小寫是有別的。 空標籤可視為一個元素。
17
XML文件的基本語法規則(續) XML元素關係 BOOK 父元素 Cover子元素 Title 子元素
18
XML文件的基本語法規則(續) 屬性 屬性名稱 <cover href=“one.gif”> 屬性值
19
XML文件的基本語法規則(續) 字元及實體參引 字元參引 實體參引
20
XML文件的基本語法規則(續) 字元參引 10進位字元參引 16進位字元參引 d; 例:π 代表 π
&#xh; 例:π 代表 π
21
XML文件的基本語法規則(續) 實體參引 預定的實體參引 自訂實體及參引
22
XML文件的基本語法規則(續) 字元及實體參引 預定實體參引: 標示符號 取代符號 & & < > ' ‘
" “
23
XML文件的基本語法規則(續) 字元及實體參引 自定實體參引: <!DOCTYPE Hello [
<!ENTITY reftext “Hello XML!”> <!ENTITY reffile SYSTEM “hello.xml”> ]>
24
XML文件的基本語法規則(續) CDATA區段
CDATA區段是以<![CDATA[起始,以]]>結束。在此區段中,所有文字都會被視為純文字處理,而不會被XML Parser處理。 常用來包住很長的程式碼或文件。
25
XML文件的基本語法規則(續) CDATA區段 <script language = “JavaScript”>
function Fun1(){ … } ]]> </script>
26
XML文件的基本語法規則(續) 註解 不可出現在prolog之前 不可包於tag之中 可包住tag 不可使用“--”字串 不可形成巢狀式
27
XML文件的基本語法規則(續) 註解範例 <!– my first XML file --> 以<!--開頭
以-->結束
28
XML文件的基本語法規則(續) 處理指示 處理指示是由<?開頭,?>結尾的標示文字。乃是要傳給應用程式的指令。
29
XML文件的基本語法規則(續) 處理指示 <? application_name instructions=“value” …
?>
30
Well-formed XML 文件 合法的XML文件有下列兩種: 形式合法 正確合法
31
Well-formed XML 文件(續) 形式合法 文件本身不需符合DTD,但元件間的組織必須符合組成XML文件的基本規範
32
Well-formed XML 文件(續) 形式合法 XML宣告須出現在文件之首 元素標籤成對出現 空標籤需以/>結束
文件中只有一個root element 可成巢狀,但不可交錯 特殊字元<及&不得出現在字元資料中
33
Well-formed XML 文件(續) 正確合法 文件本身除了組織良好外,還符合某個DTD的規範。這部份將在下一章討論。
34
Well-formed XML 文件(續) XML宣告 宣告必須出現在文件最前端 完整的宣告需包括以下三部份 Version
Endoding standalone
35
Well-formed XML 文件(續) Version XML宣告
用來指明XML文件的規格。由於目前XML規格只到1.0版,因此version值必須是1.0
36
Well-formed XML 文件(續) encoding XML宣告
用來指明XML本身所使用的內碼。例如若要使用繁體中文,就必須將此屬性設定成Big5
37
Well-formed XML 文件(續) standalone XML宣告 用來說明此文件是否為獨立文件,如:
<?xml version=“1.0” standalone =“yes” ?>
38
Well-formed XML 文件(續) XML宣告範例 <?xml version=“1.0” endoding = “Big5”
standalong=“no” ?>
39
Well-formed XML 文件(續) 元素的起始標籤須與結束標籤成對出現
在HTML中,元素的起始和結束不一定要成對出現。例如<LI>、<TR>及<TD>等。 在XML這種方式是不能被接受的。所有標籤都必須要成對出現。
40
Well-formed XML 文件(續) 空標籤必須以/>結束
為避免結構鬆散,在XML中,空標籤需以/>結束。例如:<img…/>、<hr/>等。
41
Well-formed XML 文件(續) XML文件只能有一個根元素
一份XML文件只能有一個根元素,所有實際的元素都必須包含在根元素中。其他非元素資料如DTD及註解等,不需包括在根元素中。
42
Well-formed XML 文件(續) 元素可以巢狀堆疊,但不能交錯 正確: <hello>
<greeting>Hello there! </greeting> </hello> 錯誤: <hello>
43
Well-formed XML 文件(續) 特殊字元<及&不能出現在字元資料中
“&”符號及“<”符號只能用作標示定界符,或在註解、處理指示,或CDATA段中才能以字面資料的形式出現。 若在其他方要用到時,必須以參引來達成。
44
XML Parser XML Parser也稱XML Processor,是用來建立XML應用程式最基礎的部份。他負責解析XML文件,並將解析結果送給下游程式。
45
XML Parser(續) XML 文件 XML應用程式 XML Parser 其他處理單元
46
XML Parser(續) XML Parser分兩種: Validating parser :進行驗証
Non-validating parser :不進行驗証
47
XML Parser(續) Non-validating parser 代換內部實體參引及設定預設值 檢查是否符合well-formed
出錯時,告知應用程式
48
XML Parser(續) Validating parser 代換內、外部實體參引及設定預設值 檢查是否符合well-formed
驗證是否符合DTD 出錯時,告知應用程式
49
在XML中使用中文 使用中文前需考量: 輸入法 文字編碼 字形的顯示
50
在XML中使用中文(續) XML對字元編碼的支援 Unicode編碼 Encoding指明 Xml:lang指明
51
在XML中使用中文(續) 中文語系設定值 Xml:lang=“zh” 中文資料 Xml:lang=“zh-TW” 台灣使用的中文
Xml:lang=“zh-HK” 香港使用的中文 Xml:lang=“zh-CN” 大陸使用的中文 Xml:lang=“zh-SG” 新加坡用的中文
52
在XML中使用中文(續) XML中,使用中文需注意的事項 若以ansi格式儲存文件,則在prolog中一定要設encoding=“Big5”
若XML文件沒有正確顯示,可能是encoding屬性有誤 各家XML Parser對中文相容性不一 大體來看,Unicode是較統一的標準
53
Memo
Similar presentations