第三章 XML DTD 設計 何謂DTD DTD基本語法 條件段 使用外部DTD.

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

數位典藏聯合目錄計畫 執行經驗談 主講人:范紀文.
以XML可延伸式標注語言建立文章標誌系統研究- 以蘇軾詩為範圍
10-1 資料庫管理系統簡介 10-2 關聯式資料模式和查詢語言 10-3 Access 簡介 10-4 XML 簡介
普通话与说话训练 第六章 会话的艺术.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
通訊科技教育改進計畫 「網路應用與服務組」 行動電子商務課程 XML之簡介.
Jian-hua Yeh (葉建華) 真理大學資訊科學系助理教授
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
HTML5全栈开发序列课程 《前端入门》之HTML入门 余鹏作品.
第二章 XML基本語法 XML文件的基本結構 XML文件的基本語法規則 Well-Formed XML文件 XML Parser
DreamWeaver MX (II) 林偉川.
LINQ 建國科技大學 資管系 饒瑞佶.
2-3 基本數位邏輯處理※.
列舉(enum).
在NS-2上模擬多個FTP連線,觀察頻寬的變化
Schema 與DTD的比較 XML Schema 的特性 XML 資料型態 XML Schema 屬性宣告
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
第3章 文档类型定义DTD DTD与XML文档 定义元素及其后代 定义元素的属性.
網頁切換移轉 JS vs. ASP.NET.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
XML Scheam 也是用來驗證XML文件的驗證語法.
檔案與磁碟的基本介紹.
EBSCOhost App應用程式 安裝方式.
Java 程式設計 講師:FrankLin.
第 4 章 DTD文件的建立.
網頁切換移轉 JS vs. ASP.NET.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
|12 結構與列舉型態.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
第一單元 建立java 程式.
網頁程式設計 本章投影片錄自HTML5、CSS3、RWD、jQuery Mobile跨裝網頁設計 陳惠貞 著 碁峰資訊股份有限公司出版
此簡報可能會牽涉到聽眾的討論活動,也就是所謂的執行項目。因此在進行簡報時﹐可充份利用 PowerPoint 來記錄這些執行項目:
<title> XML與XQuery ,新一代資料儲存標準 </title>
第 19 章 XML記憶體執行模式.
张孝祥IT课堂 -深入体验Java Web开发内幕
雲端計算.
第 1 章 簡介XML.
HTML – 超連結與圖片 資訊教育.
挑戰C++程式語言 ──第8章 進一步談字元與字串
电子商务网站开发 第八讲:图像的概念与制作 上海财经大学信息管理与工程学院.
W3C标准网页制作 主讲教师:张 涛.
如何使用Gene Ontology 網址:
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
DRC with Calibre 課程名稱:VLSI 報告人:黃家洋 日期: 改版(蔡秉均) 1.
MicroSim pspice.
第 6 章 XLink、XBase與XPointer
利用 EditorConfig 自訂文字編輯器設定
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
挑戰C++程式語言 ──第7章 輸入與輸出.
陣列與結構.
JQuery 標籤操作 建國科技大學 資管系 饒瑞佶 2013/4 V1.
程式移植.
第 4 章 認識 SQL 語言與資料型別.
第 5 章 XML Schema文件.
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
Brief Guide of FrontPage
資料表示方法 資料儲存單位.
單元1-3: XML基本語法與結構 王豐緒 銘傳大學資訊工程學系.
Cloud Training Material- 事件 Sherman Wang
多國語系 建國科技大學 資管系 饒瑞佶.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
Zotero_搞定中文、英文格式 中臺圖書館.
使用VHDL設計-七段顯示 通訊一甲 B 楊穎穆.
Array(陣列) Anny
Chapter 4 Multi-Threads (多執行緒).
Develop and Build Drives by Visual C++ IDE
InputStreamReader Console Scanner
Presentation transcript:

第三章 XML DTD 設計 何謂DTD DTD基本語法 條件段 使用外部DTD

何謂DTD DTD(Document Type Definition;文件型別定義)是一種用來定義XML文件規格的語法,其中規範了文件中所有可用的元素、屬性、記法和各種實體,以及其間的相互關係。DTD能讓你的文件格式具有自我描述能利。

何謂DTD(續) DTD起源於SGML(1986) XML起源於SGML,而XML的DTD更可說是直接來自SGML的DTD。由DTD所描述的語標語言,稱為一種application。其中最著名的,算是HTML。

何謂DTD(續) 為何需要DTD? 有時光是well-formed並不能確保資訊的正確性。因其內涵可能不正確。這就必須使用DTD加以規範。

何謂DTD(續) <library> <book> <title> title1</title> <title> title2</title> </book>

何謂DTD(續) 使用DTD的好處: 提供資料格式一致化描述 驗證資料正確性 資料自動化處理 促進專業分工 提供更好的建構功能

DTD的基本語法 文件型別宣告 元素宣告 實體宣告 記法(notation)宣告

DTD的基本語法(續) 文件型別宣告(Document Type Declaration) <!DOCTYPE library [ … ]>

DTD的基本語法(續) 文件型別宣告的規則 一定要出現在文件實體之前 在一個XML文件中,只可出現一個DTD宣告

DTD的基本語法(續) 元素宣告 元素宣告的作用在宣告一個元素的名稱是什麼、可以有哪些子元素、元素的資料型態及組成方式等。同一個元素在DTD中只能定義一次。

DTD的基本語法(續) 元素宣告 <!ELEMENT Name contentspec> Contentspec說明: ANY 可包含任意子元素及字元資料 EMPTY 不可包含任何子元素及字元資料 (字元素列) 可包含列示的子元素 (#PCDATA) 內含解析字元資料 混合內容 可同時包含子元素及字元資料

DTD的基本語法(續) 元素宣告 使用ANY識別字:代表元表的內容可以是任何型態。可以下面步驟使well-formed的文件一直保特valied 將所有元素宣告成ANY 找出其中一元素,對其作精確的定義 重複步驟二,直到所有元素定義完成。

DTD的基本語法(續) 元素宣告 使用empty識別字:代表該元素不能包括任何資料。可以用來定義空元素。例如: <!ELEMENT COVER EMPTY>

DTD的基本語法(續) 元素宣告 定義子元素: 可定義子元素出現順序 可選用元素組成方式 可指定子元素出現次數 (無) 子元素必出現一次,不多不少 ? 可出現一次或不出現 + 可出現一次或一次以上 * 無任何限制

DTD的基本語法(續) 元素宣告 定義子元素出現順序:順序字串可使用(,)分格的方式。例如: <!ELEMENT html (head,body) >

DTD的基本語法(續) 元素宣告 選用元素組成方式:選擇性串列使用(|)符號。例如: <!ELEMENT book (cover , (author|editor) , publisher) >

DTD的基本語法(續) 元素宣告 屬性宣告:是在定義內部所能使用的屬性。 <!ATTLIST Name AttName AttType DefaultDecl > 其中ATTLIST識別字用來指名這個宣告是屬性宣告,其後依序接著該屬性所屬的元素名稱、屬性名稱、資料型態及預設值。

DTD的基本語法(續) 屬性資料型態宣告: CDATA、列舉型態、ID、 IDREF、IDREFS、ENTITY、 ENTITIES、NMTOKEN、NMTOKENS等

DTD的基本語法(續) 屬性資料型態宣告-CDATA: PCDATA代表解析過的字元資料,裡面還可以包含標示資料;而CDATA字元資料,而裡面不能再包含標示資料。

DTD的基本語法(續) 屬性資料型態宣告-列舉型態: DTD也支援列舉型態的資料型態宣告。例如HTML中的ALIGN屬性,其值只能是left、right或center其中之一。

DTD的基本語法(續) 屬性資料型態宣告-ID: ID可用來作為文件中的元素識別。因此所有ID的屬性值都必須不同。

DTD的基本語法(續) 屬性資料型態宣告-ID: 合法的ID屬性宣告文件 <!ATTLIST topic id ID #REQUIRED >

DTD的基本語法(續) 屬性資料型態宣告-IDREF及IDREFS: IDREF型態的屬性值必須等於文件中某個ID值。如此透過ID及IDREF,就能在XML元素中交互參考。 IDREFS是由多個IDREF屬產值組合而成。其中以空白相隔。

DTD的基本語法(續) 屬性資料型態宣告ENTITY及ENTITIES: ENTITY屬性必須等於某個實體名稱。而ENTITIES則可以包含多個以空白相隔的實體名稱。使用ENTITY及ENTITIES可以參照在DTD中宣告的外部實體。

DTD的基本語法(續) 屬性資料型態宣告NMTOKEN及NMTOKENS NMTOKEN代表Name token,此型態的屬性會與XML標籤名稱的命名規則相同。 使用的時機是,想以不同的名稱來命名同一個XML文件中的某個元素。

DTD的基本語法(續) 屬性預設值 直接設定屬產預設值 設定預設關鍵字

DTD的基本語法(續) 屬性預設值 <!ATTLIST NAME AttName AttType “value” > 直接設定屬性預設值 <!ATTLIST NAME AttName AttType “value” >

DTD的基本語法(續) 屬性預設值 設定預設值關鍵字 #required Implied Fixed “value”

DTD的基本語法(續) 實體宣告 實體宣告的分類: 內部實體 外部實體 參數實體 類似程式語言中的巨集功能,能夠讓我們以特定的某個名稱來代表一段資料內容。 實體宣告的分類: 內部實體 外部實體 參數實體

DTD的基本語法(續) 實體宣告 - 內部實體 內部實體的名稱所連結的對象是一段文字字串。可以使用&reftext;標示來參引該實體。 <!DOCTYPE hello [ <!ENTITY reftext “hello”> … ] <hello>&reftext;</hello>

DTD的基本語法(續) 實體宣告 – 外部實體 外部實體必須在實體宣告中加上SYSTEM識別字,它能讓你將實體名稱與外部的檔案內容連結起來,如此就可讓XML檔案參引到外部的檔案內容。 <!notation jpeg system “Joint Photographic Experts Group”> <!Entity win2000 system “c:\winnt\web\wallpaper\windows 2000.jpg” ndata jpeg>

DTD的基本語法(續) 實體宣告 – 參數實體 只能在文件型別宣告中使用,其宣告方式是在實體名稱之前加上%符號。 <!ENTITY & name “last_name,first_name”> <!ENTITY author (%name;)> <!ENTITY editor (%name;)> <!ENTITY interpreter (%name;)>

DTD的基本語法(續) 實體宣告 實體的注意事項: 不可形成遞迴 實體宣告需出現在參引實體之前 實體參引需加分號(;)

DTD的基本語法(續) Notation宣告 記法宣告可指明外部二進位檔案的資料型態。這個資料會傳遞給應用程式。其真正的用途則有應用程式自行決定。

DTD的基本語法(續) Notation宣告 用於指定外部檔案格式 <?NOTATION GIF87A SYSTEM “GIF”> <!NOTATION JPEG SYSTEM “Joint Photographic Experts Group”>

條件段 條件段只能使用文件型別宣告的外部子集中,它包含兩種宣告方式,即:IGNORE區段—用來排除一部分的DTD;以及INCLUDE區段—用來包含一部份的DTD。

條件段(續) XML 1.0規格書的說明 Conditional sections are another SGML invention that got into XML because the people on the committee who had experience writing DTDs claimed that life would just be impossible without them.

條件段(續) 條件段可以形成巢狀結構。例如INCLUDE區段中可以包含進IGNORE區段。 但在IGNORE中的INCLUDE區段還是會被IGNORE,不會包含到文件的最後的DTD宣告中。

條件段(續) <!--內部子集中使用實體參引--> <!ENTITY % draft ‘INCLUDE’> <!ENTITY % final ‘IGNORE’> <!ENTITY % external SYSTEM “e2.dtd”> %external;

條件段(續) <!--外部子集中設計條件段--> <![%draft;[ <!ELEMENT book (……)> ]]> <![%final;[ <!ELEMENT book (xxxx)>

使用外部DTD 外部子集的宣告 使用公用的DTD 使用外部DTD的注意事項

使用外部DTD(續) 使用外部DTD的好處是可以更容易、更有效的被許多XML文件所共用。不僅節省設計文件的時間,也讓DTD的管理集中化,同步化。

使用外部DTD(續) 外部子集的宣告 <?xml version = “1.0” standalone = “no”?> <!DOCTYPE ROOT_ELEMENT SYSTEM “EXTERNAL_DTD”> External_DTD可為: xxx.dtd ../xxx/yyy/zzz.dtd http://xxx.yyy/zzz.dtd

使用外部DTD(續) 使用公用的DTD System關鍵字只用於個人或組織內部的DTD文件分享。如果要引用公認的DTD,就應該使用Public關鍵字來引用DTD 使用Public關鍵字,會有一個用來識別的名稱

使用外部DTD(續) 使用公用的DTD <!DOCTYPE ROOT_ELEMENT PUBLIC “DTD_NAME” URL_OF_EX-DTD”> DTD_NAME的格式一般如下 “-//XML publishing//Library Type//EN”

使用外部DTD(續) 在使用Public關鍵字的情況下,“URL_OF_EXTERNAL_DTD”是可有可無的。可以透過URL_OF_EXTERNAL_DTD來找到DTD的定義。

使用外部DTD(續) 使用外部DTD的注意事項 一份文件不能有一個以上的<!DOCTYPE>,也只能引用一個外部子集。 利用獨立文件宣告來達到正確合法(valid)的XML文件,所謂的獨立文件宣告就是在XML的宣告處將 standalone的屬性值設為“yes”。

使用外部DTD(續) 使用外部DTD的注意事項 有時候變更DTD不見得會相容於以前的XML文件。