You are on page 1of 128

P¾• XML

æ% z

Ëw€ ®‡ www.2tigers.net

Ð) ˆ;*2¥ www.ufoc.com.tw#QÃ
Many of the designations used by the manufacturers and sellers to distinguish

their products are claimed as trademarks. Where those designations appear in

this book, and the author was aware of a trademark claim, the designations

have been printed in initial caps or all caps.

Íh/ZXèC2¥C®`(Ìí &Xò2¥Xb

ÍhP»ÝPDCXbã®ïèºìµ8›í Šãœ¹ð8›™m!ñ

¢1iXbP4KB®ï¼T¼æãn?Ž¬³‘3Xp¹u.¸à‚à

#T #CW£]ö´ÙЪ×6¡Œã¸àH®ïÐ.

Íhã®ï| PDFLATEX¤g CJK 3 Linux ¿¬î%®W

c
Copyright 1999 by Lao Hu and Two-Tigers Workshop. All rights reserved.

ÍhCXbŠËw€ çììµ8›ÌJíòz CËw€ ®‡Xb3ý€

Œ 1¹hJP[ã¢ðà¬v®¤¼ˆ¿àHÝGè읊ã3

Internet îFµ⤼Â×Ýçìõé 3hÚ ˆ¿P²h²ÎB®ïÍ

ßh«!ŒG/DÄ Internet |²¢Fꪛ‘À¬G§y Ã

h° ŽÓ*‡|JTI5P%»µ

\Íß
ÑT^n.l0œmŠŠã|^ Š T€ß†K°

W`ÿày¤¼ˆ¿àH!`ÿ'¸àï[ã¢ðà

ÍhŠ›å»j½®J2°1®ï1º×6°Ÿ_åJ
¯Þhh¤›

lÁ>0jÞ º›ˆÞ

ÒÁ||¦(¿{¯
ê 

¶3G« xiii

0.1 ¶9Íhݛ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

0.2 \ïTÌnÝÁ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

0.3 ÍhX¸àÝBrýî° . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

0.4 A¢ŸàhÝ&4 . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv

0.5 þ8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

0.6 t¡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi

1 +Û XML 1

1.1 %‚Š. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.1 n ¼Ý HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1.2 XML G¼Š= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.3 XML Ý8÷P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 XML Æ6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.3 XYZ Ýb(Þº™ — XML Tà@» . . . . . . . . . . . . . . . . . . . . 13

1.3.1 ó. ML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3.2 Šî™= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

v
ê 

1.3.3 Flash lW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3.4 XSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.5 bø°8nÝçì . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3.6 ¸à+« ¯' . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.3.7 £Š8÷ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.4 àÎ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 XML +°r
 21

2.1 Gu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2 -ôòP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3 ۊ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4 Tþ݊— . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.5 XML ZÄŠ5C}6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.1 Xb-ôKŠÑ@2nT . . . . . . . . . . . . . . . . . . . . . . . 26

2.5.2 ý„ ÿøü . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.5.3 XbòPKÿ‘îSr . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.5.4 ̀! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.6 |° J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.7 ¶b5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.8 CDATA   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.9 ×èËè! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.10 PI ø!#” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.11 ¢œ¢ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 Unicode 15€ 35

3.1 Unicode + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

vi
ê 

3.2 CÒ»Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3 ”||ÝÞ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3.1 Unicode Ýè 5g . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.2 UTF-8 Ý_Dæ§õ©P . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.3 UTF-8 Ý8F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.3.4 UTF-8 ÝþF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.3.5 UTF-16 ݂§E . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.3.6 {à  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4 XML ;õ 45

4.1 CSS á . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1.1 óCP (selector) . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5 (Ìè 47

5.1 %‚mŠ(Ìè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.2 (Ìè Ý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2.1 ýîÎ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2.2 URL  URN  URI — ½¢ZWÝ . . . . . . . . . . . . . . . . . . 51

5.2.3 (Ìè @» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.3 (Ìè Ý…× . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.3.1 GHC™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5.4 (Ìè ÝP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.5 ï'Ý(Ìè . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.5.1 ï'è PÐ)ºà . . . . . . . . . . . . . . . . . . . . . . . 57

6 ì×‚Ý HTML — XHTML 61

6.1 %‚Î XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

vii
ê 

6.2 XHTML ÿ%‚ø . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6.3 %‚mŠ XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.3.1 HTML Ý2Í . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.3.2 XHTML — ɝDßyêP§;¨ . . . . . . . . . . . . . . . 64

6.4 XHTML õ HTML 4.0 Ý-½ . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.4.1 XHTML Q
ê . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

6.4.2 }PÑ@æJE HTML ݎ\ . . . . . . . . . . . . . . . . . . . . . 67

6.4.3 l?™JµA . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.4.4 ̀!¯4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6.5 XHTML — Õ9› : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.6 ¢ìW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.6.1 HTML Tidy ¸à]° . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.7 t¡ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7 XSLT — XML ÝòÝ»ð+ 79

7.1 ¨×Ëø! — XSL + . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7.1.1 XSL õ CSS !Ý2] . . . . . . . . . . . . . . . . . . . . . . . . 80

7.1.2 XSL õ CSS 8!Ý2] . . . . . . . . . . . . . . . . . . . . . . . . 80

7.1.3 XSL ª . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

7.2 XSLT á . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.2.1 XSLT 3ç­îÝTàÿP . . . . . . . . . . . . . . . . . . . . . . . 82

7.2.2 XSLT Ý»ðøC ®æ§ . . . . . . . . . . . . . . . . . . . . . . 84

7.2.3 Yî XSL Ý8› . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.3 ޗ XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.3.1 W`ï . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.3.2 XSL ø!(Ìè . . . . . . . . . . . . . . . . . . . . . . . . . . 89

viii
ê 

7.3.3 ÙW5Š . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7.3.4 q-ôîb×ù . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7.3.5 XSLT º•Þ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

7.3.6 !òPÂÿ”" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.3.7 íŒZCD' . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

7.4 XPath ­5à–+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.5 ð
Ý — @®‰Y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.5.1 xt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.5.2 ε IE5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8 DTD — XML +ˆÝL 107

8.1 tE DTD Ý:ô . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

8.1.1 W`ï . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.2 -ôv½…× . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.2.2 άg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

8.3 òPv½…× . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

8.4 ÙÙwÕ×R — Zv½…× . . . . . . . . . . . . . . . . . . . . . . . . 111

8.5 ”+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

ix
ê 

x
ny®ï

z Ó³›Îô*†Ý çìI*ÝJ)ºà!Ý4ê‘À XML 

Java  Perl £]0ÙHõ餙

ºY+Ž.}ÿÔç­öò™Ñ¼3YHçÑL™˜Ë Perl FAQ 3

Run!PC Ó*…¶Ýû

xÑ+¯ZCI½Ý€͕4 ŠQ+ŽQß +ŽXÚS€

 3 1996 OxñL™PÝËw€ ç슌Ýt&îPóºß3çìѧõ

ç°'Œ]«Ý¶pÓ½

xi
ê 

xii
¶3G«

0.1 ¶9Íhݛ^

¨3Ñ XML I*s"Ýj#$ðt&î&8›2¥Pš•ÝN¯Š Ý

®`«¤î9°—¬ ½N͗]±I*ÝÕ¼e¡K²žÝ×Í2Í£µ

ÎZÝç­¾??.+ŽZCÝâb‚P°ñDzåÕ94±I*Xñ¼

Ý-¿

XML Î×ÍμÝç­t&ۋyßv^ðßþñ¼¬úP;
Ý8ˆI

*9g&Ëݜ:Õ&Æ39]«ê . . .

.h&Rݶ9ÍhÝF&¬X¶×Í XML Ýh¯ç­îÝZßý

ôaß¡\²åÕ¸Ý? ?ñŠ¶Œ×Í|ZTà ôC¬

/Ñ@‚vȱ«ÿî XML ^±`²Ýs"XMÝh

!ø¥ŠÝÎ9ÍhÄ6¯XbE XML b×!ÝçBKœD|">2ã

ÿŠ¾Õ9ÍêÝ9Ä6Î×͹ðìµÝéh¬¹ð¬î35²6Ý]

«ºÆ5X — 8D29Íh|`ì#Ý PDF }PÞT%®ÑÎ3ÇKîå

\T|^ŒK“ÿt·Ý[ŒÞéhÝ©PsìÕÁ‹

0.2 \ïTÌnÝÁ

3. XML G˜È
t?E HTML ý¥+bÃÍÝ-IAŒ›W¶Ä HTML

} (tables) J??hEXbà®P»Ý HTML Dí®Ü²ŠÕ

xiii
¶3G«

h²ÍhÞèÕ×°òy XML ¬õ XML >>8nÝI*‘À CSS õ

DOMAŒ
Ìn CSS ÝÃÍÃFJÞºœbQÃǸ
^àÄ CSSô

àHHTÍhÞºèº×ð CSS á

0.3 ÍhX¸àÝBrýî°

• ¥ŠÝÝb(ÞÏ×gŒ¨`/| ä‘Ç ‰ (marker) [Œ î

• Z­Š©½úŸÝ2]ן|E›î

• P»õæD|ÆC^C›CourierÓ¨A

<?xml version="1.0" ?>


<®Î>
<hello>
?t& </hello>
</®Î>

h²hLæÝ×°oo!`g)î×°ÝÐrA[  A ‡à

¼èø×°¥Œ¯4Tèº@àÝF9°ooπÝ
Õ`Î×:µU3

hmŠ¾•ðS»9®1€¯h(
æ

0.4 A¢ŸàhÝ&4

9Íh3_4îTàÕ&9 PDF Z©bÝ-¿‘Àh„õø=”

h„ PDF XÛÝ5h„6µÎ
à PDF å\ Acrobat Reader ‡×Æ

9ÍhÝ`Î3¼W\X:ÕÝ£ÍWϔxê1 ÍhÝh„3ZÌÝ

Acrobat Reader |Ñ@2•î‹y3̀+ŽÝå\ õ®¼Ù9

ìAŒg)PÁÏ×vÝ8›TŒôÑ@2•¨Œ¼
1
9õp Ýh„bX!ô¯¸àï.Š ‡KÝ PDF °«xÕh„…

xiv
0.4 A¢ŸàhÝ&4

/Zøü#” Z8!¢Ý#”ן|ä‘î
3é\îà#å\9Íh

Ý`Ν|à9°#”.
ñÕh̀2] G«ÀêÝ&Ía;4

êZaÝÛXC&!!%Ý_rí|/I#”]PÓ¨]-\ï

ãå

N hèÕ¥ŠÝÝb(Þ`AŒ9Í(Þ3h̀2]b©½ŠÕÝ

•
º3å#½Œ(Þ¡:Õ×Íä‘Ý#”5ËË

a;#” A Œ × Í Ý b ( Þ  Î Ø a ; Ý x Þ  » A n y Unicode[3] Ý D

¡9Í`Î
3#”:ÕÝÑΣÍa;Ý_r

°#” AŒÝb(ÞÎØa;"DÝxÞ¬3Ø°èÕÄÉA ٓ

C[p.36] (Unihan) 9Í(Þh`3#”Œ¨Ýΰó‚Îa;_

r

9ø'ŒÝêÝtݽ¿yJ›Ì«ÝY̲?¥ŠÝΠݯ.hŒ

¼3üîå\Ý\ïô²åÕv«aîø=”Ý-¿

²I#” tÝ/I#”²Xbh…èÕÝçëCçîÝ£ÙKן| ‘ø=

”]PÓ¨A W3C XML ´°×6µ


3p åç°×ø9Í W3C XML ´° :
http://www.w3.org/
»!`"¨ÝÍhݨש‘ — . bdy™ÝçëLæyC…• ð
xml/
ºÅ(•Zøo
‚3±å\>—&X.¸ÆÉÕ°«\`Ýèç 9

ôΠݯ\ï3üîå\`ôºý´9°8nÝçë£G

3 Acrobat Reader Ý'


|Š•¼²Ip
[ TIP 9ø
3¶ìhݲI#”`¸µºœñ§
T

Ýp ¬Š›
=Ռçëœ

xv
¶3G«

0.5 þ8

4Q&E9ÍéhÝ_4C&4ø=”Ý'Œ]«õðsT¬"y%®8›Ý§

×êG$P°3 PDF å\ ¨õh…ÝZCE9Íþ\š


9‘ˆ

¬š9¿à&4ø=”Ã
">2®Õ0Ýa;õ/

0.6 t¡

ͽËw€ 5ãyçàyç6Ý×/ÝÞß3hTDÄ9Íh çî

ÝZt&¼× eSÛÝßæ


b¢1ݘȄ <Tý0lÑK&ðK
¶*¼›

&pailing@2Ti.com

xvi
1 +Û XML

XML eXtensible Markup Language;¨Pý¥+Îç­I*tn)݀

^ÏÝ@Ĝ×O 3Y&£GvÝÓ*çì…9ÍC¿1BÕ

¾Ø~Ý2M&£G®`PÊ8õ¸n;«¤9°t#Ý—i¥

–3 XML ìÝ2¥|1Xb8›&Ý6Õ„Ý — Š8Oracle  IBM

1.1 %‚Š. XML

1.1.1 n ¼Ý HTML

Š+Û XML P¹2ÿóa×ì HTML Ýþ\¬š½0º&Î3 Ø1

HTML ×PÎ 8D2HTML EJÍ WWW 9¿O¼Ý~Ms"áIõ£GÝø

;1ÎÏא‰?à#ñ›Ý×®GXÎbÝ£G¬úъ3ç­î†ß

ŒTŠõt&çB†ZøøßßKÿ.½à HTML ¶ç°HTML 3yy¿O

/?QW £Gøøì;•tÂÝýã}P¼Ñ HTML 3ß^+«]«œJW

. ¸ÑÎ'Œ¼ÞZ/Ó¨3¸àï¿GݬÎQ&ð¿y^  Ý

!8øøFL£G&Ƽ:Íç­h7Ý@»ì«9ð HTML DÞh°£G|

} (table) ]P4

<h1>.¦Lh</h1>
<table border="1" cellpadding="5">
<tr>
<th>(Ì</th>
<th>®ï</th>
<th>³‰±¬J</th>

1
1 +Û XML

% 1.1: | HTML }Ó¨Ýh°£G

</tr>
<tr>
<!-- €Ó ÝhX†ÝP9…F ;-) š:ŒM -->
<td>õi¯Ýç°'Œ–a</td>
<td> </td>
<td align="right">590</td>
</tr>
<tr>
<td>A¢3 7-11 ç*ç„</td>
<td>P(h</td>
<td align="right">120</td>
</tr>
<tr>
......
</table>

3p Ó¨Œ¼lº !% 1.1 £ø

2 Ëw€ 2tigers.net
1.1 %‚Š. XML

¬ HTML Ý®Þь3HTML Ýý„9Î'Œ¼Ó¨ZaÝ} (layout) õ²

ÌÝÉA î»Ý <table>  <tr>  <td>b <ul>  <ol>  <li> 

<font> ‡ff/Î

*Fƒ'&Ɗ3ç­î'ñ×ͱ·•¼ — ¿à^ É©P (crawlers) Õç

­î&é¤7œŠ›.t±Ý‰ê8/¼¯&Æ݈V|¢hf‰hô

mŠ˜˜ss2×çìϊœ:®Þ3h7äÝ簝¸àv«î»Ý¶

°ôµÎà HTML } (table) ¼Ó¨¬h7ØJóà!ÝPÉA

à <ul><li> . . . </ul> Ýf]P‚h7sàÝêΨ×?¥ÝÎ

×Í HTML 簝b×Çÿ&ðv«Ýý„A <tr>  <td>  <li>

b°T&ÎJ¼ý¥Â×:”Ýb°ÎJ¼ý0=”ÝÕ9ø¿ÍÎ

ý¤`(Ìõ‰êÝý„ŠA¢Þ¸Æê2³ãŒ¼9µbF{[Ý1 AŒ&

Ɗœ check Ýçìâ×\` µZ蘱×g£‚¯º? W&ÆÝÉ©

PAŒΩ½Ï€£qͽE&‘&øÝ簜ÂD¹0Œn"£G¾

W™AŒ9°ç°£G©Îöºßvå\;£^b®Þƒ'×6K4

J„¬3£GÝç­t&ßvmŠ@˜ä^ ¼&Æ95͊z|

HTML D¼ý¥Ý£GE^ õ¶PÝß¼1¬H" ÝF §R¼?ÎÁ

—þz[£

HTML Eµ ²Ì]«œ<QÁ—þzE/ôµÎ£GˆŒÝ¾

ætÝKó¿Í༾/TZLÝý„A <p>  <address>  <title> 

<strong> ²¿{KÎà¼'Œç°} ÝÝX|G«1 HTML Î'Œ¼†

ß^øøàÝEî«X$ÕÝpÞ&ÆtmŠÝÎ×ÍÞ¤`‰}€@ýîŒ

¼Ý^×ÉA1×Í <price> ý„

1

H ݕ˜È
Õ×Í餙çìœG×G3ç°ó×ø¤`Q¡3p
óC•î HTML æD:œD|2.Œ4¤`3æDÝ5]›6Ž€¡2Œ
¼ ;-)

P¾• XML 3
1 +Û XML

5£Îε;
э HTML 9]«¼½WÊ`¶mŠ9
×°±ý

„6

•HTML 9¿O¼3Ëp g;ݔŒì\ėµªñÿ ÍMÎ

Ý‚v&ÆÉΊ8êÎçÿT W3C  Î&Æ1T aîÎ׍

×Í <price> ݱý„p¼ßµºá&Æ[?¢µ&•&¼mŠàÕ&P&

ø!Ýý„AŒÙÙK
HTML …£ÿÝ 

Í@aî¤7…Ý£G3^b%®W HTML ç°GKÎ׉‰¶ïû

›;D3£]0Ý tables TÎ…Ý}Ì!ÿÝ餙çìKÎ9‚†¤`

(Ì‚r‰} . . . ‡&ŠD3XòÝû›4ê5ÿ×zÞ½¬×Ë£

]0ŸŒ¼B CGI/ASP/Cold Fusion/PHP/... scripts ¢×¢»W HTML }

P¡9°¥ŠÝû›4ê(ÌŽWÝmP©ŒLÝ <h2>  <h3> T <th> 

<td> . . . ð­•1æ͘ñ3£]0&ð–òÝ£GÚx (schema) 3¤`£

G»ð HTML 躛ˆVÝ!`¾QPDŽ*F&ÆAŒÞ£]0Ý

£]A¤`TŽ1ºæÍJÝ£]Úx×"×è23Š õˆVÝ

é\ !FÄb¿Ô].£]">2˜áŠ Ý£]0/


‚»è>¤

™[£9AŒà HTML ¼†:Nœæp

*Ýç­t&餙@˜·¼²²é\Ù Ý!›^Ç䙣

G!FŠ›;P‘ô“¼“¥ŠÉAG–ÝÉ©P&ÆmŠ×Ífê

G HTML ??Ý]°ÍJμç­Ýs"Þº“”“X“áK¼Õ XML ÝF

1.1.2 XML G¼Š=

XML õ HTML Ý×! µ3y3 XML …&Ɲ|ŠãLý„LŒ¼

Ýý„|¶Š ݌¤†52¾ZÝ/ÉA&Ɲ|L <name> 

<book_info> 9ø†5¾ŒÝý„3 XML &Æ©¥¥/9õ HTML úŸ

4 Ëw€ 2tigers.net
1.1 %‚Š. XML

µ Ý®°8!‹y XML ZݲÌÓ¨DĤg CSS[4.1] T¸à XSLT[7.2]

¼† XML → HTML T̀}Pݎ9F쫺b


×MÝ1€

XML ¯Bº¸à HTML ÝßDêîW. ¸Ý¶°õ HTML v«.ý„à <

õ > ÐrÀR¼?UÝΚ:@»

<?xml version="1.0" encoding="Big5" ?>

<.¦Lh>
<h°>
<!-- €Ó ÝhX†ÝP9…F ;-) š:ŒM -->
<(Ì>õi¯Ýç°'Œ–a</(Ì>
<®ï> </®ï>
<³‰ 0JŽ›="±¬J">590</³‰>
</h°>
<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï>P(h</®ï>
<³‰ 0JŽ›="±¬J">120</³‰>
</h°>
</.¦Lh>

5\ b=ý„KÎZÝóç 6

ÎÝ9ôÎ XML ÝשPÔt&;XML 3'Œ-ÊÕ»j;Ý®

Þ.hÆ×-˜x3 Unicode Ù×D[3]îE– Z¸àïÝ


1ËÝÎ&ðÝɯ

XML Ý(ÌðCW004Q¸Ý(C¯ßŽÆ¸õ HTML ο•Ý Î Ø4

©ÝTàAÓ¨ç°X'Œ¬¯@î¸Î×P§;¨à¼'Œ&P&

øý¥+ÝãJôµÎð1Ý meta-language ø+Ž‚î+Žð­•

1 XML Ý·ùf´{¸Îà¼5'Œ+ŽÝ+Ž6TàPšf«áÝ HTML Â

9ݝ ½&Æݏ è P§;¨

bÝ XML |¡G–ÝŠ›;f‰PMQ Žÿœ|@¨Ý&ÆÝ^

É©P¨3©ŠÕaîh7Ý XML ç°œ0 <h°> . . . </h°>  s…Ý <(Ì>

õ <³‰>µ|5¿¾W™Þ&h7êGXWÝh°õ³‰××8/

P¾• XML 5
1 +Û XML

ôºZ´3×ÀÌ©ŒLÝ <p>  <td>  <li> . . . …ÝGAh£G

XML ;¡&Ɲ|'ŒŒ?ÞãݨõS[ÉA§¸œ0Xb XML 簅3

<`(> 9Íý„…âb5MP3 –W69ÍC¿‚v!¤`Ý <‰ê> ý„XŒ

¨ÝóCÄ6±y¬Jëû-93*^BÎ ß10õF]K¿Í`G.Œ

Ý Oracle8i £]0g)î€ÆݨõS[- ConText-èºÝ9øݐ

Í€Ý database ¼ïA IBM õ Informix ‡ôK3”ÁxE XML ÝYîh

²& database ¼ïýýlæy¯íŒÝ£]|D|2»W XML±£]?

à#| XML P˜á

1.1.3 XML Ý8÷P

hûî«ÝD¡
ºs¨ XML Ìn¿4¬úPÝ©²bÃy»;Ÿ¨*Ýé

\ç­t&|ìjE XML t¥ŠÝ¿4©PÞ1€

²²٠ݣG!;

¤¼Ý—¼:9F1Î XML tÝQ¤ *Š1!Ý


¼ 

µ=&9
¼/IÝ&ÍI KD3&9!ÝÙÕóy0Y-Ý

mainframe €ºXÛÝ “legacy systems” ÕßlB¯'é\Ù

Ù ??.8A1Ý¿¬£]08›‡CW£Gø;Ýæp39°²²

Ù †£Gøø??mŠ¸à©„Ý8›5¿2¬÷BhÝb&

&ðjìAŒøÍÙøFð„±Ý8›œ꺜×ÿ‚›–CW×p

RB

bÝ XML ¡²²Ù |œ]-2DÄ XML ¼®øøª+ XML }P

Ž|\Ey&vl£]ÜñÎZaRDBMS …Ý£]% . . . ¡Z

CjTÞ-jKý¥Š®£GøøÝ&Ùî©mŠ„b XML Š— 
[2.4]

-Š\㽬^ XF¼Ý£G
‚|¿à XML Š— ãÿ|bœ98

6 Ëw€ 2tigers.net
1.1 %‚Š. XML

% 1.2: XML Î&ð§Ýçj+Ž]-&P&øç­ Ì Ý£Gøø

P¾• XML 7
1 +Û XML

|Ý8›ºß¹ð쵂. 9ó݊— | Java ¶W?¸ÿb Java Ìa

^ŠË YîÝ¿¬Õ IBM Ý AS/400 AS/390 mainframe ùé\Õ

Palm Pilot ßlB¯Íb9ËÍÁÐ ¿{XbÝ¿¬KñÇW Yî

XML Ý¿¬²²Ù àHT:UE]Ý£]}P¤™?¼Ý2¥

à½ômŠá¼E]/IÎ2à¢Ë}P;D£]Kà XML ¼®

+}PǝAh×¼ØÍÙ/Iݎ?¬ºîCõ¸øø?¼Ý̀Ù

. XML èºÝ×·§ÝcŽ

XML 9 4 ¿ y £ ] Ý ø ð õ F L Ý © P  ¯ œ 9 ß -  XML Þ é  ¤

™LÍÎXÛ b2b (business to business) 2¥E2¥Ý¤™ñ¼¬úPݎ

\  É A  × Í vertical market  | 2  ×  XML ý „  3 XML & Ý 1 ° §

5 +ˆ 6vocabularyó¾ñ•9øîì* ¼Tߌ/  |œ]-2

DÄ XML ¼ìŽ2óTFL'Œ%®`€Þ‡

EDI (Electronic Data Interchange) ΕbOÝ餼Zhøðýã@¸

EDI Ý2¥|8!|éPøðŽsÇ;6Zh?Ý` õüùÝ

“Y2 @•Ý EDI ý㧠X12 t&̀2 J9ñ•Ð)»Ý EDIFACT ý

ã9O|¼ EDI ¬^b.¼. EDI mŠ¸àòÝ8›PšÝ¼)

®æàÝòÝç­Æשbl
¼ (Fortune 1000 ùÝ) ÔÿRXML ݌

¨ HR EDI Ý


¼èºÝ×¼±g  XML FîÇ&ðÊ)༮

EDI ×vÝTà¾Õ!øݐ?¥ŠÝÎ XML 8›ãÿ]-Dßy

^ îKþêà#¿à‰…ûCÝ Internet a­¼FX% 1.2pM

K2¥”Á@s| XML Áݱׂ EDI !}

ÜÍ»À™ˆ1›Ît\༊1 XML 8÷PÝ»¸à XML ¼

;D;¼a¡¼ßݼ»|3&ÀoæX Ýé\ ">»”.

XML }PŽ HTMLb`:Ý˺#”&À™ÙÝ /|œD|2

¶Œ §ÝPDã̀ÙXF¼Ý XML £]ؼßݼa#‹|à XML ;

8 Ëw€ 2tigers.net
1.1 %‚Š. XML

D3@ÍßÝ smart card î –÷ñ h² Å82Z;Ù×;‡XML

KÎt·Îóß

XML Î2wÝýãßßK|J¸¼s8›N8›2¥.¹Š

Lºb1ÿPÝ2¥››¢½Ñ;©b€ÆŠ z½Ý}P¼¿ßþ>

ùÝŒ¨9ÑÎ2ýãò µA!*F~Ms"Ý Internet Θx3

&4 TCP/IP 2ýã×ø9ôÎ %‚ßßKTæYî2ýãÝæ.

5b°Ý'Œ¼†=çÙ FLG>ÝI*ÉA CORBA-IIOP Java RMI

õŠ8Ý DCOM ‡9°I*p¼A XML ¼ÿ{[6

´ XML õ CORBA DCOM 9°I*¬8ŽM XML | ¸Æ†FL

G>ÎÝ[ XML-RPC õŠ8â…¾Ý SOAP 'nµÎt?Ý» XML-RPC :


http://www.xmlrpc.
ï|Þ-j}PFLG>Šf XML b[£¬¸Æ3¸à-]«QGA
com/spec
XMLXML DKÎöZCj‚&Þ-j†¿D|å\?à_ì à#_ SOAP :
http://msdn.
ÑöZCÝ©Pô¯ XML Zà#DÄ HTTP T SMTP ‡¨WÝ;*ܼF
microsoft.
X¨6¨•_DT®Î; (serialization)2 D; §h² XML Ž| com/workshop/
xml/general/
.EB! HTML Ýß?Î|îW^bq$Ý.ê`a.hõ̀I*8
soaptemplate.asp
f¸Ý8FR‚Ý §R¼´XÝþF?¢µ3«Ÿ3 aò<Ý*

^é\{›Ý‚æ¹²>W£] §Ý>—3μÞ?ήÞ

SGML Î×bè¿OaªÝ»jýã HTML -Î×4 SGML ÝTà@»h²

Adobe ÝZh4Ì Ì FrameMaker XàÝ/I}PÑÎ SGMLSGML '

ŒÝ×êýÎ1 — ¸Î'Œ¼èºZ 50 O|îÝ.úÝ9O|¼.

SGML HÄÿÓX|×à^b3t&îø•R¼×©bl
¼TÅ8^
2
XML Z͖ÕÎ;Ý
3
ãz©« (Intel) 2¥xðß«X茀ï?I*Ý
">—Þ¸×ÍþnXûݖ0›À
óNO¡¼ÑÑ NËO¹¦×g

P¾• XML 9
1 +Û XML

x3¸à»AY»Ý»€ (IRS) -| SGML ¼'Œ€‡Z

Ñ. SGML Ä ÓpUv´Êàyç­X|bIÿ©½'ŒÝ XML

ôµÎ1 XML Î SGML ލ¡Ýç­Ì‚ SGML 1ÂÝ©P3 XML ¬

Ώ´¢Û1ÂŽŠ1Ĝà WordStar 1.0 }P¶WÝZµÕà*F

t±ÝŠ8 Word2000 ¶Œ¼Ý .doc jn ö1J 50 O¡Ýé\î0ÿÕÆ

9°jnÝTàP50 O¡Ýé\îþ Word2000 WordStar 9°\

Ä`ÝP?W®Þ‚þ9°P݀é\?\
ýïÀ:NŠÕ}Î

ÃÿÕ9øݞlAŒŠ ½8›Ý?±õ>ù\ÞZg)»ð

>ùÕt±Ý}PJê&ð^b[£±ÌÝZh_ì8›EÌÝZÝø

P?ŒÿK×"×è2D@¥¨

XML Z¬^b9°®Þ3μÝt&Š XML Z»ðẀÝ}P

?ÎD‚|Ü~ޏmŠ1ÂÝZËKÜñÅ8úƒ2Z°ŸZ

ª]À™BI.@~ ×#‹yÍßÝ^B/7‡KmŠ1Dœ

Ý` º¡t¢3Zhé;Ý 21 tSŠA¢ò1D9°Zõ

BÄÞÎלނ SGML õ XML Ý'ŒÑÎ 20 tSÏÝI*áEh×

œÞ݌«

Š›; user agent ÎÉT

G«Ï 3 °XèÕÝ^ É©PΊ›; user agent ¸àï‚P|

ìÌ^ ßÝ×ÍÎlÝ»çîÝ&¨õS[ìêÝÑÎ9°PN

F\ÞWûî0Ýç°/8/¿OGµbߝμÝç­t&Yÿކ”

9øÝ;

1. ¸àïtŠŒ×µGmŠ^Ç

2. 9›¸àïyÎ.@é\îÝ^ ߧŒ¼.TꧏÝè2¥C²•

10 Ëw€ 2tigers.net
1.1 %‚Š. XML

ÝRFâF^‡'?¡¯Pœç­îÝ_•ãì¬.t±Ý ‰8/

¼

3.  ‰××8ՄÝ|¡^ ß'Œ¸àï/ ×áø׉}t-!èº

® ^ÇÝ¥Š¢

4. ¸àïqA^ ßX/ÕÝ DÄp Õt-!Ý£_•ãÝ쬍

›#‹Þ›Ýà#«^ ߐ×W

¬Î 9øY?ÝGÿ‹KÕêGK^b@¨I5æ.ÑÎG«X1

ÝHTML ZŠ\|9…XÛ݊\ Qμ:ÿU£°Ì«µ ݼ

ƒ9Í ®p B†ÿ8 ?ÝpÎp38›ŠÌnŠ\ZŒÝæ

XML ¯@¨ smart agent Ý0@¨^


×MbÝ XML |¡&Æ

|Š•'Œ¾ŒÝý„A<‰}>  <¤`(>  <^>  user agent P

|DÄ9°ý„œ"20Պ0Ý£G‚ºZ´3×n5HTML Wõ6Ý

?Þãݨõ

9Í©Põî×ÍŠ›; user agent1Î8B8WXML ý„ˆŒ²°€ç

èîXý¥Ý/¯¨õS[¢ãý„õ/ ݵDn;ã@2›0Õê

ý¾W™ÜÍ»&Íߏ?£ËÆR¼œ(Ý"8àR¼¯øÍÝߎÆ

&Ñ3RN2 ®¬Üÿ€Æp| ® ;-&.&Ý agent PXÕçîœ0b

né\"8Ý£G?® &óGÝ¢¬®ÞÎ5"86ËCHÄTٝ

Œ¨3é\ëÝç°ÑÎ&0ÝA

<é\à>
......
<ø\> ‘ýTø\"8 PS2 +« </ø\>
...
<ø\>{ùÔ"â!ƒlŠÆUSB +«</ø\>
</é\à>

P¾• XML 11
1 +Û XML

¬¸ÆôŒ¨yØ)¬$Ý+Û

<)¬$>
<$(>\Zoo!</$(>
<Wõ>
<$>A x¬钥</$>
<$õ>äßé€</$õ>
<$õ> ¨î"8 </$õ>
......
</Wõ>
</)¬$>

#‹Œ¨ỳvlÝç°ÉA °ÿbTébÝ®`1€°

bÝ XML &©Š×å&Ý agent P.êýÅ3Ø&y5é\65ø

\69°4êÝ5"86ÞCǝ É©agent 'ŒR¼ 3 HTML `‚£

‚ls‚v¨õR¼3[£ã@PîKŠ{9Ý

1.2 XML Æ6

3£]0 | XML PFLÝ£]T&mŠ©½õF¬ÎAŒ× XML Z

ŠÓ¨3¸àï«GTïŠ}`&Ɲ|DÄ CSS[4.1] T XSL[7.1] style sheets

Íh˜®5ø!6¼'²ÌCSS t\Î HTML X'ŒÝ¬JÕ XML î×

ø?àCSS ÝÏނ — CSS Level2 3s"`BÞ XML ÝTàˆ


œÝ

g)ø!&ÆE XML Z&Íý„…ÝZC/ݲÌ‘ÀClÝ

‘4]P›H·«‡K|××¼??ÝÎ!øÝ XML Zµ

!) ¸'ŒŒ9ø!ÉA×Íç­h7Ý%h£]œÉmŠw3ç°

ºßpêmŠ.¸Æ3ó°ÝsDž h؛)ˆ9Í`ΩŠ'ŒË

ø!µ|¾Õ9ÍêÝ š:!% 1.3

¥ŠÝÎZÝ/õ²Ì'ŒÎ5ݲÌø!Ž›`XML Z

åÅ(

12 Ëw€ 2tigers.net
1.3 XYZ Ýb(Þº™ — XML Tà@»

% 1.3: !ø× /gî!Ýø!ߌ^Q!ÝC

1.3 XYZ Ýb(Þº™ — XML Tà@»

ì«&;Þ+ÛÝTà@»KÎà#˜Hy XML îÝ+Ž†5J€Ý XML P

GÃ&ÝÄP

1.3.1 ó. ML

MathML ¢½ XML LŒ×†5¾ó.PÝý¥+Ž¸B3òGÑP MathML :


http://www.w3.org/
W W3C Ý.¦ýã (recommendation)  ½ XML `‚ݼÛó.ÆÞ
TR/REC-MathML
ö8 HTML bþEó.Ðr2PÝYîÝ

1.3.2 Šî™=

SMIL Î59ª›!MJ)+Ž6 (Synchronized Multimedia Integration Language) SMIL :


http://www.w3.org/
ݹ¶\® “smile” :-)ôÎ×4 XML ÝTàÂåKÝ RealPlayer G2 -
TR/REC-smil
2à SMIL ¼èºÅ (Real Video)¯ (Real Audio) %j (Real Pix) ZC (Real

Text) ™=ݐ¯'Œï|Šã×9ª›Œ¨Ý` õ¡5

õ MathML ×øSMIL ¼W W3C ÑP.¦Ýç­ýã

P¾• XML 13
1 +Û XML

1.3.3 Flash lW

SVG : SVG Î Scalable Vector Graphics Ý ¹ ¶  ¸ Î ã W3C X @ s  Ú x 3 XML


http://www.w3.org/
à  î Ý '  %  } P  s " W õ ‘ À Ý AdobeHPIBMMacromedia Š
TR/SVG
8NetscapeQuarkSun ‡2¥êGB¾t¡$ð¿:ÇÞW ÑPý

ã

Ĝ3 XML '%Ýs"îbË ßy!8´N× | Adobe ´è

Ì PGML ¨× ãŠ8Macromedia r” Ø VML IE5 bYî39Ë

èÈnÓL› W3C ¡W3C Xܟ&­ßyÞË!½yÝ}PÈ)3×

R2WÝ SVG ݙß

&Æá¼êGç­ît ;•Ý%j}P — GIF  JPEG õ PNG4 KÎòy

FpPÝ}P‚Fp%bM´¿¹wÝþFMacromedia Flash Xèº

Ý'›iÊ`2ù̂áp‚Ý×I59]«ÝèçW2Æ(Ý9Í®

`£ÉQBb Flash‚v Macromedia òGôÞ Flash }PD€;ºß

Šãs" %‚Š¢Œ×ͱ݋—÷

´t¥ŠÝÎSVG ˜HyöZC}PÝ XML îà#µYÝG«èÕÝ

XML ©P;²²٠ݣGøø]-£]0ÝDã‚v3μà#È

á XML õ XHTML[6] ç°?|à#¿à̀ÉbÝp ÐI*A CSS[4.1] 

DOM : DOM ZÎÿlDocument Object Modelõ ECMAScript JavaScript


http://www.w3.org/
>}W ECMA %öýãܺ&ÑPýã¡Ý±(¾Õ›iC DHTML ݛ
DOM
V[Œ5  SVG ôYîFp%jVáYîêG)3s"$ðÝËÍ XML =”+Ž

XLink : — XLink õ XPointer¬|® HTML Pݎ'=”?èº9'=”õ&9Ó


http://www.w3.org/
ÝøbSVG Î2Ýç­ýãåŽ×Ý2¥EÁ
xlink
XPointer : î«94 SVG Ý8FQÑÎ Flash ÝþFFlash Ä6ŠÄêp ²,Pæ
http://www.w3.org/
4
PNG \® “ping”Î'Œ¼ã‚ GIF ÝFp%j}P¬f GIF ? 8|t¥ŠÝθÎ×
xptr
Í2ýã^bÝ¿JÝëêGYî PNG Ýp õ%% ÌbK‚v\3¦
5
XÛÝ DHTML ÑÎDÄ CSSDOM õ JavaScript XˆCŒ¼Ý›V[ŒÝ½Ì

14 Ëw€ 2tigers.net
1.3 XYZ Ýb(Þº™ — XML Tà@»

plug-ins¼êw‚v. Flash Ý}P Þ-j®`/ÝZC/P°¯¸

àï3p ®C™¨õÝ@bß.Za†
Flash éŅ 9øÝç°

ôP°¯¨õS[ìõSrÍÝZCº"ˆ®Zlõh²{!›PÝ

9ª››i??mŠê_¶P¼QR.h Director b Lingo +Ž9FÎ

Flash ¨×Í´ ¿Ý2]Flash õ JavaScript  Ý!›©DÄf´«êÝ

FSCommand ¼®[4Q Flash Ï°Ìôá×°ŽÝP'Œ

¬)Ènõs" W!Ý ECMAScript 8f-î×^?½1 ECMAScript

\bÂݸàßý

\1Ý9‚9 Flash Ýû•&€Ó ÝîBAë:¼"ŽW

5ë 6Ý @"3h‚†×FÑ Flash bî–9°þ8¬‹K3*^)

Îç°'›it?݊X]nSVG ÝGÿ4Y?¬êG$)‚º3€^ÏÝ

2›t¡ìº§øœp\

&Ƽ:: SVG D~bÿ%‚øà#ãCŠ SVG ýãZ

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG August 1999//EN"
"http://www.w3.org/Graphics/SVG/SVG-19990812.dtd">
<svg width="4in" height="3in">
<desc>|ìÝ SVG DºiŒ×Í ‘ÝiR‘ݲo</desc>
<g>
<circle style="fill: blue; stroke: red"
cx="200" cy="200" r="100"/>
</g>
</svg>

. SVG H±ÝêG¿ÍxŠÝp ‘À Netscape  IE õ OperaK

^bYîÄBb SVG Ýp  IBM Ý SVGView Œ% 1.4 IBM Ý SVGView :


http://alphaworks.
. SVG Úx3 XML î‚ IE5 õ Netscape5 K/˜ XML Š— †5
ibm.com/tech/
Y î XML ‚ v ê K Y î Í € SVG  | à #   Ý I *  ‘ À CSS  DOM õ svgview

ECMAScriptX|μÝp báE SVG ÝYîLÍÎ Netscape .

¸B;2 Open Source PD2ÝÿP¼s"Mozilla Œi¢#Tß Mozilla Œi :


http://www.
mozilla.org

P¾• XML 15
1 +Û XML

% 1.4: IBM Ý SVG p

16 Ëw€ 2tigers.net
1.3 XYZ Ýb(Þº™ — XML Tà@»

ÿK|x›Q¤SVG ÝYî `b


œ

Š¯ SVG .¼n"3Šb]-?àÝ_ì ̌¨ãy SVG Î2

ýãxŠ3K¡ÌTÝêÎ Adobe‚€Æ3 WWW 8›½ÝiñêÎ

Macromedia î XML #XLñÝ8T9¿]«@¾SVG 3μÎ^

bæ゠FlashW ç­îÝr'%}PAŒÕ`Î 5Flash lW6[T

ËÝsß½Ý
Î39…:ÕÝù ;-)

1.3.4 XSL

CSS[4.1] ²¨×Ë XML Æ6²ÌÝI*Î XSL[7.1] XSL X¸àÝ]°õ CSS ²

Ͷ&Æ3 7.1 ;ºÞ+Û

1.3.5 bø°8nÝçì

Netscape p 4.06 C 4.5 ¡ÝÌÍ/˜Ý×4 “What’s Related” — !vl

çì.¦†™ÍK¡Ýא‰tÝ£]0C¨õS[²T´. RDF £Ù RDF :


http://www.w3.org/
LÚxResource Definition FrameworkÝ
RDF
Ž—×ì “What’s Related” ݐΧ‚†Œ¼ÝN ¸àï¶ì9Í

¶`p -Þ¸àïÑ3pÝç°çëFXÕ Netscape 2¥Ý server

îserver 3¸Ý£]00Õ9Íç°¬vÞXbõ9Íç°n;tÛ6Ý̀ç

ëC8n£]| RDF }PF/›p t¡|Ȏ]PÓ¨3¸àï«Gº¸

àïóCG?

à1RDF Ψ×Í¥ŠÝ XML +ˆ¸‰;Š HTML ¢½ <meta> ý„¼

à–ç­£Ù݆°‚XÛÝ5‚î£G6(meta info; meta data)à×­•

ŽŠÕ6 µÎ “data about data”ÉA%h Ýhêõ®ïõSÑδ


é\ó›PTÎFÙÝ5˜nhà6PÑÎÎlÝ‚î£GRDF 'ŒÝê
6
Ãà RDF ýãÝ1°

P¾• XML 17
1 +Û XML

ÝÑÎà¼à–‚î£G¬Š¯^ \?Š¯¸\ÿU9Í¥ŠÝ 

½3G«D¡ HTML õ XML Ý8þF`BúŸÄRDF ½¥y^ ^ 

݊›;øø|à¼à–ç­£Ù]-¨´¾£Ù£Ù Ý8!n

;

5£ Netscape øÿ¼9‚9ç°çìn=PÝ£]÷6

9Îã Alexa 9¨õS[2¥èºÝAlexa Ýxðß×ÑÎĜ(è×`

Ý WAIS ¨õS[Ýs€ß¸Ý¨õ†™ÎÍa7œbxŒÝF¸Æ#

åçì¼x› (rBº®îä^ É©8/¼Ýç°EÍÝø=

”®çìn=PÝ5—‚ “What’s Related” ¸àïÝóCJ® ÑÑn=;ó

Ý¥Š¢

DÌ̀–9óݨõS[ìA AltaVista . 2àŠãrBׂvÞç

° <meta> ý„XÝn"C® ¨õ”Œ45Ý¥Š¢B0l×°

çì¼ïLÍΑõãPP²Ýì¬ ÝÚS?9Ý"ˆ~àn"CÝ'Œ

¥-`¨õ”ŒPôª±Ý¨´ìÝ@à‰Â

1.3.6 ¸à+« ¯'

ñkŒÝìׂ Netscape5 p (Mozilla) …Õ²JÍñÝ×·ètÝ

HTML4.0 : 100% Yî W3C Ý HTML4.0  XML  CSS1  DOM1 ‡²E CSS2  DOM27 ô
http://www.w3.org/
b×°Yî Mozilla ݸà+«ôÎ×x±¬¬¿¬‚v|¯ßŠ
TR/REC-html40
XUL : ã'¶Ȏ¼ƒ‡-à¼'׸à+«Ý+Ž — XUL êÎ×4
http://www.
XML ÝTàôµÎ1! XML Ýߝ|†52à XUL õ CSS ¼;Ž Mozilla Ý
mozilla.org/
xpfe/xptoolkit/ ¸à+«p ݲÌô.‚Žÿ Ùw« (themes) ×ø¯b'Œ»¤Ý߆
xulintro.html
5sì Ýè µ #Ý MP3 êw Sonique õ WinAmp XYîÝ skin 

×ø3μN &Æ:´Ýp Ý+«`-Õç­îœìµ×?UÝè·


7
)3'n$ðÇÞW ÑPýã

18 Ëw€ 2tigers.net
1.4 àÎ

ðîœ

1.3.7 £Š8÷

Š8œ\µ¸à XML¯@î IE4 p X/˜Ý CDF (Channel Definition

Format) èº¼å push †™œÌ t\Ý XML Tà@»IE5 p

E XML  XSL[7.1] õ DOM ôKb8 —ÝYîh²âŒ£Ý Office

20003;DW HTML }P`¿à <xml> . . . </xml>  sŠ8Ý+§5 XML

* 6   ¼ ¾ Õ Ô ' (round-trip) Ý } P » ð  ô µ Î Ä œ s  W HTML ç ° Ý

WordExcelPowerPoint ‡Z|¥±\á Office 8›D@2¥¨ æ¼

Ý .doc ..xlsõ .ppt }P

Š8μÝ餙ˆ¯XML ÞÎ¥Y€ÆêGÑÞì×‚Ý COM

(Component Object Model) +«w¯Í€ٝ|DÄ XML ¼Ú;Î

¼Yî XML Ýx^8›?‘ÀÝ Windows2000  SQL Server  BizTalk server 

õ Commerce server ‡

1.4 àÎ

XML ΀^ÝI*
¨3µ|†5²å¸Xñ¼Ý? 94¥ŠÝ XML 8n

I*CýãKs"W!&vTà8›?A$¡Ê\">2¦

P¾• XML 19
1 +Û XML

20 Ëw€ 2tigers.net
2 XML +°r


&Ƶ;àÏ 1 a5.¦Lh6Ý»! 2.1 


|¿àÍݑsà#

®Õ1€Œ4+°Ýa;œ×:~b

<?xml version="1.0" encoding="Big5" ?> A


<?xml-stylesheet href="style.css" type="text/css" ?> B
<.¦Lh>
<h°>
<!-- €Ó ÝhX†ÝP9…F ;-) š:ŒM --> C
<(Ì>õi¯Ýç°'Œ–a</(Ì>
<®ï> </®ï>
<³‰ 0JŽ›="±¬J">590</³‰> D
</h°>
<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì> E
<®ï>P(h</®ï>
<³‰ 0JŽ›="±¬J">120</³‰>
</h°>
</.¦Lh>

 2.1: Z XML @»

2.1 Gu

3 2.1 …ÝÏוB–&Æ:Õ A

<?xml version="1.0" encoding="Big5" ?>

21
2 XML +°r


9§ XML …× (declaration)?b.®ÝÌñ GŽ (prolog) Í version

9ÍۀÌÍÝòP׊b‚ encoding 9ÍۀZC_DÝòPJbP

AŒ6¯Ý•CDÄ6Î Unicode[3] | UTF-8 T UTF-16[3.2] ®_D39øݵ

ì#‹|ÞJ• <?xml ... ?> …×׿6œÄ XML ýãú¦˜ÈŠ

9‚†ÑàÝÎÎ Unicode t?ÎòWן¶Ý?êY

3&ÆÝ»J€@2ۀ¸àÝCDÎ Big53 XML ZÝ_DÎ UTF-8

T UTF-16 Ýì <?xml ... ?> …×–6‚ encoding ô–K

ÎXb XML 8›KYî Big5/GB2312 XML ýã©ú


A ¥Œ
×!Xb8›Ä6Yî UTF-8 õ UTF-16[3] 9ËË_D

‹yÈ»2 P_DÝYîJã&8›s"ï

Š•X.hŒÿXbÝ XML 8›KÑ@ §

encoding ýî Big5/GB2312 ÝZ‹y %‚Š9

ø!&Æ3Ï 3 aD¡ Unicode `º"D9Í®Þ

2.2 -ôòP

D 7ÌÝ5ý„6 (tags)@jî‘âÝ5-ô6(elements) õ5òP6 (attributes)

ËI5 »A3 2.1 5®ï6Îàòy5.¦Lh69ÍÒ-ô9ìÝ-ô

‚50JŽ›=”...”6JÎ5³‰69Í-ôÝ×ÍòP&Æ.50JŽ›6Ì®

5òP(6‡r¡«ÝÂJÌ®5òPÂ6t{·Ý-ô.¦LhÌ®5q-

ô6 (root element)

22 Ëw€ 2tigers.net
2.3 ۊ

% 2.1: XML -ôòP

2.3 ۊ

3 XML ۊ+°õ HTML&ð8«4Q}¼ý×ø¬ÞïÝ- C

½39…¬¥Š×A HTML ۊÎw3 <!-- õ -->  Ý sA! 2.1 X

î

! 2.1 Ý XML Dà¼&-ôÝÎ ASCII Ýy


A ¥Œ
õyÐr< õ > –.h3_ì káZÝ

-ô(`Š¥ŒŠ.³E‚0íáÝZCDÝ

Ðr “~”  “”  “1”  “2” ‡

2.4 Tþ݊—

3 Š Õ XML  } Ý + ° !   G  ¯ & Æ  ¼ — — parsing 9 Í ¥ Š Ý Ã F 

“parse” µ Î Š — Ý Œ ¤  – 0 Î  · Ý ß v  & Æ Ý  \ N F K 3 †   Ý

P¾• XML 23
2 XML +°r


parsing ›®Q??BQŠá —
¨3µÑ3† parsing — å\9Íh


X|:ÿU&¶ÝZaTAh ;-‚vWUøÍÝßýݕÑÎ.
Ý\

b׬&ð•Ý+ŽŠ— zZ§ “parser”  `3{>Š\Zaõ•+

\C\­×àÕ+°+Œ5—9͊— ݐӗõÞ@—΢é\+¯íá

8›XT&C݃'3Õîb×̀²'
«”¼ý¼

5—~(&§ø… bus |&¤6


T5\ 9Îø»Ý+°ôá¼9̀²Î3ø….ZÝÄâW

3.lÎ Ý 6

%‚&Æ×Wգ̀²Ý•ºyîb9ËDT9µÎ. &Æ\Ý+

ŽŠ— ôµÎ parser3ÜT(ȯ&Æá¼9Í­M…M‡Ý

Š— Î+Ž §ÝtGaÉA&¼^.Č»•\.‚bþŒ+݊—

 «E× Œ+Z`&=tÃÍÝCÞ­”xK¢z½?$è¯&

×M˜ËTÑ;9SZaÝ

!ø28›ômŠ/˜+ŽŠ—  §ØË+ŽXML Î×Ë+Ž3&

Æ
×M¿àZÝ/G×ŠàŠ— .Z5—W×ÍÍΕ

b ç°p ÄÌn×Í HTML Š— 9ø¸\ÿU&çì…Ý

HTML j
‚Þç°µ Ó¨3¸àï«GAŒ¸\ÕH‘ùÒHÝ HTML Z

µP°¶æ HTML ®ïXT¾Ý]P.Za5¿23pï«GÓ¨Œ¼

#‹×nèç%‚KŒ¼ð­•1p /˜ÝŠ— |ÄBÚâ¶Ý

ç°©?-íwaÝ

XML Ý'ŒïbdyêGç­î†ÊÝæD5ö6Ýç°9ó HTML

jݶ°õ}P}ýR¼K)}.hX9gŠ×µ}ƕ!X

bÝ XML ZKÄ6ñF¿ÍÃÍ!ì×;ÝxÞÍJןºÙÙª

£NÝý0G>

5€Æ„‚Š!ÿ9‚6

24 Ëw€ 2tigers.net
2.4 Tþ݊—

% 2.2: Š— Î §¢ XML ZÝÏ×n5—Œ¼ÝÎJø›ì*ÝTàP


®
×MÝàH

P¾• XML 25
2 XML +°r


XML Ý+°CE}Pݐ}ŠO2CÉ£°#”Óœs"ý

¥+Š— p ÝÓ /9Í|s"Ý©Pb¿y XML Ý">ûC

;XML 3s"`׍Ýèft{¼0æJ9ÎÏ°f3'Œ XML ÝI.

Ýƶ1°Î×Íé\IÝ@~ßc9Ë͂´` µTŒ¶Œ×͊

\ XML £]ÝP

Š!ñ×èÝάÎàËp ?ŽÄ^®ÞÝç°µ1JÐ)

HTML ýã¯@îÑ. ç­îbH9)}Ýç°¸ÿ'Œp Ý /P

“¼\Ö¯€ÆÝ®`ȼiâ2 §&Ë"â+°-Ýç°9µ

G«èÕ݀²®­Ý»Ñ&ÆàƀýŒ¼Ý•œM¬T&&Æl

žÿŒ¼€Š1ÝÎ%‚X|&1&Æ\Ý+ŽŠ— ËÝΜ•

2.5 XML ZÄŠ5C}6

5C}63 XML ÝÑP1°§ “ well-formed ” ôµÎ }PÑ@ ¢ZŠ

ÌÿîÎ XML ZGÄÿ5¾ÕC}ýã6¾ÕýãÝZº¯ XML Š

— žÕŠ—´?%‚K†W

£‚Õ9Š§øÝ XML ZÕC}÷pxŠb|ì¿ÍæJ

2.5.1 Xb-ôKŠÑ@2nT

3 2.1 &Æ:ÕXbÝ-ô[2.2]ÑÍLæÝ9K‰£]T¿Í-ôÕ

t¡×Kºb×Í HTML ݔ@ý„.9Í-ô5nR¼6ÉA <®ï> Ø

ß </®ï>qA HTML Ýýã!bKý„»A <p>  <tr>  <td> ‡

¸Æݔ@ý„ΝbPݬ3 XML ”@ý„–KAG«X19ø

}Ý!3DÝs" XML Š— õ̀s Ì`ݐH

\ Ž › ÿ " Ý \ ï    B 3  Ý  5 £ 0 × b HTML …  <br>  <img

26 Ëw€ 2tigers.net
2.5 XML ZÄŠ5C}6

% 2.3: XML ©bÝè-ôýî°

src="foo"> 9vŠW×͎-Ýý„§‚ð6

®ÿ? 93 XML §5è-ô6 (empty element) . 9øÝ-ô/â

¢ZC/©bòPXML è-ô©½s€Ý×˱Ýî° 9ø


<-ô/>

AŒñbòPݕJ¶W
<-ô òPä="foo" òPØ="bar"/>

2.5.2 ý„ ÿøü

&Ƶ¸à5.¦Lh6Ý»ƒ'*Fb9ø×Íý„4
<h°>
<(Ì>A¢3 7-11 ç*ç„
<®ï>
</(Ì>
P(h</®ï>

9µÙÝ5ý„ ÿ8ø6ݺ * XML !XbÝ-ô4

Ä6ΐ¯ÝWϔxWϔxÝÌFE. XML Ýß&ð¥Š3¸à DOM 

XSLT[7.2] õ XPointer ¼5½×»ð=” XML Z`KmŠ `EZÝ/

I”x¡u¼ßAŒ
E£]”x (data structure) õÎ0'ÝÃF´ Žß‚

3μmŠ¶ XML vÝPݕ˜È


0` ú9]«ÝÁ

P¾• XML 27
2 XML +°r


2.5.3 XbòPKÿ‘îSr

3 HTML &ÆBþûððÝTÿàSr.&ý„ÝòP‘R¼ç°

p E9øݶ°;ðKÑ@ §ïŽ[¯9͑Srݨé?ûC

#‹µ=×°ç°s»ð ÌK9‚†ÉA Office2000 XDWÝ HTML D

9E HTML Î%‚®Þ¬JÕ XML Qº\Í XML Š— ¾Œ Ýúº

.hSrÝêY÷\òW÷?

2.5.4 ̀!

̀}PÑ@݊Oœ9î茼1€Ý©Î¿Í3Tàîtð$ÕÝ

̀ XML }PÑ@]«Ý!ε3h××Ü. 9ÍhÝêýΊ.


I

YW XML Ý‚Ί¯
œ"2
áµTà¯@îb°9]«Ý!

©b'Œ XML Š— Ý8› /ÆmŠá¼ Î×׊Õ9°fZÞ

;µ••|¶×Íh£h(ÃôŠ;§5x XML6Ý ;-

2.6 |° J

b`Î ÎC}Ȩ3ƒ'&ÆÞ! 2.1 Ý XML D|Ñ;.Ïމ

<h°> £];W
<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï>P(h</®ï>
<³‰ 0JŽ›="±¬J">120</³‰>
<³‰ 0JŽ›="±¬J">90</³‰>
</h°>

|îÝ XML D3}Pî^b®ÞÕÎ well-formed Ý XML Z


|àî–

5C}ýã6¼××J::¬×Íh!`bË͉D‚v¸àÝÎ!×Ë0

J«{bFMÄT&3Ø°)ìΝ|WñÝÉAÍ×ÍÎ$›Ý

28 Ëw€ 2tigers.net
2.6 |° J

8‰¬Î9ÎεÎç­h7BˆïTêTÝ}P÷êƒ'*F

-A¢3 7-11 ç*ç„.9ÍoÙhAŒ×ÍÏÞ®ï§5p6€ÎËÑK

¡Ý5•·®ï6(ghostwriter)P(h©Îð3£…‡[þݵ f«î£ËÍ

oÙh ;-£‚&ÆÝ XML ý„ŒA¢î÷Õ9Î

<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï ßó="2">P(h, p</®ï>
......

ε9ø

<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï>P(h, p</®ï>
......

. ®ïßó¢ã<FÝóê¯ §£]ÝPŠ›ÕŒÎ

<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï>P(h</®ï>
<®ï>p</®ï>
......

÷  œ € • 2  & Æ ¨ 3 m Š  L ×  ° J ¼ ! P ¸  & Æ Ñ 9  ° ! § DTD[8]

(Document Type Definition) ô µ Î E Ø Ë XML Z  3 } P î Ý  L  & Æ 

|3Í!5®ï69Í-ôÕ9Ν|Œ¨9gÎ3¢×Í <h°>

. . . </h°>  s©Œ¨×gb ×Í-ô‘âø°òPÒ-ô8!µ

DÝn;&Í-ôŒ¨Ý5‡Kà DTD ××z½2|Lõ!Pà DTD

LŒ¼Ý× XML Tàݼ+§5+ˆ6

|à DTD ¼@-ÍÑ@PÝ XML ZÌ® valid  b°JÝ  XML ºq

A DTD ÝL¼@- XML ZÑ@P݊— § “validating parser” ^b9Ë

݊— § “non-validating parser” 

P¾• XML 29
2 XML +°r


3¸à XML `&Æ;ðº¸à DTD B'Œ?ݨW XML +ˆÉA3Ï 1 a

X+ÛÝ MathML[1.3.1]  SMIL[1.3.2] ‡T¸àã&!¼2ºX׍ÝÝà+ˆŠ•

'Œ DTD p—´{¬ôΣ‚KC&Æ3Ï 8 aºŠÕ DTD Ý+°

XML Schema : êG W3C Ñ3@s¾X


<Ý XML Schema àÚxýã3쬝
http://www.w3.org/
º@˜ã‚ DTD?Þèº?9ݐ??ÝÎ XML Schema 2à XML
TR/xmlschema-1
+° DTD £bŠW×}ÝM²î°1 

2.7 ¶b5

XML ðŒ®Þ/ : XML ðŒ®Þ/ (FAQ) b×f®1 XML -ôòP(b^b5¶ŒnÎ


http://www.ucc.ie/
bXML 39Fîõ HTML ^Q!9Íb¶Ý¨éµ?f&®¼ÙEj(
xml
¶ÝV—×ø — XML Ñ Unix HÝ®¼Ù¶5ÿœ‚ HTML J

Windows õ MacOSj(¶PXÛ9Fš\BÆ©½¥Œ

2.8 CDATA  

3 HTML ZN &ƊܻT!îæD`&ƺ.¸wÕ<pre> . . . </pre>

T <xmp> . . . </xmp>  s3 XML Š¾Õ9øݐŠà CDATA \

®C data)CDATA Ý C Î character Cݹ¶3 XML Xb Uni-

code[3] LÝCD‘ÀZCKÕÎ)}ÝC‚«ê2 §y—ZCÒ

£‚Õ9Œ§‚¶÷š:

<![CDATA[
zccc &; ...... zzzzz

²Õ— <<<
>>>>>> ê²Õ‹
]]>
1
XML DTD Ý+°Îà#µYŠ SGML 

30 Ëw€ 2tigers.net
2.9 ×èËè!

CDATA  | <![CDATA[ R]]> âÝ s/°×‘âÝÑÎ

]]> 9ÍâÝ*r̀£]©ŠÎ)}Ý Unicode[3] CK|ŠãwHÍ

5\ 'ŒW9ø Bÿœ6

Í@9Ñθ'Œ»ú µÎŠÆŒ'ŒW9øÞPTÝý03Õt

±&Æ: HTML Ý <pre> . . . </pre>  sµœì3” Ý </pre> GÄ6

Š `¥Œ.XbÝ < Ðr5®ñ6 &lt; ÍJp b.9° < r0

WÎ×ͱý„Ý‚®ßŒÕÝ¡Œ XML ƌ'ŒŒ ]]> 9ËH

3^ðZŒ¨ÝÐr4¯&Æ3¶ CDATA  `]-KàB9Íê

£ÍÝ

&Æ3G«Ï 2.7 ;â—ÄXML Š 5¶.h <![CDATA[ ¶

<![cdata[ T <![Cdata[ 

µýã!Œ¨3 CDATA  Ý£]Š— 3Š—`&B$‚ŠæŠ

›×"×è2ø›ì*ÝP}Ý—µ=¢3 sRõ” Ýèç

ð•C-ôP°¹šf´
<![CDATA[&ΠsÝÏו
&ÎÏޕ
]]>

õ
<![CDATA[
&¨3^Õ sÝÏÞ•Ý :-(
&^ÕÏë•Ý
]]>

:ÿŒÍÝ!Ï”¡AŒ
3ZÝNÍ CDATA  G9×Íè•

ݕÉAbYÌî݁JT2à|îÏ×˶°

2.9 ×èËè!

3D¡ XML EèçC-Ý §V—G&Æt?E5èçC-6®€@Ý E

P¾• XML 31
2 XML +°r


LXML .èçC-L space tab CR õ LF 9°ÍE space õ tab

mŠ9¾•Ká¼9Ë"¬ CR/LF JŠ}1€×ì

CR ‚ Carriage ReturnÎÆC^`‚öºì¼ÝÌñ9Í ASCII C-;ð

Î2ݸΠMacOS ¿¬îÝð•BrLF Î Line Feed ݹ¶Î Unix îÝð

•BrDOS/Windows ¿¬J¸à×Í CR¡å#½×Í LF ¼ýîð•

îèÕ CDATA  Eèçõð•C-ð§9Ν|§ŠÝ£‚3

CDATA  |²ÉA3 <-ô> . . . </-ô> ÝZC/÷

3 HTML ZC/|5×è65Ëè6#‹5ë=è659=

è6Œ¼Ý”ŒKº×ø. Ñ=b¿ÍèçןK WÎ×Í9Î.

HTML ýã : HTML ýã9ø!


http://www.w3.org/
¬Î XML Ñ?8DXML !Xb›yý„|²Ýè犗 Š×ÍÍD
TR/REC-html40
@2ø›ì*P®
×M §. 9ͧ×&ÆÄ6;Ž&ƶPÝêY

3¶ HTML ý¥Z`KßbÊ`ð•#‹¹4 (indent) Ý?êY¯æD

z½|\9óç°s Ì#‹º&Æ® “pretty-print”µZݐìÚ

xõý„Œ¨Ý›H®y!ݹ4. ¬3 XML AŒ.


<®ï> </®ï>

¶W
<®ï>

</®ï>

ÞïÎ×øÝ. ¡ï9Ý×Í tab C-56CGݹ4õËÍð•B

r5½3 <®ï> C5 6C¡AŒ.î«Ï×˶°Ý5 6G¡&

î×Íèç.ZCõý„âÿ×FÇ
<®ï>  </®ï>

£‚Š— parse Œ¼ÝêºÎ¨×˔Œ

5 %‚Š9ø! HTML £ø!Μ?[6

32 Ëw€ 2tigers.net
2.10 PI ø!#”

9Î. ÊÕbÝ XML ZmŠ1ºèçC-ÉAÞ×vÝ/è

çKbÍD3݉ÂC©½ŒL

AŒ&Ə€@2×å XML PŠ -.èçœ*‚Š³¥æ½ÝÞߝ

|3ý„á xml:space 9Í XML /ÝòP 9ø

<­ xml:space="preserve" >


$r« $r
×w$r
</­>

AŒ&Əь¯\ï:Õ9øÞ Þ§Ý­4ݕ ;-)

2.10 PI ø!#”

XML b×Ëý¥§ PIÎ Processing Instruction ݹ¶ PI Ýý¥Î| “<?” B

“?>” ” XML …×[2.1] b`ß WÎ×Í PI Ý©»¬}ýR¼

Î;ð PI Îà¼FL ›Š— ì*ÝPÝÉA&Əàø![1.2] (style

sheet) ¼Y;! 2.1 Ý&Ê XML DÑÎà CSS[4.1] T XSL[7.1]KÄ6bÍ^

ׯp ἊÕøɜ0ø! hW3C ©½ó¾Ý×ÍÝ =”ø!X'

ŒÝ PI¶° 

<?xml version="1.0" ?>


<?xml-stylesheet href="style.css" type="text/css" ?>

“xsl-stylesheet” 9I5Ì® PI Ý êý (target) |îÝ PI Îà¼×åp

œ8×ͧ style.css Ý CSS jAŒŠ=” XSL ø!µ¶W

<?xml-stylesheet href="style.xsl" type="text/xsl" ?>

9 #”ø!Ýý㝊 http://www.w3.org/TR/xml-stylesheet ìµ

P¾• XML 33
2 XML +°r


2.11 ¢œ¢

.Ý XML ÝÃÍ+°AŒ


E'Œ DTD ©½Ž·¶Ý•|ùB7W±Ý`

ήÕÏ 8 aå\

34 Ëw€ 2tigers.net
3 Unicode 15€

3.1 Unicode +

Unicode Ù×D)(¤LÎ×ÍÞt&î¿èËóBÝZC_DJ)3×RÝÄ

æÍK¡ÎãY»&é\äXàWÝ Unicode ˆ
º¼.›êÝ3.Â×Í Unicode ˆ
º :
http://www.
t&;•Ý_D›×ÞXbt&îðàÝZCKˆ
œ
‚3K&é\¤s»
unicode.org/
²½`XÍÂÕÝ®ÞE&Æ9°ðmŠ3&ËZCD ®»ðÝç­ß1

Ύ!–å

݊ÞWûî0ÝZCÙÙ[/Õ×Í;Ý_D^×9ì3×)BzÝæJ

ìÑ΋]T—]ZCNÍC3 Unicode ן|ËÍ bytes ¼‚9ø×

¼µ‹Kb 216 = 65536 Ë!Ýà)1 •|T}êG–9ó)ÝmŠ

3 Unicode 8nÝ&*Z&Æðº:Õ ISO 10646 õ UCS 9ËÍ

(ÞISO ΛyÿÝ»jýã ݹ¶¸Xó¾ÝÏ 10646 rý㧠UCS

(Universal Character Set)ôµÎt&;àC/|ìÌ5 ;àC/ 6UCS

;àC/݆°Îà°Í bytes ¼_DÞt&îXb¢ õ¤àÝ_D;

*×çƼÂÿÈ5ÝÎUnicode ˆ
ºŠ 1991 O|¼-õ ISO Ý UCS à

Û6g)¯ Unicode õ ISO 10646 1¹×l.h Unicode Š 2.0 Ì-

õ ISO10646-1 ¸à8!ÝC0õCD

ô¦C΅ÝZCµb°0ÚAŒî…«^bݍ›Cõ×°‰

¶°!Ý^ZC£‚ Unicode 009CÝ5gè  à¼_“CµRDŒ


1
&15‹K6Î. Unicode 2àÝ×Ë^ם|T}μ_Dè à¼Ý®Þ}¡ºè
Õ

35
3 Unicode 15€

Qò¸àøbõ2›ŒZZ°Z‡¿èË̀ZC¸àjE9Í®

ÞUnicode õ UCS 2àÝXÛÝ5^8ZJ)6(CJK Unification) ݊X

]n.^8Z‰«Ý“C|×͎D¼‚»A'C3Ã

›Z…ŠÕW°ËÍèC¬3›ZC^Z©bë ׉U

/Unicode E¯9ˊÝ-½Xbñb°'ÝCŽ}'×Í

D¬ÎAŒ×ÍC3Û-½f´•½ºE¸àïCWZŒ§ŠîÝ

æpT-`Unicode º ÃËËÌÍͽ_D»AŽC^3ÛÎÚ

¬3›©bË×F×G9XbñŽC^ÝC3 Unicode K&b

ËÍ!ÝCD¼‚׍×Ã

B Ä 5  ^ 8 Z J ) 6 Ý “ C  3 Unicode  Ì † UnihanٓC  3

Unicode 2.1 C 3.0 ýãbÞ09ÍٓCٓC¬‘â^ðßþ€ŒÝ

“CAô¦CÎÝ&9žC

Big5 ðŒÝ5n6Cè0
×D 0xF9D8.
A ¥Œ
^b[3 Unicode (2.1, 3.0) Ýýã.h˜È

Big5 õ Unicode 8!»ðG.9ÍîìÝ5n6ð

W¼ŸÝ5…6ÍJ5n6CºŽW “?”Ç ASCII Ý

®r9Î Unicode Ý!0ÕÑ@ETÝC×

ŸðW®r

JÝ Unicode 3.0t±ÌٓC£]0Š ftp://ftp.unicode.org/

Public/UNIDATA/Unihan.txt 쵊Ê×
ÝÎ9Í database &ð

ø Ä 16Mb  ¢  U € Æ ¢   D ¹ × ì   Í   ¬ ‘ â Ý Unicode õ

Big5CNSGB2312-80GB2312-12345SJIS . . . ‡8!ÝET?=¬Èé D

ô¦CÎݛH‡KÞ2[3…«t݊¶ Unicode PÝ\ï²×\

36 Ëw€ 2tigers.net
3.2 CÒ»Y

ïmŠìµ9Í database

3.2 CÒ»Y

3&ÆE Unicode h™ã-ߗ×jG&.¿ÍðŒÝÝb(ÞCÌF†

ÍhûõJ§9øݕ\ïÆ3å\Õ¡«Ýa;`f´ºZ´]'#‹

Þì×;5”||Ý;6Jð®Ä\AŒ
E9ìI5B–:ÿbFáX

½HT©ŠÃ:×ìbÍÃFǝ

UTF Î Unicode/UCS Transformation Format ;àC/œÙ×DŽð}Pݹ

¶Unicode ˆ
º.¦¸àÝÎ UTF-8 õ UTF-16 9ËË}PÍÝ “8”

õ “16” ¼ÝÎ bits ó‚Î bytes 2 

UTF-16 ÃÍîµÎ Unicode Ô byte _DÝ@¨î×ÍT}μU†m

OÝ_D^לKà쫺—Õ

UTF-8 Îס»Ý_D]P3 UTF-8 ìzóCÇ ASCII C-1¹

æÏåÅ(.hmŠ†»ð¬Í€+ZÝ£]JmDÄ

P¼†»ð‚vº5Ž`6. NÍCmŠÜ²9à×TÞÍ bytes ¼

_D

UCS ;àC/b UCS-2 õ UCS-4 ‡_D]PÍÝ “2” õ “4” ¼ÝÎ

bytes ó‚Î bits Eï UTF-8/16£9ËÍêõîÝ UTF-8/16 b

¢!÷Í@-½

UCS-2 ›îµÎ Unicode 2àÝÔ byte _D|Ž2.¸ÆWÎ×

ø݋—à hJH9\Ž
2
×Í byte ã 8 Í bits XàW8*K©ß

P¾• XML 37
3 Unicode 15€

UCS-4 Î|°Í bytes ¼‚×ÍCÝ_D]PµêG‚Ž3NÍ UCS-2

DG‚îËÍèçÝ bytes-ÿÕ8ETÝ UCS-4 D

Ý]-ÞZ»ð UTF-8 }P&¶Ý×Í»D


T ? Ì
̧ ccnv (enCoding CoNVerter)9Í ÌÊ)

J¼® UTF-8 õt&î¿èË_D Ý»ðtÝ©

‘Ν|×gE×Íê9ìXbÝjn®M¼»ð9

Î×ÍPD2ݹðP| Java ¶WêG©b¼

ƒ&«|Ëw€ ìµ/! Big5 õ GB ZÝ

H„]°õ¸à1€3hµ¥«ìµF http:

//2tigers.net/runpc/xml/runpc_xml_2.html

h ²  b × Í   ´ 9  ¬  Î ¹ ð Ý UTF-8 » ð

Ì  § uniconv  b Ž à Ì ì µ  http://rosette.

basistech.com/demo.html

XML1.0 ýã : XML1.0 ýã!XML Š— ‹K6Yî| UTF-8 T UTF-16 _DÝ Unicode


http://www.w3.org/
C™‚ XML …×^b©½¼€_D encoding `Jן| Unicode :
TR/REC-xml
8›ºŠ›Œ?ŒZÎ UTF-8 T UTF-16 êG½«î¿†ÿýÝ XML Š—

¬Ð)ýã!Yî UTF-8/16?Yî Big5GB ‡±öZCD9E&Æ

¼1@@]-99

XML ýã©€Š— [2.4] Ä6Yî UTF-8/16 ‚rOÈ_D]PA

Big5 ‡èºYîÎbͼ§Ý. 3 UTF-8/16 õ&Ë»2 PÝ_DA

Big5/GB2312/SJIS  †»ðΜ|ݯ×ËØÍ8›Yî UTF-8/16 ¬¬à

#Yî Big5GB&Æ3£]íáTíŒ`©Šg)×¼ UTF-8 ↔ Big5/GB Ý»ð

›®ÇîèºÝ ccnv »D ̝| îàØ°µì#‹mŠÑŒ

38 Ëw€ 2tigers.net
3.3 ”||ÝÞ;

†CD»ðÉA perl ÝXML::Parser ÿà4Q©íŒ UTF-8¬#å Big5 Ý XML::Parser :


http://www.cpan.
íáêA NetscapeIE ‡p à#Ó¨ UTF-8 }PÝZ.h íŒÝ£
org/authors/id/C/
]ÎÆ՛p œ\ݕµ×Š»ðt&b̀‚©Š3ZÝ CO/COOPERCL/

…×Ñ@ۀÎà UTF-8 ǝ

ö8ÝÎI5 XML Š— õKTà8›3 P°Ñ@ § UTF-8 _DÝC™

T&€Æõ`HT±ö½Ï %‚39…Š©½úŸ UTF-8 . 9Ît

RDÝ — AŒØ XML 8›= UTF-8/16 _DÝ£]KP°Ñ@ §£‚¸Yî Big5

GB2312 ZÝ^£©N?>!Ý &Æ;¸â UTF-8/Big5/GB DÝ£]`

;𺪛×ð(ÍúÝý0G>ŠµÎ×À®rTP°ï]ݔŒ®ï

ÑzZTݛ™

3 UTF-8 õ&ÆYàÝ Big5/GB  †»ðÑ]-¬‹K¸†5YîZ

Cð­•1AŒØ8›Ñ@Yî UTF-8¸PµE&ÆbœÝ¿à‰Â

9ôÑÎ XML ýãú×!Š— ŠYî UTF-8 ÝÞßX3

3.3 ”||ÝÞ;

&¢9Í^º.« Unicode 8nÝ&Í¥ŠÌF39ì׿ŠÕz½T

E XML ݸàïۋy¶»DPT. Java +ŽÝ\ï‡KbXÃÇ


-
. XML ݛ^©ÎÃy?TÞG§y¸à¨WÝ ÌH

à#õPDÆø¼£‚î«XèºÝÃÍÃFT&µB•àݹ#Ç9ì

”||ÝI*Þ;QÃ3K´ÌÁ‡§Ï¬ÎAŒ
¿ðô¶×FP

‚vÆՆ&Ë XML ÝsTàݕ£‚˜È


.¸\T:LÍÎ UTF-8 _

Dæ§ÝI5&𥊯@î9ìÞ+ÛÝáIJÕ&9̀Ýr½…ô×øå

à Java +ŽWindows NT4 Š8 Office 8›‡K2Ã¥Õ Unicode


3
ôµÎG«èÄÝEŠ— íŒÝ£]†
×M¿àÝì*8›
4
9ôµÎ %‚b°âZCÝ Java 8›3 NT ì|Ñ@•î¬JÕ Win95/98 Ý

P¾• XML 39
3 Unicode 15€

ó¸†/D

3.3.1 Unicode Ýè 5g

|ì& Unicode  ›D/|è0


×î

Œ²Unicode Ý 256 ÍCÐõ ISO 8859-1 Ç7ÌÝ Latin-1 —CÒ

8!ÍG–ðµÎ ASCII9ðÎ U+0000 Õ U+00FF  QNÍ ISO

8859-1 DÄ63G«‚î×Íè byte (0x00) ¡Î8EÝ Unicode D

õ & Æ b 6 – n ; Ý Unihan Ù “ C  3 Unicode  x Š 5 ¾ 3 U+3400 Õ

U+9FFF  h² U+F900 õ U+FAFF  ôb×°¯@î Big5 õ GB2312

ݓCõÐrK3U+4E00 Õ U+9FFF 9s…«

3.3.2 UTF-8 Ý_Dæ§õ©P

á¼Ý—CÒõ“C3 Unicode Ý ›¡&Ɲ|— UTF-8 3!% 3.1

 N×Í]s‚×Í bit ä‘]sX‚ݛ- — 0 T 1 — ÎiiŽ

Ý ‘]sX‚Ý&Í茼ݛ-JJ¼Dw Unicode /D×N]s

âÍ‚×Í byte UTF-8 bë˝Ý4]P&ŠmŠàÕ×ÞT

ëÍ bytesX|1¸Î‡»NÍ Unicode Cж¸3ýã5ÕÝD›

¼X9ÍCÐ3»ðW UTF-8 `Œàø×Ë4]P|¿Í bytes ¼_4&Æ

3%¼]|:Õ3 U+0000 õ U+007F  ÝCÐÇXb ASCII DÎ|

Ï×Ë]PŽ byte ¼î¬. Ï×ËPÝÏ×Í bit Î 0X| ASCII D

 0x00 Õ 0x7FqÍmŠ»ðµŠQÎ8EÝ UTF-8 DDļ1©Š

ÎASCII 3 UTF-8 µ×mŠËÍ|îÝ bytes ¼_D

Unicode a3 U+0080 – U+07FF Pš ÝCÐJ|ÏÞËP¼ýî‹y

Xb̀yì¼ÝCБÀXbÝZCJן|ÏëËP¼_4
|Š

40 Ëw€ 2tigers.net
3.3 ”||ÝÞ;

% 3.1: UTF-8 Ý_Dæ§

Õ×Õ: UTF-8 ÝëËP&ŠèºÝŠã bits  ‘]sóÎ͕|à

¼‚ET ›Ý& Unicode DŒnÎâ?Èà

£‚ P3 § UTF-8 _DÝZ`ŠA¢ÿá×ÍCÐÝ&a3ø…

bÕ9¸Î|ëËPÝø×ˌ¨Ý÷9µÎ% 3.1 £°ä‘]sÝ®à

ÝNÍ| UTF-8 _DÝCÐÑÎ|×ÞTëÍ bytes ÝPŒ¨Ï×Í

byte ÝGÐKz½2ýî݌CÐÝ byte ÀóÉA 110 bËÍ 1 ǂ9Í

CÐÎ|ÏÞËPŒ¨ãËÍ bytes àW‚ 1110 bëÍ 1²îÝ9ÍC

ªàëÍ bytes 

NÍ9¥ byte Ý UTF-8 Db×Í;Ý©PÇÍÏÞõÏëÍ bytes ן

| 10 9ËÍ bits RãyÍt{Ý bits5 ÀÎ'W 1|œ|õ£°3 UTF-8

©àÕ×Í byte Ý ASCII C-5½¼]-Œý

. î–Ý'Œ©FUTF-8 õ Unicode  |œD|2†Ô'Šã»ð‚


5
êÌ5t¥ŠÝ bits6zZ1 “most significant bits” 

P¾• XML 41
3 Unicode 15€

ºø´¢£]¯@î9ÎXb UTF Žð}PXÄ6”•ÝÃÍ©P¾Õ9

͊Oݎð}P-^£}§ UTF

3.3.3 UTF-8 Ý8F

¨*9é\Ù)Î| byte Ž-¼†DãAŒà#| UTF-16 Ô byte¼

Dã£]º®ß&9®Þ.Ä C Ý\ïKá¼ 0x00 9ÍC-Îb©„®àõ

ŒLÝ‚î«âýÕ UTF-16 Ý 256 ÍCDÝÏ×Í byte œ»2ÑÎ

0x00 ÏÞÍ byte JÎ8EÝ iso8859-1 CD.hAŒà UTF-16 ¼îj(

ç뇺‘Œ&9®Þ‚v©Î 0x00̀b¿Í©„C-ôKõ&

9¨•Ý®¼ÙÐP (libraries) ‡8Ž

h²UTF-16 C&9±ö2 ¨•ÝÔ byte _D]P3Tàîb°FÝþ

\ÉACC Ý&?0P3 §`Ä6+àÑ@ê20

ŒØÍCÝ&þz[£h²8*Kb9øÝB™b`ÎZZØÍ

2]ýl×Í byte `Xb39Íäý¡ÝZCKºû*×àûÕìÍzó

CTèçC-Œ¨ c

|î9°®Þ3 UTF-8 KD3Š0CCÝ&œ|©Š:êG9Í

byte Ý¿Í bits :Î 0 110 1110 Î 10 -œ"20Õ¨39ÍC

Ý&AŒÂÕû*ÝCôºrq¡×ÇCUnicode ýã!`b€Z

! UTF-8 }PÝZb)§Ýà)Œ¨`Œ§‚ H»A$ÕÏ×Í

byte Î| 1110 R¬ì×Í byte Q| 0 ‚ÎÑ@Ý 10 R

3.3.4 UTF-8 ÝþF

ào׏µá¼9óZC3 UTF-8 ìKºµªLÍÎ^8Z3t¶

ݵìÇJSZa⢗Z`ºŽWæ¼Ý 150% E&Ƽ1Ý@b

Fé

42 Ëw€ 2tigers.net
3.3 ”||ÝÞ;

¬¨×͍—¼:AŒ;à UTF-16 ¼†ZCDüQº¦±öZCXªÝ

è KÎËÍ bytes ¬E—Z¼1Q‡y¯XbÝZן¹9f

µª×¹–\

&Æ'– 2ì3€ÆÝñ¼ôpM&9—]t&Ý8›¼ïõP'Œ/

E Unicode ·¶þþLÍÎ3Ĝ B7›õ{É}^ ËO9‚-!Ý`

Î

bÝ UTF-8 ó¾9ÝzZZm¢»ðµŠQÐ) UTF-89E'zZ

t&Ý8› ®ï2Ù Unicode bœÝQñb *ç­î9óéZK

ÎzZ

.h¯ Unicode 3t&î">.ÂÝÌF¼:UTF-8 ´ ×͝•

Ý5=]n¸Ý8F«{ÄyþF

3.3.5 UTF-16 ݂§E

îèÕISO 10646/UCS ¸à°Í bytes ¼_D.hŠT}μÝU†mO

1ââbõ8E2Unicode ©àËÍ bytes¬è œ|༂vAŒŠ

3μµõ ISO 10646/UCS 1¹È;TÄmŠ×Ë^×¼R‚ËÍ bytes Ý

• ‚§E (surrogate pairs) Ý'Œ-39ÍeÿìTº‚ß

Unicode ÞPš3 U+D800 Õ U+DFFF  Ý ½1º›‚§E¸à9Í ½ê

t5WËI5̆5{±I6Ï×I5{IÎ U+D800 Õ U+DBFF ÏÞ

I5±IJyìÝ U+DC00 Õ U+DFFF{±ËI&b 1024 ÍD›.hDÄ

9Í^×Unicode -9û×y90ÍC (1024 × 1024) Q9°à‚§E^

×¼_DÝCÄ69à×Í Unicode ÝÃ͎-X|§‚§EôµÎ׊

°Í bytesf´Bz

‚§EÝ_D^×õæmŠ¸à‚§EÝ00ëû9ÍÃÍ Unicode D)

R¼§ UTF-16

P¾• XML 43
3 Unicode 15€


T&ºMÉQ‚§EÎ'Œ¼T}μCóU†ÝmŠ£ %‚¯{

±ËIÝ ›¥PôµÎ¯ËIK†5¸à U+D800 Õ U+DFFF 9Js1º 

½ %‚Š â. 9‚×¼CÝ&œ|ßé!`3P{ — Ǹb×

ËÍ bytes ýlôº¡««½i

3¨•Ý Unicode ýã2.1 õ 3.0 ̬^b›àՂ§E¼_C#ì¼

¿O/ÃôºàÕ. ‚§E|²Ý009 ›B•|T}*^9ó

)ÝmŠÑAh&Ɲ|¿àÍÝ{à 9Îì×;ÝxÞ

3.3.6 {à 

Unicode 1ºÝës{à ¶PÝߝ|J¼ŠãºàÍËs3‚§E

Ý ½6g)‚§EÝ_D]PÇ UTF-16¼¸àAŒ&ÆÝPmŠàÕ

Unicode ^b[ݞCT©„Ðrµ|¿à{à ¼£°CІ_D

Unicode Ï×s{à  U+E000 Õ U+F8FF 6,400 Í ›‚§EÝ

{à J‘À 0xF0000 -- 0xFFFFD õ 0x100000 -- 0x10FFFDVèë0Í 

›

44 Ëw€ 2tigers.net
4 XML ;õ

4.1 CSS á

ny XML + DOM + CSS |C XML + CSS + Zý„3p îÝTà@»š

õ`¢&3 Run!PC \ݠÝ» http://2tigers.net/runpc/

xml/runpc_xml_3.html

h²&3Ï 70 1999 O 11 ` Ý Run!PC Ó*b×S DOM õ CSS Ý Run!PC Ó* :


http://www.runpc.
á¼Sb·¶Ý\
com.tw

4.1.1 óCP (selector)



45
4 XML ;õ

46 Ëw€ 2tigers.net
5 (Ìè

(Ìè (namespace) ÝÃFE XML &ð¥ŠAŒKݸXML ÝTàPšº

2åÕ§×AŒ
ºà Perl T Java £‚
œB3¸à(Ìè ‚

ŠáÝ1 

(Ìè Ý!¬^b[3 XML 1.0 Ýýã‚ÎDÄ¡¼× Ž}Ýýã XML 1.0 Ýýã :


http://www.w3.org/
¼†¦‚9 ýãÝ(§ “Namespaces in XML” 
TR/REC-xml
Namespaces in XML :
http://www.w3.org/
5.1 %‚mŠ(Ìè TR/REC-xml-names

ƒ'&ÆbÍ XML Ýé;GÝà¼DwˆV£]Bµ¿^¼?Ý2¥ˆ

V
<ˆV(Ž>
<ˆV> <!-- ˆVä -->
<(Ì>±Æs</(Ì>
<2ë>...</2ë>
<é•>...</é•>
<fax>...</fax>
......
</ˆV>
<ˆV> <!-- ˆVØ -->
......
</ˆV(Ž>

Äb°ˆVμ™Ýõñ
¼Ý;ð3õ9°ˆVÝ=š]«KÎDÄ&

.ݼ™Ýõ‹y¼™ÝõÝ=šé•email ‡KÞB32¥Ý¨× XML

Z — 5õ (Ž6
1
39ËÍ+Ž(Ìè ÎDÄ package ¼@¨Ý

47
5 (Ìè

<õ (Ž>
<õ > <!-- õ ä -->
<(>...</(>
<I>¼™I</I>
<™›>Ýõ</™›>
<`Þ>36000<`Þ>
<é•>
<5^>...</5^>
<î>...</î>
</é•>
<email>...</email>
<fax>...</fax>
......
</õ >

Ý=š]-&Ə3 <ˆV(Ž> ¦×4 <=šß> à¼Dw¼™Ýõ

Ý£]9ø &Ɗ=šãÝõ¼.݈V`-|yîἌ0ø›ÝõÆ

øÍé•‹y¼™ÝõÝ=š£]J|à# <õ (Ž> ³ãð­•1

µÎ. <õ (Ž> ÝI5£]õ <ˆV(Ž> ”) 3×R 9ø

<ˆV(Ž>
<ˆV> <!-- ˆVä -->
<(Ì>±Æs</(Ì>
<2ë>...</2ë>
<é•>...</é•>
......
<=šß>
<(>...</(>
<é•>
<5^>...</5^>
<î>...</î>
</é•>
......
</=šß>
......

‡‡ 5é•69Í-ô[2.2]¥¸àÝ ð­•15ˆV(Ž6õ5õ (Ž6

9Ë XML +ˆ[p.29]AŒwÕ×sàºÆÚ4QEß\¼1¢½5—îìZ

|œ|ÞË͌ !Ý <é•>  ½¬Eé\P¼1:NµŒÿ£‚

|Ý.h39˵ì&ÆmŠÝÎ׍Ž€¡Ýð°¯^ 3 §Ý`

48 Ëw€ 2tigers.net
5.1 %‚mŠ(Ìè

ÎàJ\ŽǸ^b¢(ÌîݎM&Æ)mŠ×͍ŽÝ]°¯é

\á¼ø°-ô¼ŠyøÍ+ˆ|-¸àŒ+ˆÝ DTD[8] ¼@-Z”xÝÑ@

P

bÝ\ïBÕ×͝•Ýð°Ý£µÎ. <ˆV> 9ì×°HÄTÙ

Ý-ô( 5(Ì652ë65é•6‡ןCî5ˆV6ËCôµÎ.

¸Æ5½;W5ˆV(Ì65ˆV2ë65ˆVé•6.(ÝÞ@×Fh

² <õ (Ž> Ý×°-ô(ô|ïðÉA5(6õ5é•6|5½;

5õ (6õ5õ é•69øµ|ª±(̎MÝ^£Ý

9Ý@Î͝•Ýð°Ä9‚†Ä6?› DTD …ÝL¬ŒÿXbÝ DTD

KÎã&ÆÏW'ŒÝ2 Î1;µ;µÕË;Ý&ƵP°@1*¡º

ÂÕ̀²¼Ý!(-ô

(Ìè Ý'Œ-39øÝeÿìTº‚߸ÝÃF&ðà# — AŒN

XML +ˆ[p.29]K&Šà×Í}×PÞÝý*¼‚¬v3¸à`.9Íý*õ+

ˆÝ-ôòP(=3×sɸൖEºõ̀+ˆ4zÝ. NÍ+ˆ

Ý(ÌKBŒ+ˆÝ}©ýîD›Ñø§ (qualify) œÝÍ@9͊

X]nõî«èÕÑ;ý„(Ì݆°b°v« â&ÆÎ.5ˆV6Þ

C3ŒLâWÝ(ÌA52ë65é•6G¯5ˆV(Ž69Í+ˆ…Ý-

ô(Žÿf´}©
‚3Kõ̀+ˆRŽMÝ^º‚(Ìè ݆°Jί_

¶ XML ZÝßZXàÕÝ+ˆŠ•¼ýîD

×Í}©ÝýîD‚×+ˆ&+ˆÝ(Ì.‚&ÿÍXbŠ Ý

þ›è 5(Ìè 6Ýú(ÑÎãh‚¼

2
¯@îµ 8›×ø9óߺœ$ DTD 'ŒÝ‹—‚ºà#¿à¨WÝ DTD XLŒ¼Ý
+ˆÉAã×Í!¼ º×Œ¼Ý

P¾• XML 49
5 (Ìè

5.2 (Ìè Ý

eƼ:: XML Õ9óà%‚¼†(Ìè ÝýîD

5.2.1 ýîÎ

î«BèÕýî‚Dt¥ŠÝ©PΊ}×PÞ9|¢ãœ9Ë]P¼¾

ÕÉAêG Internet îÝç½(-Î}©Ý “2T.com” ß«×Mۉ

”Ý :-/&µåš×øÝ(‚©ÿ;à “2Ti.com” ۉüQÎ×Ë]

°¬&ƏAŒ XML (Ìè ôŠûï DNS ½(Ù£øãÝ.^x¼5

gѧ£¬ºŽÿœÓ‚vºœ^[£¸àGÿۉ#‹ÿ}ð

¢?=ʽ«?(ÝBéKº¥‰ ;-)

XML 2àÝ×Íπ-Ý]°¼¼(Ìè ÉQç½(BÎ}©Ý£

¢à#¿à.Á˜3¸îàç뼂(Ìè ÷3 aŒ9aHÁ

HŒQÎ{ 9ø×¼.-5. 6›&2¥^n¼.. &^nEw

3Š ç½9ìÝçëTŒbÝxJX|×6(Ìè ýîDݼ ®

µÙÙø›_¶ XML ZÝß¼X

‹yçëÝóC®Þ4Q(Ìè ÝæêÝ©Îà¼E× Z!Ý

+ˆ| â¼øÍçëŒÿc¥Š©Š â¼µ?XàÝçë#

‹mŠD3 ¬3hΘÈ
òW?êY — h&ÆÝç½3^Çÿß

.&GŠB5Ãà6ÉAJ W3C T̀á(2¥Ýç½(¼9_×Íç

뛊 'ŒÝ+ˆ (Ìè àµΜ?݆°4 KTŒ©àòyŠ

homepage 9ìÝçë

3
Java Ý(Ìè ôÎàv«Ý]°à#Úx3 DNS ½(î
4
‰ïÝ@ŒÄbß9‚†

50 Ëw€ 2tigers.net
5.2 (Ìè Ý

% 5.1: URL  URN õ URI Ýn;

5.2.2 URL  URN  URI — ½¢ZWÝ

&ÆYÌÝ5çë6lîÎ8 y URL Í@(Ìè Ý!àÝÎ URI ¬

ݯ\ï|§Š&ь3î¸àf´!Ý5çë6×ÞURI (§

Uniform Resource Identifier Ù×£ÙýîD9Î×Í Internet ýãBµy

RFC 2396‹y×ß´ !áÝ URL ×ÞJÎ Uniform Resource Locator Ù RFC 2396 :
http://www.ietf.
×£Ù›Dݹ¶£ URL õ URI tÝ(²bˆ!÷š:% 5.1 
org/rfc/rfc2396.
Ý/)n;ÃÍîURI f´ÂL ½¼Xb|C™ýîÝç­£ÙPšˆÝ txt

URL õ URNURL ¼ÝÎýb;*ÜA HTTP  FTP  GOPHERÝC™5  URN

(Uniform Resource Name) J;ðà¼ýî¹ò6 ‚vbÝ.^x.Ý£ÙÉA

%h Ý%hÀê

39Íh5çë6×Þàÿf´ê÷‚ URL ô¼ URI 

5
b.®Ý1° 5€@ýÙÝãÿH5CѼ݂D6
6
çìç°Ý.ú8f

P¾• XML 51
5 (Ìè

5.2.3 (Ìè @»

3D¡(Ìè ݅×]PGš
®Í5W`ï6

<?xml version="1.0" encoding="UTF-8"?>


<k:ˆV(Ž xmlns:k="http://foo.bar.com/xml/customer.dtd"
xmlns:õ ="http://foo.bar.com/xml/employee.dtd"> A
<k:ˆV> <!-- ˆVä -->
<k:(Ì>±Æs</k:(Ì>
<k:2ë>...</k:2ë>
<k:é•>...</k:é•>
......
<k:=šß>
<õ :(>...</õ :(> B
<õ :é•>
<õ :5^>...</õ :5^>
<õ :î>...</õ :î>
</õ :é•>
<õ :email>...</õ :email>
</k:=šß>
</k:ˆV>
<!-- ˆVØ -->
<ˆV xmlns="http://foo.bar.com/xml/customer.dtd"> C
<(Ì>!$Ä</(Ì>
<2ë>...</2ë>
<é•>...</é•>
<fax>...</fax>
<=šß>
<õ :(>...</õ :(>
<é• xmlns="http://foo.bar.com/xml/employee.dtd">
<5^>...</5^> D
<î>...</î>
</é•>
<õ :email>...</õ :email>
</=šß>
</ˆV>
</k:ˆV(Ž>

A!î«Ý»3ý¥(Ìè Ý XML Z


º:Õ×°-ôòP([2.2]

ÎàAr.ËÍ(=3×RÝ

52 Ëw€ 2tigers.net
5.3 (Ìè ݅×

5.3 (Ìè ݅×

5.3.1 GHC™

&ÆBá¼(Ìè Ýæ§Î¢½5}©ýîD+(Ì6Ý]P¯NÍ XML +ˆ A

Ý-ôòP(KbŠ ÝF2‚ºõ̀+ˆÝ(!«28ð­•

1CîÝýîDNÍ(µŽÿ}×PÞ


B×\8×\3®Ý5î«Î1ÕXML óà URI ¼†}©Ýý

îD[Î×Ý URI çëKËÝAŒà#J¼w3-ôòP(G¸à

ÎÎH3ÝFAŒà͍y݂r¼‚ URI µ?Ý6

Ñ@ URI ¬H‚v…«??âb×° XML +°!Ýà®-ôò

P(ÝC-ÉAçë×KbÝ “/” .h¸à‚rGÎ Ý-¿?ÎT3

ĕ9ø݂r3(Ìè Ýýã§5 GHC™ 6(namespace prefix)ã_

ì XML ZÝߊã¼GHC™©âb XML ýã.&®òP(ÝC9‘À

ÝzZCÒõXb[3 Unicode[3] ݓCbXML ýã.Xb| “xml” 9

ëÍCÒÝGHC™1º®©„àHX|¸àÝGHC™&à9ëÍC

Ò¼RÑÎ “xml”  “XML”  “xMl” . . . %‚øݶà)K|

àGHC™¼‚(Ìè Ý ý î ç ë  µ ? f & Æ à Unix î Ý symlinks 

Windows 9ìÝ shortcuts $5T MacOS …Ý aliases ¼‚jn­5×ø

©Šsì¼'ݐµ?ã®%‚(CÅÎÍgu΍y¾Œ QÎt?

9øÉ]-h¶ê¿yå\¯@îXML 8›3 §ZGºÞXbGH

C™æW¸ÆX‚Ý URI

£GHC™õ¸X‚Ý(Ìè ŠDÄ%‚ø݅×]P.¸Æ

nÐ3×R÷9ÿDÄ×Ë©½ÝòP¼¾W — 9vòPÝòP(ן|

“xmlns:GHC™” ÝPŒ¨7 ‚òPÂJÑΌGHC™XŠ‚Ý(Ìè 


7
xmlns Ý ns Î NameSpace ݹ¶

P¾• XML 53
5 (Ìè

ôµÎ×Í URI òP(Ý xmlns õGHC™ Ä6|zZÝAr (:) 8=.

ArBó®5âBrb©„ݐàX|GHC™|àAr×ÍJ

Ý(Ìè …×3× XML Z¶R¼µ 9ø


<?xml version="1.0" encoding="UTF-8" ?>
......
<Ø-ô xmlns:ØGHC™="http://some.uri.com/some/namespace" >
......
</Ø-ô>


  º 3 × °  B Ä ` Ý XML h ° T Z   : Õ
A ¥Œ
<?xml:stylesheet ... ?> Ý PI[2.10] ( Ì … « b A

rõ&Æ3Ï 2 a+ÛÝ <?xml-stylesheet ...

?> ¸à - rbŒá9ÎaªÝöª — stylesheet PI

X|9aAr;à=CrÑÎ. õ(Ìè Ý'Œ

8ŽM

. (Ìè ΢½òP¼®…×X|Ä6µ!3×Í-ôý„…«‹yŒw

3øÍ-ô…Š:@jmŠ‚&Æ}¡ºjE9ͮޮ1€

Š3× XML Z!`¸à9Ë+ˆ9ÑÎ(Ìè ÝêÝ©ŠÞ&

+ˆÝ(Ìè õGHC™L…×?Q¡ÚmŠ3-ôTòP(GCîÊ

ÝGHC™¬ÞÞï|Arâǝ9ø×¼¬øÍ(̼ŠøÍ+ˆ

5ÿ×zÞ½?àHTºb!(ݎMbÝ9øÝ^×G«èÕÝ5ˆV(

Ž6õ5õ (Ž6”)¸àݮޝ|i”2ÿՊXÝ
<k:ˆV(Ž xmlns:k="http://foo.bar.com/xml/customer.dtd"
xmlns:y="http://foo.bar.com/xml/employee.dtd" >
<k:ˆV>
<k:(Ì>±Æs</k:(Ì>
<k:2ë>...</k:2ë>
<k:é•>...</k:é•>
......

54 Ëw€ 2tigers.net
5.4 (Ìè ÝP

<k:=šß>
<y:(>...</y:(>
<y:é•>
<y:5^>...</y:5^>
<y:î>...</y:î>
</y:é•>
<y:email>...</y:email>
</k:=šß>
</k:ˆV>
......
</k:ˆV(Ž>

3î»http://foo.bar.com/xml/customer.dtd Î&ƛ5ˆV(Ž6

9Í XML +ˆ¼Ý(Ìè ýîDhttp://foo.bar.com/xml/employee.

dtd Î5õ (Ž6ÝýîD ÝÆC6æRŒ&Æà k 9ÍGHC™8 ¼‚

5ˆV(Ž6Ýýîçë (xmlns:k="http://...")à y ¼‚5õ (Ž6

(xmlns:y="...")&Æ!`ô:Õ×Í-ô…«|wH9Í xmlns ÝòP…

××˅×?Ý|¡©ŠÞ&Í-ô(KCîÊ ÝGHC™øÍ-ôhòøÍ

+ˆ5ÿzz½½

5.4 (Ìè ÝP

P (scope) ÝÃFEP'Œ&𥊃'&Æ.î«Ý»;¶W B
<k:ˆV(Ž>
<k:ˆV>
<k:(Ì>±Æs</k:(Ì>
......
<k:=šß xmlns:k="http://foo.bar.com/xml/customer.dtd"
xmlns:y="http://foo.bar.com/xml/employee.dtd" >
<y:(>...</y:(>
<y:é•>
<y:5^>...</y:5^>
<y:î>...</y:î>
</y:é•>
<y:email>...</y:email>
8
C™ (string) |©âb×Í#‹ëÍC-èC™

P¾• XML 55
5 (Ìè

</k:=šß>
</k:ˆV>
......
</k:ˆV(Ž>

ôµÎ.(Ìè ;¡Õ <=šß> Ý2]…×9ø×;¡4Q)¾Õv«

ݐ[.˼Ù!Ý-ô 5¬(Ìè XˆÝP;ŽXbRCI

5Ä6œ*ÍJµÎý0 %‚. <ˆV(Ž> õ <ˆV> 5½Î <=šß> Ý

ÞÒõÒ-ô·ùŠf <=šß> { <=šß> Iœ@Æ ;-)¬ÎŠI·ùf¸

±Ý-ôA <(>  <î> JήÞ

. (Ìè bPÝ©PX|&Æ3-ôHæ(Ìè …×`Äވ

·ùݮށÊ
œtŽÝ]° QÎ3t²šÝq-ôý„….XbÝ(

Ìè õŠ¼ÝGHC™K××L?9ÑÎG×;»݆°AŒŠ3Z

H EØ(Ìè ®…×Jt?@Xb¼Š9Íè Ý-ôK…×X3Ý

-ôXˆÍJP&Î3_¶ XML `›Š 9xjì. ŒÝ9ÍP¡N

mŠàÕ!×Í(Ìè `êÿ¶×™…××g

5.5 ï'Ý(Ìè

C XML (Ìè bï' (default) ÝÃF^bCîGHC™õArÝ-ôòP(×

ŸÚ 3ï'Ý(Ìè 9ìA!×Ý(Ìè &Ɲ|Dą×.ï'Ý(

Ìè ý¸Ý¶°õG«+ÛÄÝ xmlns:GHC™="URI" œ ¬KÝA

rõGHC™9I5ôµÎŽW xmlns="URI"ð­•1&Ɲ|.ï'(Ìè

ÝGHC™WÎèC™î«ÝP»AŒ;àï'è ݆°¼¶µWÝ
<ˆV(Ž xmlns="http://foo.bar.com/xml/customer.dtd"
xmlns:y="http://foo.bar.com/xml/employee.dtd">
<ˆV>
<(Ì>±Æs</(Ì>
<2ë>...</2ë>
<é•>...</é•>

56 Ëw€ 2tigers.net
5.5 ï'Ý(Ìè

......
<=šß>
<y:(>...</y:(>
<y:é•>
<y:5^>...</y:5^>
<y:î>...</y:î>
</y:é•>
<y:email>...</y:email>
</=šß>
</ˆV>
......
</ˆV(Ž>

5ˆV(Ž69+ˆ¨3¼ ï'Ý(Ìè ¢^bGHC™õArÝ-ô

(Kº-®Îòy9Íè 

ï'Ý(Ìè |3ZŽ¼Žœµ ×ÍGHC™3!× Z D

|¡õ!Ý URI ™=×ø¬&…×Ä×g¡µà©Ä¡«Ý…×

º«G«!(݅×ÉA
<ˆV(Ž xmlns="http://foo.bar.com/xml/customer.dtd" >
<ˆV>
<(Ì>oɸ</(Ì>
<2ë>...</2ë>
<é•>...</é•>
<çë>...</çë>
......
<!Û>
<!-- ;à HTML ¼®ï'è -->
<p xmlns="http://www.w3.org/TR/REC-html40" >
hˆV8 p‚v<b>&ð¾</b>õ€Æ€1TËGt?ՀÝ
<a href="http://jerk.com/boss/">Íßçì</a>œ::€t‡KÔ%‚
</p>
<!-- Ò HTML (Ìè ÝP -->
</!Û>
......

5.5.1 ï'è PÐ)ºà

î«ÝP»»ú2¿àÕï'è õPÝ©P.5ˆV(Ž6õ HTML Ë+ˆ

&ŠÝP5Ý×zÞ½Xb3 <!Û> …«ÝI5‘â <!Û> 3òy

P¾• XML 57
5 (Ìè

HTML Ý(Ìè ŒÝ <!Û> |¡5ˆV(Ž6Ý(Ìè ꥱß[¬Æ

ZÝï'è 

9ÍP»!`"îݨ×Í@àÝ*» — ø=”4Q XML bŠ Ý=”]P

XLink : )Ì XLink/XPointer 3øîŠf HTML ݍŽ=”ÿPúîè¹y¹


http://www.w3.org/
¬ÎêG9Ëø=”+°K‚º3'n$ð$În ÑPýã‚p ÝY
xlink
XPointer : îô&ðb§.hÃà HTML Ý <a> ý„¼®=”´ ×͜?ÝÄ,ŠX
http://www.w3.org/
]n
xptr
. HTML ý„Ê`Z
XML 9a&ð?à©Î®ŽÝø=”|†

Ž (form). XML ¬^b/˜ŽÝ9 êGô^b×Í;•Ý “FormML” ý

ã.hŠ3 XML Z!p¬v3p Ñ@2•¨XŒt]

-Ý]°µÎDÄ(Ìè . HTML Ý <form>  <input> ‡-ô/¶Õ XML j

Mozilla : n…œIE5 õêG)3s"Ý Mozilla (Netscape 5) KYî9ø݆°×6µA


http://www.
!3 HTML ×øô|g) ECMAScript[p.14] Ç JavaScript¼Æ•®&˯
mozilla.org
 §›® (event handling) A onClick  onMouseOver ‡

ì«Ý XML DAŒŠ3 IE5 Ñðº®Ä6¼×ͲIÝ CSS ø![4.1]9

Í CSS jÅŒÿ׊D3¬ÎAŒ^bî£• PI[2.10] IE5 ºà¸/˜Ý CSS

ø!¼Ó¨ XML ZŽõ#”Ý[ŒKºŒ¼

<?xml version="1.0" encoding="Big5" ?>


<!-- IE5 Ä6g)²I CSS -->
<?xml-stylesheet href="ie5_needs.css" type="text/css" ?>
<?Ž xmlns="http://put-your-URL-here"
xmlns:html="http://www.w3.org/TR/REC-html40">

<!-- Ãà HTML ý„¼d” -->


<html:a href="http://2tigers.net">=ÕËw€ </html:a>

<!-- Ãà HTML Ž¼†¶ -->


<html:form method="post" action="put-your-action-here">
<html:input type="submit" value="¶&" name="clickme" />
</html:form>
9
q͝b. XML ©ÄÎÍø+Ž

58 Ëw€ 2tigers.net
5.5 ï'Ý(Ìè

<!-- Mozilla ôYî XLink ýãÝ simple link ^×Ä` -->


<d” xml:link="simple"
href="http://2Ti.com">9øô|=Õ 2T</d”>
</?Ž>

Šš
¥ŒÝÎî»༂ HTML (Ìè Ýçë¶ý

.Õ9…
TŒBŽåÕ(Ìè XèºÝúbÝ(Ìè ¡&

-ôòP-¬÷ZÝ&‚©ÎŽöØ&3Ø+ˆÝZ}P+ˆ

ô!`¬–׎W ¦PÝÿà|õ̀Ý+ˆÿàŒà)¤gº&

P&øÝTàZŸÃ¸à&9¥ŠÝ XML Tà‘À SVG[1.3.3] õ XSL[7.1] ‡KÎ

Úx3(Ìè ÝÁîAŒ
à×ÍöZC_ì œ × Š8 Office 2000 Xs

µŒ¼Ý HTML D
ºsƸ…«Ý XML I5à(Ìè ôàÿœ4

P¾• XML 59
5 (Ìè

60 Ëw€ 2tigers.net
6 ì×‚Ý HTML — XHTML

5HTML 4.0 B.Œ?×ð` Ý%‚`Ν|:Õ 5.0 Œ¼6 HTML 4.0 :


http://www.w3.org/
ºbÏ 5 ÌÝ . HTML Ý™Bø› XHTML ¼#Ý
TR/REC-html40

6.1 %‚Î XHTML

XHTML t\§ “HTML in XML” ŽýµÎ.Ĝ| SGML LÝ HTML ;à

XML ¼¥±LXHTML µ ̀ózÝ5X üü L6×øÎ XML ø+ŽÝ×4

TàXb XHTML Ýý„KÞaÉbÝ HTML 4.0 ý„¼L&-ôõòP[2.2]Ý(

Ìõà°¿{ŽÄ. ŽWÝ XML b°2]Ä6ñï XML Ý!ΐ}

ƕ Ĝ£‚ -

XHTML 1.0 9ýã3 1999 O 8 ` 24 ^>} ˜Èýã (proposed recom- XHTML 1.0 :
http://www.w3.org/
mendation)Ía-εA9 t±Ýýã¶WÄW ˜Èý㬂µ×
TR/xhtml1
5¿W ÑPýã¯@îXHTML 1.0 9 ýãêGÑk¦2D¡ÊÈ

ÝNF×Î(Ìè ݊ծÞõvÑt¡Ý”ŒA¢&Ɲ|á݊
[5]

XHTML s"ݛ^õ¸Ž%ŠXÝ®ÞÍhôº ½t±Ý›VÊ`?±

6.2 XHTML ÿ%‚ø

ï?»š
:×ð XHTML æD3\bÍïÝÆNµ?&ƺ3¡«×

׍ފÕœCÝ\ï|¿àÍݑsà#®Õ8nÝa;œ×"~b

61
6 ì×‚Ý HTML — XHTML

<?xml version="1.0" encoding="Big5" ?> A


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd"> B
<html xmlns="http://www.w3.org/TR/html1"> C
<head>
<title>¿w€ È:</title> D
<meta http-equiv="Content-Type"
content=’text/html; charset="Big5"’ /> A
<script type="text/javascript"> E
<![CDATA[
function countTigers(n) {
if (n < 2) return "Not enough tigers.";
return "Enough tigers.";
}
]]>
</script>
</head>
<body background="#FFFFFF"> F
<p>×Í&ðyÝða</p> G
<hr /> H
<form action="mailto:xml@2Ti.com" method="post">
<input type="checkbox" name="box" checked="checked"> I
</form>
</body> J
</html>

݊ XHTML Ý&Í©ÇüQ¥Š¬Î¤õ×ͱI*ÎÍÌb@²î݌L

œÊ.êݮޝºÎf´§Ý5µ¯&Ƽ:: XHTML ÎÍË

bD3݉Â

6.3 %‚mŠ XHTML

6.3.1 HTML Ý2Í

HTML 3ïŒÝμ)Þ êG×ø3ç­î6‰¥ŠÝ‘3μÝç­t

&GºD3Ý HTML Z?ºµ\b±Ý HTML Z®ß¬¨3b×

Í®ÞD3 — Lÿ
áá¼ç­î9óÝ HTML jn}¼ýKÎ)

62 Ëw€ 2tigers.net
6.3 %‚mŠ XHTML

}Ý

5b ‹KeÝ×)}. &KÎ࣠DreamPage99 ç°_ì †Ý‚v

Kà Netscape õ IE lãÄH¦ 6

½Hb.éù
Ýç°8*à PC îÝp œ:ΖP®ÞݬAŒà€

^Ýî¼:÷

5î6

E^¶ýÎî — K¼Õ¡ PC `‚

&95—ï?*¡¿Oºb“¼“9Ýl ÌõŠ›;¸àï‚

P[4]îç ßv†&P&ø݆™bÝ#‹1ÕÝ2- 2002 O75% Ýç°K

ÞDÄ9°&wîlé\¼:1 

š½0º&¬Î3 Ø1 PC Þ‹Z wîl PC Þµ3μ

6‰¥ŠÝ‘!ÝÎÞºb¨×v!Ý^ ²3ç­îþ

¸R¼¯@î|¯ß check email Ýî\µbÝ‚vBb䅾

Þ3.Œ!ç°p Ýî2 h²ßlŠé\ Ît#Ý Palm

Pilotݷͼ´`‚ݼÛbîçÝéO݌¨33p %‚

5—ƺ9‚ï?

HTML p X|“†“ñtÝ!·² Ý‘"â]M

âWÝ HTML DôÎx..hàËp Ñ@•îÝç°¬‚¸×Ð

)ýã?NÝΝ=×°ç°%® ̆Œ¼Ýç°KŒÿ)}3 PC

Ì%Ý*^9ΜÝ®Þ. &Æb•ÈÝB7›õ{Ãè ¼õò9°ÿQ

ºÎ¬‡òÝÞ¼ DßyÝç­ ÌŠ›P `¸Æ/˜Ýç°å

\ Š— ÎÍ ¨3Ýp 9ø.ÈýãÝç°ïç°'Œï

¾ÝæŒ5¿2Ó¨Œ¼÷
1
à#SàŠ XHTML ýã
2
Nokia t-sÝμîÝÕl¬[:ó›éÚ?/˜ Linux ®¼Ùõ Mozilla p
¯¸àïÌ»ç­

P¾• XML 63
6 ì×‚Ý HTML — XHTML

XML õ XHTML G¼Š=

&Æá¼XML Ýýã&ðv¯J ýãZyyÝëè9°9Fî

µ:ÿŒ5‚6Ý©P¯ ÌĆÿ£‚ñ &2¥ŒÝ Java XML

Š— K3¿y kByte |ì9ôÎ XML õ Java %‚#Ýæ.×


[2.4]

. &9ßïŒç­ Ì`‚ݼÛ‚33Ý XML Š— ŠH„39° Ì

îÎÊ)ÄÝ

6.3.2 XHTML — ɝDßyêP§;¨

XHTML ©èº&Æ×͕(.Ý HTML Dz×z¯@

¹ªÝÄPËÑÎ XHTML ݉ÂX3

¹ — ÿà;

HTML t\Î͍ŽÝ+Ž'Œ› CERN {ΧTÝ!$ øð@~Tÿ

ଵ WWW ±R2.Ëp !·Ý=O@;îç°'Œ/XŒ

ÇXÿ_ì ¾ÚÆ[Œ&ÈaÝy5¡ÑÎ HTML ýã͖T¶

Œ¼Ý HTML D\Jÿ«ê&4Q HTML 3ç­Ýs"ªîb½Ü

ݐz¬AŒð°¡Œœ'

b%‚𰝏a&Ɲ|.ÿÝ HTML 4.0 ¶¸àïmŠõp Ý

\ÆÓt5W×ssÝÿàN×à©ݐKã×͎}Ý DTD[8] ¼.

Lð­•1µÎ.¨bºÝ HTML 4.0 DTD ÿà;N×à DTD ©Yî×I

5Ýý„E!Ýp ̝|jEÍͽݕ ©PÇKM'ŒŒÝàÝ

DTD ÉAÊ)•î5vi« (frames) Ýé\µŠYî‘â frame Ý

DTD 9ø×¼¬3D9° ÌݐH?¯¸Æ¼sì&ŠÝ©P

¯@îÿà;ÑÎêG W3C XHTML àÝ ®¥F4Q3¨•Ý XHTML 1.0

XHTML 1.1 : ýã©ïͅI2ŒÝëÍ DTD ¡«º—Õ¬ÎXs"Ý XHTML 1.1


http://www.w3.org/
TR/xhtml11

64 Ëw€ 2tigers.net
6.3 %‚mŠ XHTML

'nJ”Á׍ÿහÝæJ¯ XHTML ZÝ_ìïõp ¶@j

mŠà!à)Ý DTD 

ª — U†P

XHTML (ÌÝ X Î --CîœÝ‚ÎËт¸Ìn5X6H×8

YÝ©PôµÎU†Pœ;"P (eXtensibility)

Ĝ3 HTML `‚©b W3C ýãºTÁÌÅ(æÝp ¼ïŒËŠ8õ

{^Ýçÿb𰛸x±Ýý„‹y×€y£K½‚vNL

×ͱÝÝý„HTML DTD µŠ?›×g&ð^b[£

;à XHTML |¡U†æpÝ®ÞD3µ Xb XML Z×øXHTML

Z|DÄ&(Ìè [5] Ý]P `¶mŠ¼ÇŸÜ²Ýý„ÉA3|ìÝ

XHTML æDnðµÃàÝ MathML[1.3.1] ¼¾ó.P MathML :


http://www.w3.org/
TR/REC-MathML/
<html xmlns="http://www.w3.org/TR/xhtml1">
<head>
<title>ó.»</title>
</head>
<body>
<p>|ì MathML ý„</p>
<!-- 
á MathML (Ìè ... -->
<math xmlns="http://www.w3.org/TR/REC-MathML">
<apply> <log/>
<logbase>
<cn> 3 </cn>
</logbase>
<ci> x </ci>
</apply>
</math>
<!-- Ò MathML (Ìè -->
</body>
</html>

P¾• XML 65
6 ì×‚Ý HTML — XHTML

Þj8F

bÝ\ïκ®5XHTML üQ¹w¬9©Äθ XML µYÝ?

iÝ ¢«;à±Ý XML ý„D‚ÑŒœg)×͆”‘ØÝ XHTML6

. XML º«ã‚ HTML bÝZaqÍmŠðøa2;à XML P

;D‚|ò1¹ HTML PµÕ XML 3Þ¼º゠HTML *Fªî±

Ý)Î HTML §ãœŽ *9óç°'Œït!Ý)Î HTMLh²

êG XML s Ì)8 þzôÈûC9F/ƒß/R¿OG HTML

ÌW!Ýÿé3 î¨*–9óÝç°p )Q©U HTML ‚BQá

XML ™ß‹yŠ‡±×‚p ûCJŠœÝ×ð` .hÑ

Î Ý@1€^Ý HTML Zº¯Î¼ÝZ¯p žÕTÎÆÕ39Íý¥

+õp ±øÝÄ, »lÕ XML †ãn&ÆK|Ÿà XHTML¼Q

Ã&ƾW9°êý½ÝXHTML Î QÝ XML. HTML ZðW XHTML }

P-Î@1μ¢ XML 'ŒÝç­ ÌKÑ@ §


ÝZ93çìÎ

¼;ÝXMîP¶'G
×MAŒ
Ñ3'Œ×ͱçì?T8Ê¸à

XHTML

6.4 XHTML õ HTML 4.0 Ý-½

6.4.1 XHTML Q
ê

3\ÄG¿a+ÛÝ XML +°õÃF¡AŒ


Õ¨3KôôΛ‰Tk"

8Ž½¶¿Í XML ý„¼@j‰Y×jTŒù ¨3ÑΥ᝜Ý?

^º9ôÎ %‚ XHTML 9ÍxފьHæ39…Ýæ.


3
Ñ9‚f“¬ÞïÝͲQ¼8! — HTML ͖‘â²ÌÝÓ¨.hXŒÇXÿϟßÝ
_ì µ8¥Š4Q XML ͖Ê²Ì¬AŒb?Ý CSS _Ñ Ì¼g)JôÎ×É
¯

66 Ëw€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

bÝ XML ÝÁ4 ¼   XHTML 


ºsÆ×6 XHTML Ý!D£ Ž

ÿœ|§Š™mŽŒ². 9°ÑÎ XML Ý!

?µ¯&Æ×ÍB-I XML Ýßݍ—¼AŒ HTML Š XML ;º

bø°2]mŠŸJ

6.4.2 }PÑ@æJE HTML ݎ\

&Æ3Ï 2.5 ;—ÕXML ZŠÌÿî)}Ä}PÑ@ (well-formed)ôµ

Îÿ”• XML ÝÃÍ+°ãy HTML ýãͼ3Ø°2]µf´Šãî&p

 ý—{E HTML Ý­°}ŠOCWêGÝ HTML ZbK2]

3FT¡Fîõ XML Ý+°ÆÚÍtðŒÝ‘À” ý„6¯ËÍý„

øüõòPÂ^bîSr9°ÀD}PÑ@æJÝϵ3 XHTML ן&Œ

¨b¿4!Šú×ƕ

” ý„6

HTML ýã1b°” ý„ -¯ </p>  </li>  </tr>  G

</th>  </td>  </dt>  </dd> ‡Kά3 XML õ XHTML ‘Ý” ý„

J ZµC}&¶X|×6Š 9ø
<p>9Î×Íða
ìÍða4èP×Îý„)QŠWÔWE
</p>

<p></p>

ŠëzÝý„

ý„ ©&‘â¬&øüÎ XML }PÑ@æJݨ×4ŠO}ý9¬

ÕÎ HTML õ XML 8Ž . 93 HTML ôÕ)}©Î& HTML p


4
bƒ'
ºà HTML

P¾• XML 67
6 ì×‚Ý HTML — XHTML

Eyý„øü݆°ð×w¿T×w¿0l3&9¨bÝ HTML Dð|

ŒÕ 
<i>E›C<b>ÕE›C</i></b>

9øËÍý„ë3×RÝ]M¶°” Ý </i> QþÕ <b> . . . </b> …œÝ

XML Š— [2.4] *9× — Š¯ HTML DW )}Ý XHTML/XML D&ÆÄ

6DøüDƔ
<i>E›C<b>ÕE›C</b></i>

. <b> . . . </b> ‘3 <i> . . . </i> …«‚Î×Í3…×Í3²

è-ô XML ;

H <è-ô/>[2.5.1]ý„ݶ°Î XML ݱs€3 HTML è-ôý„õ̀ý„

Ý ¬P!°×Ý-½Îè-ô©bRQ^b” ý„¼õ¸gEtðŒ

Ý»²{ HTML Ý <br> õ <img> 5  ݔ•}PÑ@݊O3 XHTML

 <br> 9vÝè-ôÄ6;¶W <br/> T <br />

Š.î«èÕÝ <p> õ <tr> ‡ý„õ <br> <img> ƒ


A ¥Œ
ח <p> õ <tr> Îè-ô©Î¶ HTML `

ðޔ Ý </p> õ </tr> ý„Ž¶Ëïb ½

òPÂןîSr

F B ÿ 3 Ï 2.5.3 ;  — Ä  Ñ Î C ™ T ó C  XML Z  Ý ò P Â × Ÿ Š à S

r À R ¼  . h 3 XHTML   <td width=100> Ý ¶ °  ) }  Š ; W <td

width="100"> Än
5
<img> 4/!òPsrc  height. . . ¬)ÕÎè-ô

68 Ëw€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

òP(aŽ

HTML b×ËòP¸Ý©b5Î6T5Î6ËËÏV6 ;ð3ÂÕ9vÝò I

P`AŒ&Ɗۀ¸ÝÂÎùݵ.¸Ý(Ìw
ý„…¬6¯¡«Ý‡r

õòP |ì»Ý checked  selected õ compact


<input checked>
<option selected>
<ul compact>

<input> õ <option> 9 Ë Í ý „  E ð ¶ HTML  Ž  CGI  P Ý \ ï ×

K©ß9ËòPÂ6¯Ý†°©½bÍ+§òPt; (attribute

minimization)

3 XML ה׿ŠOן¸à5òP(="òPÂ"6݆°ìî«»

5t;6ÝòPÄ6××;¶ 
<input checked="checked">
<option selected="selected">
<ul compact="compact">

ôµÎ.òP(J¼ òPô×ŵÎÝ

6.4.3 l?™JµA

î«X1Ý&4}PÑ@Ý!ÄÎXb XML ZKÄ6!ñFÝ×°tRD

݊O&Æá¼3 XML b°J[2.6] (validity) ÝÃFðõ}PÑ@8è¬

¡£‚XHTML ZtÝO}PÑ@²ÎÍôŠb°J÷

£ Q

Î } P Ñ @ Ý Z  q Í   Õ Î XHTML  † Í  © Î ) } Ý XML Z  i

ÝXHTML . Îà#¿à¨WÝ HTML ý„X|µ &ÆĜ¶ HTML Z

`×ø3à XHTML ¶‹—`ôÄ6@Z¸àÝý„(KÎ@@D3Ý


6
¶PÝ\BKá¼9§ boolean

P¾• XML 69
6 ì×‚Ý HTML — XHTML

HTML4.0/XHTML ý„bý„ 8!Ýn;Œ¨Ý5Kf¼9ÑÎ

b°J݌LX3

óۀ DTD

&Æ3Ï 2.6 ;èÄb°JÝ5°6¼ÝÎ DTD[8] Š¯ XML ZDÄØ

DTD °J|™JG&Æÿ¼×Í)ÊÝ DTD Q¡3 XML …×€çË×

tß9 ZóàÝÎ£Í DTD9ø?¯ XML Š— bÍEï™JݵA

G«1ÕêGÝ XHTML 1.0 'nbëË!Ý DTD ºß¸àμ

½ DTD ÿà;Ý;ÝXMTŒºb?9 DTD Œ¼êGÝ9ëË©ÎÞû

HTML 4.0 DTD XLŒ¼Ý‘À

Strict }P t\Ý HTML f´Ð”^b%‚ font  color . . . ‡0݋

‹£°KÎ Netscape s€Ýý¥+TŒÝ¥3ZŒÝ¾‚K$²

ÌÓ¨ÝÌF¼:7 W3C - HTML Z››9…×飅×öÝ

<font> ý„:R¼ËίTÁÝ ÝJ»9ÍB W3C ©½s€Ý CSS

¼«¸8(ÉAŒ
ÝZ©à CSS ¼Ó¨¾Xà <font> £9ÎÊ)


Ý DTD

Transitional Ä,P <font> ý„åKW3C 3sÄÂtßÝ<O

ì©ÿ{½è. <font> ‚
HTML 4.0 Ýýã¬31€ZC)

``×.tß9à CSS9Î5Ä,6×ÞÝã¼ — . €ÆT

½b“¼“9Ýp Yî CSS <font> ý„º@˜ÎŸªa:N^

£‚ÌAŒ
Ýçì 9óçì×ø¸àÕ <font> ý„Ý•J

Ä6óC¸à Transitional 9Í 5Ä,6'HÝ DTD

Frameset 5vi«P AŒ
U¸à <frame> ݕ£9Î
ÞÝóC ;-)
7
39Íh×µ—ÕÄ9Í®Þ9ÎÑ@ÝÌF?ñ›Ý XML ݙß

70 Ëw€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

ó? DTD |¡µ|ãn…×Ý3Ï 8.2 °&ƗÕà B


<!DOCTYPE doc SYSTEM "http://foo.bar/baz.dtd">

9øÝ]P¼#”×ͲIÝ DTDÍÝ doc Ό XML Zq-ôÝ(Ì‚

"http://foo.bar/baz.dtd" JÎ DTD X3Ýçë5SYSTEM "çë"69I5

)R¼§5 ²Iýî 6(External ID)

‹yî«+ÛÝëË XHTML DTD Ñ@Ý <!DOCTYPE> …×]P5½Î


<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd">

<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/transitional.dtd">

<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/frameset.dtd">

39…&Æ:Õ¨²×Ë}PݲIýî9gàÝÎ PUBLIC 9Íî52

à6Ýýît¡«#Ý)Î DTD X3Ýçë

Š©½èø
ÝÎ <!DOCTYPE> …×Ä6Œ¨3q-ôý„GÍJ‡ŠÚ

KB:Õq-ôý„ÝQBQá9Í-ôÎòyøÍvlŒœ¢øÍ

DTD£µ¼CÝ

|îÜÝXb <!DOCTYPE ...> …׶Kb©


A ¥Œ
݌L¶ý×FFK•

ŽÝá¼

œ€•2 «î…×{9ìQ,~°Ò†^b¶ DTD Ý!μ†Î

^bŒLÝN XHTML ZKÿõ¸óàÝ DTD mEP0¡b£}ÕÎÑ

P¾• XML 71
6 ì×‚Ý HTML — XHTML

W3C ÝmE†™ : TÝ XHTML tŽÝmE]°οà W3C ÝmE†™


©Š39Íç°
http://validator.

ç°ÝçëXŒµº:ՔŒÝ9Í`ÎAŒ¸•îÝΓNo errors
w3.org/
found! Congratualations. . . ” ÝG>‚Î×ÀRC£‚<‡<‡ 9‚
%

®Œ¼Ýç°&ðݏz›¨×ÍmEÝ]°Îà#3ç°˜×Íø=”

=Õ http://validator.w3.org/check/refererQ¡3p F\9Í=

”ǝ

Ĩ3Õ?ŽÝ`Î. b¿4!Šø‚×ì

6.4.4 ̀!¯4

}PÑ@õb°JÝ®ÞKŠX¡#ì¼Ýµ?ðÝ

-ôòPן¶

J G«—Ä XML Unix Ùõ&9P+Ž×øÎb 5¶Ý[2.7]. 9Í

`ÆXHTML  HTML £øý„¶ ¯-Ä6Ù×®Í!‚ýã

X2à¶.hŠ»lÕ XHTML£°Äœà¶CÒ¼¶Ý-ôòP(

KÿðW¶•

¸àÑ@Ýq-ô(Ìè

C XHTML ýã!ZÝq-ôý„Ä6Î <html>‚vŠà xmlns 9Í©½Ý

òP¼Û€ XHTML ÝòÝ(Ìè  9ø


[5]

<html xmlns="http://www.w3.org/TR/html1">

Í http://www.w3.org/TR/html1 9ÍçëX=ÕÝÑÎ XHTML 1.0 Ýýã

Zxhtml }PŒ²̀ý¥+Ý(Ìè ô??2à&ýãZX3Ý

ç뼂

72 Ëw€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

G«—Õ(Ìè Ý^×Î XHTML |yU†[6.3.2]ÝxŠn"3q-ôÝý„

ý€Ý XHTML Ý(Ìè ¡&Æ-µmŠ¸à¼ŠÍ€(Ìè Ýý„‚

àHT!(Ýý„ºÆÚÝ

ý€øÉÎøÉΖ

3 HTML  <head> õ <body> |6¯¬3 XHTML ןÿ¶!Ώ3Ê D

ݛëb<title> Ä6Î <head> Ï×͌¨Ý-ô

à CDATA  ¼‘„ style sheets õ scripts

HTML Dðb CSS ø![1.2] T JavaScript Pà#/¶3…«9°ø!õP E

5½Œ¨3 <style> . . . </style> õ <script> . . . </script>  s3 XHTML

. style õ script ËÍ-ôÝ/3 DTD L PCDATA[p.108] v½

¸ÆÝ/ºŠ— ®×ZC£]¼Š\AŒ»$Õø!T scripts 


[2.4]

âb < T & 9ËÍý¥ÐrݕŠ— œµ,3£…Ý

Š¹Š— œŠ\ZÝØ°£]t?Ýð°Î.9°£]w
CDATA

 [2.8].h /¶Ý CSS style sheets T JavaScript Dâb9°3 XML Ì©

„ŒLÝý¥`XHTML ýã1Šà CDATA  .¸Æ‘R¼ 9ø

<script language="JavaScript">
<![CDATA[
......
if (i < 3 && ......
]]>
</script>

DT"Ý\ïy5bĊ£‚jì[XML Îôbۊ[‚v¶°

ôõ3 HTML ×ø£ %‚1¹Äœ3 HTML ݆°.PwÕۊ

µ”ÝAì6

P¾• XML 73
6 ì×‚Ý HTML — XHTML

<script language="JavaScript">
<!--
......
if (i < 3 && ......
//-->
</script>

ÿ? Ä9‚†bÍþF :-(XML 1.0 ýã1Š— ^bL™Þۊ[2.3]/

抛2ø›ì*ÝPð­•1ۊ/ÎÍÕÿÝp Wÿ:Š—

{·‚¬ CDATA  µ×øÝ — 9I5Š— | -¯*. 9Í`

ÆXHTML 1.0 !Šà CDATA  ‚×å|àۊ¼†

6.5 XHTML — Õ9› :

BÄl?™JÝ XHTML Z-Î5XÝ XML Z.hμXbÝ XML 8›

TŒK\ÿ;

5£ÄœÝ HTML p §‚ð6

®ÿ?ð×͍—¼®5£Õ9¶?Ý XHTML Zݗj(Šã® .xml Î

.html TïÎ .xhtml6

Í @  © Î — j (  \ ï  Ý ì  (webmaster) Æ K á ¼  x ^ Ð  Š b

Ê Ý MIME Content-Type: '  8 g )  •  8 E y .xml Ý MIME type Î

text/xml‚ .html ETÝJÎ text/html

XHTML Z|¶mŠ‚'W9ËËvlÍ×ËÇ

• .xml ETÕ text/xml

• .html ETÕ text/html

¬ÎAŒÆÕ'W .html ‚vŠ¯ XHTML ZÝ HTML p 5¿Š\Ý

•XHTML 1.0 ÝýãèŒ|ì¿Í¥Œ¯48 


8
39…©CŠ`

74 Ëw€ 2tigers.net
6.5 XHTML — Õ9› :

• è-ô”@Ý2] /> GŠ9×ËÍèçÍJ HTML p º:U

ôµÎTŒà <br />  <img src="mypics.jpg" /> õ <hr /> 9ø

ݶ°

• Û € Z C _ D `  XML  Ý encoding="..." õ HTML  Y à Ý <meta A

http-equiv ... > 9ËË^×KŠ¸àôµÎ

<?xml version="1.0" encoding="Big5" ?>


......
<meta http-equiv="Content-Type" content=’text/html; charset="Big5"’ />

½Ý<meta> Îè-ô.hý„” `Š¶W î«£ø

• b°p ºÞ <?xml version="1.0" encoding ... ?> 9Í XML Ýà

ÝR…×[2.1]|3ç°ÝcÐAŒZâbÍ€Ý PI[2.10]Ç <? . . . ?> 

ôº9°p |Œ¼Ý¬^bð°

• AŒç°Ý CSSø!T script âb <  & TÎ ]]> C™`Ä6.¸

Æ;D ²Iø!T script |#”Ý]Pñ§. €p :U CDATA

 [6.4.4]ݶ°

• 3 HTML  | t  ;[p.69]] P  ¾ Ý ò P  A <input type="radio" ...

checked>  3 B Ä XHTML 5 D t  ; 6[28] §  ô µ Î Ž W Ý <input

type="radio" ... checked="checked">¡º¯×° HTML p

:U‚3 100% Ð) HTML 4.0 Ýp A MozillaT ºb9 Mozilla :


ftp://ftp.mozilla.
ˮޮß9°t;ÝòPŒb compact  nowrap  ismap 
org/pub/mozilla
declare  noshade  checked  disabled  readonly  multiple 

selected  noresize  defer 

P¾• XML 75
6 ì×‚Ý HTML — XHTML

6.6 ¢ìW

\Õ9…
ºŽ5ö9‚94WR¼?jì‰  b9‚9 G.Ä

œÝ HTML jn×Í͛WÑ;b^b%‚ ̝|Š›Q&lãÑ;Ý6š

šbÝW3C \Õ9Í®ÞÝ‚vX&Æ×͹ð ̸b͝Ý

(C§ “HTML Tidy”

HTML Tidy )(¤LÎ×ÍQ&Æ.Ý HTML æ


T ? Ì
Dz×zÝ@à ÌTidy ×A&3G« èºÝ

ccnv[p.38] PÎÍ Unix ŸŸÝ¼ƒ+« Ì9Î×Í

C PYî9Ë¿¬¸Ý homepage õìµF3

http://www.w3.org/People/Raggett/tidy/

6.6.1 HTML Tidy ¸à]°

Š.ZÝ HTML jnà Tidy Š›»W XHTML |ì9Íúƒ

tidy -raw -asxml -f ý0G>j( íáj( > íŒj(

Í -raw Îà¼×å Tidy ŠœB›jnÝZD‚ -asxml Χ¸.jn

»W XHTML }PAŒ
©Îà¸¼Q
z§×ì HTML D‚»W XHTML

ݕ %‚µmŠ¸à9Íó4. Tidy ï'ÝíŒIÎýãíŒ

(standard output)X|íŒj(GÝ£Í > r½ÝŠQ팺ó#ÕÇ

Kî

AŒÆ•Ý Tidy”Œs¨íŒjÎèÝ9Í`̝Î
Ý HTML Db

¥Ýý0Tidy P° §š
¢¸Ýý0G>:Õ9Î3Ï¿•Ý2]bý?

Ñ¡¥±þ×g Tidy 

76 Ëw€ 2tigers.net
6.7 t¡

5¿ÿÕíŒj¬‚×6Ð)ýãAŒ
ÝjnàÕÝýãYî

¬Øp YîÝý„òPý0G>º××܌¼Ċ¥ŒÝÎ

º$՜9ýî “warning” ÝG>9°I5©Î Tidy Ý5ú¦˜È6t

ðŒÝ  <img> ý„TŒŠ!î alt òP¬ΐ¥Ýý0

Š@Z 100% Ð)ýãôµÎ DTD |¶ïG«˜ÈÝl?]°[p.71]

à W3C ÝmE ¼ã×ì

|ìŒZ¸àïtàÕÝ¿Í¢óó4›®¢

¢óó4 1€

-raw Šœ› ASCII |²ÝCD

-utf8 íáCD UTF8[3.2] `àhó4¼‚ -raw

-asxml ®ßPÑ@[6.4.2]Ý XHTML j

-f j( .ý0G>DÕ¼Ýjn…

-m (-modify) à#.Ñ;ÄÝ/D/íáj/ã‚æ/

-c (-clean) à CSS Ý]P;¶ <center> õ <nobr> 9ËÍ^b

ýã#åÝý„

-h (-help) ŒXbYîÝó4

6.7 t¡

ÍaE XHTML ®Ý&ð¼ÝŠ1ˆÝ XHTML 1.0 'n 90% |î݊F#

‹èºÝ×°'n^bÝܲ£G

˜È
/ÕÍaâÝ2]¿à£…ÝæDP»QÃ
××/39a…

.ÕݱÃF¯é?Ñ

P¾• XML 77
6 ì×‚Ý HTML — XHTML

78 Ëw€ 2tigers.net
7 XSLT — XML ÝòÝ»ð+

9aÝ¥FÎ XSLT Š— XSLT ÿ XSL —R

7.1 ¨×Ëø! — XSL +

XSL (eXtensible Stylesheet Language) Î Ý  XML ' Œ Ý ø ![1.2]+  ô Î 3

CSS[4.1] ²¨×Í XML LZÆ6ÝóC

×A MathML[1.3.1] õ SVG[1.3.3]  XSL ͖-Î×4 XML ÝTàà#Úx3 XML

Ý+°î¸×5®ËI5Ï×I5.Þ XML æD»ð ¨×Ë}P‚

ÏÞI5Ì® “FO” %Formatting Object ÆøÎ&JèºÝÝÆø¼

ƒà¼g)ÓTÇK• Þ@2'²ÌPøÉACÝYwݛH

‡Î×ËXÛ “device-independent” Ý}PÏ×I5Ý»ð+°|à¼

ÏÞI5†™Þ XML ZŽ Æø¼ƒ

b¶ÝÎ XSL Ý»ð+°¬§yÞ XML »W FO ¼ƒ¯@îXSL |í

Œ¢}PÑ@[2.5]Ý XML Z. 9Í©P&Ɲ|฼†|ì¿ËPÝ»

ð

XML → HTML 9ÎtðŒÝ×Ë»ð»ðŒ¼Ý HTML j3}Pî. ¾Õ

}PÑ@݊O3Ͳî&ð# XHTML[6]. êG9óp )Yî

XML X| XML → HTML Ý»ð39ÍÄ,`bœÝ¿à‰Âh²

ãy IE5 E XML  CSS ÝYîÈŸAŒ3 IE5 .Y;ÄÝ XML Z

ÆŒ¼°×Ý]°Îà XSL » HTML à CSS ¼'²ÌÝ XML Z

79
7 XSLT — XML ÝòÝ»ð+

3 IE5 ©3ÇKî:P°

XML → XML .×Ë}PÝ XML Z»ðW¨×Ë XML }Pb&ðÝ@à‰

»AËÍ^nT
¼ | XML ¼FL£GAŒBh¸àÝ XML }P

bŒá-¢½ XSL ¼†ŸJ

XSL → XSL XSL #‹|Þ×Íø!»ðW¨×ËPÝø!. XSL ͖-Î×

4 XML ÝTàXbÝ XSL ø!ŠQôKÎ XML Z.h XSL → XSL 3Í

²îÄÎ XML → XML Ý×Í©»‚

7.1.1 XSL õ CSS !Ý2]

XSL 2àÝλðÝ]PÞ×Ë}PÝ XML »ð ¨×˵?fÞ Big5 DÛ

Z» UTF-8[3.2] D×øCSS J¼Š!ݧF ¸â¢»ð›®©

jE XML Z&ÍW5ݲÌòP×׏|'p -¶ï CSS ø!…ݼ

îÞ XML ZÓ¨ 'ÝPøJÍÄ^b¢±D®ß

DOM : XML g î CSS  ECMAScript õ DOM  | ˆ C Œ v « DHTML  Ý › V [


http://www.w3.org/
ŒXSL »ðJÎiÝ^b!›P
DOM
¨×Í ½Î XSL ø!KÎ XML Zï XML Ý+°¼8E2 CSS 3

+°îŠW×}õ XML ݶ°8A1

7.1.2 XSL õ CSS 8!Ý2]

XSL õ CSS Kòyø![1.2]Ý×Ëø!Îà¼'²Ìݸ¬Å(æ¼Ý XML æ

DXSL 4QàÝλðÝ]P¬5»ð6¬‚æDºÍ՟;;ð XSL

»ð¡ÝíŒDΨDÕ×ͱÝjnTõD3p ÝB7›æ¼Ý XML

jn/J1¹Ž

80 Ëw€ 2tigers.net
7.1 ¨×Ëø! — XSL +

7.1.3 XSL ª

XSL aB&ðîþ‚YPÝs"¬'nBÄׂ‚ëÝ»Ñ;$ÎW

ÑPýã݋‹p¹Î9øs"Ä?alK1¾õDEÝ΍ XML Ý

¼ßÿ #‹Bsß=õDEËpˆ8!§p5‰6à8EÝ#«

•Œ XSL ÝÊÈP

XSL tÌÊÈPÝÎ FO ÆøÎÝI5DEïxŠÝ¡FÎXML ZBÄ

XSL LÍÎ FO 9‚׻ݔŒíŒÝ±Dœ+Œ[1.1.2]¼´æÍ×Í

<(> Ýý„もÝÞÎ×°¼ÝƼƒ XML t¥ŠÝÞßõ‰ÂX

3ô ¾QPD8´ì CSS ¬^b9øݮތ²DE XSL Ýßÿ

9–ôK CSS Ý=ï

ÊÈP²¯@î×I5ô. FO ݐӗI58›‘Àœ\-

Yî XSL Ý IE5 õ LotusXSLôKYî FO  Ý. FO .'aÝ Adobe 2

¥#‹B¸à5¥ªìÄbKG6݈¯˜ªËë0Y- <ç­î&

]{W”Ás FO → PDF Ý»ðPÄt¡9Í­.Æ㏨3Yî FO

Ý8›µ??ó

W3C ôŽåÕ&]E XSL ÝDæ3 1999 O 4 ` W3C ÑPÞ XSL ýãÝ

G–Iny»ð+°ÝB– XSL 5Œ¼¬ ¸RÝ×ͱ(§ XSLT

 T ‚ “Transformation” ôµÎ5»ð65Ž6݌¤Šh¡ XSL

Ý'n©yì FO ÝI5 FO Ýs"B•ÿô•êG›'€õ^±ê±

Ý XSLT Wú¦EfXSLT 3 4 `Õ 10 ` ê®Ý×°Ž¬3×®95

Ýs"aB 67 ÍÌÍÝ'n¡XSLT ¨3ÀÕ"Õ W3C ˜Èýã (proposed

recommendation) Ý2Mb®Ñ;‹y¸ÎÍ5¿W ÑPýã

(recommendation)Œnœ"µºëLv¯&Ƹê|Íhôº« t±Ý

›VÊ`?±

P¾• XML 81
7 XSLT — XML ÝòÝ»ð+

ãy XSL 'n ͎‘6×ø×;;0l–9óÝ


A ¥Œ
>.Zõt±ýã Œ¨×ða-‚3 1998 O 12

`G¶ÝZa?ΐ¥ñ;b͍ŽÝ]°|:Œ

XSL Ý>.ZTh°ÎÍBÄ` — AŒ3Za:Õ

XSLT  XPath 9°(Þݕ£‚9ÍZaµBb

FÝAŒ= <xsl:apply-templates/> 9ͼƒK

ŒÕ£?ΐ¥a Ý3h˜È.ïEÄ`¬T

&)Ì¢‰ÂÝ XSL Zt?¼¹|¹3±

ýã ¢ÿµ\ª¯¹–

7.2 XSLT á

&Æ3#ì¼Ýa;Þ.NF/3 XSLT XSL Æ×µ©b9I53s

tf´ƒß×ê–9ó8›YîÝô©Î9I53ì« àÕ “XSL” 9Í

(Þ`¼ÝôKÎ XSLT 

7.2.1 XSLT 3ç­îÝTàÿP

¯&Ƽ::3êGÝfì XSLT DÄø¿Ë]P¼&ÆÝçì[zµ XSLT

»ð›®sßÝ2F¼5—5 

server Ð XML Z3ìµÕp G| XSLT » HTMLµ»ð›®sßÝ

` ê5W

›VÇ`®ß 3p ' server XšOÝ ì| XSLT § 8›Þ XML

ñÇ»ð HTMLÇÑXŒ3ç°b›VP£]ŠÇ`æáT

XML ZΣ]0Ç`ãÿݝ)ìtÊ)9˺®]P.í

82 Ëw€ 2tigers.net
7.2 XSLT á

Œ XML Ý£]08›JœD3y¨×¬^ î| XML ¼'.

XML → HTML »ðÝ server FL£]9Ψ3t#Ýë·P n ·P

(3-tier, n-tier) Ý server xœ]Pl£]0çìT


¼Ý intranet

 extranet çì´Ê)9ËÿP. XSLT ݺ•M»8 ñ¡

–X|"ˆÝçì Ý×)">»ð݊OÄ6¸à{jÝ^

#‹mŠ×1Ý. XSLT »ðÝ servers

1g®ß AŒ XML Z¯K¶ ××Dw3jn…‚&Ç`ãÿT

`\?±&Æ-à1g»ð݆°¯Þ HTML jãn?»

ðÝ ®Jµ@jmŠ3üÝ`ðŠ›;ƕ9‚†Ý? Î

server £Ù“ÿtÝ;V?mŠ¸à{PÝ server ^¢þ

XML Š— õ XSLT PÝé\K•#‹|3ÍßÝ PC 

»ð?Ý|¡. HTML jîFÕ server ǝ

client Ð AŒp à#Yî XML õ XSLT  XML æDõ XSLT ø!-| %j

×ø¯p à#ìµìœ×6»ð ®ãp ‚z9Ît§ÝÏ

µ¬êG°×Yî XSLT Ýp Î IE5 ‚¸à IE5 Ý)bß3?¢

µIE 5 E XSLT ÝYîͼµJb°I5?Ä`.h¯p à#»

ð݆°µêG‚Ž@àP)8 b§Ä9ÍYÿ3μÎbT@¨Ý

— Š8BYÙÞ3μ‚îêGþ‘Ý XSL ‚±×‚Ý Netscape p

ïŒ 1999 O9.ŒJôYî XSLT . BbßÞ XSLT PT¤

› Mozilla Œi

Ôфì È)|î server õ client ÐË˺®ÿP3p šOç°Ý!`qA

p ݖ5Ç`XÎÍÞ XML »ð HTML Tà#øãYî XSLT Ýp

 ìµ server #‹|?


×M¶ï&Í client 8›Ý©P®ß!P

²Ý HTML ¯"ˆ²åt·Ýå[ŒÉAYî CSS Ýp -|g)

P¾• XML 83
7 XSLT — XML ÝòÝ»ð+

ìµYYÝ CSS ø!AŒ$ÕYî CSS Ýp TÎYîÿH-Ý

Netscape 4µ›¸âb <font> ý„Ýç°A!Ï×˺®ÿPÇ`

»ð9ˆ°mŠ´{Ý*iã#‹mŠ¥xݼ8›?KÝ

{jÝ{›®¡;

7.2.2 XSLT Ý»ðøC ®æ§

XSLT »ðÄ6㩽Ý8›¼H9øÝ8›;Ì XSL § (XSL proces-

sor)A!&Æ3Ï 24 °—ÕÝ¢ XML Zъ®%‚àHÄBĊ

— Š—J§Œf§¡
×M¿àÉQ XSL ø!õ¸XŠ»ðÝ XML æ

DKòy XML ZŠQômŠŠ—.h XSL § 3 ®GÿÃ¥ XML

Š— /˜T²I¸. XSL ø!õ XML Z×ÍÍÎõ”x5—Œ¼

š:% 7.1

3 XSLT bËÍ¥ŠÝÌF×ÍÎ ÙW (source tree) ¼ÝλðGÝ

XML Zݔx¨×ÍÎ ”ŒW (result tree) ‚»ðÝW`”xµQÎ

XML

XSL § R›`º§ XML Š— ¸Š— XSL ø!õŠ»ðÝ XML Z

3ßéÝø!Ý&Í XSL ¼ƒ¡XSL § -µïø!ݼî3ÙWîɼ

ɜ×ÂÕ)Êݐfµ¶ø!Ý'#Œ×ð±f×Í XML nð×

àÕJ9WK”ÅÝ cbÝ`Îø!º¼î § ސfÑJ×ì#Œ

¼XbBã XSL § ×­®ßݱfÙُÕ×sɵWÝ×”ŒW”

ŒW|íŒÕjn…;DR¼Tãp • 3ÇKî

9‚ŠÕ
E@j»ðÝÞ;ΜµW½HT 3}¡Ýa;&Þ

ñ
œ5ÉW6@2lÚ XML Wݐ;êG©mŠßé×ÍÃÝÆNµ?

84 Ëw€ 2tigers.net
7.2 XSLT á

% 7.1: XSLT Ý ®ø

P¾• XML 85
7 XSLT — XML ÝòÝ»ð+

7.2.3 Yî XSL Ý8›

Yî XSL Ý8›Õ5 p õ»ð ÌËvêGf´#Ýp ©

bŠ8Ý IE5 IYî×͝ÌÝ XSL 'n1998 O 12 ` 16 ^Ì3Íaݔ

&ÆÞº| IE5 ®@»‰Y

3»ð Ì]«–9óÝ8›KÎ| Java ¶WÝ‘Àã IBM AlphaWorks

LotusXSL : @™‡XŒ`Ý LotusXSLõ XSLT ýãÝ®ï James Clark1 X¶Ý xt


http://alphaworks.
LotusXSL õ xt KYît±ÌÝ XSLT ýã xt tÝ\ ½ýã'n">?±²
ibm.com/tech/
LotusXSL Š 19990822 ÌYî| Big5  GB2312 ‡±öZCDà#íŒ HTML2 
xt :
3hŠ'\ï.¦3 § XSL `¸à xt ® »ð ÌClark ßX¶Ý
http://www.jclark.
XSLT § õ XML Š— 3 3P>—Ñ@—õEýãÝYî—îKΧ
com/xml/xt.html

l¼×ùÝõ!vlݤ¼8›8f??bÄ‚PC?òÝ΀Ý

8›KÎ|PD2 (Open Source) Ý]Ps•

̀Yî XSL Ý8›œ9P°3h××+Ûb·¶Ý\ïšÕ W3C Ýçì

œ   http://www.w3.org/Style/XSL/

7.3 ޗ XSLT

XSLT Ý+°õº•]Pb°—²mŠ×°` ˜˜ÊT‚vÄ6|h™

ã-Ý]P×M×M.êAŒ×TO"ßËþ㜝aÿ?·‚h

š
:×ì XSLT æDÕ9ÿ%‚øQ¡&jEÍÝÌFõÞ;××


ߗ
1
õx˜ SGI  Netscape
¼ James Clark !!(¬×ÍÎz»ß×ÍÎY»ß
2
3  Ì Ý xt …  X b B Ä § Ý  Z C  ©  | UTF-8  P í Œ  . h A Œ Š Þ í Œ D » /
Big5/GB2312 mŠ9þ×¼»DW9͵3íŒ XML `µQD3¬ÎŠ patch 
pׇ XSLT ýãÑP;Äxt s"××ða¡AŒµµ&º ¶×Í patch ¯ xt
|à#| Big5/GB PíŒĜjE 1999 O 3 ` 7 ^ÌÝ xt ¶Ä patch ¬Ä`
à
3
‘Àÿÿ(Ý Expat Š— | C ¶W>—Á" Mozilla p õ perl  Python Ý XML
ÿàó®/˜Š— 

86 Ëw€ 2tigers.net
7.3 ޗ XSLT

7.3.1 W`ï

ƒ'b×é\{›%C¤3çì躮`¨´Ý†™€ÆÝ£]0B

| XML PíŒ|ìÎ׉Þaݨ´”Œ
<?xml version="1.0" encoding="Big5" ?>
<?xsl-stylesheet type="text/xsl" href="search_result.xsl" ?>
<®`¨´>
<`Š>¨´C™Eâ "8F0Õ 2 ‰</`Š>
<®`>
<0r>12478943</0r>
<`(>Wlˆôâ</`(>
<‰>$234</‰>
<1€° çë="http://foo.bar/mouse/12478943">î½sº</1€°>
</®`>
<®`>
<0r>83424723</0r>
<`(>Æ(??"8</`(>
<‰>$567</‰>
<1€° çë="http://foo.bar/kbd/83424723">®`©P</1€°>
</®`>
</®`¨´>

DÄ XSLT &Ɲ|Þî«Ý XML D»ðWì«Ý HTML D|} [table]

¼Ó¨¨õÕÝ®`£G
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Big5">
<title>®`¨õ”Œ</title>
</head>
<body>
<h1>®`¨õ”Œ</h1>
<p>
<b>`Š</b>¨´C™Eâ "8F0Õ 2 ‰</p>
<table>
<tr>
<th>`(</th><th>‰</th><th>1€°</th>
</tr>
<tr>
<td>Wlˆôâ</td><td>$234</td>\continuearrow
<td><a href="http://foo.bar/mouse/12478943">î½sº</a></td>
</tr>

P¾• XML 87
7 XSLT — XML ÝòÝ»ð+

% 7.2: XSLT »ðŒ¼Ý HTML j3p Ó¨Œ¼Ýø

<tr>
<td>Æ(??"8</td><td>$567</td>\continuearrow
<td><a href="http://foo.bar/kbd/83424723">®`©P</a></td>
</tr>
</table>
</body>
</html>

|îÝ HTML D xt[p.86] @jÝ팔Œàp ¼:lº % 7.2 £ø

JÍ»ðÄËÑÝxÎì«Ý XSLT D Ý]-å\RŒXSLT ¼ƒÝI

5ן| ‘ýî

<?xml version="1.0" encoding="Big5" ?>


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> A
<!-- IE5 ©#å
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> -->

<!-- IE5 :U xsl:output -->


<xsl:output encoding="Big5"/> B

88 Ëw€ 2tigers.net
7.3 ޗ XSLT

<xsl:template match="/"> C D
<html>
<head>
<title>®`¨´”Œ</title>
</head>
<body>
<h1>®`¨´”Œ</h1>
<p><b>`Š</b><xsl:value-of select="*/`Š"/> E </p>
<xsl:apply-templates select="®`¨´"/> F
</body>
</html>
</xsl:template>

<xsl:template match="®`¨´"> D
<table>
<tr>
<th>`(</th>
<th>‰</th>
<th>1€°</th>
</tr>
<xsl:for-each select="®`"> G
<tr>
<td><xsl:value-of select="`("/></td>
<td><xsl:value-of select="‰"/></td>
<td><a href="{1€°/@çë}"> H <xsl:value-of select="1€°"/></a></td>
<!-- IE5 ©#å <td><a><xsl:attribute name="href"> ←-
<xsl:value-of select="1€°/@çë"/> ←-
</xsl:attribute><xsl:value-of select="1€°"/></a></td> -->
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

7.3.2 XSL ø!(Ìè

A!̀&9 XML ÝTà XSLT æ(Ìè [5] XèºÝ^×. XSLT ¼ A

ƒõ̀ XML ý¥âø!…XbÝ XSLT ¼ƒKÄ6ý€Î3òy “http:

//www.w3.org/1999/XSL/Transform” 9Í XSLT ÝàÝ(Ìè Ñð

®

P¾• XML 89
7 XSLT — XML ÝòÝ»ð+

3…× XSLT Ý(Ìè `tðŒÝ†°Î| “xsl” ® GHC™[5.3.1]

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">

µ!Xb XSLT ¼ƒKÄ6Hy <xsl:stylesheet> . . . </xsl:stylesheet>

 s…ôµÎ1 xsl:stylesheet 9Í-ô&Ý XSLT ø!Ý/. ¸

Ît²·Ý-ô(Ìè ݅׊QôµY39Í-ôÝý„… 3 1999 O

10 ` 8 ^ÌÝ XSLT ýã xsl:stylesheet 걦Ý×͝6¯ÝòP

version à¼ýîø!XñÇÝ XSLT +ŽÌÍ3GÝýã'nÌÍrDÎ

à#!3(Ìè çëÝ

3#ì¼Ýa;&ÆÞ¶ïY»XbÝ XSLT ¼ƒן¸à xsl ¼®

GHC™¬µA!&Æ3Ï 5 aXèÕÝGHC™ÎߊÝAŒ


à xsl 9ëÍCҝ3…×;à̀¢GHC™‘ÀZ¼‚

http://www.w3.org/1999/XSL/Transform 9Í XSLT ÝòÝ(Ìè ÉA|

ìݶ°Îy5y){!ݬÎ9ø†b^b@²î݌Lµã&ߊã

TJÏ

<&{·:stylesheet xmlns:&{·="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<&{·:template match="/">
......
</&{·:stylesheet>

7.3.3 ÙW5Š

5®`¨´69 XML Z3 XSLT Ý»ðĺ XML Š— Š—X

ÿŒÝΔxÇ G«XèÕÝÙW[7.2.2]A% 7.3 %NÍYiK‚×

Í ;F (node)µ Ë@t&ÝWa×øfÎ;F sŒœÝ›yÏ}Ý

Χ f;F (leaf node) . fî;𺌐„3 XML ÎWX

b‚ZC/Ý;F£°þ?‘ÝYi×KÎf;F

90 Ëw€ 2tigers.net
7.3 ޗ XSLT

% 7.3: 5®`¨´69 XML ZBã XML Š— X5—Œ¼ÝÎWYi


Ýݑ‚ XML Ý-vl

P¾• XML 91
7 XSLT — XML ÝòÝ»ð+

3#ì¼Ý&Ía;&ÆÞ ½ XSL § ÝXM399Wîɼɜ˜

È
3å\Ý`Î\ `ßé99ÙWݔxõW5|¾Õt{Ý.ê[Œ

mŠ/¼9¾9Í%¿¿

W3C Ý DOM : Í@% 7.3 ÝWϔxlîµÎ¶ï W3C Ý DOM ZÎÿlX5


http://www.w3.org/
—Œ¼Ýø
DOM

7.3.4 q-ôîb×ù

C 4Q5®`¨´63 XML §†q-ô[2.2]¬ß²bßF²bF3 XSLT Ea

Ðr “/” Š ®Ît{·5®`¨´6gA% 7.3! Unix T DOS ê”x

Ý\ïTŒp 

7.3.5 XSLT º•Þ;

ÿ”õETP

D G « Ï 7.2.2 ; © Õ ¯ 2à 0 Ý XSLT º ® Ý ø   ¨ 3 & Æ Š — J Í XSLT » ð

Ý ® Þ ;  G « 1 Õ XSL § ¶ïø!…Ý'3ÙWî0´)ÊÝ

; F[7.3.3] ¬ Ê ` ® ß ±  f  9 Í 5 ø ! … Ý '  6  3 XSLT  Ý Ñ P Ì ñ §

5 ÿ”P 6(template rules) XSL § µÎqA9°P¼´0;F®ß±D

Ý:Í@»

<?xml version="1.0" encoding="Big5" ?>


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="Big5"/>
<xsl:template match="/">
<html>
<p>×͜èüÝÿ”§‚¼N</p>
</html>
</xsl:template>
</xsl:stylesheet>

92 Ëw€ 2tigers.net
7.3 ޗ XSLT

9Î× JÝ XSL ø!…«©b×Íÿ”P&Æ:Õÿ”P| xsl:template

9 Í - ô ¼  L  Œ - ô X ‘ â Ý /    Œ ²  Ñ Î XSLT  X Û Ý 5 ÿ”

6 template A ‘ Z C I 5   xsl:template … « b Í match="..." Ý ò

P[2.2] XSL ø!Ñ΢½9ÍòP¼×å XSL § Œœ0%‚øÝ;F39

Í»ÿ”P¼ETÝ;FÎ / ôµÎ3ÙWtc·Ýq-ô

XSL § 3R›`ºÞXb3ø!Ýÿ”P:Ä×ŬnB3TQ

¡-lÚÙW‚v× / ìWNETÕ×Í;Fµ.8nÝÿ”PÝ

ÿ”'× Œ¼
ŠíŒÝZ…

. ¢× XML Z35—WWϔx¡5Wq6K×Î / ‚î»

Ý XSL ø!êâ?©â×ͼ(ŠETÕ / Ýÿ”PX|9 ø!ÑJ¼»ð

%‚øÝ XML Z#‹ 9ø× ¨‹Áݎ•Z


<my_xml>ˆ_ˆ</my_xml>

X®ßݔŒKÄÎ
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<p>×͜èüÝÿ”§‚¼N</p>
</html>

¯@î match ÝòP§y¸à@6Ý;F( î«Ý»Í@¸Î×

Í ETP (pattern) b×JÝ+°à¼óCø!…&Íÿ”PXETÕÝ

;F¡«º
×M+Û

bŠš¥ŒÝ×Fÿ”Ý/Ä6Î}PÑ@[2.5]Ý XML nð %‚Bÿ

3Ï 7.2.2 ;B—Õ XSL ø!Ý'/ÎBÄ XML Š— Š—Q¡

ø› XSL § Ý.hAŒø!…b¢×ðÀe}PÑ@ÝæJJÍ»ðÄ

º3 XML Š— £nµ…×´? XSL § qÍ=\KcÕð­•1GÎ

ÿ”PX‘âÝ s‚ÎJ XSL ø!KÄ6Î}PÑ@Ý XML AŒÿ”…

âb HTML DJ™ÄŠ¶ïÏ 6.4.2 ;ݘȯ×6K5¾ÕC}ýã6 ðð

6¯Ý </p> ”@ðaý„µ&xî

P¾• XML 93
7 XSLT — XML ÝòÝ»ð+

¨;Fõ+(

XSLT § ºÉW9Í;FÉÕ£Í;F‹yŒ§‚ÍÉ°&ÆÞ3Ï 7.3.5

D¡NÕ×ͱÝ;FXSLT § ƕúƒÝ+( (context) µ«½;Ž9Í

5±ÕÝ;F63 XSLT Ý+§ ¨;F (current node)Ç § `X3Ý

;F9ÍÃFœ 3 Unix/DOS ¼ƒƕ cd úƒ¼;Ž `X3Ýê±Õ

ÝêµWÝ×68E­5µÇÝýã

|Ï 7.3.1 ;5®`¨´6Ý»‚Ž. XSLT § º / q-ôìW

‚ø!êb×ÍETÕ / Ýÿ”P<xsl:template match="/"> § y

Î| / ®¨;F §9Íÿ”PÝ'

¨;FTà@» — xsl:value-of

E XSL ÿ”Ý/tݯ XSL § ×"×è2ï'팲|DÄ XSLT

¼ƒE£]®4à)‡ §ÍJMHP¶ÝEÿ”Ý/ XSL §

º:AŒÍb3òy XSLT (Ìè 9ìÝ-ôµ.¸ WμƒAŒ¸


[7.3.2]

:ÿU9ͼƒ-º†Ê HÜ»¼135®`¨´6Ý XSL ø!…b9×

ð
<xsl:template match="/">
<html>
<head>
<title>®`¨´”Œ</title>
</head>
<body>
<h1>®`¨´”Œ</h1>
<p><b>`Š</b><xsl:value-of select="*/`Š"/></p>
......
</body>
</html>
</xsl:template>

ÍÝ <xsl:value-of ... />µÎ×ÍðàÝ XSLT ¼ƒ¸;ðÎà¼\

ãÙWØ-ôX‘âÝZC/TÎØÍòPÝÂ

94 Ëw€ 2tigers.net
7.3 ޗ XSLT

<xsl:value-of ... /> Î×Íè-ô[2.5.1]¡«£¼


A ¥Œ
Ea (/) ½‘Ý

<xsl:value-of ...> ý„׊!î select 9ÍòPA! <xsl:template>

Ý match òP3 xsl:value-of select="..." /> … select òP¡«#

ÝôÎETP (pattern) ‚9g9Í "*/`Š":R¼ËÝ ÎÍPÝXSLT

ETP3ETÝ`Î|¨;F®8E›HÝF¸Ý+°õ Unix shell  DOS

ÿPÝjn­5î°b°v«39ÍPÏr * ºET՛y¨;Fì×

·ÝXb-ô;Fð­•1µÎXb¨;FX3-ôÝ-ô% 7.3 &Ɲ|

:Œ5 / 6µ©b5®`¨´6×Í-ô.h "*/`Š" PÝ * 3¨;

F‚º35 / 6Ý+(쩺ETÕ5®`¨´6

&ÆÝPb×fEa / 93ETP+°Îà¼5â;F·ùݵ /

3çëõ Unix Ùà¼&ê×ø)R¼ "*/`Š" ºETÕ×Í(§E`

ŠFÝ-ô;F¸ÝÒ;Fâ?Ψ;FÝ-ô;F

3&ÆÝ». ETÕÝ;FÎ×Í-ô XSLT § ºÞ <xsl:value-

of select = "*/`Š" /> J𼃂ð ÙW5`Š69Í-ô9ìÝZC/

Ç5¨´C™Eâ "8F0Õ 2 ‰69ðZC.h XSL ø!Ý9

ð

<xsl:template match="/">
......
<h1>®`¨´”Œ</h1>
<p><b>`Š</b><xsl:value-of select="*/`Š"/></p>
......

º XSLT § »ðW

......
<h1>®`¨´”Œ</h1>
<p>

P¾• XML 95
7 XSLT — XML ÝòÝ»ð+

<b>`Š</b>¨´C™Eâ "8F0Õ 2 ‰</p>


......

9øݔŒ

+(ȃ

! % 7.3 Þ XSL § f “ ž € é Ô  Ý  Þ · (pacman &  ` Î ø • Ý

gameº3ÙWî&Í;F þ¼þœ¬ÎÕêG c&ÆÝ+(×à‚º3

/Š¯Þ·a XSL § *ÅJ9WtðàÝ*»Î;Ž+(¯¨;F·

·ìÉbËÍ XSLT ¼ƒ — xsl:apply-templates õ xsl:for-each — |à

¼¾Õ9Íêݻɨ;FݛH

ÿ”á — xsl:apply-templates

F 3&ÆÝP»ETÕ / Ýÿ”…©yì×ͼƒ^ø‚
<xsl:template match="/">
<html>
<head>
<title>®`¨´”Œ</title>
</head>
<body>
<h1>®`¨´”Œ</h1>
<p><b>`Š</b><xsl:value-of select="*/`Š"/></p>
<xsl:apply-templates select="®`¨´"/>
</body>
</html>
</xsl:template>

3 D ¡ <xsl:apply-templates select = "..." />  G   ¼ / ) × ì

XSL § B+ÄÝI5|Cº•Ýø

1. XSL § \áXbÝÿ”P‘Àî«9Í

2. XSL § yÎ+¾ÙWãq-ô / :R

96 Ëw€ 2tigers.net
7.3 ޗ XSLT

3. lÚXbÝÿ”P::b^bÿ”PETÕ / 

4. s¨×͝àÝÿ”P §ÍÝ/

5. Þ <html> × à Õ <b>`Š</b> 9 I 5 ï Í … I 2 ' Õ ” Œ W î  Æ •

xsl:value-of . </b> õ </p>  ÝI5| XML æD5`Š6×

-ôÝZC/pá

#ì¼f´b:Ý <xsl:apply-templates select="®`¨´" /> b×

Í select ETPJͼƒÎ3×å XSL § 5. select ETÕÝ&Í;F

×× WΨ;F¬µ §9°;FÝÿ”6 <xsl:apply-templates> 

Ý select="..." òP6¯` XSL § Jº|Xb¨;FÝ-ô® §E

é

<xsl:apply-templates ... /> 3 9 … Î | è -


A ¥Œ
ô[2.5.1] P Œ ¨  ¡ « £ ¼ E a (/)  ½ ‘ Ý   b 

apply-templates Ý templates ΐó¡«b s ½

Ý

<xsl:apply-templates .../> ݌¨¯»ðøRݎ; XSL § 3

9…»GœÆ•Í€Ýÿ”P¬vÞ®ßݔŒã <xsl:apply-templates

.../> 9Fæá×àÕXbETÕÝÿ”PKƕ±t¡/¼Æ•æ¼ÿ”

yìÝI5‚. ̀ÿ”âb?9Ý <xsl:apply-templates .../>

¼ƒX|JÍøΌÕ^.îXÛÝ recursive LhÝƕ]PAŒ XSL

ø!'Œÿ?JŒ¨PMƕ݂(

݊ xsl:apply-templates ݌L¡&Ɲ|µ_· XSL § ÝX

M

P¾• XML 97
7 XSLT — XML ÝòÝ»ð+

6. ÂÕ <xsl:apply-templates .../> lÚXbÝÿ”P::b^bâ?

ETÕ5®`¨´6Ýÿ”P|¸à

7. s¨×͝àÝÿ”PAì

<xsl:template match="®`¨´">
<table>
<tr>
<th>`(</th>
<th>‰</th>
<th>1€°</th>
</tr>
<xsl:for-each select="®`">
<tr>
<td><xsl:value-of select="`("/></td>
<td><xsl:value-of select="‰"/></td>
<td><a href="{1€°/@çë}"><xsl:value-of select="1€°"/> ←-
</a></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>

8. §ÿ”Ý/Þ <table> ×àÕÏ×Í </tr> I5ï'


”ŒW

<xsl:apply-templates .../> æá

9. ÂÕ <xsl:for-each ...> ¼ƒõ‚vWì;5L ;-)

xsl:for-each ]º

G xsl:for-each Ψ×ͺ;Ž¨;Fõ+(ݼƒõ xsl:apply-templates

×ø xsl:for-each ¡«ôb×Í select ETPà¼óC±Ý¨;F3 XSLT

 select ETPXETÕÝ;FŒÿ©b×Í‚b?¿ÍAŒ©

×Í XSL § º¶ï¸Æ3 XML æDÝ5¼×× §ÉAG«»

Ý <xsl:for-each select="®`">à3Ï 7.3.1 ;Ý5®`¨´6 XML æD

î׺ETÕËÍ5®`6-ô XSL § yζï¸Æ3ZŒ¨Ý5

98 Ëw€ 2tigers.net
7.3 ޗ XSLT

.¨;F' Ï×Í5®`6â §Ý|¡.¨;F»ÉÕÏÞÍ5®

`6"8î

&ƨ3|µî×;ÎÝø.yìÝI5ø‚

9. ÂÕ <xsl:for-each ...> ¼ƒ¨;F»ÉÕÏ×Í5®`6-ô tÝ

Þ <xsl:for-each ...> . . . </xsl:for-each>  sXb¶iÝ HTML -

ôµï'
”ŒW²N ÂÕ <xsl:value-of ... /> ` XSL §

º|ÙWXETÕÝZC/ — 5½Î5Wlˆôâ65$2346

õ5î½sº6 — ¼‚ð9° XSLT ¼ƒ‹yÿ” "{1€°/@çë}" Ý

I5Îì×;ÝxÞõ`œÑ¸

10. ƕ×Æ xsl:for-each § ‘/ xsl:for-each R .¨;F»

ÉÕÏÞÍ5®`6"8A°¼%µ §ÍÝ/

11. ËÍÆ]¡Š»ðÝ XML æD^b?9Ý5®`6-ô §5®`

¨´6Ýÿ”P.×ƕ± § yÎ/Õæ¼Ý6áFôµÎq-ô /

Ýÿ”P <xsl:apply-templates .../> Ý2]µ §¡«ÝI5

12. / Ýÿ”©yì </body> õ </html> 9ËͶiÝý„XSL § yÎÞ

¸Æï'Õ팔Œ×W

xsl:for-each ÎÍðàÝ*». XML Z??‘âD«!ŸŒ¨Ý-

ôÉA 5®`¨´6Ý5®`6Q‚Œ¨Ýgó??üNg¨´Ý

”Œ¼8!‚Ñ. &Æ3P»Ýø!àÝ xsl:for-each Ѩ´”Œ

Œ¨¿‰5®`6&ÆÝø!K|BÑ;µÑ@2º•9Í¥ŠÝ©PÎ

¢WÝ XSL ø!XÄ6ÌnÝ

7.3.6 !òPÂÿ”"

G«1Õ ø!Ý-ô3òy XSLT Ý(Ìè `ôµÎ&ÆÝ»| xsl: H

P¾• XML 99
7 XSLT — XML ÝòÝ»ð+

RÝ£°-ô XSL § º.9°-ô W¼ƒœÆ•th²ø!…b

×Í2]ºSR XSL § Ý¥Œ XSLT (Ìè |²-ôÝòPÂÉA&ÆÝP

»b9‚×ð
<td><a href="{1€°/@çë}"><xsl:value-of select="1€°"/></a></td>

39… <td>  <a> 9° HTML -ô¬òy XSLT Ý(Ìè ‚ 9øÝ-

ô…«bÀ= {} ÀR¼ÝòPÂ`î» ‘I5 XSL § º.À

=Ý ½ ®Î òPÂÿ” (attribute value templates) ¼ §&Ɲ|.ò

PÂÿ”WÎ×ÍZ¯ÿ”…«|‘âÏ 7.3.5 ;—ÕÝETP XSL §

ºàv« § <xsl:value-of select="..." /> ÝW°¼Š\òPÂÿ”Ý

ETP¬v®‚ðAŒPETÿՋ—Ý•39ÍP»òPÂÿ”Î

51€°/@çë6…«b×ÍG«+ÛÄÝETÐr — @ 9Í€3 XSLT

Îà¼ETòP(Ý 9ø@ŠETÝòP(.h)R¼51€°/@çë6

ºETÕ¨;F9ì×ͧ51€°6-ôÝ5çë6òP

G«1Ä ETPETŒ¼Ý”ŒÎ-ôݕ XSL § º|Œ-ô9ìÝZ

C/¼®‚ðÄ9gÝPETÕÝÎ-ô‚ÎòP9˵ì XSL

§ º|ŒòPÝòP¼‚ð.h
<td><a href="{1€°/@çë}">......</a></td>

º5½»ðW
<td><a href="http://foo.bar/mouse/12478943">î½sº</a></td>

õ
<td><a href="http://foo.bar/kbd/83424723">®`©P</a></td>

7.3.7 íŒZCD'

B 1999 O 8 ` 13 ^ÌÝ XSLT 'n±¦Ý×Í xsl:output ¼ƒÝà¼'íŒ

100 Ëw€ 2tigers.net


7.4 XPath ­5à–+

DÝ&4©PÉACD¹4 (indentation) ‡xsl:output b×Í encoding

ÝòP|à¼×íŒÝCDÚ&ßmŠ|.¸' Big5  GB2312 T

UTF-8 ‡

7.4 XPath ­5à–+

&Æ3G«©+Ûݿ͍ŽÝETÐrA * õ / ¯@î XSLT ETP[7.3.5] Ý+

°8 ЂJ Î9I5Ý+°-9ÿ•|5ŒœŠW× Ž}Ýýã‚

9 ýãÝ@BŒ¨¸Ý(§ XPath ­5à–+ XPath :


http://www.w3.org/
XPath ÝêÝÎèº XSLT õ XPointer XML Z/I=”+×Í!J)Ý
TR/xpath
ET+°à¼ET XML ZÝ&ÍI›óCZÝxW--ôòPZ

C/ . . .  7.1 ÜÝ×°ðàÝETÐrCTà@» T


º:ÿÄ5¿

çB9°©ÄÎ×I5‚bK^Œ¼ XPath tÝèº×ET+

°²‘ÀÝ×°ÐóèºÃÍÝóCºÕõC™ §

7.5 ð
Ý — @®‰Y

ÀÕ"ÆÕ&>Ý :-):h:¬é\+Ž9‹—AŒ^bŠ @jE®–E

.Ð@3h˜È
| xt ®
Ý XSL § AŒ
Šà IE5 ݕš™Ä¢

Ï 7.5.2 ;Ý&¥Œ¯4

7.5.1 xt

Ï 7.2.3 ;+ÛÄã XSLT 'Œß Clark ßX¶Ý xt P¶ÎêG XSLT 8›Ý xt :


http://www.jclark.
ï¬EýãYît?tÑ@?Yî Big5/GB ZíŒÍaÝP»
com/xml/xt.html
-Î| xt ã|ì+¸ÝH„CE®]P

P¾• XML 101


7 XSLT — XML ÝòÝ»ð+

ETP 1€
Ø-ô ETÕ¨;FìXb( 5Ø-ô6Ý-ô
* ETÕ¨;FìXb-ô
*/Ø-ô ETՊ¨;FÕRXb( 5Ø-ô6Ý
;F
@ØòP ETÕ×Í!òy¨;F( 5ØòP6ÝòP
@* ETÕXb!òy¨;FÝòP
text() ETÕ¨;FÝ-ôXbZC;F
. ETÕ¨;F
.. ETÕ¨;Fî×ù
Ø-ô[1] ETÕ¨;FìÏ×ͧ†5Ø-ô6Ý-ô
Ø-ô[position()=1] ®à!î
Ø-ô/[@ØòP="ØÂ"] ETÕ¨;FìXb( 5Ø-ô6Ý-ô9
Í-ôÄ6âb×ͧ5ØòP6ÝòPÍò
PÂÄ6 5ØÂ6
-ôä|-ôØ ETÕ¨;FìXb( 5-ôä6õ5-ô
Ø6Ý-ô | ‚5T6Ýn;
.//¡t ETÕ¨;F9ìXb( 5¡t6Ý-
ô// Ðr‚¬÷óù
Þ//4 ETÕXb( 546Ý-ô¸ÆÝîùÄ6
b×ͧ5Þ6Ý-ô‚v5Þ6ÿΨ
;FÝ×Í-ô

 7.1: XPath ­5à–+ÝETPãCŠ W3C ýã

102 Ëw€ 2tigers.net


7.5 ð
Ý — @®‰Y

Java Ìa^

xt ÎÍ Java P.hXfÎÙîÄ6bƕ Java ݕ(ôµÎXÛÝ

Java Ìa^ny&¿¬ Java Ìa^ÝóCCìµFš¢&3 ccnv[p.38] H„1

€ݘÈ

ó쵊—

xt © Î Í XSL §  P  Í – Î / ˜  ¢ XML Š —  . h H „ xt  G  

Ù î Ä 6  „ b à Java ¶ Ý XML Š —  •  ó C XML Š — Î×4&ð¥

Š Ý ®  ½ « î Ý Java XML Š — 4ìè¿Ë¬ËÑ×)Ñ@—

P   ê Y î  Z Ý ? ?  ó  3 h Š '
. ¦ Sun Ý XML parser  ¸  Š

http://developer.java.sun.com/developer/products/xml/ ¹ð쵬

Ä6ۉ Java Ps"ººõ Sun Ý parser ¬Yî Big5/GB ‚vA

xml.com Ý?ŽÑ@—3Xb!v®`4(t{1 100% Ð) XML 1.0 ý

ãÝ!¨²×ÍYîZ©9Ý Java XML parser Î IBM Ý xml4j (XML for

Java) ¸| http://alphaworks.ibm.com/tech/xml4j 최ìôŠ

ۉ‚v3p`AŒàÝΊ ËÑÝ email 2ëê^b~Þ:z½ºa¼

×Àýï 

ìµ xt

xt Š ftp://ftp.jclark.com/pub/xml/xt.zip ìµ

H„ — 'v½­5

„Ä Java PÝ\ïKá¼b×Í CLASSPATH ݕ(ŽóŠ'3쵬ŠD

tŒÝ XML Š— õ xt ¡©ŠÞÍÝ .jar jxt.jar  xml.jar 

P¾• XML 103


7 XSLT — XML ÝòÝ»ð+

xml4j.jar . . . ÝH„­5

ÙÝ CLASSPATH •(Žóǝ

à1gj;¼ƒ

xt ÎͼƒÝP¢ób°3AŒNgƕ`KÆ×™H^[£Ý9

ͮޝ|à×Í Unix shell script T DOS 1gjD|ŠX9ì| Unix ¿¬Ý

shell script »

#!/bin/sh

# ' Java ŠË H„Ý­5


JAVA="/usr/local/java/bin/java"
# ¸à Sun Ý XML parser 
PARSER="com.sun.xml.parser.Parser"
# AŠ¸à IBM xml4j 2.x 
#PARSER="com.ibm.xml.parsers.SAXParser"
#
ô|3h' CLASSPATH 
# export CLASSPATH="$CLASSPATH:/path/to/xml.jar:/path/to/xt.jar"

$JAVA -Dcom.jclark.xsl.sax.parser=$PARSER com.jclark.xsl.sax.Driver $*

šŠ•ŸJÍÝ­5'AŒ
¸à Windows ¿¬J|¶×Í 9øÝ1g

j (.bat)

@ECHO OFF
SET JAVA=java

REM ¸à Sun Ý XML parser 


SET PARSER=com.sun.xml.parser.Parser
REM AŠ¸à IBM xml4j 2.x 
REM SET PARSER=com.ibm.xml.parsers.SAXParser
REM
ô|3h' CLASSPATH 
REM SET CLASSPATH=%CLASSPATH%;/path/to/xml.jar;/path/to/xt.jar

%JAVA% -Dcom.jclark.xsl.sax.parser=%PARSER% com.jclark.xsl.sax.Driver ←-


%1 %2 %3

104 Ëw€ 2tigers.net


7.5 ð
Ý — @®‰Y

¸à]°

×6K' ¡©Š3¼ƒì9Íúƒƒ'î–Ý1g>j( xt ‚vH

„3Ùƕj­5
xt XMLæDj( XSLø!j( íŒjj(

×ÎëÍۀj(Ý¢óƒ'
Ý'×6Ñ@¿JÖ¡»ðŒ¼Ý”ŒTŒ

µºD3íŒjj( 9Í
X¼ݱjn…ÝAŒ^ÿÕíŒjQ:Õý0

G>£µÎ xt  XML Š— T Java Ìa^^bH„' 


|¶mŠ¼2sìxŒÞî«èºÝ shell script |Ñ;ÉAá]

ºTg) find ¼ƒ®êU+M¼Æ•#‹g) cron ¼ƕ

7.5.2 ε IE5

AG«Ï 7.2.3 ;Xè. IE5 ÎqA× Ä`Ý XSL 'nX'Œ‚vEŒ 'n

ô©bI5YîX| ݯÍaÝP»5¿3 IE5 º• XSL ø!b¿Í2]Ä

6†ŸJ9°2]KB|ۊýî3P»…|ì/Š1€Ñ;Ý¥F

(Ìè Ý-²

IE5 àÝΝýã'n! Ý(Ìè — http://www.w3.org/TR/WD-xsl

¬ Î Š XSLT  XSL  } ñ Œ ¼ ¡  ¼  Ý ( Ì è ê G  ; http://www.

w3.org/1999/XSL/Transform  . h Š ¯ IE5  Ñ @ § ø !  Ä 6  Ñ ;

xsl:stylesheet -ôX…×Ý(Ìè ¸àÝ(Ìè 

IE5 Yî xsl:output

xsl:output 9ͼƒÎ3 1999 O 8 `Ý'n


œÝ.hG IE5 –9

ó XSL 8›KYî9ͼƒŠ¯ IE5 \ãÝ XSL ø!âb xsl:output 

P¾• XML 105


7 XSLT — XML ÝòÝ»ð+

ÿ.P»9•À*Tۊ*

IE5 YîòPÂÿ”

òPÂÿ”[7.3.6]¬Î×ͱ¬œö82 IE5 /˜Ý XSL § µ‘ÝY

î94]-ݐ3 IE5 Š¾Õv«P» {1€°/@çë} X®ßÝ[ŒÄ

6;à´3ݶ°| xsl:attribute õ xsl:value-of 8!¤gš¢W`

ï[7.3.1]bn9I5Ýۊ¬Þ
<td><a href="{1€°/@çë}"><xsl:value-of select="1€°"/></a></td>

9ð;ð ۊݶ°Ç@®`T¶Wו
<td><a><xsl:attribute name="href"> ←-
<xsl:value-of select="1€°/@çë"/> ←-
</xsl:attribute><xsl:value-of select="1€°"/></a></td>

106 Ëw€ 2tigers.net


8 DTD — XML +ˆÝL

8.1 tE DTD Ý:ô

&Æ3Ï 2 a—Õ3b°)… à}PÑ@[2.5] (well-formed) Ý XML Z

ÈÄ6g) DTD ¼z½LZÝ}P9ø3£]Š›;!FÝÄ&]

Ý XML Š— [2.4] |qA DTD Ç`@-X[ÕÝ£]}PÎÍÑ@P0AŒb®

ޝ|yîÆ/œšE]P¥FTšE]p£]ÝßÑÑ¡¥X9øµº.

PŒíá}Pý0Ý£]CW£]?û (corrupt) 0Ù£]0ѧîÝ

&9â#Ç XML/SGML TïB\Ä W3C HTML ýãÝß3g:Õ DTD

«Pf§Ý+°`Tqݖ^h|¡:Õ9Í~‹— OK T&&‘

ùÝF ;-#ì¼&Ɗ DTD §Œ×°ïª±€Ý:ô

G«¸àÄÝ <.¦h°> ×»! 8.1 ©Î× }PÑ@[2.5] Ý XML Z

<?xml version="1.0" encoding="Big5" ?>


<.¦Lh>
<h°>
<(Ì>õi¯Ýç°'Œ–a</(Ì>
<®ï> </®ï>
<³‰ 0JŽ›="±¬J">590</³‰>
</h°>
<h°>
<(Ì>A¢3 7-11 ç*ç„</(Ì>
<®ï>P(h</®ï>
<³‰ 0JŽ›="±¬J">120</³‰>
</h°>
</.¦Lh>

 8.1: aîh7 XML @»

107
8 DTD — XML +ˆÝL

µ¯&ÆJ¸®Yê_Í DTD Ï

8.1.1 W`ï
<?xml version="1.0" encoding="Big5" ?>
<!ELEMENT .¦Lh (h°*) > A
<!ELEMENT h° ((Ì, ®ï+, ³‰*) > B
<!ELEMENT (Ì (#PCDATA)>
<!ELEMENT ®ï (#PCDATA)>
<!ELEMENT ³‰ (#PCDATA)>
<!ATTLIST ³‰
0JŽ› ( ±¬J | ßÓJ | )J | Y- ) ’±¬J’> C

8.2 -ôv½…×

A &ÆZÝtÝ-ô½W2ã5ãìÕî6݈¯¼5Š9 Zݔ

x3! 8.1 ×b <(Ì>  <®ï> õ <³‰> ëÍâ?Ý-ôÝ-

ôà DTD Ýv½…ם|.9ëÍ-ôL 


<!ELEMENT (Ì (#PCDATA)>
<!ELEMENT ®ï (#PCDATA)>
<!ELEMENT ³‰ (#PCDATA)>

œ€•2ELEMENT ¡wÝÎ-ô(#½Î¸Ý5/ÿl61Wç•

µÎàhéÝî°L <-ô> xxx </-ô>  xxx Ý ½|Œ¨%‚øÝ/

¶!9Í5ÿl6ŠàÀrÀR¼

#PCDATA Î XML ï¼?ÝýB‚ Parsable Character DataÇ5

Š—ÝZC£]6Œ¤Î1…«ÝZC/|¯Š— (parser) œŠ\.hA

Œ/b < > & ‡9°1º› XML +Ž¸àÝÐr`Š.¸Æ5®ñ6

;¶W &lt; &gt;  õ &amp; µ 3 HTML ×øÍJŠ— º5,63£

É

|îëÍ-ôÝ/ÿlK§‚¼N…©bŽŸÝZC/¯@

îXML -ô|‘âƒ)PÝ/ (mixed content)ôµÎɝ|‘â-

108 Ëw€ 2tigers.net


8.2 -ôv½…×

ôꝑâZC/Ç #PCDATA9˃)/Ýhéÿlµf´Þýb:

°Ý

3#½L̀-G&+Û¿Í56Ðr

8.2.1 .

DTD ×A3Ñ!¨PbXÛÝquantifierTÌ5Þ6tðàÝb

5?65*6õ5+69ëÍÎà¼Ñø¸G«Ý£ÍŽ-ݧ‚1÷É

A&Æ15?0Ë69Í50Ë6ÑÎ×Í¡«¼ÑøÝÞ3 DTD 

àîóןŠ¸à9ËP®r (?) ‚5|bëÍT×Í6𭕵

Îc9©b×ÍÏr (*) ‚b¿ÍK|ôµÎ|bëÕP§9͏r

(+) Jî‹KŠb×ͬ^bî§ Ïr×ø9ÕP§Í

DTD Ý5?65*65,6õ5+6KÎ ASCII Ðr


A ¥Œ
–Š0àÝZÝÐr

8.2.2 άg

¨3/Õ-ôLݜÞîtÝ¿Í-ôŠXÝ|¡&Ɲ|?î”L B

î×·Ý-ôôµÎ <h°>

<!ELEMENT h° ((Ì, ®ï+, ³‰*) >

&Æ39…à<FõLÝ <h°> ìòÝëÍ-ôŒ¨Ý5õ&Ýó

î/&Æ1Õ ×ÍhÝ®ïbËß|î`Œ§‚îÝ®ÞbÝ DTD

¡&Æ-Eh€@|!P

ñï|îÝ-ô…× &ÆÂÕ <®ï> ©×ÍÝ`à

P¾• XML 109


8 DTD — XML +ˆÝL

......
<®ï>f«+</®ï>
<®ï>á(Ë</®ï>
......

Ý]P¼ý¥ÏÞë° . . . ®ï9ÑÎî«Ý…×35®ï6¡\w×Í

rÝޚbš¥Œ¸!`!×Íh^b®ïÍJµº E5³‰6

9Í-ôÝL×øàÏr‚àr

5£ %‚³‰×4µbP‚v|&ËË!ݳ‰6

. ×Íh^ÑP.Œ‰}$ÎXh²×Íh|à!Ý0JŽ

›¼5½‰ Q9°K©Î&ÍßÝ:°
|µï
ÝmOõ‡?Ê

)§Ýç­h7 DTD

&Æyì×Í-ôŠL£µÎtî·Ý <.¦Lh>. <.¦Lh> 

|‘âœ9‰ <h°>ô׉K^bÙÙÂÿ.¦ X|&Ƶ.¸

<!ELEMENT .¦Lh (h°*) >

8.3 òPv½…×

C 3! 8.1 &Æ:Õ3 <³‰> ×4b×Í50JŽ›6ÝòP3 DTD 

òPÎà <!ATTLIST ... > ¼†…×ATT µÎòPattribute ݍ¶Jͅ

×:R¼Î9øÝ

<!ATTLIST ³‰
0JŽ› ( ±¬J | ßÓJ | )J | Y- ) ’±¬J’ >

t¥ŠÝÎ50JŽ› . . . 69•Ì®5òPL6bë͊œ€•2

Ï×ÍÎòP(ÏÞÍÎòPv½t¡Îï'ÂTï'• Ýà–AŒòP©

×Íݕ9ë͊Ž-|NëÍëÍ9ø×ॐìœ39…&ƌàð•

110 Ëw€ 2tigers.net


8.4 ÙÙwÕ×R — Zv½…×

õ¹4.òPLM•Œ¼Í@ŠÙÙ^ÕGוôW˜ÈN͎- ©

Šb×ÍèçC-âµÈÝ

òPLbœ9Ëø39…&ÆóàÝÎÊ)&ÆÝfPî°.Xb

àÕÝòPÂ××fŒ¼‚v¥àaBr “|” ‚5T6^bŒ

¼ÝÂן&3 XML Z¸àòPÂÜ¡&Ɗèº×Íï'ÝÂ

&Ǝ.50JŽ›69ÍòP6¯*‚©¶
<³‰>120</³‰>

Ý`Î § XML £]ÝPºŠ›.¸:WÎ


<³‰ 0JŽ›="±¬J" >120</³‰>

8.4 ÙÙwÕ×R — Zv½…×

î«Ý-ôòP…×××'Œ?¡&Ɲ|.¸ÆJ§R¼†W×ÍJÝ

DTD¬v.¸õ&ÆGÝ XML Z! 8.1=”3×RbËË=”]P|

¸à×β#×Î/¶AŒà²#P&Æ©ŠÞâ¶?Ý DTD DÕ×Í

—j( .dtd ÝöZCjÉA§ book.dtd g)


<?xml version="1.0" encoding="Big5" ?>
<!DOCTYPE .¦Lh SYSTEM "book.dtd" >

9øÝ#”]Pµ|Ý&15#”6Î. AŒ9Í DTD j3!׬^

Ý!×Íê9ìJÄ6€@ý€çë‚©¶j(­5ÍJº0Õ

Tï&Ɲ|. DTD à#/¶3 XML Z9mŠàÕ <!DOCTYPE ...

>Ç5Zv½…×6Ýý¥¶°îbF CDATA  ÝŸŸ 9ø


<?xml version="1.0" encoding="Big5" ?>
<!DOCTYPE .¦Lh [
<!ELEMENT .¦Lh (h°*) >
......
]>
<.¦Lh>
......

P¾• XML 111


8 DTD — XML +ˆÝL

8.5 ”+

DTD Ý+°8 ÃÓ3hP°×׍ފ1|îÝ+ÛÄ©Îy?¯


3å\

DTD Z`‹yíÞâc½\

Í@ οà}PÑ@[2.5]Ý XML Z$ DTD -B|ºà XML É

A| XSLT ¼†}P»ð??¬mŠ DTD

DTD ŠW×}Ý+°1Î SGML `‚Ý5õñ6‚Î XML ݱs€

DTD Ý×lúJ3yP°§Yî(Ìè [5] Ý^×3Ï 2.6 ;èÕê

XML Schema : GÑs"ÿAjA Ý XML Schema àÚxýãÑÎ'Œ¼ã‚ DTD‚


http://www.w3.org/
vÞ RDF[1.3.5]SVG[1.3.3] XSLT[7.2] ‡Tà£øà#¸à XML +°.hà#µY
TR/xmlschema-1
Ý&9 XML ZÝ8T»A]-¨õÝ©P[4] XML Schema tÝYYî(

Ìè ¯ XML ý¥|DÄ&(Ìè URI[5.2.2] X=”Ý+ˆ[p.29]L¼®l?™

J[2.6]²b&9f DTD ?úݐ‘À£]vl (data types) ÝLE

SQL £]08›èº&ð¥ŠÝYîpM IBM õ Oracle ‡£]0¼ïPš•Ý

Næ Schema ýãgßêGÝs"XM:¼ Schema T3¿Í`/W

ÑPýã

112 Ëw€ 2tigers.net

You might also like