XML (eXtensible Markup Language)

Preview:

DESCRIPTION

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). Two examples. - PowerPoint PPT Presentation

Citation preview

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>Jodie@msn.com</TO> <FROM>Bill@msn.com</FROM> <CC>Philip@msn.com</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>Jodie@msn.com</TO> <FROM>&SIGNATURE;@msn.com</FROM> <CC>Philip@msn.com</CC> <BCC>Naomi@msn.com</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>Jodie@msn.com</TO> <FROM>&SIGNATURE;@msn.com</FROM> <CC>Philip @msn.com</CC> <BCC>Naomi@msn.com</BCC> <SUBJECT>Sample Document with External

DTD</SUBJECT>

<BODY> Hello, this is &SIGNATURE;. Take care, -&SIGNATURE; </BODY></EMAIL>

ie5 back

Recommended