Jian-hua Yeh (葉建華) 真理大學資訊科學系助理教授

Slides:



Advertisements
Similar presentations
數位典藏聯合目錄計畫 執行經驗談 主講人:范紀文.
Advertisements

以XML可延伸式標注語言建立文章標誌系統研究- 以蘇軾詩為範圍
課程老師:張迺貞 組員:黃淑珍 吳雅瑜 曲惠君 蔡佩珊 (報告人)
第六章 网页设计与制作基础.
系統分析與設計 第九章 資料設計.
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
第5章 HTML 標籤介紹.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
通訊科技教育改進計畫 「網路應用與服務組」 行動電子商務課程 XML之簡介.
项目一 创建“夕照台”房产网站 ——网页制作基础
2 HTML5與CSS3 2-1 HTML5的頁面結構 2-2 HTML5的文字編排標籤 2-3 HTML5的圖片與超連結標籤
XML 第05讲 使用CSS显示XML.
全球資訊網(WWW)簡介.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
HTML簡介、文字的變化、超連結的使用 主講:朱漢琳.
HTML5全栈开发序列课程 《前端入门》之HTML入门 余鹏作品.
第三章 XML DTD 設計 何謂DTD DTD基本語法 條件段 使用外部DTD.
Ch1.認識全球資訊網 1.1 「網際網路」與「全球資訊網」 1.2 全球資訊網的基礎 – 網頁與超連結
第 2 章 必備的 HTML 與 CSS 重點.
EEI-XML 教學.
Ajax编程技术 第一章 Ajax简介.
Joomla! Extension Course - 1
第 3 章 XML文件的轉換 –XSLT與XPath
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
經濟部工業局電子化人才培訓課程 清華大學工業工程與工程管理學系 課程名稱:電子商務管理與技術
XSL: Extensible Stylesheet Language
Happy Designer 第四次聚會 課程內容分享 2008/11/20.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第2章 网络营销工具.
網頁製作 網頁製作軟體 網頁瀏覽軟體 網頁圖像製作軟體 HTML語言 網站登錄.
單元5-1:XSL XML的轉換語言 王豐緒 銘傳大學資工系.
XML Scheam 也是用來驗證XML文件的驗證語法.
檔案與磁碟的基本介紹.
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
OSGi (Open Service Gateway Initiative)
課程名稱:_____________ 指導教授:_____________
第 4 章 DTD文件的建立.
XML基礎課程 5 數位芝麻網路公司 XML講師:蔡斐婷.
主讲:陶建平 华中科技大学网络与计算中心
7.7 Internet的基本服务功能 随着Internet的飞速发展,目前Internet上的各种服务已多达上万种,其中大多数服务是免费的。随着Internet商业化的发展趋势,它所能提供的服务将会进一步增多。 7.7.1 WWW服务 WWW(World Wide Web)的中文名为万维网,它的出现是Internet发展中的一个里程碑。WWW服务是Internet上最方便与最受用户欢迎的信息服务类型,它的影响力已远远超出了专业技术范畴,并已进入电子商务、远程教育、远程医疗与信息服务等领域。
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
通識教育中心 邱子恒 網際網路資源之檢索與評選 通識教育中心 邱子恒
Topic Introduction—RMI
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
此簡報可能會牽涉到聽眾的討論活動,也就是所謂的執行項目。因此在進行簡報時﹐可充份利用 PowerPoint 來記錄這些執行項目:
前端技术开发 高莺.
<title> XML與XQuery ,新一代資料儲存標準 </title>
2.2 Web界面设计 信息工程系 向模军 Tel: QQ:
祝智庭 (代表教育部现代远程教育技术标准化委员会)
人社學院 通識教育中心 邱子恒 網際網路資源之檢索與評選 人社學院 通識教育中心 邱子恒
张孝祥IT课堂 -深入体验Java Web开发内幕
第 1 章 簡介XML.
HTML – 超連結與圖片 資訊教育.
MDNS Development Plan TWNIC May 2000.
挑戰C++程式語言 ──第8章 進一步談字元與字串
經濟部工業局電子化人才培訓課程 清華大學工業工程與工程管理學系 課程名稱:電子商務管理與技術
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
關鍵字廣告工具、 搜尋引擎最佳化、 損益表實例
HTML大探索.
網站的設計 HTML 超文本標記語言( Hyper Text Markup Language)
Dreamweaver 進階網頁製作 B 許天彰.
Brief Guide of FrontPage
清單的CSS樣式.
Cloud Training Material- 事件 Sherman Wang
项目一 了解网站的概念 项目二 创建个人网站“鸿渐工作室” 项目三 制作“鸿渐工作室”的主页 项目四 HTML语言 项目五 制作“家乡特产”网页 项目六 制作“给我留言”网页 项目七 制作“应用技巧”网页 项目八 模板制作及应用.
陳昭珍 國立臺灣師範大學圖書資訊學研究所副教授
西南科技大学网络教育系列课程 动态网页设计(JSP) 补充 JSP操作XML文件.
教师:李金双 网页制作 教师:李金双
Presentation transcript:

Jian-hua Yeh (葉建華) 真理大學資訊科學系助理教授 au4290@email.au.edu.tw 數位圖書館 – XML/DTD理論與實務 Jian-hua Yeh (葉建華) 真理大學資訊科學系助理教授 au4290@email.au.edu.tw

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

顧名思義 SGML – Standard Generalized Markup Language (標準通用標示語言) XML – Extensible Markup Language (可延伸標示語言) HTML – HyperText Markup Language (超文件標示語言)

標示(Markup) 的基本觀念 藉著標示傳達某些關於被標示文字的資訊 標示的種類 程序性標示 (Procedural Markup) : 針對文件的呈現外觀進行標示 例如:Microsoft Word、PDF 描述性標示 (Descriptive Markup) : 針對文件的內容和語義結構進行標示 例如:SGML、XML

程序性標示 (Procedural Markup) 針對文件的呈現外觀進行標示 所見即所得 (What You See Is What You Get) 文件的呈現樣式與內容儲存在同一份檔案 方便個人使用 通常使用專屬的控制碼(ex. binary code),無法跨系統、跨平台

描述性標示 (Descriptive Markup) 針對文件的內容和語義結構進行標示 文件的內容與呈現樣式分開 呈現時須結合樣式表(stylesheet) 使用ASCII code,可以跨系統、跨平台 利於大量文件的長期保存、交換與再利用

描述性標示的呈現 電子文件無法跨平台交換的主因是:不同的文書處理系統,在文件的呈現細節上採用不同的紀錄格式,這裡的呈現細節指的是字形的大小、字體的選擇、段落的表示、版面的設定之類的處理,這些都是屬於 platform-depedent 的特性。SGML將文件內容與呈現格式區分開來,只描述文件內容的語意結構,至於文件的呈現格式部份,留待文件最後輸出時,再配合 style sheet 標準,來定義呈現格式。 SGML可以讓 user 自行定義 tag 來描述文件內容的語意結構。文獻作者為了方便自己寫作和讀者閱讀,通常都會依據自己的思想綱要,將文獻的內容安排成合適的語意結構。例如一本書可以分成許多章,每一章可以分成許多節;一封書信可以分成寄件人、本文、收件人等部分等。標示了語意結構的 SGML 文獻,便具有了再利用的功能。

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

XML的發展背景 HTML的許多特性已經限制了Web的發展。XML的發展成員大都對SGML及結構化的資訊(structured information)有相當豐富的應用經驗,他們相信引進SGML技術,能夠彌補HTML的不足。 XML─取SGML之長,補HTML之短。

HTML的限制 HTML大部分的標籤是用來控制線上顯示,無法描述較複雜的文件結構。 HTML的標籤集是固定的,使用者不能自行定義標籤。 不同廠商所發展的 HTML Extension 不相容。

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

SGML的優點 有彈性 (flexibility) : 能描述任何的資訊結構與任何複雜的文件。 非專屬性 (non-proprietary)、平台獨立性(platform-independence) 與系統獨立性 (system-independence) : 利於文件的交換與長期保存。 資訊再利用性 (re-usability)

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

XML (Extensible Markup Language) W3C在1996年底提出的標準。 從SGML衍生出來的簡化格式,也是一種元語言(meta-language) 1998/2,XML1.0 Recommendation 已獲得各界的支持,其中包括了Sun Microsystems, Microsoft, Netscape, Adobe, ArborText,...等軟體大廠的背書

XML的設計目標 XML能直接在Internet上使用: XML能與SGML相容: 處理XML文件的程式能很容易被開發: …..

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>

SGML、HTML、XML的關係 SGML(1986) HTML─SGML的兒子(1996, HTML 3.2) XML─SGML的弟弟(1998, XML 1.0) XML─比 HTML 晚出生的叔叔 XML是SGML的簡化,而非HTML的延伸

W3C 的資料格式

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

XML與SGML之比較─相異點 對SGML文件而言,DTD是必備的;而對於XML文件而言,DTD不是必備的。 SGML的使用者可以使用包含 (Inclusion)與除外(Exclusion) 這兩種語法規則來指定內容模式(content model) 的例外處理(Exceptions);XML則不支援例外處理。 XML不支援AND(&)內容模式、SDATA內部實體(internal entities)…等語法。 對SGML文件而言,DTD是必備的;而對於XML文件而言,DTD不是必備的。Well-formed XML文件沒有DTD,Valid XML文件則有DTD。 所有的XML文件都必須符合下列Well-formedness規則: 包含一個以上的元素(elements)。 恰有一個根元素(root),不出現在其他元素的內容之中 所有的元素都有起始標籤與結束標籤,也就是標籤必須成對。 所有的標籤必須呈現適當的巢狀(nest)結構。 空標籤(empty tags)必須遵守特殊的XML語法。(如<empty/>) 所有的屬性值都必須括上單引號或雙引號。 所有的實體都必須宣告。 SGML的使用者可以使用包含(Inclusion)與除外(Exclusion)這兩種語法規則來指定內容模式(content model)的例外處理(Exceptions);XML則不支援例外處理。 XML不支援AND(&)內容模式、SDATA內部實體(internal entities)…等語法。

XML與HTML之比較

XML文件 Well-formed XML文件 Valid XML文件 所有的XML文件都須符合Well-formed XML 規則 沒有參引DTD Valid XML文件 參引DTD 所有的XML文件都須符合Well-formed XML 規則

Well-formed XML 規則 包含一個以上的元素。 恰有一個根元素。 不能省略起始標籤或結尾標籤。(如<p>…..</p>) 所有的 標籤必須呈現適當的巢狀 (nest) 結構。 ( 如 <B><I>bold and italic</B>italic</I> 是不允許的 ) 空標籤必須遵守特殊的XML語法。 ( 如 <img src=“…”/> ) 所有的屬性值必須括上單引號或雙引號。 ( 如 <font size=“2”> )

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

步驟1:撰寫 XML宣告 <?xml version=”1.0”?> <?xml version=”1.0” encoding=”UTF-8” ?> <?xml version=”1.0” encoding=”big5” ?>

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

步驟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>

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

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

XML的樣式表(Style Sheet) XSL (Extensible Stylesheet Language) W3C Recommendation, 2001/10/15 CSS (Cascading Style Sheet) W3C Recommendation

CSS(Cascading Style Sheet) 較XSL簡單 已是W3C的正式標準 主流瀏覽器已支援

如何使用CSS樣式表 在XML中呼叫CSS樣式表 <?xml version=“1.0” standalone=“no” ?> <?xml-stylesheet href=“*.css” type=“text/css” ?> 呼叫的樣式表不存在或為空檔案,則使用內定值 最後的顯示方式=繼承的顯示方式+自訂的顯示方式 不可以使用中文標籤 屬性與屬性值大小寫相同

CSS的屬性與屬性值 與文字相關的屬性 與方框有關的屬性 與版面有關的屬性 字型設定、文字大小、文字粗細、文字樣式、文字位置、線段設定、文字縮排、文字大小寫設定 與方框有關的屬性 方框設定、框線顏色、框線形式、框線寬度 與版面有關的屬性 背景顏色、顯示方式、位置、寬度、與邊緣距離

XSL 樣式表 XSL文件是well-formed XML文件 XSL包含大多數的CSS 功能 XSL包含兩個部分: XSLT(XSL Transformations) 1.0 W3C Recommendation ; 1999/11/16 一組排版指令 (formatting object) 的 XML 標示: XSL 1.0 W3C Recommendation; 2001/10/15

XSL 與 CSS 的比較 XSL CSS 能否使用在 HTML ? no yes 能否使用在 XML ? 是不是轉換語言 ? 使用語法 ?

XSLT 的應用 XML  XML XML  HTML (XHTML) XSL  XSL 可以用來做不同 Metadata 交換資訊時的轉換 XML  HTML (XHTML) 轉換後的 HTML 必須是 well-formed XSL  XSL

XSLT 的網路應用 在 Server 端做轉換: 在 Client 端做轉換: Real-time 轉換: Server Load 較重 Batch 轉換:Server Load 較輕 在 Client 端做轉換: Browser 對 XSLT 的支援可能不完整 !? 接到 http request,根據 browser type,再決定是要由Server 端做轉換,或是由Client 端做轉換。

XSL處理器的工作原理 解讀XML文件樹狀結構(source tree),並產生暫時性的樹狀結構(result tree) 對結果樹文件做排版,產生可由瀏覽器顯示的文件

如何使用XSL樣式表 在XML中呼叫XSL樣式表 呼叫的樣式表不存在,會出現錯誤訊息 可以使用中文標籤 屬性與屬性值大小寫不同 <?xml version=“1.0” standalone=“no” ?> <?xml-stylesheet href=“*.xsl” type=“text/xsl” ?> 呼叫的樣式表不存在,會出現錯誤訊息 可以使用中文標籤 屬性與屬性值大小寫不同

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

與樣本有關的XSL元素 xsl:stylesheet xsl:template xsl:value-of xsl:for-each match屬性 xsl:value-of select 屬性 xsl:for-each xsl:apply-templates

與資料有關的XSL元素 xsl:comment xsl:copy xsl:attribute xsl:element

XSL的條件式控制元素 xsl:if xsl:choose xsl:when xsl:otherwise

連結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>

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

XML相關標準制定現況 XML 1.0 : Namespaces in XML: XSLT : XML Schema : 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

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>

XHTML與HTML的不同(2/6) 元素與屬性名稱是小寫 Example: CORRECT: INCORRECT: <li>…. INCORRECT: <LI>….

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.

XHTML與HTML的不同(4/6) 所有屬性值都必須加引號 Example: CORRECT: quoted attribute values <table rows="3"> INCORRECT: unquoted attribute values <table rows=3>

XHTML與HTML的不同(5/6) 屬性不能採用簡化表示法 Example: CORRECT: unminimized attributes <dl compact="compact"> INCORRECT: minimized attributes <dl compact>

XHTML與HTML的不同(6/6) 空元素的表示法 Example: CORRECT: terminated empty tags <br/><hr/> INCORRECT: unterminated empty tags <br><hr>

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

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

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

系統架構圖 新浪網伺服器 國圖伺服器 User (2) 將查詢請求導向國圖伺服器 (3)將查詢結果以XML格式傳回 (4) 將XML轉成 HTML網頁傳回Client端 (1)送出查詢請求 (5) 點選metadata取得更多資訊 系統架構圖 User

甚麼是DTD 文件型態定義 DTD 的概念緣於 SGML,每一份 SGML 文件一定參考到一份 DTD (Document Type Definition) DTD 的概念緣於 SGML,每一份 SGML 文件一定參考到一份 DTD XML 沿用了 DTD 的概念,但一份 XML 文件可以自由選擇是否參引 DTD Well-formed XML文件:沒有參引DTD Valid XML文件:參引DTD

DTD的功能 定義該類型的文件所包含的元素(Element),並定義每個元素的內容,包含子元素與屬性。

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

XML DTD / 元素(Elements) 非空元素(non-empty element) 空元素(empty element) 元素之下還有子元素或者元素包含內容 空元素(empty element) 元素之下沒有任何的子元素或內容 不做限制的元素 元素之下可以包含任何被宣告過的元素或文字資料(#PCDATA) 這些被包含的元素出現順序與次數皆不受限制。

非空元素的宣告 <!ELEMENT From (#PCDATA)> 語法如下: 如: <!ELEMENT Email (From,Date,To+,Subject,Body?)> 元素名稱 元素內容 <!ELEMENT From (#PCDATA)> (#PCDATA) 代表該資料型態是可被剖析的文字資料 (Parsed Character DATA)

非空元素的使用 <?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 等子元素 內容是純文字

空元素的宣告與使用 語法如下: 如: 使用實例: <!ELEMENT 元素名稱 EMPTY> <!ELEMENT br EMPTY> 使用實例: ……… <br/> 元素名稱

不做限制的元素宣告 語法如下: 如: <!ELEMENT 元素名稱 ANY> <!ELEMENT comment ANY>

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

混合型(Mixed) 內容模型 當一個元素內容包含文字資料與子元素時,稱做混合型內容 語法: 無法限制各元素出現順序與次數 <!ELEMENT 父元素 (#PCDATA | 子元素1 | 子元素2 | ……| 子元素n)*> 或 <!ELEMENT 父元素 (#PCDATA | 子元素1 | 子元素2 | ……| 子元素n)+> 無法限制各元素出現順序與次數

XML DTD / 屬性(Attributes) 提供元素額外的描述資訊 屬性值可設定預設值或以列舉的方式來限定。 語法: <!ATTLIST 元素名稱 屬性名稱 屬性值型態 屬性的內定值>

幾種常用的屬性值資料型態 CDATA : Character DATA,代表一般文字。 將可能的屬性值列舉出來,應用時屬性值必須採用列舉值的其中之一。 NMTOKEN : 英文字母、數字、“_”、“-” 、“.”、“:” NMTOKENS : 一個以上的 NMTOKEN 所組成,之間以空白隔開 ID : 屬性值在設定時值必須是唯一的 NOTATION : 屬性值是 DTD 宣告的 NOTATION

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

屬性宣告實例(1/2) <!ELEMENT Tel (#PCDATA)> <!ATTLIST Tel Zone CDATA #IMPLIED> 元素名稱 屬性名稱 使用實例: …… <Tel Zone=“02”>27819126</Tel> ….

屬性宣告實例(2/2) <!ELEMENT Name (#PCDATA)> <!ATTLIST Name Sex (M | F) #REQUIRED> 列舉值 使用實例: …… <Name Sex=“M”>Joe</Name> ….

XML DTD / 實體(Entities) 範例: <!ENTITY ROSS “Resource Organization and Searching Specification”> Metalogy is produced by the research group under &ROSS.

XML DTD / 註解(Comments) 範例: <!--3 ELEMENT 版本名稱 (#PCDATA) --> <!ELEMENT editionName (#PCDATA) > <!--ATTLIST 版本名稱 使用代碼 FIXED "npm-doc-editionName"--> <!ATTLIST editionName scheme FIXED "npm-doc-editionName">

如何開發 DTD 分析文獻結構 確認所包含的 elements 及每個 element 的規格 開始撰寫DTD 結構圖 每個元素的內容? 每個元素是必備還是可有可無? 每個元素的屬性與屬性值? 開始撰寫DTD 註解

Email 的文件結構 Email From Body Date Subject To 根元素 Email 的子元素 這是一份 SGML DTD 的片段,主要是定義該種文獻類型所包含的 elements,及 elements 在文獻中出現的順序與每個 element 的屬性。 Date Subject To

XML …. 文獻DTD …. …. XML與XML DTD的關係 書畫DTD 器物DTD 器物甲 器物乙 器物丙 印刷版本 虛擬實境版本 SGML可因針對不同的文獻類型,定義不同的 DTD。 依據 DTD,可以標誌出不同內容的 DI。 每個 DI 又可有不同的呈現格式。 …. 印刷版本 虛擬實境版本 Web Page版本

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

使用DTD的代價 如果文件結構過於複雜,訂定出完整且具擴充彈性的DTD相對不易。 必須搭配相關的應用程式或剖析器(parser)才能發揮DTD的作用。

如何取得 DTD? 使用某單位或某人已開發的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”>

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

寫一份Valid XML文件 步驟1 : 撰寫 XML宣告 步驟2 : 設計一個DTD. 步驟3 : 撰寫XML標籤與內容 步驟4 : 驗證(validating) XML文件

步驟1:撰寫 XML宣告 <?xml version=”1.0”?> <?xml version=”1.0” encoding=”UTF-8” ?> <?xml version=”1.0” encoding=”big5” ?>

步驟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 -->

步驟3 : 撰寫XML標籤與內容 DTD宣告 內部(Internal) DTD 宣告 外部(External) DTD 宣告

內部DTD宣告實例 根元素 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規則 根標籤

外部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>

外部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)>

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

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

Conclusion