html5-img
1 / 22

子單元 2-2: DTD 文件範例

子單元 2-2: DTD 文件範例. 王豐緒 銘傳大學資工系. 單元目標. 藉由範例 , 更多了解 DTD 的運用. 引用外部 DTD. <?xml version = “1.0” ?> <! DOCTYPE myMessage SYSTEM “intro.dtd” > < myMessage > <message> Hello XML World! </message> </ myMessage >. ELEMENT. 至少一個. DTD. <!ELEMENT 專輯 ( 名稱 , ( 曲名 , 長度 ) +) > ………( 其餘省略了 …).

Download Presentation

子單元 2-2: 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. 子單元2-2:DTD文件範例 王豐緒 銘傳大學資工系

  2. 單元目標 • 藉由範例,更多了解DTD的運用

  3. 引用外部DTD <?xml version = “1.0” ?> <!DOCTYPEmyMessageSYSTEM “intro.dtd” > <myMessage> <message> HelloXMLWorld! </message> </myMessage>

  4. ELEMENT 至少一個 DTD <!ELEMENT 專輯 (名稱, (曲名, 長度)+)> ………(其餘省略了…) <專輯> <名稱> 日部落! </名稱> <曲名>我愛</曲名> <長度>10</長度> <曲名>命運交響曲</曲名> <長度>20</長度> </專輯> XML()

  5. ELEMENT 零或1次以上 DTD <!ELEMENT 圖書館(書*)> ………(其餘省略了…) <圖書館> <書> XML Programming </書> <書> CProgramming</書> <書> OldManand Sea</書> </圖書館> XML() XML() <圖書館></圖書館>

  6. ELEMENT 零或1次 DTD <!ELEMENT 座位(人名?)> ………(其餘省略了…) <座位> <人名> 李志中</人名> </座位> XML() XML() <座位></座位>

  7. ELEMENT <!ELEMENT 班級(人數, (教師| 助教+) , (學分| 無) )> ………(其餘省略了…) DTD <班級> <人數> 23 </人數> <教師>張大帥</教師> <學分>3</學分> </班級> XML() <班級> <人數> 46 </人數> <助教> 小珍 </助教> <助教> 小強</助教> <學分>3</學分> </班級> XML()

  8. ELEMENT <!ELEMENT 甜甜屋(果醬?, 蘋果*, ( (奶油 | 糖精)+|填料) )> ………(其餘省略了…) DTD <甜甜屋> <果醬> 葡萄 </果醬> <蘋果>美國產</蘋果> <蘋果>台灣產</蘋果> <蘋果>日本產</蘋果> <填料>巧克力</填料> </甜甜屋> XML () <甜甜屋> <糖精> 半糖 </糖精> <奶油> 多 </奶油> <糖精> 少</糖精> </甜甜屋> XML()

  9. ELEMENT <!ELEMENT 農場 (農夫+, (狗* | 貓?), 豬*, ( 羊| 牛)?, (雞+| 鴨*) )> ………(其餘省略了…) DTD <農場> <農夫> 王小名</農夫> <農夫> 王大川</農夫> <貓>公主</貓> <豬>大呆</豬> <雞>小強</雞> </農場> XML () <農場> <農夫> 李家童</農夫> <鴨> 小天 </鴨> <鴨> 小珍</鴨> </農場> XML()

  10. EMPTY ELEMENT <!ELEMENT 碟子 EMPTY> DTD XML () <碟子/> <碟子> </碟子> XML()

  11. Mixed-Content ELEMENT <!ELEMENT myMessage(#PCDATA | message)* > ………(其餘省略了…) DTD <myMessage> Hello! <message> Jane met John yesterday</message> and <message>John slept for 30 hours</message> </myMessage > XML ()

  12. ANY ELEMENT <!ELEMENT schoolANY > <!ELEMENT myMessage(#PCDATA | message)* > ………(其餘省略了…但沒有定義 addr元素) DTD <school> MCU is a double-campus University. <message> One in Taipei</message> and <message>the other in Taoyuan</message> </school> XML () <school> MCU is a double-campus University. <message> One in Taipei</message> and <message>the other in Taoyuan</message> <addr>Taipei</addr> </school> XML ()

  13. 遞迴元素? • DTD可以定義遞迴元素嗎? <!ELEMENT ancestor (ancestor* | father) > <!ELEMENT father (#PCDATA) > DTD <ancestor> <ancestor> <father>John</father> </ancestor> <ancestor> <ancestor> <father>John</father> </ancestor> </ancestor> </ancestor> XML(?)

  14. ATTLIST <!ELEMENT xEMPTY> <!ATTLIST xyCDATA#REQUIRED> DTD 屬性值一定要提供 任何字元(但不包括限定字) <xy=“ABC”> </x > XML ()

  15. ATTLIST <!ELEMENT message(#PCDATA) > <!ATTLIST messagenumberCDATA#REQUIRED> DTD XML () <message>number</message > XML () <messagenumber=“1234”>number</message >

  16. ATTLIST <!ELEMENT address(#PCDATA) > <!ATTLIST addresszipCDATA#FIXED “112”> DTD 屬性值是固定不變 XML () <address zip=“112”>XXX YYY ZZZ</address > XML () <address>XXX YYY ZZZ</address > XML () < addresszip=“1234”>number</ address > 固定屬性值112不能改變

  17. ATTLIST <!ELEMENT shipping(#PCDATA) > <!ATTLIST shippingidID#REQUIRED > <!ELEMENT book(#PCDATA) > <!ATTLIST bookshippedbyIDREF#IMPLIED > DTD 屬性值若未給,由應用系統決定 指到其他元素的ID值 (tokenized value) XML () <shippingid=“s112”>XXX</shipping > <bookshippedby=“s112”>XXX</book> Tokenized value? XML () <shippingid=“112”>XXX</shipping > <bookshippedby=“112”>XXX</book >

  18. ATTLIST <!ELEMENT club(#PCDATA) > <!ATTLIST clubphoneNMTOKEN#REQUIRED > DTD (name token) XML () <clubphone=“555-111-222”>XXX</club> XML () <clubphone=“555 111 222”>XXX</lub>

  19. ATTLIST <!ELEMENT person(#PCDATA) > <!ATTLIST persongender(M | F)“F” > DTD (預設值) 只能選M或F XML () <person gender=“M”>XXX</person > XML () <persongender=“Male”>XXX</person > 只能夠是M或F

  20. ENTITY <!ENTITY assoc“&#1571;&#1587;&#1617;” > <!ENTITY digits“0123456789” > DTD 宣告一般entity XML () <useAnEntity>&digits;</useAnEntity > XML () <useAnEntity y=“&digits;”>xxxx</useAnEntity > XML () <useAnEntity>digit</useAnEntity > 只有digit這個值, 而非0123456789

  21. External ENTITY <!NOTATION html SYSTEM“iexplore.exe”> <!ENTITY citySYSTEM “tour.html” NDATAhtml > <!ELEMENTcompany(#PCDATA) > <!ATTLISTcompany tour ENTITY#REQUIRED> DTD 宣告外部entity 一定要是外部entity XML <companytour = “city” >XXXX</company>

  22. 單元複習 • 我們列舉了一些DTD的範例 • 元素 • 屬性 • 實體

More Related