Transcript 投影片1

文件資料的物件化
文件的最基本資料就是字元,數個字元組合成一
個字,一些字組合成一個段落,數個段落組合成
一篇文件。
 文件的內容就是一個樹狀結構,每一個文件內容
就是一個節點。

文件資料的樹狀結構
圖書產品目錄(BookList)的樹狀結構
 一份圖書產品目錄(BookList)文件擁有很多本圖書
(Book)的資料,每一本圖書擁有下列基本項目

圖書編號(Code):圖書在出版社的編號。
圖書名稱(Title):圖書的書名。
圖書分類(Catalog):圖書所屬的分類。
作者清單(AuthorList):圖書的作者清單。
出版日(Pub_Date):圖書的出版日期。
價格(Price):圖書的定價。
作者清單是圖書作者,可能只有一位,也可能有很多位,每
一位作者的項目,如下所示:
 作者(Author):圖書的作者,可能不只一位。







文件資料的樹狀結構
文件資料的樹狀結構
電腦間資料交換的種類

電腦儲存的資料,以內容來分可以分為兩種
 結構性資料:資料本身已經是經過分析處理的,例如:資料
庫、專屬應用程式產生的交換檔案。例如:以分隔符號分隔
的文件內容。
 非結構性的資料:非結構性的資料大都屬於文書處理建立的
文件檔案、電子郵件檔案和一些備忘錄的資料等。因為資料
內容並沒有一定的規則,這類資料在處理上有一些困難。

不論原來的資料格式是什麼,均能建立成樹狀結
構的資料,如此就有一種通用的標準進行資料的
交換,這就是XML文件。
HTML的基礎
「HTML」(HyperText Markup Language)標示語言
是一種文件編排語言,其主要的目的是編排文件
內容,以便漂亮的顯示文件內容。
 HTML 使用的是SGML語法,(Standard Generalized
Markup Language)。
 SGML是一種功能強大的文件標示、管理和編排語
言,早在1980年就已經公佈語言的草稿,在1986
年成為ISO標準的文件描述語言。

HTML的語法

HTML包含標籤和屬性,如下所示:
 標籤(Tags):HTML標籤使用字串符號來標示文字內容需要使
用的編排格式,在標籤內的文字內容使用預設格式來進行編
排。
 屬性(Attributes):每一個標籤可以擁有一些屬性,用來定義
文字內容的細部編排。
01: <HTML>
02: <HEAD>
03: <TITLE>一份電子郵件的內容</TITLE>
04: </HEAD>
05: <BODY>
06: <B>From: </B>[email protected]<BR>
07: <B>To: </B>[email protected]<BR>
08: <B>Subject: </B>測試郵件功能<BR>
09: <P>這是第一封郵件</P>
10: </BODY>
11: </HTML>
HTML的圖例
什麼是XML
「XML」(Extensible Markup Language)可擴展標示
語言也屬於一種標籤語言,XML 1.0版規格是在
1998年2月正式推出。
 XML語法十分類似HTML,它屬於SGML的字集。
 XML的目的並不是編排內容,而是用來描述資料。
 它沒有預設標籤,使用者需要自己定義描述資料
所需的各種標籤。

01: <?xml version="1.0" encoding="Big5"?>
02: <email>
03:
<from>[email protected]</from>
04:
<to>[email protected]</to>
05:
<subject>測試郵件功能</subject>
06:
<body>這是第一封郵件</body>
07: </email>
XML文件的特點

XML文件擁有兩個特點如下所示:
 良好格式(Well-Formed)
 XML文件需要驗證(Validity)

XML命名的原則
 XML名稱區分英文字母大小寫。
 名稱可以是字母、「:」和「_」符號開頭,但是不能是數字
開頭的名稱。
 除了名稱開頭字元外,名稱可以包含字母、數字、「-」、
「.」、「:」和「_」等特殊字元,只有XML的「<」、「>」、
「@」和「&」等特殊用途符號不可使用。
 名稱不能包含空白字元,換句話說,名稱是一個連續字元的
字串。
XML的相關技術
文件資料驗證

DTD(Document Type Definition)
 DTD就是SGML的語法檢查,XML 1.0版支援DTD驗證
 DTD能夠幫助XML剖析器來解譯XML文件的內容

XML Schema Definition(XSD)
 DTD雖然可以定義XML標籤和架構,不過它是使用和XML完全
不同的語法,而且缺乏擴充性。
 軟體廠商Microsoft、Inso、ArborText和DataChannel提出一種
不同的檢查系統,也就是XML Schema。
顯示輸出和文件轉換

CSS(Cascading Style Sheets)
 CSS並不是全新技術,HTML文件可以使用CSS重新定義標籤樣
式。在XML文件也一樣適用,可以用來定義XML標籤的顯示
樣式。

XSL/XSLT(Extensible Stylesheet Language)
 XML預設的樣式語言是XSL,標準的樣式語言包含轉換和格式
化資料的功能,簡單的說,XSL包含轉換和格式化XML文件的
語法。
XML資料查詢

XPath(XML Path Language)
 XPath語言和XQuery語言使用相同的資料模型(Data Model)。
 Path本身就是XSLT技術的組成元素,而且在XQuery和XPointer
都會使用XPath位置路徑(Location Path)。

XQuery(XML Query Language)
 XQuery是一種功能強大和容易使用的XML資料查詢語言,如
同關聯式資料庫提供的標準SQL查詢語言,XQuery就是XML資
料的查詢語言。
XML資源連結

XLink(XML Linking Language)
 XLink是一種在XML文件建立超連結的語言,能夠連結一系列
XML文件的資源。
 XML文件的任何元素都可以擁有XLink行為,用來連結URI資源,
URI可以是整份XML文件,或是使用XPointer指出的部分內容。

XPointer(XML Pointer Language)
 XPointer能夠連結XML文件的指定部分,它不是用來查詢XML
文件,而是使用XPath位置路徑在XML文件內進行定址,以便
作為XLink連結部分內容的依據。
XML的軟體需求

XML剖析器(Parser)
 剖析是指依照標籤解讀文件,電腦本身雖然看不懂XML文件
的內容,但是透過標籤的幫助,剖析器就可以分析文件的內
容來取出所需的資訊。
 MSXML Parser、Apache Xerces、Oracle XML Parser

XML驗證工具
 XML驗證工具能夠檢查XML文件是否是良好格式文件,並且
支援DTD或XML Schema來驗證XML文件
 Online Xhtml Validator、Topologi Schematron Validator
XML的軟體需求

XML編輯工具
 可以使用現有HTML編輯工具或Windows的記事本來編輯XML
文件。
 XML Spy、Stylus Studio、XMLwriter、<oXygen/> XML Editor &
XSLT Debugger

XML瀏覽工具
 XML瀏覽工具能夠顯示XML文件,並且配合XSLT和CSS技術輸
出顯示XML文件內容,微軟Internet Explorer可以如同瀏覽
HTML文件一般的瀏覽XML文件。
XML文件範例
01: <?xml version="1.0" encoding="Big5"?>
02: <!--網頁製作徹底研究系列-->
03: <booklist>
04:
<book>
05:
<code>F8915</code>
06:
<title>ASP網頁製作徹底研究</title>
07:
<authorlist>
08:
<author>陳會安</author>
09:
</authorlist>
10:
<price>580</price>
11:
</book>
12:
<book>
13:
<code>F8916</code>
14:
<title>ASP與IIS 4/5網站架設徹底研究</title>
15:
<authorlist>
16:
<author>陳會安</author>
17:
</authorlist>
18:
<price>550</price>
19:
</book>
20: </booklist>
XML文件結構
文件宣告:第1列就是XML文件的宣告,它定義
XML文件的版本和使用的字碼集,以此例為1.0版,
使用中文Big5字碼。
 根標籤:第3列為XML文件的根標籤<booklist>,這
也就是樹狀結構的根節點。
 子元素:在第4~19列就是根元素的子元素book,
而第5~10列和第13~18列為book元素的子元素code、
title、authorlist和price。

元素(Element)與標籤(Tag)
標籤(Tag):XML能夠自己定義標籤,一個標籤是
用來標示文件的部分內容,例如:標籤<code>、
<title>和<price>等,標籤分為開頭標籤<code>和
結尾標籤</code>。
 元素(Element):XML元素為整個文件的主要架構,
元素的本身可以是標籤加上文字內容,或是元素
內包含有其它的元素,元素是一個完整的項目,
它包含標籤、屬性、開始標籤和結尾標籤內的文
字內容和結尾標籤。

元素(Element)
XML元素是由開始和結尾標籤構成,其中包含文
字內容,如下所示:
<code>F8915</code>
 此外XML元素允許包含其它的子元素,如下所示:
<book>
<code>F8915</code>
<title>ASP網頁製作徹底研究</title>
<authorlist>
<author>陳會安</author>
</authorlist>
<price>580</price>
</book>

屬性(Attribute)
在開始標籤的標籤名稱後,可以替標籤加上屬性
名稱,每一個屬性都擁有屬性名稱和值,而且值
需要使用引號括起,如下所示:
<book code="F8915">
 上述<book>標籤擁有code屬性。

實體參考(Entity Reference)
在XML有五個預先保留的實體參考
 例如:
<order>書價 < 500</order>
 標籤內容有「<」符號,我們需要使用實體參考
<order>書價 &lt; 500</order>

實體參考
&lt;
&gt;
&amp;
&apos;
&quot;
符號
<
>
&
'
"
註解(Comment)
XML的註解和HTML是一樣的,都是由「<!-」開始
和「-->」結尾,如下所示:
<!– The comments come here -->
 註解並不屬於XML文件的內容,XML剖析器並不會
處理註解文字。

CDATA區塊(CDATA Section)與PCDATA

CDATA區塊告訴XML剖析器不用處理此區塊的內容,
它是位在「<![CDATA[」字串和「]]>」字串間的文
字內容,如下所示:
<script>
<![CDATA[
function add(a, b)
{
return a+b
}
]]>
</script>
PI(Processing Instructions)
PI允許XML文件包含應用程式的指令,例如:在
XML文件的開頭宣告就是一個PI,這些資訊告訴
XML剖析器如何處理XML文件,如下所示:
<?xml version="1.0" encoding="Big5"?>
 上述PI如同註解一般並非XML文件的內容,不過不
同註解,XML剖析器會將這些資料送給應用程式。

使用IE瀏覽XML文件
XML文件的宣告


版本屬性version
<?xml version="1.0"?>
字碼集屬性encoding
<?xml version="1.0" encoding="Big5"?>
 雖然Internet Explorer 支援Big5,但是並不是所有的XML工具都支援
Big5,此時可以使用UTF-8和UTF-16的「統一字碼」(Unicode) 。

獨立文件屬性standalone
 standalone屬性設定是否同時使用外部的DTD檔案

<?xml version="1.0" encoding="Big5" standalone="no"?>
Standalone的屬性值:
 Yes:不使用外部的DTD檔案。
 No:使用外部的DTD檔案。
XML標籤
開始標籤
<tag_name attribute_name="attribute_value">
 結尾標籤
</tag_name>
 空元素(Empty Element)標籤

 如果開始標籤和結尾標籤中並沒有任何的內容,我們稱為空
元素標籤,它有兩種寫法
<tag_name />
<tag_name></tag_name>
建立XML文件





XML文件需要有根標籤
XML的標籤大小寫不同
所有元素需要有結尾標籤
巢狀XML元素不可以重疊
屬性值需要有引號
正確的使用元素和屬性
屬性值不能包含多個值,但是元素可以。
 屬性無法描述文件的結構,元素可以建立文件的
樹狀結構。
 屬性在維護上和擴充上不如元素,過多的屬性將
造成維護上的困擾。
 元素能夠建立成樹狀結構,在程式設計上比使用
屬性在處理上更為簡單。

名稱空間
名稱空間(Namespace)是為了解決標籤名稱重複的
問題,它提供標籤或屬性更進一步的辨識資訊。
 XML文件標籤和屬性的完整名稱,如下所示:
<名稱空間字頭:標籤名稱>
 標籤完整名稱分為名稱空間的「字頭名稱」
(Prefix),這是用來代替名稱空間字串「URI」
(Uniform Resource Identifier),和標籤名稱,雖然
後面標籤的名稱相同,只要前面的名稱空間不同,
它們就屬於不同的標籤,如下所示:
<bk:title>
<jb:title>

名稱空間的宣告

名稱空間的語法稱為URI,這是一個字串用來識別
抽象或實際的資源,例如:網頁或下載檔案的網
址。基本上URI擁有兩種格式:
 URL(Uniform Resource Locator):這是使用網址名稱和路徑,
因為公司網址的網域名稱是唯一的,換句話說,名稱空間定
義的標籤,就成為獨一無二的標籤,如下所示:
http://www.company.com/
http://www.company.com/xml/
 URN(Uniform Resource Names):URN宣告的名稱空間的格式,
如下所示:
urn:<名稱空間識別>:<名稱空間的特殊字串>
預設宣告(Default Declaration)
在同一個XML元素的範圍內,宣告預設的名稱空
間,只需在根元素宣告名稱空間,其格式如下所
示:
xmlns:prefix="URI“
 指令格式在屬性xmlns後額外加上「:」號後的字
頭名稱,在XML文件根元素使用字頭名稱代替名
稱空間,其子元素都屬於同一個名稱空間。
