Sie sind auf Seite 1von 128

P¾• XML

æ% z

Ë©€ ®‡ 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

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

¢1iXb4KB®ï¼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ŠË©€ çììµ8ÌJíòz CË©€ ®‡Xb3ý€

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

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

ßh«!ŒG/DÄ Internet |²¢Fêª+‘À¬G§ö 8

h° ŽÓ‡|JTI5PÆ×»µ

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

ÆW`ÿàö¤¼ˆ¿à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 |° ß . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

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

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

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

2.10 PI ø!d” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 (Ìè Ýo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

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

5.5.1 ï'è oÐ)ºà . . . . . . . . . . . . . . . . . . . . . . . 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?™ßµ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 +VÝ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
nö®ï

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

Java  Perl óA0ÙHõ餙

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

Run!PC Ó¦¶Ýû

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

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

ç°'Œ]«Ý¶pÓ½

xi
ê 

xii
¶3G«

0.1 ¶9Íhݛ^

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

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

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

Ý-¿

XML Î×ÍμÝçšt&ۋöß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¬¹ðNî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à®o»Ý HTML Dí®Ü²ŠÕ

xiii
¶3G«

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

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

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

0.3 ÍhX¸àÝBrýî°

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

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

• o»õق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•î‹ö3̀+ŽÝå\ õE®Ù9

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

xiv
0.4 A¢ŸàhÝ&4

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

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

êZaÝ¥XC&!!%Ý_rí|/Id”]PÓ¨]-\ï

ãå

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

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

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

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

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

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

r

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

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

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

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


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

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

3 Acrobat Reader Ý'


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

Ýp NŠ›
=Ռçëœ

xv
¶3G«

0.5 þ8

4Q&E9ÍéhÝ_4C&4ø=”Ý'Œ]«õðsT¬"ö×®8ݧ

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


9‘ˆ

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

0.6 t+

ͽ˩€ 5ãöçàöç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&*>vÝÓçì¦9ÍC¿1BÕ

¾½~Ý2M&*>®`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õ*>Ýø

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

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

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

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

!8øøFL*>&Ƽ:Íçšh7Ý@»ì«9ð HTML DÞh°*>|

} (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°*>

</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 Ë©€ 2tigers.net
1.1 %óŠ. XML

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

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

<font> ‡ff/Î

*Fƒ'&Ɗ3çšî'ñ×ͱ·•¼ — ¿à^ ɓ (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ÈeÝ1 AŒ&

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

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

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

J„¬3*>Ýçšt&ßvmŠ@˜ä^ ¼&Æ95͊z|

HTML D¼ý¥Ý*>E^ õ_Ýß¼1¬H" ÝF §R¼?ÎÁ

—þz[£

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

æ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¦Ý*>3^b×®W HTML ç°GKÎ׉‰¶ïû

›;D3óA0Ý tables TΦÝ}Ì!ÿÝ餙çìKÎ9ó†¤`

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

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

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

<td> . . . ð­•1æ͘ñ3óA0&ð–òÝ*>Úx (schema) 3¤`*

>»ð HTML 躛ˆVÝ!`¾QPDŽ*F&ÆAŒÞóA0Ý

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

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


‚»è>¤

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

*Ýçšt&餙@˜·¼²²é\Ù Ý!›^Çä™*

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

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

1.1.2 XML G¼Š=

XML õ HTML Ý×! µ3ö3 XML ¦&Ɲ|ŠãLý)LŒ¼

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

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

4 Ë©€ 2tigers.net
1.1 %óŠ. XML

¾ Ý®°8!‹ö 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="GB2312" ?>

<.&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àošf«áÝ HTML Â

9ݝ ½&Æݏ è P§;¨

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

ɓ¨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*>

XML ;+&Ɲ|'ŒŒ?ÞÝݨõS[ÉA§¸œ0Xb XML ç°¦3

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

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

Ý Oracle8i óA0g)î€ÆݨõS[- ConText-èºÝ9øݐ

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

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

à#| XML P˜á

1.1.3 XML Ý8÷P

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

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

²²Ù Ý*>!;

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


¼ 

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

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

Ù ??.8A1Ý¿¬óA08‡CW*>ø;Ýæp39°²²

Ù †*>øø??mŠ¸à©„Ý85¿2¬÷BhÝb&

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

RB

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

Ž|\Eö&vl£]ÜñÎZaRDBMS ¦Ý£]% . . . ¡Z

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

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

6 Ë©€ 2tigers.net
1.1 %óŠ. XML

% 1.2: XML Î&ð§Ýçj+Ž]-&P&øçš Ì Ý*>øø

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Îà¢Ë}P;D£]Kà XML ¼®

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

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

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

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

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

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

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

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

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

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

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

®æàÝòÝçšÆש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

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

8 Ë©€ 2tigers.net
1.1 %óŠ. XML

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

KÎt·Îóß

XML Î2wÝýÝßßK|J¸¼s8N82¥.¹Š

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*N8]M XML | ¸Æ†FL

G>ÎÝ[U 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.
XP6¨•_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´ÊàöçšX|bIÿ©½'ŒÝ XML

ôµÎ1 XML Î SGML ލ+ÝçšÌ‚ SGML 1ÂÝ©P3 XML N

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

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

9°jnÝTà50 O+Ýé\îþ Word2000 WordStar 9°\

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

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

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

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

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

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

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

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

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

œÞ݌«

Š›; user agent ÎÉT

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

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

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

9øÝ;

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

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

10 Ë©€ 2tigers.net
1.1 %óŠ. XML

ÝRFâF^‡'?+¯œçšîÝ_•ãì¬.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 

|DÄ9°ý)œ"20Պ0Ý*>‚ºZ´3×n5HTML Wõ6Ý

?ÞÝݨõ

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

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

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

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

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

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

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

P¾• XML 11
1 +Û XML

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

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

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

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

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

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

1.2 XML Æ6

3óA0 | 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/ݲÌ‘ÀC›Ý

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

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

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

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

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

åÅ(

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

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

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

ì«&;Þ+ÛÝTà@»KÎà#˜Hö XML îÝ+Ž†5ß€Ý 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
à 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Îòö

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 ˜HööZC}PÝ XML îà#µYÝG«èÕÝ

XML ©P;²²Ù Ý*>øø]-óA0Ý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 ²Äæ
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 Ë©€ 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Šê_¼QR.h Director b Lingo +Ž9FÎ

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

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

¬)È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; Open Source D2ÝÿP¼s"Mozilla Œi¢#Tß Mozilla Œi :


http://www.
mozilla.org

P¾• XML 15
1 +Û XML

% 1.4: IBM Ý SVG p

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

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


œ

Š¯ SVG .¼n"3Šb]-?àÝ_ì ̌¨ãö 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ÝóA0C¨õ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¸ÝóA00Õ9Íç°NvÞXbõ9Íç°ntÛ6Ý̀ç

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

àïóCG?

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

à–皣Ù݆°‚XÛÝ5‚î*>6(meta info; meta data)à×­•

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


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

P¾• XML 17
1 +Û XML

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

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

݊›;øø|à¼à–皣Ù]-¨´¾£Ù£Ù Ý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 . àŠã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 Ë©€ 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 8D@2¥¨ æ¼

Ý .doc ..xlsõ .ppt }P

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

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

¼Yî XML ݆™ 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 Ë©€ 2tigers.net
2 XML +°r


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


|¿àÍݑsà#

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

<?xml version="1.0" encoding="GB2312" ?> 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="GB2312" ?>

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 ... ?> …××N6œÄ 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 8KYî Big5/GB2312 XML ýÝ©ú


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

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

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

encoding ýî Big5/GB2312 ÝZ‹ö %óŠ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Îàòö5.&Lh69ÍÒ-ô9ìÝ-ô

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

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

ô6 (root element)

22 Ë©€ 2tigers.net
2.3 ¥Š

% 2.1: XML -ôòP

2.3 ¥Š

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

½39¦N¥Š×A HTML ¥ŠÎw3 <!-- õ -->  Ý sA! 2.1 X

î

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


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

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

Ðr “s”  “t”  “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͊— ÝÆӗõÞ@—΢é\+¯íá

8XT&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 Ý'ŒïbeöêGçšî†ÊÝقD5ö6Ýç°9ó HTML

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

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

£NÝý0G>

5€ÆóŠ!ÿ9ó6

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

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


®
×MÝàH

P¾• XML 25
2 XML +°r


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

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

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

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

\ XML £]Ý

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

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 Ë©€ 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Ýݕ˜È


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æ XML6Ý ;-

2.6 |° ß

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¼××ß::¬×Íh!`bË͉D‚v¸àÝÎ!×Ë0

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

28 Ë©€ 2tigers.net
2.6 |° ß

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Ýóê¯ §£]ÝŠ›ÕŒÎ

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

÷  œ € • 2  & Æ ¨ 3 m Š  L ×  ° J ¼ ! o ¸  & Æ Ñ 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õ!oà DTD

LŒ¼Ý× XML TàݼÌ+§5+V6

|à DTD ¼@-ÍÑ@PÝ XML ZÌ® valid  b°ßÝ  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 +VÉA3Ï 1 a

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

'Œ 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 à 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&E®ÙEj(
xml
¶ÝV—×ø — XML Ñ Unix HÝE®Ù¶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 §ö—ZCÒ

£óÕ9Œ§ó¶÷š:

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

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

30 Ë©€ 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ø›ì*ݐ}Ý—µ=¢3 sRõ” Ýèç

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

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

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

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

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›öý)|²Ýè犗 Š×ÍÍD
TR/REC-html40
@2ø›ì*®
×M §. 9ͧ×&ÆÄ6;Ž&Æ_Ýê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 Ë©€ 2tigers.net
2.10 PI ø!d”

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

çKbÍD3݉ÂC©½ŒL

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

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

<­ xml:space="preserve" >


$r« $r
ש$r
</­>

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

2.10 PI ø!d”

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

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

Î;ð PI Îà¼FL ›Š— ì*ÝÝÉ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 d”ø!ÝýݝŠ http://www.w3.org/TR/xml-stylesheet ìµ

P¾• XML 33
2 XML +°r


2.11 ¢œ¢

.Ý XML ÝÃÍ+°AŒ


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

ήÕÏ 8 aå\

34 Ë©€ 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 ΛöÿÝ»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 àÝ×Ë^ם|T}μ_Dè à¼Ý®Þ}+ºè
Õ

35
3 Unicode 15€

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

ÞUnicode õ UCS àÝ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ٓCN‘â^ðßþ€ŒÝ

“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óA0Š 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 Ý\ï²×\

36 Ë©€ 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Ä

¼†»ð‚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 àÝÔ 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

Î×ÍD2ݹð| Java ¶WêG©bú

ƒ&«|Ë©€ ìµ/! 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  †»ðΜ|ݯ×ËØÍ8Yî UTF-8/16 ¬Nà

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

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

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

†CD»ðÉA perl ÝXML::Parser ÿs4Q©íŒ 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à83 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ì×NŠÕz½T

E XML ݸàïۋö_»DT. Java +ŽÝ\ï‡KbXÃÇ


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

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

”||ÝI*Þ;QÃ3K´ÌÁ‡@ϬÎAŒ
¿ðô_×F

‚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 83 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 oš ÝCÐJ|ÏÞËP¼ýî‹ö

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

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

% 3.1: UTF-8 Ý_Dæ§

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

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

£ó 3 § 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ãöÍ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¨•ÝE®ÙÐP (libraries) ‡8]

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

\ÉACC Ý&?03 §`Ä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 Ë©€ 2tigers.net
3.3 ”||ÝÞ;

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

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

µª×¹–\

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

E Unicode ·¶þþLÍÎ3Ĝ B7›õ{8‰}^ Ë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«{Äöþ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 Þoš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 ÌN^b›àՂ§E¼_C#ì¼

ãO/ÃôºàÕ. ‚§E|²Ý009 ›B•|T}*^9ó

)ÝmŠ¼ÑAh&Ɲ|¿àÍÝ{à 9Îì×;ÝxÞ

3.3.6 {à 

Unicode 1ºÝës{à _Ýߝ|J¼ŠãºàÍËs3‚§E

Ý ½6g)‚§EÝ_D]PÇ UTF-16¼¸àAŒ&ÆÝmŠàÕ

Unicode ^b[ݞCT©„Ðrµ|¿à{à ¼£°CІ_D

Unicode Ï×s{à  U+E000 Õ U+F8FF 6,400 Í ›‚§EÝ

{à J‘À 0xF0000 -- 0xFFFFD õ 0x100000 -- 0x10FFFDVèë0Í 

›

44 Ë©€ 2tigers.net
4 XML ;õÌ

4.1 CSS á

nö 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 Ë©€ 2tigers.net
5 (Ìè

(Ìè (namespace) ÝÃFE XML &ð¥ŠAŒKݸXML ÝTàošº

2åÕ§×AŒ
ºà Perl T Java £ó
œB3¸à(Ìè ‚

ŠáÝ1 

(Ìè Ý!N^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Ä&

.ݼ™Ýõ‹ö¼™ÝõÝ=é•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ø›ÝõÆ

øÍé•‹ö¼™ÝõÝ=£]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 +V[p.29]AŒwÕ×sàºÆÚ4QEß\¼1¢½5—îìZ

|œ|ÞË͌ !Ý <é•>  ½¬Eé\¼1:NµŒÿ£ó

|Ý.h39˵ì&ÆmŠÝÎ׍Ž€ÝÝð°¯^ 3 §Ý`

48 Ë©€ 2tigers.net
5.1 %ómŠ(Ìè

ÎàJ\ŽǸ^b¢(ÌîÝ]M&Æ)mŠ×͍ŽÝ]°¯é

\á¼ø°-ô¼ŠöøÍ+V|-¸àŒ+VÝ 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 +V[p.29]K&Šà×Í}×PÞÝý¼‚Nv3¸à`.9Íýõ+

VÝ-ôòP(=3×sɸൖEºõ̀+V4zÝ. NÍ+V

Ý(ÌKBŒ+VÝ}©ýîD›Ñø§ (qualify) œÝÍ@9͊

X]nõî«èÕÑ;ý)(Ì݆°b°v« â&ÆÎ.5ˆV6Þ

C3ŒLâWÝ(ÌA52ë65é•6G¯5ˆV(Ž69Í+V¦Ý-

ô(Žÿf´}©
‚3Kõ̀+VR]MÝ^º‚(Ìè ݆°Jί_

¶ XML ZÝßZXàÕÝ+VŠ•¼ýîD

×Í}©ÝýîD‚×+V&+VÝ(Ì.‚&ÿÍXbŠ Ý

þ›è 5(Ìè 6Ýú(ÑÎãh‚¼

2
¯@îµ 8×ø9óߺœ$ DTD 'ŒÝ‹—‚ºà#¿à¨WÝ DTD XLŒ¼Ý
+VÉ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 àÝ×Íπ-Ý]°¼¼(Ìè ÉQç½(BÎ}©Ý£

¢à#¿à.Á˜3¸îàç뼂(Ìè ÷3 aŒ9aHÁ

HŒQÎ{ 9ø×¼.-5. 6›&2¥^n¼.. &^nEw

3Š ç½9ìÝçëTŒbÝxJX|×6(Ìè ýîDݼ ®

µÙÙø›_¶ XML ZÝß¼X

‹öçëÝóC®Þ4Q(Ìè ÝæêÝ©Îà¼E× Z!Ý

+V| â¼øÍçëŒÿc¥Š©Š â¼µ?XàÝçë#

‹mŠD3 ¬3hΘÈ
òW?êY — h&ÆÝç½3^Çÿß

.&GŠB5Ãà6ÉAJ W3C T̀á(2¥Ýç½(¼9_×Íç

뛊 'ŒÝ+V (Ìè àµΜ?݆°4 KTŒ©àòöŠ

homepage 9ìÝçë

3
Java Ý(Ìè ôÎàv«Ý]°à#Úx3 DNS ½(î
4
‰ïÝ@ŒÄbß9ó†

50 Ë©€ 2tigers.net
5.2 (Ìè Ý

% 5.1: URL  URN õ URI Ýn

5.2.2 URL  URN  URI — ½¢ZWÝ

&ÆYÌÝ5çë6lîÎ8 ö URL Í@(Ìè Ý!àÝÎ URI ¬

ݯ\ï|§Š&ь3î¸àf´!Ý5çë6×ÞURI (§

Uniform Resource Identifier Ù×£ÙýîD9Î×Í Internet ýÝBµö

RFC 2396‹ö×ß´ !áÝ 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™ýîÝ皣ÙošˆÝ 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 Ë©€ 2tigers.net
5.3 (Ìè ݅×

5.3 (Ìè ݅×

5.3.1 GHC™

&ÆBá¼(Ìè Ýæ§Î¢½5}©ýîD+(Ì6Ý]P¯NÍ XML +V A

Ý-ôòP(KbŠ ÝF2‚ºõ̀+VÝ(!«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¶ê¿öå\¯@îXML 83 §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|üaAr;à=CrÑÎ. õ(Ìè Ý'Œ

8]M

. (Ìè ΢½òP¼®…×X|Ä6µ!3×Í-ôý)¦«‹öŒw

3øÍ-ô¦Š:@jmŠ‚&Æ}+ºjE9ͮޮ1€

Š3× XML Z!`¸à9Ë+V9ÑÎ(Ìè ÝêÝ©ŠÞ&

+VÝ(Ìè õGHC™L…×?Q+ÚmŠ3-ôTòP(GCîÊ

ÝGHC™NÞÞï|Arâǝ9ø×¼¬øÍ(̼ŠøÍ+V

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 Ë©€ 2tigers.net
5.4 (Ìè Ýo

<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 +V¼Ý(Ìè ýî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òøÍ

+V5ÿzz½½

5.4 (Ìè Ýo

o (scope) ÝÃFE'Œ&𥊃'&Æ.î«Ý»;¶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ˆÝo;ŽXbRCI

5Ä6œ*ÍJµÎý0 %ó. <ˆV(Ž> õ <ˆV> 5½Î <=ß> Ý

ÞÒõÒ-ô·ùŠf <=ß> { <=ß> Iœ@Æ ;-)¬ÎŠI·ùf¸

±Ý-ôA <(>  <î> JήÞ

. (Ìè boÝ©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Ío+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™î«Ýo»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 Ë©€ 2tigers.net
5.5 ï'Ý(Ìè

......
<=ß>
<y:(>...</y:(>
<y:é•>
<y:5^>...</y:5^>
<y:î>...</y:î>
</y:é•>
<y:email>...</y:email>
</=ß>
</ˆV>
......
</ˆV(Ž>

5ˆV(Ž69+V¨3¼ ï'Ý(Ìè ¢^bGHC™õArÝ-ô

(Kº-®Îòö9Íè 

ï'Ý(Ìè |3ZŽ¼Žœµ ×ÍGHC™3!× Z D

|+õ!Ý URI ™=×øN&…×Ä×g+µà©Ä+«Ý…×

º«G«!(݅×ÉA
<ˆV(Ž xmlns="http://foo.bar.com/xml/customer.dtd" >
<ˆV>
<(Ì>“ɸ</(Ì>
<2ë>...</2ë>
<é•>...</é•>
<çë>...</çë>
......
<!¥>
<!-- ;à HTML ¼®ï'è -->
<p xmlns="http://www.w3.org/TR/REC-html40" >
hˆV8 p‚v<b>&ð¾</b>õ€Æ€”TËGt?ՀÝ
<a href="http://jerk.com/boss/">Íßçì</a>œ::€t‡KÔ%ó
</p>
<!-- Ò HTML (Ìè Ýo -->
</!¥>
......

5.5.1 ï'è oÐ)ºà

î«Ýo»»ú2¿àÕï'è õoÝ©P.5ˆV(Ž6õ HTML Ë+V

&ŠÝo5Ý×zÞ½Xb3 <!¥> ¦«ÝI5‘â <!¥> 3òö

P¾• XML 57
5 (Ìè

HTML Ý(Ìè ŒÝ <!¥> |+5ˆV(Ž6Ý(Ìè ꥱß[¬Æ

ZÝï'è 

9Ío»!`"îݨ×Í@àÝ*» — ø=”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 N^b/˜ŽÝ9 êGô^b×Í;•Ý “FormML” ý

Ý.hŠ3 XML Z!pNv3p Ñ@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Žõd”Ý[ŒKºŒ¼

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


<!-- 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">=ÕË©€ </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 Ë©€ 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Ø+VÝZ}P+V

ô!`¬–׎W ¦PÝÿs|õ̀Ý+VÿsŒà)¤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 Ë©€ 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 ˜ÈýÝN‚µù
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="GB2312" ?> 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>㩀 È:</title> D
<meta http-equiv="Content-Type"
content=’text/html; charset="GB2312"’ /> 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 Ë©€ 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 ÌõŠ›;¸àï‚

[4]îç ßv†&P&ø݆™bÝ#‹1ÕÝ2- 2002 O75% Ýç°K

ÞDÄ9°&wîlé\¼:1 

š½0º&NÎ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‚¸ùÐ

)ýÝ?NÝΝ=×°ç°×® ̆Œ¼Ýç°KŒÿ)}3 PC

Ì%Ý*^9ΜÝ®Þ. &Æb•ÈÝB7›õ{8è ¼õò9°ÿQ

ºÎ¬‡òÝÞ¼ DßyÝçš ÌŠ› `¸Æ/˜Ýç°å

\ Š— ÎÍ ¨3Ýp 9ø.ÈýÝÝç°ïç°'Œï

¾ÝæŒ5¿2Ó¨Œ¼÷
1
à#SàŠ XHTML ýÝ
2
Nokia t-sÝμîÝÕl¬[:ó›éÚ?/˜ Linux E®Ùõ 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

¹ — ÿs;

HTML t\Î͍ŽÝ+Ž'Œ› CERN {ΧTÝ!$ øð@~Tÿ

ଵ WWW ±RœË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ÝÿsN×à©ݐKã×͎}Ý DTD[8] ¼.

Lð­•1µÎ.¨bºÝ HTML 4.0 DTD ÿs;N×à DTD ©Yî×I

5Ýý)E!Ýp ̝|jEÍͽݕ ©PŒKM'ŒŒÝàÝ

DTD ÉAÊ)•î5vi« (frames) Ýé\µŠYî‘â frame Ý

DTD 9ø×¼¬3D9° ÌݐH?¯¸Æ¼sì&ŠÝ©P

¯@îÿs;ÑÎêG W3C XHTML àÝ ®¥F4Q3¨•Ý XHTML 1.0

XHTML 1.1 : ýÝ©ïͅI2ŒÝëÍ DTD +«º—Õ¬ÎXs"Ý XHTML 1.1


http://www.w3.org/
TR/xhtml11

64 Ë©€ 2tigers.net
6.3 %ómŠ XHTML

'nJ”Á׍ÿs·„Ýæ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£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 ™ß‹öŠ‡±×‚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 Ë©€ 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 ÝÃÍ+°ãö 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}ý9N

ÕÎ HTML õ XML 8] . 93 HTML ôÕ)}©Î& HTML p


4
bƒ'
ºà HTML

P¾• XML 67
6 ì×‚Ý HTML — XHTML

Eöý)øü݆°ðש¿Tש¿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 è-ôý)õ̀ý)

Ý NP!°×Ý-½Îè-ô©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 Ë©€ 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   Ý \ ï ù

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?™ßµA

î«X1Ý&4}PÑ@Ý!ÄÎXb XML ZKÄ6!ñFÝ×°tRD

݊O&Æá¼3 XML b°ß[2.6] (validity) ÝÃFðõ}PÑ@8èN

¡£óXHTML ZtÝO}PÑ@²ÎÍôŠb°ß÷

£ Q

Î } P Ñ @ Ý Z  q Í   Õ Î XHTML  † Í  © Î ) } Ý XML Z  i

ÝXHTML . Îà#¿à¨WÝ HTML ý)X|µ &ÆĜ¶ HTML Z

`×ø3à XHTML ¶‹—`ôÄ6@Z¸àÝý)(KÎ@@D3Ý


6
_Ý\BKá¼9§ boolean

P¾• XML 69
6 ì×‚Ý HTML — XHTML

HTML4.0/XHTML ý)bý) 8!ÝnŒ¨Ý5Kf¼9ÑÎ

b°ß݌LX3

ó¥€ DTD

&Æ3Ï 2.6 ;èÄb°ßÝ5°6¼ÝÎ DTD[8] Š¯ XML ZDÄØ

DTD °J|™ßG&Æÿ¼×Í)ÊÝ DTD Q+3 XML …×€çË×

tß9 ZóàÝÎ£Í DTD9ø?¯ XML Š— bÍEï™ßݵA

G«1ÕêGÝ XHTML 1.0 'nbëË!Ý DTD ºß¸àμ

½ DTD ÿs;Ý;Ý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 Ë©€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

ó? DTD |+µ|Ýn…×Ý3Ï 8.2 °&ƗÕà B


<!DOCTYPE doc SYSTEM "http://foo.bar/baz.dtd">

9øÝ]P¼d”×ͲIÝ DTDÍÝ doc Ό XML Zq-ôÝ(Ì‚

"http://foo.bar/baz.dtd" JÎ DTD X3Ýçë5SYSTEM "çë"69I5

)R¼§5 ²Iýî 6(External ID)

‹öî«+ÛÝëË 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Í-ôÎòöøÍ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°ßÝ®ÞKŠX+#ì¼Ýµ?ðÝ

-ôòPן¶

J G«—Ä XML Unix Ùõ&9+Ž×øÎb 5¶Ý[2.7]. 9Í

`ÆXHTML  HTML £øý)¶ ¯-Ä6Ù×®Í!‚ýÝ

Xà¶.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Œ²̀ý¥+Ý(Ìè ô??à&ýÝZX3Ý

ç뼂

72 Ë©€ 2tigers.net
6.4 XHTML õ HTML 4.0 Ý-½

G«—Õ(Ìè Ý^×Î XHTML |öU†[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 à#/¶3¦«9°ø!õ 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 ݆°.wÕ¥Š

µ”Ý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ø›ì*Ýð­•1¥Š/ÎÍÕÿÝp Wÿ:Š—

{·‚¬ CDATA  µ×øÝ — 9I5Š— | -¯*. 9Í`

ÆXHTML 1.0 !Šà CDATA  ‚×å|ॊ¼†

6.5 XHTML — Õ9› :

BÄl?™ßÝ 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 á ¼  † ™ Њb

Ê Ý MIME Content-Type: '  8 g )  •  8 E ö .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 Ë©€ 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="GB2312" ?>


......
<meta http-equiv="Content-Type" content=’text/html; charset="GB2312"’ />

½Ý<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 |d”Ý]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] ÎÍ Unix ŸŸÝúƒ+« Ì9Î×Í

C Yî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 Ë©€ 2tigers.net
6.7 t+

5¿ÿÕíŒjN‚×6Ð)ýÝAŒ
ÝjnàÕÝýÝYî

¬Øp YîÝý)òPý0G>º××܌¼Ċ¥ŒÝÎ

º$՜9ýî “warning” ÝG>9°I5©Î Tidy Ý5ú¦˜È6t

ðŒÝ  <img> ý)TŒŠ!î alt òPNΐ¥Ýý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Ýܲ*>

˜È
/ÕÍaâÝ2]¿à£¦ÝقDo»QÃ
××/39a¦

.ÕݱÃF¯é?Ñ

P¾• XML 77
6 ì×‚Ý HTML — XHTML

78 Ë©€ 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 Ý»ð+°N§öÞ 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²

ãö 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*>AŒ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 àÝλðÝ]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òöø![1.2]Ý×Ëø!Îà¼'²ÌݸNÅ(æ¼Ý XML Ù

‚DXSL 4QàÝλðÝ]P¬5»ð6N‚قDºÍ՟;;ð XSL

»ð+ÝíŒDΨDÕ×ͱÝjnTõD3p ÝB7›æ¼Ý XML

jn/J1¹Ž

80 Ë©€ 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 N^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 Ý»ðÄt+9Í­.Æ㏨3Yî FO

Ý8µ??ó

W3C ôŽåÕ&]E XSL ÝDæ3 1999 O 4 ` W3C ÑPÞ XSL ýÝÝ

G–Inö»ð+°ÝB– XSL 5Œ¼N ¸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®Ñ;‹ö¸ÎÍ5¿W ÑPýÝ

(recommendation)Œnœ"µºëLv¯&Ƹê|Íhôº« t±Ý

›VÊ`?±

P¾• XML 81
7 XSLT — XML ÝòÝ»ð+

ãö 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ó8YîÝô©Î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ÎóA0Ç`ãÿݝ)ìtÊ)9˺®]P.í

82 Ë©€ 2tigers.net
7.2 XSLT á

Œ XML ÝóA08JœD3ö¨×¬^ î| XML ¼'.

XML → HTML »ðÝ server FL£]9Ψ3t#Ýë·P n ·P

(3-tier, n-tier) Ý server x]PlóA0çì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 Ýé\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 T¤

› 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òö 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 Ë©€ 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óÝ8KÎ| 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ݤ¼88f??bÄ‚PC?òÝ΀Ý

8KÎ|D2 (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
ÿsó®/˜Š— 

86 Ë©€ 2tigers.net
7.3 ޗ XSLT

7.3.1 W`ï

ƒ'b×é\{×C¤3çì躮`¨´Ý†™€ÆÝóA0B

| XML PíŒ|ìÎ׉Þaݨ´”Œ
<?xml version="1.0" encoding="GB2312" ?>
<?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]

¼Ó¨¨õÕÝ®`*>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=GB2312">
<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="GB2312" ?>


<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="GB2312"/> B

88 Ë©€ 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òö “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Ä6Hö <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µã&ߊã

TßÏ

<&{·: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ŒœÝ›öÏ}Ý

Χ f;F (leaf node) . fî;𺌐3 XML ÎWX

b‚ZC/Ý;F£°þ?‘ÝYiùKÎf;F

90 Ë©€ 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] N Ê ` ® ß ±  f  9 Í 5 ø ! ¦ Ý '  6  3 XSLT  Ý Ñ P Ì ñ §

5 ÿ”P 6(template rules) XSL § µÎqA9°P¼´0;F®ß±D

Ý:Í@»

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


<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="GB2312"/>
<xsl:template match="/">
<html>
<p>×͜èüÝÿ”§ó¼N</p>
</html>
</xsl:template>
</xsl:stylesheet>

92 Ë©€ 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:Ä×ÅNnB3TQ

+-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§ö¸à@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‹öŒ§óÍÉ°&ÆÞ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="/"> § ö

Î| / ®¨;F §9Íÿ”PÝ'

¨;FTà@» — xsl:value-of

E XSL ÿ”Ý/tݯ XSL § ×"×è2ï'팲|DÄ XSLT

úƒE£]®4à)‡ §ÍJMHP¶ÝEÿ”Ý/ XSL §

º:AŒÍb3òö 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 Ë©€ 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՛ö¨;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&ÆÝo»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 § öÎ+¾ÙWãq-ô / :R

96 Ë©€ 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Ψ;FNµ §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œÆ•Í€Ýÿ”PNvÞ®ßݔŒã <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 § öζï¸Æ3ZŒ¨Ý5

98 Ë©€ 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 úƒ‹öÿ” "{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.×ƕ± § öÎ/Õæ¼Ý6áFôµÎq-ô /

Ýÿ”P <xsl:apply-templates .../> Ý2]µ §+«ÝI5

12. / Ýÿ”©yì </body> õ </html> 9ËͶiÝý)XSL § öÎÞ

¸Æï'Õ팔Œ×W

xsl:for-each ÎÍðàÝ*». XML Z??‘âD«!ŸŒ¨Ý-

ôÉA 5®`¨´6Ý5®`6Q‚Œ¨Ýgó??üNg¨´Ý

”Œ¼8!‚Ñ. &Æ3o»Ýø!àÝ xsl:for-each Ѩ´”Œ

Œ¨ã‰5®`6&ÆÝø!K|BÑ;µÑ@2º•9Í¥ŠÝ©PÎ

¢WÝ XSL ø!XÄ6ÌnÝ

7.3.6 ?òPÂÿ”@

G«1Õ ø!Ý-ô3òö XSLT Ý(Ìè `ôµÎ&ÆÝ»| xsl: H

P¾• XML 99
7 XSLT — XML ÝòÝ»ð+

RÝ£°-ô XSL § º.9°-ô WúƒœÆ•th²ø!¦b

×Í2]ºSR XSL § Ý¥Œ XSLT (Ìè |²-ôÝòPÂÉA&ÆÝo

»b9ó×ð
<td><a href="{1€°/@çë}"><xsl:value-of select="1€°"/></a></td>

39¦ <td>  <a> 9° HTML -ôNòö 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Âÿ”Ý

ETPNv®‚ðAŒPETÿՋ—Ý•39Ío»ò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 Ë©€ 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Ýo»
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Õ×Í!òö¨;F( 5ØòP6ÝòP
@* ETÕXb!òö¨;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 Ë©€ 2tigers.net


7.5 ð
Ý — @®‰Y

Java Ìa^

xt ÎÍ Java .hXfÎÙîÄ6bƕ Java ݕ(ôµÎXÛÝ

Java Ìa^nö&¿¬ Java Ìa^ÝóCCìµFš¢&3 ccnv[p.38] H„1

€ݘÈ

ó쵊—

xt © Î Í XSL §    Í – Î / ˜  ¢ 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 s"ººõ 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 Ý\ïKá¼b×Í CLASSPATH ݕ(ŽóŠ'3ìµNŠD

tŒÝ XML Š— õ xt +©ŠÞÍÝ .jar jxt.jar  xml.jar 

P¾• XML 103


7 XSLT — XML ÝòÝ»ð+

xml4j.jar . . . ÝH„­5

ÙÝ CLASSPATH •(Žóǝ

à1gj;úƒ

xt ÎÍúƒÝ¢ó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 Ë©€ 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Ýo»5¿3 IE5 º• XSL ø!bãÍ2]Ä

6†ŸJ9°2]KB|¥Šýî3o»¦|ì/Š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 8KYî9ÍúƒŠ¯ IE5 \ãÝ XSL ø!âb xsl:output 

P¾• XML 105


7 XSLT — XML ÝòÝ»ð+

ÿ.o»9•À*T¥Š*

IE5 YîòPÂÿ”

òPÂÿ”[7.3.6]NÎ×ͱ¬œö82 IE5 /˜Ý XSL § µ‘ÝY

î94]-ݐ3 IE5 Š¾Õv«o» {1€°/@çë} X®ßÝ[ŒÄ

6;à´3ݶ°| xsl:attribute õ xsl:value-of 8!¤gš¢W`

ï[7.3.1]bn9I5Ý¥ŠNÞ
<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 Ë©€ 2tigers.net


8 DTD — XML +VÝ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]¥FTšE]p£]ÝßÑÑ+¥X9øµº.

PŒíá}Pý0Ý£]CW£]?û (corrupt) 0ÙóA0ѧîÝ

&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="GB2312" ?>


<.&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 +VÝL

µ¯&ÆJ¸®Yê_Í DTD Ï

8.1.1 W`ï
<?xml version="1.0" encoding="GB2312" ?>
<!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Ý-ô½Wã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 Ë©€ 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€@|!o

ñï|îÝ-ô…× &ÆÂÕ <®ï> ©×ÍÝ`à

P¾• XML 109


8 DTD — XML +VÝ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 Ë©€ 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 £]ݺŠ›.¸:WÎ


<³‰ 0JŽ›="±¬J" >120</³‰>

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

î«Ý-ôòP…×××'Œ?+&Ɲ|.¸ÆJ§R¼†W×ÍJÝ

DTDNv.¸õ&ÆGÝ XML Z! 8.1=”3×RbËË=”]P|

¸à×β#×Î/¶AŒà²#P&Æ©ŠÞâ¶?Ý DTD DÕ×Í

—j( .dtd ÝöZCjÉA§ book.dtd g)


<?xml version="1.0" encoding="GB2312" ?>
<!DOCTYPE .&Lh SYSTEM "book.dtd" >

9øÝd”]Pµ|Ý&15d”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="GB2312" ?>
<!DOCTYPE .&Lh [
<!ELEMENT .&Lh (h°*) >
......
]>
<.&Lh>
......

P¾• XML 111


8 DTD — XML +VÝL

8.5 ”+

DTD Ý+°8 ÃÓ3hP°×׍ފ1|îÝ+ÛÄ©Îy¯


3å\

DTD Z`‹öíÞâc½\

Í@ οà}PÑ@[2.5]Ý XML Z$ DTD -B|ºà XML É

A| XSLT ¼†}P»ð??NmŠ DTD

DTD ŠW×}Ý+°1Î SGML `‚Ý5õñ6‚Î XML ݱs€

DTD Ý×lúJ3öP°§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=”Ý+V[p.29]L¼®l?™

ß[2.6]²b&9f DTD ?úݐ‘À£]vl (data types) ÝLE

SQL óA08èº&ð¥ŠÝYîpM IBM õ Oracle ‡óA0¼ïPš•Ý

Næ Schema ýÝgßêGÝs"XM:¼ Schema T3ãÍ`/W

ÑPýÝ

112 Ë©€ 2tigers.net

Das könnte Ihnen auch gefallen