xml (extensible markup language) db niky 10/29/1999
TRANSCRIPT
XML (eXtensible Markup
Language)
DB niky 10/29/1999
Outline Two examples History Logical and Physical Structure Element (logical structure) Attribute (logical structure) Entity (physical structure) Notation (physical structure) Include && Ignore (logical structure)
A book Example:HTML, XML
An e-mail example:XML, HTML
資料與顯示分開,可以單獨修改文件具自我描述能力valid, well-formed
Two examples
History SGML (Standard Generalized Markup Language)
1986 too complex HTML (Hyper Text Markup Language)
1991 an application of SGMLSGML context free grammarDTD c grammarHTML c program
XML (eXtensible Markup Language)1996 a subset of SGML
Logical and Physical StructureLogical Structure:
the markup used to indicate the kinds of information stored in a document and their relationship
a book: title, chapters, paragraphsPhysical Structure:
If a document stores information in files, the markup will identify the files and their location.
store XML text(parsed) or non-XML text(unparsed)
reuse data
<!ELEMENT ElementName ContentSpecification>
ContentSpecification:EMPTYANY#PCDATAchildrenMixed Content
example…
Element(logical structure)
<!ATTLIST ElementName AttributeName Type Default> Type:
IDIDREF IDREFSCDATA(字元資料 )ENTITY ENTITIESNMTOKEN NMTOKENS(字母 ,數字 ,虛線 ,冒號 ,底線 )NOTATIONEnumerated
<!ATTLIST EMAILLANGUAGE (Western|Greek|Latin|Universal) "Western"
ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) "NORMAL">
Attribute(logical structure)
Default:#REQUIRED#IMPLIEDDefault#FIXED FixedValue
Entity(physical structure)
<!ENTITY SIGNATURE "Bill"><!ENTITY Image SYSTEM “Image.gif” NDATA GIF><!ENTITY % tabledecls SYSTEM “cals.dtd”>
parsed, unparsedinternal, externalgeneral, parameter
<!ENTITY EntityName EntityDefinition><!ENTITY % EntityName EntityDefinition>EntityDefinition: EntityValue | ExternalID
Reference in Content(in DTD)<!ENTITY SIGNATURE "Bill">
(in Document)<BODY>
Hello, this is &SIGNATURE;. Take care, -&SIGNATURE; </BODY>
(result)<BODY>
Hello, this is Bill. Take care, -Bill </BODY>
Reference in Attribute ValueReference as Attribute Value
(in DTD)<!ENTITY gEnt “Spanish”><!ENTITY unparsedEnt SYSTEM “clown.jpg” NDATA JPEG><!ATTLIST para style CDATA #IMPLIED
picfile ENTITY #IMPLIED>(in Document)<para style=“n &gEnt;” picfile=“unparsedEnt”>
(result)<para style=“n Spanish” picfile=“unparsedEnt”>
Reference in Entity Value<!ENTITY gEnt1 “Spanish”><!ENTITY gEnt2 “English”><!ENTITY gEnt3 “&gEnt1; and &gEnt2;>
<!ENTITY % pEnt “Chinese”><!ENTITY gEnt4 “Language: %pEnt;”>
(result)<!ENTITY gEnt3 “&gEnt1; and &gEnt2;> <---- Bypassed<!ENTITY gEnt4 “Language: Chinese”>
Reference in DTD<!ENTITY % ent1 “para”><!ELEMENT notice (title, %ent1;)>
(result)<!ELEMENT notice (title, para)>
<!ENTITY % ent1 “ra”><!ELEMENT notice (title, pa%ent1;)>
(result)<!ELEMENT notice (title, pa ra)> <--- Won’t work.
<--- Included as PE
Entity type
Parameter InternalGeneral
ExternalParsedGeneral
Unparsed
Charter
ReferenceIn Content
Notrecognized
Included Includedif
validating
Forbidden Included
ReferenceIn AttributeValue
Notrecognized
Includedin literal
Forbidden Forbidden Included
Occurs asAttributeValue
Notrecognized
Forbidden Forbidden Notify Notrecognized
ReferenceIn EntityValue
Includedin literal
Bypassed Bypassed Forbidden Included
ReferenceIn DTD
Includedas PE
Forbidden Forbidden Forbidden Forbidden
Notation(physical structure)
(in DTD)<!NOTATION JPEG SYSTEM “jpegviewer.exe”><!NOTATION JPEG SYSTEM
“Joint Photographic Experts Group”>
Include && Ignore(logical structure)
<![INCLUDE [DTD section]]><![IGNORE [DTD section]]>
(in DTD)<!ENTITY % SUCURE “IGNORE”><!ENTITY % UNSUCURE “INCLUDE”><![%SECURE; [any number of declarations]]><![%UNSECURE; [any number of declarations]]>
Element<!ELEMENT note (img?, para, desc)><!ELEMENT img EMPTY><!ELEMENT para (#PCDATA | img) *><!ELEMENT desc ANY>
back
<!ATTLIST poem author NMTOKEN #REQUIRED><!ATTLIST verse flavor (chocolate | mint) “mint”
hatsize CDATA #IMPLIED>
<!NOTATION JPEG SYSTEM “jpgview.exe”><!ENTITY clownpic SYSTEM “clown.jpg” NDATA JPEG><!ELEMENT illustration EMPTY><!ATTLIST illustration picfile ENTITY #REQUIRED><illustration picfile=“clownpic”/>
back
Attribute
(in DTD)<!ELEMENT title (#PCDATA)><!ATTLIST title pics IDEREFS #REQUIRED><!ELEMENT picture (#PCDATA)><!ATTLIST picture uid ID #REQUIRED>
(in Document)<title pics=“y1 y2 y3”> My Vacation </title><picture uid=“y1”> La Brea Tar Pits </picture><picture uid=“y2”> Land of Little Horses </picture><picture uid=“y3”> South of the Border </picture>
back
ID IDREFS
<h1> 推薦叢書 </h1><table border=1 cellpadding=5>
<tr><th> 名稱 </th><th> 作者 </th><th> 售價 ( 新台幣 ) </th>
</tr><tr>
<td> 煞死你的網頁設計絕招 </td><td> 胭脂虎 </td><td align="right"> 590 </td>
</tr><tr>
<td> 如何在 7-11 白吃白喝 </td><td> 無名氏 </td><td align="right"> 120 </td>
</tr></table>
ie5
<?xml version="1.0" encoding="Big5"?>
< 推薦叢書 >
< 書籍 >< 名稱 > 煞死你的網頁設計絕招 </ 名稱 >< 作者 > 胭脂虎 </ 作者 >< 售價 貨幣單位 =" 新台幣 "> 590 </ 售價 >
</ 書籍 >
< 書籍 >< 名稱 > 如何在 7-11 白吃白喝 </ 名稱 >< 作者 > 無名氏 </ 作者 >< 售價 貨幣單位 =" 新台幣 "> 120 </ 售價 >
</ 書籍 >
</ 推薦叢書 >
ie5
<?xml version="1.0" encoding="Big5"?>
<!ELEMENT 推薦叢書 ( 書籍 *)><!ELEMENT 書籍 ( 名稱 , 作者 +, 售價 *)>
<!ELEMENT 名稱 (#PCDATA)><!ELEMENT 作者 (#PCDATA)><!ELEMENT 售價 (#PCDATA)><!ATTLIST 售價 貨幣單位 ( 新台幣 | 人民幣 |
港幣 | 美元 ) " 新台幣 ">
<?xml version="1.0" encoding="Big5"?>
<!DOCTYPE 推薦叢書 SYSTEM "example2.dtd">
< 推薦叢書 >
< 書籍 >< 名稱 > 煞死你的網頁設計絕招 </ 名稱 >< 作者 > 胭脂虎 </ 作者 >< 售價 貨幣單位 =" 新台幣 "> 590 </ 售價 >
</ 書籍 >
< 書籍 >< 名稱 > 如何在 7-11 白吃白喝 </ 名稱 >< 作者 > 無名氏 </ 作者 >< 售價 貨幣單位 =" 新台幣 "> 120 </ 售價 >
</ 書籍 >
</ 推薦叢書 >back
<?xml version="1.0"?>
<!DOCTYPE EMAIL [ <!ELEMENT EMAIL (TO, FROM, CC, SUBJECT, BODY)> <!ELEMENT TO (#PCDATA)> <!ELEMENT FROM (#PCDATA)> <!ELEMENT CC (#PCDATA)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT BODY (#PCDATA)>]>
<?xml version="1.0"?><!DOCTYPE EMAIL SYSTEM “email.dtd">
<EMAIL> <TO>[email protected]</TO> <FROM>[email protected]</FROM> <CC>[email protected]</CC> <SUBJECT> My First DTD </SUBJECT> <BODY> Hello, World! </BODY></EMAIL>
<?xml version="1.0"?>
<!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)><!ATTLIST EMAIL
LANGUAGE (Western|Greek|Latin|Universal) "Western"
ENCRYPTED CDATA #IMPLIED PRIORITY (NORMAL|LOW|HIGH) "NORMAL">
<!ELEMENT TO (#PCDATA)><!ELEMENT FROM (#PCDATA)><!ELEMENT CC (#PCDATA)>
<!ELEMENT BCC (#PCDATA)><!ATTLIST BCC HIDDEN CDATA #FIXED "TRUE">
<!ELEMENT SUBJECT (#PCDATA)><!ELEMENT BODY (#PCDATA)>
<!ENTITY SIGNATURE "Bill">back
<?xml version="1.0"?><!DOCTYPE EMAIL SYSTEM “email.dtd">
<EMAIL LANGUAGE="Western" ENCRYPTED="128" PRIORITY="HIGH">
<TO>[email protected]</TO> <FROM>&SIGNATURE;@msn.com</FROM> <CC>[email protected]</CC> <BCC>[email protected]</BCC> <SUBJECT>Sample Document with External DTD</SUBJECT>
<BODY> Hello, this is &SIGNATURE;. Take care, -&SIGNATURE; </BODY></EMAIL>
ie5
<?xml version="1.0"?><!DOCTYPE EMAIL SYSTEM "Lst4_4.dtd" [ <!ENTITY SIGNATURE "Joe">]>
<EMAIL LANGUAGE="Western" ENCRYPTED="128" PRIORITY="HIGH">
<TO>[email protected]</TO> <FROM>&SIGNATURE;@msn.com</FROM> <CC>Philip @msn.com</CC> <BCC>[email protected]</BCC> <SUBJECT>Sample Document with External
DTD</SUBJECT>
<BODY> Hello, this is &SIGNATURE;. Take care, -&SIGNATURE; </BODY></EMAIL>
ie5 back