1 / 90

數位圖書館 – XML/DTD 理論與實務

數位圖書館 – XML/DTD 理論與實務. Jian-hua Yeh ( 葉建華 ) 真理大學資訊科學系助理教授 au4290@email.au.edu.tw. Course Outline. 標示 (Markup) 的基本概念 SGML 介紹 XML 介紹 XML 相關標準 XML 的應用 DTD 介紹 DTD 的應用. 顧名思義. SGML – Standard Generalized Markup Language ( 標準通用標示語言 ) XML – Extensible Markup Language (可延伸 標示語言 )

Download Presentation

數位圖書館 – XML/DTD 理論與實務

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

  7. 描述性標示的呈現

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

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

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

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

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

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

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

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

  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>

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

  18. W3C 的資料格式

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

  20. XML與SGML之比較─相異點 • 對SGML文件而言,DTD是必備的;而對於XML文件而言,DTD不是必備的。 • SGML的使用者可以使用包含 (Inclusion)與除外(Exclusion) 這兩種語法規則來指定內容模式(content model) 的例外處理(Exceptions);XML則不支援例外處理。 • XML不支援AND(&)內容模式、SDATA內部實體(internal entities)…等語法。

  21. XML與HTML之比較

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

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

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

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

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

  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>

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

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

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

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

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

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

  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

  35. XSL 與 CSS 的比較

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

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

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

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

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

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

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

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

  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>

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

  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

  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>

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

  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.

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

More Related