多媒體製作設計與評估 -- xml/dtd 理論與實務

90
多多 多多多多多多多 -- XML/DTD 多多多多多 Jian-hua Yeh ( 葉葉葉 ) 葉葉葉葉葉葉葉葉葉葉葉葉葉 [email protected]

Upload: damian

Post on 10-Feb-2016

124 views

Category:

Documents


1 download

DESCRIPTION

多媒體製作設計與評估 -- XML/DTD 理論與實務. Jian-hua Yeh ( 葉建華 ) 真理大學資訊科學系助理教授 [email protected]. Course Outline. 標示 (Markup) 的基本概念 SGML 介紹 XML 介紹 XML 相關標準 XML 的應用 DTD 介紹 DTD 的應用. 顧名思義. SGML – Standard Generalized Markup Language ( 標準通用標示語言 ) XML – Extensible Markup Language (可延伸 標示語言 ) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 多媒體製作設計與評估 -- XML/DTD 理論與實務

多媒體製作設計與評估 -- XML/DTD 理論與實務

Jian-hua Yeh ( 葉建華 )

真理大學資訊科學系助理教授[email protected]

Page 2: 多媒體製作設計與評估 -- XML/DTD 理論與實務

2

Course Outline

• 標示 (Markup) 的基本概念• SGML 介紹• XML 介紹• XML 相關標準• XML 的應用• DTD 介紹• DTD 的應用

Page 3: 多媒體製作設計與評估 -- XML/DTD 理論與實務

3

顧名思義• SGML – Standard Generalized Markup Language ( 標準通用標示語言 )

• XML – Extensible Markup Language

(可延伸標示語言)• HTML – HyperText Markup Language

(超文件標示語言)

Page 4: 多媒體製作設計與評估 -- XML/DTD 理論與實務

4

標示 (Markup) 的基本觀念• 藉著標示傳達某些關於被標示文字的資訊 • 標示的種類

– 程序性標示 (Procedural Markup) :

• 針對文件的呈現外觀進行標示• 例如: Microsoft Word、 PDF

– 描述性標示 (Descriptive Markup) :

• 針對文件的內容和語義結構進行標示• 例如: SGML、 XML

Page 5: 多媒體製作設計與評估 -- XML/DTD 理論與實務

5

程序性標示 (Procedural Markup)

• 針對文件的呈現外觀進行標示• 所見即所得 (What You See Is

What You Get)

• 文件的呈現樣式與內容儲存在同一份檔案• 方便個人使用• 通常使用專屬的控制碼( ex.

binary code) ,無法跨系統、跨平台

Page 6: 多媒體製作設計與評估 -- XML/DTD 理論與實務

6

描述性標示 (Descriptive Markup)

• 針對文件的內容和語義結構進行標示• 文件的內容與呈現樣式分開• 呈現時須結合樣式表

(stylesheet) • 使用 ASCII code ,可以跨系統、跨平台• 利於大量文件的長期保存、交換與再利用

Page 7: 多媒體製作設計與評估 -- XML/DTD 理論與實務

7

描述性標示的呈現

Page 8: 多媒體製作設計與評估 -- XML/DTD 理論與實務

8

描述性標示文件與樣式表分開• 一份描述性標示文件可以使用不同的樣式表→ 提高描述性標示文件的再利用性• 多份描述性標示文件可以使用同一份樣式表→視覺設計維護更為容易

Page 9: 多媒體製作設計與評估 -- XML/DTD 理論與實務

9

XML 的發展背景• HTML 的許多特性已經限制了 Web 的發展。 XML 的發展成員大都對 SGML 及結構化的資訊( structured

information )有相當豐富的應用經驗,他們相信引進SGML 技術,能夠彌補 HTML 的不足。

• XML─取 SGML 之長,補 HTML 之短。

Page 10: 多媒體製作設計與評估 -- XML/DTD 理論與實務

10

HTML 的限制• HTML 大部分的標籤是用來控制線上顯示,無法描述較複雜的文件結構。• HTML 的標籤集是固定的,使用者不能自行定義標籤。 • HTML 文件無法支援較精確的查詢。• 資料庫中的資訊轉成 HTML 後,常會造成資訊遺失。• 不同廠商所發展的 HTML Extension 不相容。

Page 11: 多媒體製作設計與評估 -- XML/DTD 理論與實務

11

SGML(Standard Generalized Markup Language)

• 1986 年 ISO 所制定的標準- ISO 8879

• 主要是為了文件交換與電子出版的使用而設計,用來描述文件結構,使得電子文件能在不同軟體系統間交換與傳輸。 • 是一套訂定標示語言的元語言( meta-language ),使用者可根據需求自行定義標籤,再以這些標籤來描述文件結構。

Page 12: 多媒體製作設計與評估 -- XML/DTD 理論與實務

12

SGML 的優點• 有彈性 (flexibility) :

– 能描述任何的資訊結構與任何複雜的文件。• 非專屬性 (non-proprietary) 、平台獨立性 (platform-

independence) 與系統獨立性 (system-independence) : – 利於文件的交換與長期保存。

• 資訊再利用性 (re-usability)

Page 13: 多媒體製作設計與評估 -- XML/DTD 理論與實務

13

SGML 的缺點• SGML 標準規格過於複雜。• SGML 開發相關應用軟體的成本相當高。• SGML 文件不易在 Web 上傳佈。

Page 14: 多媒體製作設計與評估 -- XML/DTD 理論與實務

14

XML( Extensible Markup Language)

• W3C在 1996 年底提出的標準。• 從 SGML 衍生出來的簡化格式,也是一種元語言

(meta-language)

• 1998/2, XML1.0 Recommendation

• 已獲得各界的支持,其中包括了 Sun Microsystems, Microsoft, Netscape, Adobe, ArborText,... 等軟體大廠的背書

Page 15: 多媒體製作設計與評估 -- XML/DTD 理論與實務

15

XML 的設計目標• XML 能直接在 Internet 上使用: • XML 能與 SGML 相容: • 處理 XML 文件的程式能很容易被開發:• XML 的選項功能盡量保持最少,最好是零: • 語法省略對於 XML 標示來說並不重要:• …..

Page 16: 多媒體製作設計與評估 -- XML/DTD 理論與實務

16

XML 文件實例以下是 XML 文件片段: <customer-details id="AcPharm39156"> <name>Acme

Pharmaceuticals Co.</name> <address country="US"> <street>7301 Smokey Boulevard</street> <city>Smallville</city> <state>Indiana</state> <postal>94571</postal> </address> </customer-details>

Page 17: 多媒體製作設計與評估 -- XML/DTD 理論與實務

17

SGML、 HTML、 XML 的關係• SGML(1986)

• HTML─SGML 的兒子 (1996, HTML 3.2)

• XML─SGML 的弟弟 (1998, XML 1.0)

• XML─比 HTML 晚出生的叔叔– XML是 SGML 的簡化,而非 HTML 的延伸

Page 18: 多媒體製作設計與評估 -- XML/DTD 理論與實務

18

W3C 的資料格式

Page 19: 多媒體製作設計與評估 -- XML/DTD 理論與實務

19

XML與 SGML 之比較─相同點• 都是一種 Meta-Language ,可以支援各種不同的應用。• 都具備可擴展性 (extensibility) 、結構性 (structure) 與可確認性 (validation) 等優點,能夠描述各種複雜的文件結構,並可藉由 DTD 來確保文件結構的完整性與正確性。• 都須結合樣式表來設定文件內容的呈現格式。• 都具備跨平台、可長期保存、可再利用、能被人直接閱讀等特性。

Page 20: 多媒體製作設計與評估 -- XML/DTD 理論與實務

20

XML與 SGML 之比較─相異點• 對 SGML 文件而言, DTD 是必備的;而對於 XML 文件而言, DTD 不是必備的。• SGML 的使用者可以使用包含 (Inclusion) 與除外

(Exclusion) 這兩種語法規則來指定內容模式 (content model) 的例外處理 (Exceptions); XML則不支援例外處理。

• XML 不支援 AND(&) 內容模式、 SDATA 內部實體( internal entities)…等語法。

Page 21: 多媒體製作設計與評估 -- XML/DTD 理論與實務

21

XML與 HTML 之比較 HTML XML 擴展性(extensibility)

標籤集與每個標籤的意義是固定的,使用者無法自行定義標籤(tags)或屬性(attribute)。

允許使用者根據需要,自行定義標籤與屬性,以便更進一步描述資料的語意。

結構性(structure)

不支援深層的結構描述。

能描述各種複雜的文件結構,並能表示資料庫綱要 (schema)及物件導向的階層結構。

驗證性(validation)

沒有提供語法規格來支援應用程式對HTML文件進行結構確認。

可包含一個語法規格 (DTD),讓應用程式對文件進行結構確認。

Page 22: 多媒體製作設計與評估 -- XML/DTD 理論與實務

22

XML 文件• Well-formed XML 文件

– 沒有參引 DTD

• Valid XML 文件– 參引 DTD

• 所有的 XML 文件都須符合 Well-formed XML 規則

Page 23: 多媒體製作設計與評估 -- XML/DTD 理論與實務

23

Well-formed XML 規則• 包含一個以上的元素。• 恰有一個根元素。• 不能省略起始標籤或結尾標籤。 (如 <p>…..</p>)

• 所有的 標籤必須呈現適當的巢狀 (nest) 結構。 ( 如 <B><I>bold and italic</B>italic</I> 是不允許的 )

• 空標籤必須遵守特殊的 XML 語法。 ( 如 <img src=“…”/> )

• 所有的屬性值必須括上單引號或雙引號。 ( 如 <font size=“2”> )

Page 24: 多媒體製作設計與評估 -- XML/DTD 理論與實務

24

寫一份 Well-Formed XML 文件• 步驟 1 : 撰寫 XML宣告• 步驟 2 : 撰寫根元素• 步驟 3 : 撰寫其他 XML 標籤與內容• 步驟 4 : 剖析 (parsing) XML 文件

Page 25: 多媒體製作設計與評估 -- XML/DTD 理論與實務

25

步驟 1: 撰寫 XML 宣告• <?xml version=”1.0”?>

• <?xml version=”1.0” encoding=”UTF-8” ?>

• <?xml version=”1.0” encoding=”big5” ?>

Page 26: 多媒體製作設計與評估 -- XML/DTD 理論與實務

26

步驟 2: 撰寫根元素<?xml version=”1.0” encoding=“big5” ?>

<record-list>

……

</record-list>

Page 27: 多媒體製作設計與評估 -- XML/DTD 理論與實務

27

步驟 3: 撰寫其他 XML 標籤與內容<?xml version="1.0" encoding="big5"?>

<record-list>

….

<record>

<seq>1</seq>

<title>XML及 RDF 技術介紹 </title>

<creator>梁高榮 </creator>

<journal>機械工業 </journal>

<vol>220</vol>

<date>90.07</date>

…..

<url>http://www2.read.com.tw/…..</url>

…..

</record>

…..

</record-list>

Page 28: 多媒體製作設計與評估 -- XML/DTD 理論與實務

28

一份正確的 Well-formed XML 文件在 Microsoft Internet Explorer 6.0 的瀏覽結果

Page 29: 多媒體製作設計與評估 -- XML/DTD 理論與實務

29

一份有語法錯誤的 XML 文件在 Microsoft Internet Explorer 6.0 的瀏覽結果

Page 30: 多媒體製作設計與評估 -- XML/DTD 理論與實務

30

XML 的樣式表 (Style Sheet)• XSL (Extensible Stylesheet Language)

– W3C Recommendation, 2001/10/15

• CSS (Cascading Style Sheet)– W3C Recommendation

Page 31: 多媒體製作設計與評估 -- XML/DTD 理論與實務

31

CSS(Cascading Style Sheet)

• 較 XSL 簡單• 已是 W3C 的正式標準• 主流瀏覽器已支援

Page 32: 多媒體製作設計與評估 -- XML/DTD 理論與實務

32

如何使用 CSS 樣式表• 在 XML 中呼叫 CSS 樣式表

<?xml version=“1.0” standalone=“no” ?>

<?xml-stylesheet href=“*.css” type=“text/css” ?>

• 呼叫的樣式表不存在或為空檔案,則使用內定值• 最後的顯示方式 =繼承的顯示方式 + 自訂的顯示方式• 不可以使用中文標籤• 屬性與屬性值大小寫相同

Page 33: 多媒體製作設計與評估 -- XML/DTD 理論與實務

33

CSS 的屬性與屬性值• 與文字相關的屬性

– 字型設定、文字大小、文字粗細、文字樣式、文字位置、線段設定、文字縮排、文字大小寫設定• 與方框有關的屬性

– 方框設定、框線顏色、框線形式、框線寬度• 與版面有關的屬性

– 背景顏色、顯示方式、位置、寬度、與邊緣距離

Page 34: 多媒體製作設計與評估 -- XML/DTD 理論與實務

34

XSL 樣式表• XSL 文件是 well-formed XML 文件• XSL 包含大多數的 CSS 功能• XSL 包含兩個部分:

– 一個可以轉換 XML 文件的語言:• XSLT(XSL Transformations) 1.0

• W3C Recommendation ; 1999/11/16

– 一組排版指令 (formatting object) 的 XML 標示:• XSL 1.0

• W3C Recommendation; 2001/10/15

Page 35: 多媒體製作設計與評估 -- XML/DTD 理論與實務

35

XSL 與 CSS 的比較XSL CSS

能否使用在 HTML ? no yes

能否使用在 XML ? yes yes

是不是轉換語言 ? yes no

使用語法 ? XML CSS

Page 36: 多媒體製作設計與評估 -- XML/DTD 理論與實務

36

XSLT 的應用• XML XML

– 可以用來做不同 Metadata 交換資訊時的轉換• XML HTML (XHTML)

– 轉換後的 HTML 必須是 well-formed

• XSL XSL

Page 37: 多媒體製作設計與評估 -- XML/DTD 理論與實務

37

XSLT 的網路應用• 在 Server 端做轉換:

– Real-time 轉換: Server Load 較重– Batch 轉換: Server Load 較輕

• 在 Client 端做轉換:– Browser 對 XSLT 的支援可能不完整 !?

• 接到 http request ,根據 browser type ,再決定是要由 Server 端做轉換,或是由 Client 端做轉換。

Page 38: 多媒體製作設計與評估 -- XML/DTD 理論與實務

38

XSL 處理器的工作原理• 解讀 XML 文件樹狀結構 (source tree) ,並產生暫時性的樹狀結構 (result tree)

• 對結果樹文件做排版,產生可由瀏覽器顯示的文件

Page 39: 多媒體製作設計與評估 -- XML/DTD 理論與實務

39

如何使用 XSL 樣式表• 在 XML 中呼叫 XSL 樣式表

<?xml version=“1.0” standalone=“no” ?>

<?xml-stylesheet href=“*.xsl” type=“text/xsl” ?>

• 呼叫的樣式表不存在,會出現錯誤訊息• 可以使用中文標籤• 屬性與屬性值大小寫不同

Page 40: 多媒體製作設計與評估 -- XML/DTD 理論與實務

40

XSL 元素• 與樣本有關的元素• 與資料有關的元素• 條件式控制元素• 其他元素

Page 41: 多媒體製作設計與評估 -- XML/DTD 理論與實務

41

與樣本有關的 XSL 元素• xsl:stylesheet

• xsl:template– match 屬性

• xsl:value-of– select 屬性

• xsl:for-each– select 屬性

• xsl:apply-templates

Page 42: 多媒體製作設計與評估 -- XML/DTD 理論與實務

42

與資料有關的 XSL 元素• xsl:comment

• xsl:copy

• xsl:attribute

• xsl:element

Page 43: 多媒體製作設計與評估 -- XML/DTD 理論與實務

43

XSL 的條件式控制元素• xsl:if

• xsl:choose

• xsl:when

• xsl:otherwise

Page 44: 多媒體製作設計與評估 -- XML/DTD 理論與實務

44

連結 XSL 樣式表的 XML 文件

<?xml version="1.0" encoding="big5"?>

<?xml-stylesheet href="ncl_journal_search_2.xsl" type="text/xsl" ?>

<record-list>

….

<record>

<seq>1</seq>

<title>XML及 RDF 技術介紹 </title>

<creator>梁高榮 </creator>

<journal>機械工業 </journal>

…..

</record>

…..

</record-list>

Page 45: 多媒體製作設計與評估 -- XML/DTD 理論與實務

45

一份結合 XSL的 XML 文件在 Microsoft Internet Explorer 6.0 的瀏覽結果

Page 46: 多媒體製作設計與評估 -- XML/DTD 理論與實務

46

XML 相關標準制定現況• XML 1.0 :

– W3C Recommendation 10-Feb-1998

• Namespaces in XML:– W3C Recommendation 14-Jan-1999

• XSLT :– W3C Recommendation 16-Nov-1999

• XML Schema :– W3C Recommendation 2-May-2001

• XHTML 1.1 :– W3C Recommendation 31-May-2001

• XLink :– W3C Recommendation 27-June-2001

• XSL :– W3C Recommendation 15-Oct-2001

Page 47: 多媒體製作設計與評估 -- XML/DTD 理論與實務

47

XHTML與 HTML 的不同 (1/6)

• 文件必須是 well-formed

• Example:– CORRECT: nested elements<p>here is an emphasized <em>paragraph</em>.</p>

– INCORRECT: overlapping elements<p>here is an emphasized <em>paragraph.</p></em>

Page 48: 多媒體製作設計與評估 -- XML/DTD 理論與實務

48

XHTML與 HTML 的不同 (2/6)

• 元素與屬性名稱是小寫• Example:

– CORRECT: <li>….

– INCORRECT: <LI>….

Page 49: 多媒體製作設計與評估 -- XML/DTD 理論與實務

49

XHTML與 HTML 的不同 (3/6)

• 除了空元素外,都必須有結尾標籤。• Example:

– CORRECT: terminated elements <p>here is a paragraph.</p> <p>here is another paragraph.</p>– INCORRECT: unterminated elements <p>here is a paragraph. <p>here is another paragraph.

Page 50: 多媒體製作設計與評估 -- XML/DTD 理論與實務

50

XHTML與 HTML 的不同 (4/6)

• 所有屬性值都必須加引號• Example:

– CORRECT: quoted attribute values

<table rows="3">

– INCORRECT: unquoted attribute values

<table rows=3>

Page 51: 多媒體製作設計與評估 -- XML/DTD 理論與實務

51

XHTML與 HTML 的不同 (5/6)

• 屬性不能採用簡化表示法• Example:

– CORRECT: unminimized attributes

<dl compact="compact">

– INCORRECT: minimized attributes

<dl compact>

Page 52: 多媒體製作設計與評估 -- XML/DTD 理論與實務

52

XHTML與 HTML 的不同 (6/6)

• 空元素的表示法• Example:

– CORRECT: terminated empty tags

<br/><hr/>

– INCORRECT: unterminated empty tags

<br><hr>

Page 53: 多媒體製作設計與評估 -- XML/DTD 理論與實務

53

XML 的應用

• 資料庫交換• Client端的文件處理• 一份內容,多種呈現• 資訊過濾• 資訊再利用

Page 54: 多媒體製作設計與評估 -- XML/DTD 理論與實務

54

XML 應用實例─新浪網與國家圖書館合作案

Page 55: 多媒體製作設計與評估 -- XML/DTD 理論與實務

55

XML 應用實例─新浪網與國家圖書館合作案

Page 56: 多媒體製作設計與評估 -- XML/DTD 理論與實務

56

新浪網伺服器 國圖伺服器

(1) 送出查詢請求

(2) 將查詢請求導向國圖伺服器

(3) 將查詢結果以 XML 格式傳回

(4) 將 XML 轉成 HTML網頁傳回 Client 端(5) 點選 metadata取得更多資訊

User系統架構圖

Page 57: 多媒體製作設計與評估 -- XML/DTD 理論與實務

57

甚麼是 DTD

• 文件型態定義 (Document Type Definition)

• DTD 的概念緣於 SGML ,每一份 SGML 文件一定參考到一份 DTD

• XML 沿用了 DTD 的概念,但一份 XML 文件可以自由選擇是否參引 DTD– Well-formed XML 文件:沒有參引 DTD

– Valid XML 文件:參引 DTD

Page 58: 多媒體製作設計與評估 -- XML/DTD 理論與實務

58

DTD 的功能• 定義該類型的文件所包含的元素 (Element) ,並定義每個元素的內容,包含子元素與屬性。• 規範各元素 (Element) 的排列組合方式,包含出現的順序與可出現的次數。

Page 59: 多媒體製作設計與評估 -- XML/DTD 理論與實務

59

DTD 的組成• 元素( Elements )• 屬性( Attribute )• 實體( Entities )• 註解( Comments )

Page 60: 多媒體製作設計與評估 -- XML/DTD 理論與實務

60

XML DTD / 元素 (Elements)

• 非空元素 (non-empty element)

– 元素之下還有子元素或者元素包含內容• 空元素 (empty element)

– 元素之下沒有任何的子元素或內容• 不做限制的元素

– 元素之下可以包含任何被宣告過的元素或文字資料 (#PCDATA)

– 這些被包含的元素出現順序與次數皆不受限制。

Page 61: 多媒體製作設計與評估 -- XML/DTD 理論與實務

61

非空元素的宣告語法如下:

<!ELEMENT 元素名稱 元素內容 >

如:<!ELEMENT Email (From,Date,To+,Subject,Body?)>

元素名稱

元素內容<!ELEMENT From (#PCDATA)>

(#PCDATA) 代表該資料型態是可被剖析的文字資料 (Parsed Character DATA)

Page 62: 多媒體製作設計與評估 -- XML/DTD 理論與實務

62

非空元素的使用<?xml version=“1.0” standalone=“no”>

<!DOCTYPE Email SYSTEM “http://ross.edu.tw/dtd/email.dtd”>

<Email>

<From>Joe</From>

<Date>1999-7-14 AM 09:20</Date>

<To>Jay</To>

<To>Jennifer</To>

<Subject>Learning XML</Subject>

<Body>學 XML就像學 HTML 一樣簡單 </Body>

</Email>

內容包含了 From, Date, To, Subject, Body 等子元素內容是純文字

Page 63: 多媒體製作設計與評估 -- XML/DTD 理論與實務

63

空元素的宣告與使用語法如下:

<!ELEMENT 元素名稱 EMPTY>

如:<!ELEMENT br EMPTY>

使用實例:………<br/>………

元素名稱

Page 64: 多媒體製作設計與評估 -- XML/DTD 理論與實務

64

不做限制的元素宣告語法如下:

<!ELEMENT 元素名稱 ANY>

如:<!ELEMENT comment ANY>

Page 65: 多媒體製作設計與評估 -- XML/DTD 理論與實務

65

XML DTD / 元素的內容模型 (Content Model)

( )

A?

A+

A*

(A | B | C)

(A, B, C)

一個表示式A 可出現一次,或不出現 (0 or 1次 )

A 可重複出現,且至少出現一次 (1次以上 )

A 可重複出現,或不出現 (0次以上 )

A, B, C 任選一,且僅能有一A, B, C 同時出現,且出現順序為 A, B, C

Page 66: 多媒體製作設計與評估 -- XML/DTD 理論與實務

66

混合型 (Mixed) 內容模型• 當一個元素內容包含文字資料與子元素時,稱做混合型內容• 語法:

<!ELEMENT 父元素 (#PCDATA | 子元素 1 | 子元素 2 | ……| 子元素 n)*> 或<!ELEMENT 父元素 (#PCDATA | 子元素 1 | 子元素 2 | ……| 子元素 n)+>

• 無法限制各元素出現順序與次數

Page 67: 多媒體製作設計與評估 -- XML/DTD 理論與實務

67

XML DTD / 屬性 (Attributes)

• 提供元素額外的描述資訊• 屬性值可設定預設值或以列舉的方式來限定。• 語法:

<!ATTLIST 元素名稱 屬性名稱 屬性值型態 屬性的內定值 >

Page 68: 多媒體製作設計與評估 -- XML/DTD 理論與實務

68

幾種常用的屬性值資料型態• CDATA : Character DATA ,代表一般文字。• 將可能的屬性值列舉出來,應用時屬性值必須採用列舉值的其中之一。• NMTOKEN : 英文字母、數字、“ _” 、“ -” 、“ .” 、“ :”

• NMTOKENS : 一個以上的 NMTOKEN 所組成,之間以空白隔開• ID : 屬性值在設定時值必須是唯一的• NOTATION : 屬性值是 DTD 宣告的 NOTATION

Page 69: 多媒體製作設計與評估 -- XML/DTD 理論與實務

69

屬性的內定值型態• #REQUIRED : 該元素一定需要設定該屬性值• #IMPLIED : 該元素不一定要設定該屬性值• #FIXED : 有固定的屬性值• 預設的字串:若沒有指定屬性值,則採用預設值

Page 70: 多媒體製作設計與評估 -- XML/DTD 理論與實務

70

屬性宣告實例 (1/2)

<!ELEMENT Tel (#PCDATA)>

<!ATTLIST Tel Zone CDATA #IMPLIED>

元素名稱 屬性名稱使用實例:……

<Tel Zone=“02”>27819126</Tel>

….

Page 71: 多媒體製作設計與評估 -- XML/DTD 理論與實務

71

屬性宣告實例 (2/2)

<!ELEMENT Name (#PCDATA)>

<!ATTLIST Name Sex (M | F) #REQUIRED>

列舉值使用實例:……

<Name Sex=“M”>Joe</Name>

….

Page 72: 多媒體製作設計與評估 -- XML/DTD 理論與實務

72

XML DTD / 實體 (Entities)

範例:<!ENTITY ROSS “Resource Organization and Searching

Specification”>

Metalogy is produced by the research group under &ROSS.

Page 73: 多媒體製作設計與評估 -- XML/DTD 理論與實務

73

XML DTD / 註解 (Comments)

範例:<!--3 ELEMENT 版本名稱 (#PCDATA) -->

<!ELEMENT editionName (#PCDATA) >

<!--ATTLIST 版本名稱 使用代碼 FIXED "npm-doc-editionName"-->

<!ATTLIST editionName scheme FIXED "npm-doc-editionName">

Page 74: 多媒體製作設計與評估 -- XML/DTD 理論與實務

74

如何開發 DTD

• 分析文獻結構– 結構圖

• 確認所包含的 elements 及每個 element 的規格– 每個元素的內容 ?

– 每個元素是必備還是可有可無 ?

– 每個元素的屬性與屬性值 ?

• 開始撰寫 DTD

– 註解

Page 75: 多媒體製作設計與評估 -- XML/DTD 理論與實務

75

Email 的文件結構

Email

Body

ToSubjectDate

From

根元素

Email 的子元素

Page 76: 多媒體製作設計與評估 -- XML/DTD 理論與實務

76

XML與 XML DTD 的關係XML

書畫DTD 器物DTD ….

器物甲 器物乙 器物丙 ….

印刷版本 Web Page版本虛擬實境版本 ….

文獻 DTD

Page 77: 多媒體製作設計與評估 -- XML/DTD 理論與實務

77

使用 DTD 的好處• 統一文件格式:藉 DTD 來進行文件內容與結構的驗證。• 提高文件的再利用性

Page 78: 多媒體製作設計與評估 -- XML/DTD 理論與實務

78

使用 DTD 的代價• 如果文件結構過於複雜,訂定出完整且具擴充彈性的

DTD 相對不易。• 必須搭配相關的應用程式或剖析器 (parser)才能發揮

DTD 的作用。

Page 79: 多媒體製作設計與評估 -- XML/DTD 理論與實務

79

如何取得 DTD?

• 使用某單位或某人已開發的 DTD.<!DOCTYPE Email PUBLIC “-//OPEN DTD//DTD Email//EN”

“http://opendtd.org/dtd/email.dtd”>

• 自行開發 DTD.<!DOCTYPE Email SYSTEM “http://ross.edu.tw/dtd/email.dtd”>

Page 80: 多媒體製作設計與評估 -- XML/DTD 理論與實務

80

Valid XML 文件• 一份附帶有外部或內部 DTD的Well-formed XML 文件,並且文件內容符合 DTD 所定義的文件格式,稱之為 Valid XML 文件。

Page 81: 多媒體製作設計與評估 -- XML/DTD 理論與實務

81

寫一份 Valid XML 文件• 步驟 1 : 撰寫 XML宣告• 步驟 2 : 設計一個 DTD.

• 步驟 3 : 撰寫 XML 標籤與內容• 步驟 4 : 驗證 (validating) XML 文件

Page 82: 多媒體製作設計與評估 -- XML/DTD 理論與實務

82

步驟 1: 撰寫 XML 宣告• <?xml version=”1.0”?>

• <?xml version=”1.0” encoding=”UTF-8” ?>

• <?xml version=”1.0” encoding=”big5” ?>

Page 83: 多媒體製作設計與評估 -- XML/DTD 理論與實務

83

步驟 2: 設計一個 DTD

<!-- Elements Content -->

<!-- ----------- ---------------------------->

<!ELEMENT Email (From,Date,To+,Subject,Body?)>

<!ELEMENT From (#PCDATA)>

<!ELEMENT Date (#PCDATA)>

<!ELEMENT To (#PCDATA)>

<!ELEMENT Subject (#PCDATA)>

<!ELEMENT Body (#PCDATA)>

<!-- End of Email DTD -->

Page 84: 多媒體製作設計與評估 -- XML/DTD 理論與實務

84

步驟 3 : 撰寫 XML 標籤與內容• DTD宣告

– 內部 (Internal) DTD 宣告– 外部 (External) DTD 宣告

Page 85: 多媒體製作設計與評估 -- XML/DTD 理論與實務

85

內部 DTD 宣告實例<?xml version=“1.0”>

<!DOCTYPE Email [

<!ELEMENT Email (From,Date,To+,Subject,Body?)>

<!ELEMENT From (#PCDATA)>

<!ELEMENT Date (#PCDATA)>

<!ELEMENT To (#PCDATA)>

<!ELEMENT Subject (#PCDATA)>

<!ELEMENT Body (#PCDATA)>

]>

<Email>

<From>Joe</From>

<Date>1999-7-14 AM 09:20</Date>

<To>Jay</To>

<To>Jennifer</To>

<Subject>Learning XML</Subject>

<Body>學 XML就像學 HTML 一樣簡單 </Body>

</Email>

根元素

DTD 規則

根標籤

Page 86: 多媒體製作設計與評估 -- XML/DTD 理論與實務

86

外部 DTD 宣告實例 (1/2)

<?xml version=“1.0” standalone=“no”>

<!DOCTYPE Email SYSTEM “http://ross.edu.tw/dtd/email.dtd”><Email>

<From>Joe</From>

<Date>1999-7-14 AM 09:20</Date>

<To>Jay</To>

<To>Jennifer</To>

<Subject>Learning XML</Subject>

<Body>學 XML就像學 HTML 一樣簡單 </Body>

</Email>

Page 87: 多媒體製作設計與評估 -- XML/DTD 理論與實務

87

外部 DTD 宣告實例 (2/2)(http://email.org/email.dtd)

<?xml version=“1.0”><!ELEMENT Email (From,Date,To+,Subject,Body?)><!ELEMENT From (#PCDATA)> <!ELEMENT Date (#PCDATA)><!ELEMENT To (#PCDATA)><!ELEMENT Subject (#PCDATA)><!ELEMENT Body (#PCDATA)>

Page 88: 多媒體製作設計與評估 -- XML/DTD 理論與實務

88

利用 XML SPY 4.3對 XML 文件進行驗證 (1) -檢查文件是否 well-formed

Page 89: 多媒體製作設計與評估 -- XML/DTD 理論與實務

89

利用 XML SPY 對 XML 文件進行驗證 (2) -檢查文件是否 Valid

Page 90: 多媒體製作設計與評估 -- XML/DTD 理論與實務

90

Conclusion