投影片 - 銘傳大學

Download Report

Transcript 投影片 - 銘傳大學

了解XML的語法與結構
 能夠撰寫一份合乎語法的XML文件
 能夠驗證XML文件的合法性


該如何學習一套標記語言呢?
› 如何區分標記和內容?
› 哪些標記是被允許的?
› 哪些標記是必須的?
› 不同標記(示)的意義是什麼?
<?xml version = “1.0” ?>
XML標示
<!-- Intro.xml -->
<!-- Simple Introduction to XML markup -->
<myMessage>
註解標示
標記(元素)
<message>Welcome to XML! </message>
</myMessage>
資料

驗證XML文件:最簡單的方式是利用IE瀏覽器
› 請將下列兩個例子分別用IE瀏覽器打開看看
<?xml version = “1.0” ?>
<!-- Intro.xml -->
<!-- Simple Introduction to XML markup -->
<myMessage>
<message>Welcome to XML! </message>
</myMessage>
範例 1
範例 2
<?xml version = “1.0” ?>
<!-- Intro.xml -->
<!-- Simple Introduction to XML markup -->
<myMessage>
<message>Welcome to XML! </message>
</myMESSAGE>
範例 2
範例 1
所以了解XML標記的相關規範
才能寫出正確的XML文件!
<?xml version = “1.0” ?>
<!-- Intro.xml -->
<!-- Simple Introduction to XML markup -->
<myMessage>
<message>Welcome to XML! </message>
</myMESSAGE>
元素(就是標記)(Element)
 屬性(Attribute)
 處理指令(Processing Instruction)
 註解(Comment)
 文字資料

› 實體參用(Entity Reference)
› 內建實體字元(Built-in Entities)
› CDATA段(CDATA Section)
元素(又稱標記)是資料的收納器(container)
 元素的內容可以包含

› 字元資料 (字元內容)
› 其他元素或標示(註解, PIs, 實體參照)(元素內容)
› 字元與其他元素 (混合內容)

語法
› <開始標記>… </結束標記>
› 空元素:<標記名稱/>
 沒有內容但可以有屬性

只有包含文字的元素

只有包含元素的元素

包含混合內容的元素
› 例子:<作者>李四端</作者>
› 例子:<作者><姓>李</姓><名>四端</名></作者>
› 例子:對<段落>元素而言,
<段落>
<發明人>李四端</發明人>發明了一種<發明物>語言翻譯機</發
明物>可以<用途>跟外星人溝通</用途>
</段落>

空元素
› <生日 />
› 那生日的資訊可以如何表達呢?屬性
名稱須以「字母」 、冒號(:) 、或底線「_」
為首
 其餘文字可以用「字母」、「數字」、底線
「_」、連字符號「-」以及句點「.」組成
 不能使用空白
 元素有分大小寫

<Person>
 <_Person>
 <Home_City>
 <Id-Number>
 <Id.Number>
 <Class2938>
 <書籍>

<Home City>
 <.X509>
 <-Person>
 <2938Class>
 <Id#Number>
 <Id^Number>

每個元素可以附帶一些屬性跟屬性值
 語法

› attr_name = “attr_value”
› attr_name = ‘attr_value’
 例子:<生日 年=“59” 月=“09” 日=“30” />

同樣的屬性(不管值是否相同)不可重複出
現在同一元素中
› 例如:<img src=“a.jpg” src=“b.jpg” />
透過剖析器可以傳遞資訊給特定的應用程式
 語法

› <?target …instruction data here … ?>
› target:有效的XML名稱
› Instruction data: 任何有效字元的字串

例子:
› <?xml-stylesheet type=“text/xsl” href=“test.xsl” ?>
 IE瀏覽器透過其內建的xml剖析器,可以知道該xml文件要
用test.xsl來進行轉換

<!-- … comments here … -->
› 註解的內容不會被剖析器處理

註解規則
› 註解可以跨列使用
› 註解可以包含標籤
› 註解不可以放在文件的第一行
› 註解不可以被包含在標籤之中
› 註解中不可以有「--」字串

XML文件除了可以包含英數字元, CR, LF等字
元外, 還可以包含Unicode字元
› Unicode是一種字元標準, 嘗試將世界幾個主要的
語言包含進來

XML文件的內容需要分辨標記文字(markup
text)與一般字元資料 (character data)
› 標記是由<與>所含括的文字,例如<xyz>,</xyz>
以10進位或16進位輸入特殊字元
 10進位:

› &#NNNNN;

16進位:
› &#xhhhh;

範例
 &#169;, &#xA9;  ©
 &#174;, &#xAD;  ®

元素或屬性值的文字內容
› 不可包含<, >, “, ‘, &
› 解決方案一
 &, <, >, “, ‘:必須以實體參照方式輸入:





&: &amp;
<: &lt;
>: &gt;
“: &quot;
‘: &apos;
› 解決方案二
 使用CDATA段
讓所包含的文字字元被視為純粹文字內容, 而
不會被進一步處理
 語法

› <![CDATA[ …文字字元 …]]>
› 例子
 <![CDATA[ for (i=1; i < 10; i++) ]]>
› 注意:CDATA段也是屬於文字資料,所以以下資
料是相同的:
 <![CDATA[ for (i=1; i < 10; i++) ]]>
 for (i=1; i &lt; 10; i++)
XML文件
前言(prolog)
<?xml version=“1.0” ?>
<!-- …..comments … -->
<!DOCTYPE books SYSTEM “http://xxx.xxx.xxx/books.dtd >
<!... Other comments and processing instruction allowed here >
主體(body)
<books>
<book category=“reference” >
<author>XXXX</author>
</book>
….
</books>
結語(epilog)
<!... Other comments and processing instruction allowed here >
XML文件
前言(prolog)
<?xml version=“1.0” ?>
<!-- …..comments … -->
<!DOCTYPE books SYSTEM “http://xxx.xxx.xxx/books.dtd >
<!... Other comments and processing instruction allowed here >
文件實體
(document
entity)
前言
主體(body)
<books>
<book category=“reference” >
<author>XXXX</author>
</book>
….
</books>
XML
剖析器
Only one!
文件元素
(document
element)
元素樹
(element
tree)
結語(epilog)
結語
<!... Other comments and processing instruction allowed here >
XML結構樹
XML文件
文件實體
(document
entity)
前言
文件根元素只能
有一個!
文件根元素
(root
element)
子元素樹
(element
subtree)
結語
根元素
(root
element)
子元素是有順序的
屬性是沒有順序的
元素
(element)
屬性
(attributes)
子元素
(subelement)
處理指令
(PI)
註解
(comments)
文字字元
(characters)
CDATA字元
(CDATA)
書籍
資料
名稱=“XML程式設計”
書本
作者
<書籍資料>
<書本 名稱=“XML程式設計” >
<作者>王小明</作者>
<章 順序=“第一章” 名稱=“XML的用途”>
<節 順序=“1-1” 名稱=“XML簡介” >
<節 順序=“1-1-1” 名稱=“XML意義與特色” />
<節 順序=“1-1-2 “ 名稱=“XML語法與結構” />
<節 順序=“1-1-3” 名稱=“XML的應用” />
</節>
</章>
<章 順序=“第二章” 名稱=“XML文件資訊架構” >
<節 順序=“2-1” 名稱=“DTD” />
<節 順序=“2-2” 名稱=“XML Schema” />
</章>
…
</書本>
…
</書籍資料>
王小明
順序=“第一章”
名稱=“XML的用途”
順序=“1-1”
名稱=“XML簡介”
章
順序=“1-1”
名稱=“XML意義與特色”
節
節
順序=“1-2”
名稱=“XML語法與結構”
節
順序=“1-3”
名稱=“XML的應用”
節

格式正確的XML文件
› 只有一個根元素
› 合乎XML的語法要求(標記對應正確, 不能有重疊
等等)

可以通過XML剖析器的均稱為格式正確的
XML文件
 在本單元中,我們提到了
› XML的語法與結構
 文件剖析:從文件變成文件樹
› 如何撰寫一份合乎語法的XML文件
› 如何利用IE瀏覽器,檢閱XML文件的合法性