2 2 dtd n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
子單元 2-2: DTD 文件範例 PowerPoint Presentation
Download Presentation
子單元 2-2: DTD 文件範例

Loading in 2 Seconds...

play fullscreen
1 / 22

子單元 2-2: DTD 文件範例 - PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '子單元 2-2: DTD 文件範例' - stephanie-ellison


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
2 2 dtd

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

王豐緒

銘傳大學資工系

slide2
單元目標
  • 藉由範例,更多了解DTD的運用
slide3
引用外部DTD

<?xml version = “1.0” ?>

<!DOCTYPEmyMessageSYSTEM “intro.dtd” >

<myMessage>

<message> HelloXMLWorld! </message>

</myMessage>

element
ELEMENT

至少一個

DTD

<!ELEMENT 專輯 (名稱, (曲名, 長度)+)>

………(其餘省略了…)

<專輯>

<名稱> 日部落! </名稱>

<曲名>我愛</曲名>

<長度>10</長度>

<曲名>命運交響曲</曲名>

<長度>20</長度>

</專輯>

XML()

element1
ELEMENT

零或1次以上

DTD

<!ELEMENT 圖書館(書*)>

………(其餘省略了…)

<圖書館>

<書> XML Programming </書>

<書> CProgramming</書>

<書> OldManand Sea</書>

</圖書館>

XML()

XML()

<圖書館></圖書館>

element2
ELEMENT

零或1次

DTD

<!ELEMENT 座位(人名?)>

………(其餘省略了…)

<座位>

<人名> 李志中</人名>

</座位>

XML()

XML()

<座位></座位>

element3
ELEMENT

<!ELEMENT 班級(人數, (教師| 助教+) ,

(學分| 無) )>

………(其餘省略了…)

DTD

<班級>

<人數> 23 </人數>

<教師>張大帥</教師>

<學分>3</學分>

</班級>

XML()

<班級>

<人數> 46 </人數>

<助教> 小珍 </助教>

<助教> 小強</助教>

<學分>3</學分>

</班級>

XML()

element4
ELEMENT

<!ELEMENT 甜甜屋(果醬?, 蘋果*,

( (奶油 | 糖精)+|填料) )>

………(其餘省略了…)

DTD

<甜甜屋>

<果醬> 葡萄 </果醬>

<蘋果>美國產</蘋果>

<蘋果>台灣產</蘋果>

<蘋果>日本產</蘋果>

<填料>巧克力</填料>

</甜甜屋>

XML ()

<甜甜屋>

<糖精> 半糖 </糖精>

<奶油> 多 </奶油>

<糖精> 少</糖精>

</甜甜屋>

XML()

element5
ELEMENT

<!ELEMENT 農場 (農夫+, (狗* | 貓?), 豬*,

( 羊| 牛)?, (雞+| 鴨*) )>

………(其餘省略了…)

DTD

<農場>

<農夫> 王小名</農夫>

<農夫> 王大川</農夫>

<貓>公主</貓>

<豬>大呆</豬>

<雞>小強</雞>

</農場>

XML ()

<農場>

<農夫> 李家童</農夫>

<鴨> 小天 </鴨>

<鴨> 小珍</鴨>

</農場>

XML()

empty element
EMPTY ELEMENT

<!ELEMENT 碟子 EMPTY>

DTD

XML ()

<碟子/>

<碟子>

</碟子>

XML()

mixed content element
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 ()

any element
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 ()

slide13
遞迴元素?
  • DTD可以定義遞迴元素嗎?

<!ELEMENT ancestor (ancestor* | father) >

<!ELEMENT father (#PCDATA) >

DTD

<ancestor>

<ancestor>

<father>John</father>

</ancestor>

<ancestor>

<ancestor>

<father>John</father>

</ancestor>

</ancestor>

</ancestor>

XML(?)

attlist
ATTLIST

<!ELEMENT xEMPTY>

<!ATTLIST xyCDATA#REQUIRED>

DTD

屬性值一定要提供

任何字元(但不包括限定字)

<xy=“ABC”>

</x >

XML ()

attlist1
ATTLIST

<!ELEMENT message(#PCDATA) >

<!ATTLIST messagenumberCDATA#REQUIRED>

DTD

XML ()

<message>number</message >

XML ()

<messagenumber=“1234”>number</message >

attlist2
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不能改變

attlist3
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 >

attlist4
ATTLIST

<!ELEMENT club(#PCDATA) >

<!ATTLIST clubphoneNMTOKEN#REQUIRED >

DTD

(name token)

XML ()

<clubphone=“555-111-222”>XXX</club>

XML ()

<clubphone=“555 111 222”>XXX</lub>

attlist5
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

entity
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

external entity
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>

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