DocBook ¤å¥ó»s§@¶i¶¥(¤@) ¤å¥ó¼Ò²Õ¤Æ

¦Ñ°^¥Í

Ápµ¸¤H
¥xÆW¥øÃZÄ_Ä_¤u§@¶¤
Revision History
Revision Revision: 1.1.2.9Date: 2004/03/08 14:11:53
²Ä¤@¦¸¥¿¦¡µo§G

¥»¤å¥D­n¦b±´°Q DocBook ¦p¦ó§Q¥Î SGML ®æ¦¡»y¨¥ªº¹êÅé(ENTITY)¡A¯à¹F¨ìÃþ¦ü¹³¤@¯ëµ{¦¡»y¨¥½sͮɡA¨ººØ±`¼Æ«Å§i¡A¥H¤Î§t¬A´¡¤J¥~³¡¼Ò²ÕÀɮתº¥\¯à¡A¨Ó¹F¦¨¤å¥óªº¼Ò²Õ¤Æ¡C¥H¤ÎÂǥѦ¹ºØ¼Ò²Õ¤Æ¡A¨Ï±o¤å¥ó¤À¤u¡A¦@¦P¼¶¼g¦¨¬°¥i¯à¡A¤å¥ó°ò¥»¤ù¬qªº¦A§Q¥Î¡AÅܱo»´¦Ó©öÁ|¡C³Ì«á¡A§A·|µoı¡A±Ä¥Î DocBook ®æ¦¡¨Ó»s§@¤å¥ó¡A¤£ºÞ¬O·s°µ©Î­×¥¿¡A³£±N¤j´T»ü¬Ù²Õ´ªº¯Ó¥Î®É¶¡¡A¼W¥[¤@­Ó¹Î¶¤ªº¤u§@®Ä²v¡C

¥»¤å±Ä¥Î GNU ²Õ´ªº GPL¤½¶}ª©Åv«Å§i¡AÅwªï½Æ»s,§ï¼g,´²§G¡A¨Ã­n¨D§AÀ³¸Ó¥H¦P¼ËªºÅv§Q±ø´Ú¡A±Â¤©¤å¥óªº¨Ï¥Î¤H¡C¹ï GPL ªº¶i¤@¨Bªº¸ÑÄÀ¡A½Ð°Ñ¦ÒGNU ³q¥Î¤½¦@³\¥iÃÒ¡C


Table of Contents
1. ¹êÅé(ENTITY)ªº°ò¥»·§©À
1.1. ENTITY «Å§iªº»yªk
1.2. ENTITY ¦b¨º¸Ì«Å§i
1.3. ¹êÅé (ENTITY) ªº¨Ï¥Î
2. ¦UºØ ENTITY À³¥Î½d¨Ò
2.1. ¦r¦ê¤º®e´À´«
2.2. ­«½Æ¨Ï¥Î©T©wªº¤å¥ó¤ù¬q
2.3. ¹L®É³sµ²­×¥¿¾÷¨î
3. ¦@¦P¼g§@Àô¹Òªº§G¸m
3.1. ¦h¤H¼g§@ªº°ò¥»Àô¹Ò§G¸m
3.2. ¥D°Æ¤å¥óµ²ºc
3.3. ¦b¥D¤å¥ó¤¤¨Ï¥Î¥~³¡¹êÅé«Å§iÀÉ
3.4. ¤l¤å¥ó¤¤§t¬A©µ¦ù¥~³¡¹êÅé«Å§iÀÉ®×
3.5. ¦b¤l¤å¥ó¤¤´¡¤J¤l¤å¥ó
3.6. ¿é¥X¾ã¥÷¤å¥ó
4. ¨Ì¸Ñ;¹¹ê§@¦Ó¤£¦Pªº ENTITY ¥\¯à
4.1. ±ø¥ó½sĶ
5. µ²»y
6. DocBook ¬ÛÃö°Ýµª¶°
DocBook °Ñ¦Ò¦r¨å

¥»¤å¬O¨t¦C DocBook ®æ¦¡¤å¥ó±´°Qªº²Ä¤T½g¡A¤]¬O¤ñ¸ûÁ}²`¤@ÂIªº½ÒÃD¡C¦pªG§A¥H«e±q¥¼±µÄ²¹L DocBook ®æ¦¡¤å¥ó¡A©Î¤£¤Ó¼ô±xªº¡A«ØÄ³§A¥ýŪ¤@¤U DocBook ¸ÑĶÂà´«Àô¹Òªº«Ø¥ß ©M DocBook ¤å¥ó¼g§@¤Jªù ³o¨â½g°ò¦¤å¥ó¡C¦ý¦pªG§A¬Ý¹L¨Ç DocBook ¤å¥ó¡Aı±o¥¦¤£¹L¬O¬YºØÃþ¦üªº HTML ¡A¥u¤£¹L´«¨Ç¼ÐÅÒ¦WºÙ¡A¥[¤FÂI¦Û°Ê½s¿è¥\¯à¡A¤j¶O©P³¹¤§«á¡AÁÙ¤£¦p HTML ¯à¹ï¿é¥X¼Ë¦¡°µ§óºë·Ç±±¨îªº¸Ü¡A¨º§A´N¤@©w­n¬Ý³o½g¤å³¹¡C¦]¬°¥»½g¤å³¹±N¤@¤@¦V§A®i¥Ü¡A¨º¨Ç¥u¦³ SGML ¤å¥ó¤~°µ±o¨ì¡A¤£¥u HTML ¡A´N¬O§A©Ò¼ôª¾ªº¨ä¥L¼Ë¦¡±Æª©¤å¥ó¡A¤]µLªk¹F¦¨ªº¥\¯à¡A¤]´N¬O³o¨Ç¤~Åý SGML ¦³µL¥i¨ú¥Nªº²z¥Ñ¡C

DocBook ¤å¥ó¼Ò²Õ¤Æ²o¯A«Ü¦h SGML ©M XML ¬ÛÃö»yªk¡A³o¨âªù¼Ð°O»yªkªº±M·~»â°ì§Ú¯AÂy©|²L¡C¤å³¹¤¤¦p¦³²¨º|©Î¿ù»~¡A½Ð¨Ó¨ç «ü¥¿¡A§Ú·|ºÉ§Ö­×­q¨Ã¥[¥H¤½§G¡C¦pªG§A·Q¾\Äý¥»¤å SGML ­ì©l®æ¦¡¡A½Ð «ö¦¹³B¤U¸ü ¡C


1. ¹êÅé(ENTITY)ªº°ò¥»·§©À

DocBook ¥i¥H¤@¦¸¿é¤J¡A¦hºØ®æ¦¡¿é¥X¡A³o¬O³z¹L¤º®e¸ê®Æ»Pªí²{¸ê®Æ¤À¶}¡A¤Î DSSSL ©Î XSLT ªº¼Ë¦¡ªí§Þ³N¹F¦¨¡CDocBook ¥i¥H§@¬°¤å¦r«¬ºAªº¾ðª¬¸ê®Æ®w¡A¨Ñºô¸ô·j´M¡A¦]¬° DocBook ªº¼Ð°O±Ä¤º®e·N¸q¤ÀÃþ¡A¨Ã¦³ÄYÂÔªºµ²ºc¡CDocBook ªº©Ò¦³¥\¯à´N¥u¦³³o¨Ç¶Ü¡H·íµM¤£¬O¡ADocBook ªº³Ì¤j¥\¯à´N¬O§@¬°²Õ´»P¹Î¶¤§Q¥Îªº¦@¦P¼g§@»P§Ö³t­×­q¨t²Î¡C

½Í¨ì¦@¦P¼g§@¡A¬Û«H±`¦b Unix ¨t²Î¤U¤u§@ªº¤H³£·|·Q¨ì CVS Server ªº¬[³]¡A¥H¤Î³Ìªñ¤j¦æ¨ä¹Dªº Wiki ºô­¶½s¿è¨t²Î¡C¦ý¤£ºÞ¬O CVS ÁÙ¬O Wiki ¡A°µªº³£¬O¤å¥ó­×­qªºª©¥»±±¨î¤u§@¡A¥LÀ°§U¤@­Ó¹ÎÅé²Õ´¤£·|¦]¬°¤j®aªº¦@¦P°Ñ»P¡A¦Ó§â¤å¥ó§ïªº¤£²Î¤@¡A¤@¹Î¶Ã¡C¦ý¬O DocBook ­n­t¾áªº¦@¦P¼g§@¥\¯à«o¤£¬Oª©¥»±±¨î¡A¥L¬O­t³d§â¤@­Ó¤j¤å¥ó©î¦¨³\¦h¤p³¡¥÷¡AÅý¤£¦Pªº¤H¥h­t³d¤£¦Pªº¤ù¬q¡C¨C­Ó¤H¦b¥L¦Û¤vªº¤ù¬q¸Ì¡A¥u­n«öµÛ DocBook ³W¯x§â¸ê®Æ¶ñ¶i¥h¡A¤£»Ý­n¥hÅU¼{§O¤H«ç»ò°µ¡A³Ì«á«o¯à§â©Ò¦³¤ù¬q¦X¦b¤@°_¡A½sͦ¨¤@­Ó§¹¾ã¤@­Pªº¾ãÅé¤å¥ó¡A§¹¥þ¬Ý¤£¥X¨Ó¦³¦U¦Û¬°¬Fªº¤£¨ó½Õ¡C

³oºØ§â¤@­Ó¤j¤å¥ó©î¦¨¤p¤ù¬qªº¥\¯à¡A¬O¦p¦ó¹F¦¨ªº©O¡Hµª®×´N¦b SGML »y¨¥ªº¹êÅé(ENTITY)§Þ³N¹B¥Î¡C³z¹L¹êÅé(ENTITY)¡A¤@­Ó¥Ñ SGML »y¨¥©w¸qªº®æ¦¡¤å¥ó¥i¥H¹F¦¨Ãþ¦üµ{¦¡»y¨¥ªº±`¼Æ«Å§i¡A¥H¤Î§t¬A´¡¤J¥~³¡Àɮתº¥\¯à¡C

µ{¦¡»y¨¥³z¹L±`¼Æ«Å§i©M¥~³¡§t¬AÀɮרӹF¦¨¼Ò²Õ¤Æ¡A¨Ï±o¬Y¨Ç°ò¥»ªºµ{¦¡±Ô­z¥i¥H³Q­«½Æ§Q¥Î¡ASGML ®æ¦¡¤å¥ó¤]³z¹L¹êÅé(ENTITY)±N¤å¥ó¸ê®Æ¼Ò²Õ¤Æ¡A¹F¦¨©î¨ø­«²Õªº¥\¯à¡C©Ò¥H¹êÅ骺¹B¥Î¡A¬O SGML »y¨¥ªº¥»¦³¥\¯à¡ADocBook Ä~©Ó¤F³o­Ó¯à¤O¡A¦Ó HTML ©ñ±ó¤F³o­Ó¥\¯à¡C[1]´«¥y¸Ü»¡¡A´N¬O§A¥i¥H¦b DocBook ¤¤¨Ï¥Î SGML ªº¹êÅé¥\¯à(ENTITY)¡A¦]¬° DocBook ªº SGML ¸ÑªR¾¹·|¤ä´©³o¶µ¥\¯à¡C[2]¦ý¤@¯ëªººô­¶ÂsÄý¾¹«h¤£¤ä´© HTML ¨Ï¥Î¹êÅé(ENTITY)ªº¥\¯à¡C


1.1. ENTITY «Å§iªº»yªk

ENTITY ´N¦p¦Pµ{¦¡»y¨¥ªº±`¼Æ«Å§i¤@¼Ë¡A­n¥ý«Å§i«á¡A¤~¯à¦bµ{¦¡±Ô­z¤¤¥[¥H¤Þ¥Î¡A¦Ó«Å§i¤@­Ó ENTITY ªº§¹¾ã±Ô­z¬O¡G

Table 1. ENTITY ªº«Å§i±Ô­z

<!ENTITY % ¹êÅ骺¦WºÙ SYSTEM "¹êÅ餺®e¦r¦ê">
 µù¤@µù¤Gµù¤Tµù¥|µù¤­ 

µù¤@, «Å§i·s¼W¹êÅé

§Ú­Ì¦b SGML prolog °Ï¬q¤¤¡A¦b "<!" ¦r¦ê«áÁä¤J ENTITY ªí¥Ü³qª¾ SGML ¸ÑªR¾¹­n·s¼W¤@­Ó¹êÅé¨Ó¨Ï¥Î¡C

µù¤G, ¹êÅé«e¸m¦r¤¸«Å§i

SGML ªº ENTITY ¦b¨Ï¥Î¤è¦¡ªº¤£¦P¤W¡A¥i¤À¬°°Ñ¼Æ¹êÅé(Parameter ENTITY)©M¤@¯ë¹êÅé(General ENTITY)¡A§Ú­Ì±N¥ýÁ¿­z General ENTITY ¡AParameter ENTITY ¤ñ¸û½ÆÂø¡A©ñ¦bµy«áÁ¿¡CGeneral ©M Parameter ªº¤À§O´N¬O Parameter ±Ä¥Î '%' §@¬°«e¸m¦r¤¸¡A¦Ó General ¤£¨Ï¥Î¥ô¦ó«e¸m¦r¤¸¡C­nª`·Nªº¬O¡AParameter ªº«e¸m¦r¤¸ '%' ¥²¶·©M«e­±ªº ENTITY ©M«á­±ªº¹êÅé¦WºÙ¦r¦ê¡A³£¦Ü¤Ö¥H¤@­ÓªÅ¥ÕÁä¹j¶}¡C

µù¤T, ¹êÅé¦WºÙ«Å§i

´N¬O¬°§A­n¨Ï¥Îªº¹êÅé¨ú­Ó²µu¦n°O±o¦W¦r¡A³o¸Ì­nª`·N¡A¦P¦Wªº¹êÅé¦pªG­«½Æ«Å§i¡A¸ÑªR¾¹¨Ã¤£·|µo¥X¿ù»~³qª¾¡A¦ý·|±Ä¥Î¥ý¦ûµ¦²¤¡A¤]´N¬O¦P¦Wªº¹êÅ餣ºÞ³Q«Å§i´X¦¸¡A¨ä¤º®e³£¥H²Ä¤@¦¸«Å§i®Éªº³]©w¬°·Ç¡C¦¹¥~¹êÅé¦WºÙ«e«á¤£¥i¥H¨Ï¥Î '"' ¦r¤¸°µ¦r¦êªí¥Ü¦¡ªº¥]§¨¡C

µù¥|, System identified ªí¥Üµü

·í¤@­Ó ENTITY ¦b«Å§i¹êÅé¦WºÙ»P¹êÅ餺®e¦r¦ê¤§¶¡¦³¥[¤@­Ó SYSTEM ´y­zµü®É¡A´Nªí¥Ü«á­±¸òµÛªº¬O¤@­Ó System Identifer ¡C¤°»ò¬O System Identifier ¡HÁ¿¥Õ¤@ÂI´N¬OÀɮ׸ô®|¦ì§}°Õ¡A¤]´N¬O§A­n¦b§Aªº DocBook ¤å¥ó¸Ì´¡¤J¥~³¡ÀɮסA´N¥²¶·¥ýÁä¤J SYSTEM ´y­zµü¡AµM«á¸òµÛ¥´¥~³¡Àɮתº¸ô®|¦ì§}¡A¥i¥H¬Oºô¸ô¦ì§}¡A¤]¥i¥H¬O¥»¾÷¦ì§}¡A¥i¥H¬Oµ´¹ï¸ô®|¡A¤]¥i¥H¬O¬Û¹ï¸ô®|¡C¨º¨S¥´ SYSTEM ´y­zµü¬O¤°»ò·N«ä¡H´N¬O¹ê»ÚÅã¥Üªº¤º®e¦r¦ê°Õ¡CÄ´¦p¡G

<!ENTITY somename SYSTEM "/etc/passwd">
&somename;    Åã¥Ü /etc/passwd ³o­ÓÀɮתº¤º®e

<!ENTITY somename "/etc/passwd">
&somename;    ª½±µÅã¥Ü /etc/passwd ³o­Ó¦r¦ê

©Ò¥H¦³¥[ SYSTEM ´y­zµüªº§@¥Î¬O§t¬A¥~³¡ÀɮסAºÙ¬° external ENTITY ¡A¨S¥[ SYSTEM ´y­zµüªº¡A§@¥Î¬O°µ±`¼Æ«Å§i¡AºÙ¬° internal ENTITY ¡C

µù¤­, ¹êÅ餺®e¦r¦ê

¦pªG©ú¥Õ¤F external ENTITY ©M internal ENTITY ªº®t§O¡A¨º¹êÅ餺®e¦r¦ê¥Nªíªº·N¸q¡A´N«D±`²M·¡¤F¡A¤£¬OÀɮצì§}¡A´N¬O®É¹ê»ÚÅã¥Üªº¦r¦ê¤º®e¡A­nª`·Nªº¬O¡A¤£ºÞ¬Oª½±µ¤º®e©ÎÀɮ׸ô®|¡A³£¥²¶·¦bÀY§À¥H '"' ¦r²Å¥]§¨¡C

Note

ENTITY «Å§iªº¿ï¶µ»P¿ï¶µ¤§¶¡¡A°£¤F "<!" »P ENTITY ¤§¶¡¤£­n´¡¤JªÅ¥Õ¦r²Å¥~¡A¨ä¥L³£¥²¶·´¡¤J¤@­Ó¥H¤WªºªÅ¥Õ¦r²Å¡C


1.2. ENTITY ¦b¨º¸Ì«Å§i

ª¾¹D¤F ENTITY ­n«ç»ò«Å§i«á¡A±µµÛ§Ú­Ì­nª¾¹D ENTITY ¦b¨º¸Ì«Å§i¡A´N¦p¤@¯ëµ{¦¡»y¨¥³£¦³©T©wªº«Å§i°Ï¡ASGML ®æ¦¡¤å¥ó¤]¦³©T©wªº ENTITY «Å§i°Ï¡A¤£¦b«Å§i°Ï«Å§i¡A´N·|³Q¸ÑªR¾¹§P©w»yªk¿ù»~¡C

¤@¯ë»¡¨Ó¡AENTITY ªº«Å§i¬OÄÝ©ó SGML DTD ªº¤@³¡¤À¡A¬O¸ò ELEMENT,ATTLIST,..... ³o¨Ç«Å§i²Õ¦¨¸j¤@°_ªº¡A¤]´N¬O¥²¶·¦b¤@­Ó SGML ¤å¥óªº prolog °Ï§¹¦¨ªº¡Cprolog °Ï¡H¨º¦b¨º¸Ì¡H¨ä¹ê¤£Ãø§P§O¡A´N¬O¤@­Ó SGML ¤å¥óªº®Ú¼ÐÅÒªº¶}©l¼ÐÅÒ¥H«eªº°Ï¬q¡A´N¥s SGML prolog ¡C

§Aªº²Ä¤G­Ó°ÝÃD¡A¤Ñ­þ¡IÃø¹D­n§Ú¥h­×§ï DocBook ¨º­Ó¬Ý³£¬Ý¤£À´ªº¤Ñ®Ñ¡ADTD ¼Ò²ÕÀÉ®×¶Ü¡H¶â¡I­ì«h¤W¨Ó»¡¬O¥i¥Hªº¡A¦ý¤£¹ªÀy³o»ò°µ¡C²Ä¤@¡G«Ü¤Ö¤H¯à²M·¡´x´¤ DocBook Ãe¤j DTD ªº²Õ´µ²ºc¡A©Ò¥H§A¤£¨£±o¯à§ä¨ì¥¿½Tªº¥[¤J°Ï¬q¡C²Ä¤G¡G§A«Ü¥i¯à¤£¸g·Nªº¦b«Å§i ENTITY ®É­Ô¡A¤zÂZ¤F DocBook DTD ­ì©lªº ENTITY «Å§i¡AÁa¨Ï³Ì«á¸ÑªRµ²ªGµL»~¡A¦ý®M¥y DocBook ©x¤èªº»¡ªk¡A¦pªG§A§ó§ï¤F DocBook ªº ELEMENT or ATTLIST ¡A¨º´N¤£¯à¦A¥s DocBook ¡A¦ÓÅܦ¨ YourBook ¤F¡C


1.2.1. ¶}±Ò prolog ªº subset °Ï¬q

©Ò©¯ SGML »y¨¥¦­´N¦Ò¼{¨ì DTD ©µ®i©Êªº°ÝÃD¡A§Ú­Ì¥i¥HÂǥѤ@¨Çªí¥Ü¦¡¨Óªí¥Ü°£¤F DTD ÀÉ®×¼Ò²Õ¥~¡A§Ú­Ì­n¶}±Ò¤å¥ó§@ªÌ­Ó¤Hªº subset °Ï¬q(¦ì©ó prolog °Ï¤¤)¡A¨Ó©ñ¨Ï¥ÎªÌ¦Û¤v©w¸qªº ENTITY «Å§i¡C¨Ò¦p¡G

Example 1. ©µªø SGML ¤å¥óªº subset °Ï¬q

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.2//EN" [  <!-- ªí¥Ü subset °Ï¶}©l -->
<!ENTITY teamname "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤">                      <!-- internal ENTITY -->
<!ENTITY authfile SYSTEM "/etc/passwd">                      <!-- external ENTITY -->
]>                                                           <!-- ªí¥Ü subset µ²§ô -->

Example 2. ©µªø XML ¤å¥óªº subset °Ï¬q

<?xml version='1.0' encoding="Big5"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                  "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"[
<!ENTITY teamname "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤">
<!ENTITY authfile SYSTEM "/etc/passwd">
]>

³o¸Ì­n¨Ó¼á²M´X­ÓÆ[©À°ÝÃD¡A§Ú­Ì´¿¦b ENTITY «Å§i»yªk¤@¸`»¡¡A¦b SGML ¹w³]ªº¿ï¶µ¤U¡A¦P¦WºÙªº¹êÅé³Q­«½Æ«Å§i¤£ºâ»yªk¿ù»~¡A¥u¬O±Ä¥ý¦ûµ¦²¤¡A¥ý«Å§iªº¥ýĹ¡C¦ý¬O SGML ¹ï prolog °Ïªº°õ¦æ¶¶§Ç«o¬O¡A¥ý°õ¦æ§Ú­Ì user ¦Û¤v¦b subset ªº«Å§i±Ô­z¡A¦A¥h°õ¦æ PUBLIC Identifier «ü¨ìªº DTD ÀÉ®×¼Ò²Õ¡A©Ò¥H¦pªG§Ú­Ì¦b subset ¤£ªø²´·ú¡A­è¦n«Å§i¤F DTD ¼Ò²Õ¤¤·|¥Î¨ìªº ENTITY ¡A¥Ñ©ó¥ý¦û¥ýĹ¡A§Aªº ENTITY ³]©w­È·|¨ú¥N DocBook ENTITY ªº³]©w­È¡Aµ²ªG·íµM¬O¤Ñ¤U¤j¶Ã¡A¸ÑªR¾¹³ø§i¿ù»~¤@©w³s½g²ÖÃ|¡C

¨º«ç¼ËÁ×¶}¤@­Ó DocBook ®æ¦¡ DTD ªº­«½Æ ENTITY «Å§i©O¡A¬d²M·¡ DocBook ªº«O¯d¦r¶Ü¡H«Ü©êºp¡A³o¿ìªk¤£³q¡C¦]¬°°£¤F DTD ¤¤ DocBook ¨Ï¥Î¤F¤j¶qªº ENTITY «Å§i¨Ó¨ó§U¥Lºc¿v¤å¥óµ²ºc¥~¡A¥LÁ٤ޥΤF¤@¤j°ï ISO ²Õ´©w¸qªº ENTITY ¯S®í¦r¤¸ªí¡A¼Æ¶q¤§Ãe¤j¡A¤£­n»¡¤@¯ë¤HÃø¥H°O¾Ð¡A¦Ó¥B¨C¦¸§ïª©¡AENTITY «Å§i¦WºÙ¤@©w¤j´T§ïÅÜ¡AÅý§A°O¤£³Ó°O¡C[3]

±¡ªp¯u¬O¨º»òµ´±æ¶Ü¡H¨ä¹ê´«±ø¸ô¨«¡A±Ä¥Î¦WºÙªÅ¶¡ªº©R¦W¤è¦¡¡A´N¯à«OÃÒ§A¤£µo¥Í ENTITY «Å§i½Ä¬ð¡C¨Ò¦p«e­±¨â­Ó½d¨Ò¡A§A¦pªGı±o teamname ©Î authfile ÁÙ¬O¤£°÷¦w¥þªº¸Ü¡A´N¬°¥L¥[­Ó«e¸m¦r¦ê§a¡C¨Ò¦p§Ú³ßÅw¥Î twbaby ·í§@§Ú¦Û¤v²Õ´ªº«e¸m¦r¦ê¡A¨º§Ú´N¥i¥H§ï¥Î¡G

<!ENTITY twbaby.teamname "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤">
<!ENTITY twbaby.authfile SYSTEM "/etc/passwd">

¨Ó«Å§i§Ú¦Û¤v±M¥Îªº ENTITY¡AÁöµM¼W¥[ÂI³Â·Ð¡A¦ý¥i¥H«OÃÒ¤£·|¦³µo¥Í·´Ãa DTD µ²ºcªºª¬ªp¡C

¦P®ÉÆ[©À¼á²M¨ì³o¸Ì¡A¤]¥i¥H¶¶«K¦^µª¤@­Óªþ±aªº°ÝÃD¡C¬°¦ó HTML ¦P¼Ë¬O SGML ®æ¦¡¤å¥ó¡A«o¤£¯à¨Ï¥Î SGML ªº ENTITY «Å§i¥\¯à¡H¦]¬°§A¨S¦³¿ìªk½s¿è HTML ªº prolog °Ï¡A¥Lªº prolog °T®§¤Î³]©w¡A¼g¦º¨ìÂsÄý¾¹¸Ì¥h¤F¡C


1.3. ¹êÅé (ENTITY) ªº¨Ï¥Î

ENTITY ¬J¸g«Å§i«á¡A´N¥i¥H¦b SGML ªº¤å¥ó±Ô­z¤¤¨Ï¥Î¡A¦ý¦]¬° ENTITY ªº¤ÀÃþ¤£¦P¡A¤]¦³¨Ï¥Î¦aÂI©M¤è¦¡ªº®t²§¡CÄ´¦p¡G

Example 3. ENTITY ªº¨Ï¥Î¤è¦¡¤Î³õ¦X

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY teamname "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤">
<!ENTITY authfile SYSTEM "/etc/passwd">
<!ENTITY % twbaby.include SYSTEM "test.ent">        <!-- ¼Ð»x¥~³¡«Å§iÀÉ -->
%twbaby.include;                                    <!-- ¨Ï¥~³¡Àɮתº«Å§i¥Í®Ä -->
]>
<article><title>&teamname; SGML ¤å¥ó½d¨Ò</title>    <!-- ±`¼Æ«Å§i®i¶} -->
  <para>§Ú­Ì¥i¥H¥Î ENTITY ªº SYSTEM ´y­zµü¨Ó´¡¤J¥~³¡ÀɮסG</para>
<literallayout>
&authfile;                                          <!-- ¥~³¡ÀÉ®×®i¶} -->
</literallayout>
</article>

¥Ñ¤W­±½d¨Ò§Ú­Ì¥i¥H¬Ý¥X¤@¨Ç³W«h¡A¨º´N¬O¹êÅé¦WºÙ(ENTITY)«e¦³ '%' ¦r²Åªº Parameter ENTITY ¡A¥D­n¥Î¦b prolog ªº subset «Å§i°Ï¬q¡A¥Øªº¬OÀ°§U subset «Å§i¼Ò²Õ¤Æ¡C¥Lªº®i¶}ªí¥Ü¦¡¬O¹êÅé¦WºÙ«e¥[¤@ '%' ¦r²Å¡A¦Ó¦b¹êÅé¦WºÙ«á¥[¤@ ';' ¦¬§À¦r²Å¡A¦p %twbaby.include;¡C

¦Ü©ó¹êÅé¦WºÙ«e¨S¦³ '%' «e¸m¦r²ÅªººÙ¬° General ENTITY ¡CGeneral ENTITY ¥D­n¬O¨Ñ SGML ¤å¥óªº¼¶¼gªÌ¡A¦b®Ú¼ÐÅҰϬq¤º¡A°µ¦r¦ê¨ú¥N©M®i¶}¨Ï¥Îªº¡A¥L¥u¯à¦b®Ú¼ÐÅҰϤº¨Ï¥Î¡A¤£¥i¥H¥Î¦b prolog ªº subset °Ï¡C¥Lªº®i¶}ªí¥Ü¦¡¬O¦b¹êÅé¦WºÙ«e¥[ '&' «e¸m¦r²Å¡A¦b¹êÅé¦WºÙ«á¥[ ';' ¦¬§À¦r²Å¡A¦p &teamname; or &authfile;¡C

¤£ºÞ¬O Parameter ©Î General «¬ºA¡AENTITY ³£¥i¥H­Ý¥Î internal ©M external ªº¤è¦¡¨Ó¨ú±o¦r¦ê¤º®e¡C¥u¦³ Parameter ©M General ªºÄݩʷ|³y¦¨ ENTITY ¨Ï¥Î³õ¦Xªº¤£¦P¡Ainternal ©M external ªºÄݩʤ£·|¡C

Note

Parameter ENTITY ¨Ã«Dµ´¹ï¤£¥i¥Î¦b®Ú¼ÐÅÒªº¥»¤å¤å¥ó°Ï¬q¤º¡A¥u¬O¨ººØ¨Ï¥Î¤è¦¡«Ü¯S§O¡AÀ³¸Óºâ¬O¤@ºØ¯S¨Ò¡A¦Ó¥B XML »yªk¨Ã¤£¤ä´©¡A¥u¦³ SGML ¦³³oºØ¥Îªk¡C


2. ¦UºØ ENTITY À³¥Î½d¨Ò

¸g¹L¤W¤@¸`¹ï¹êÅé(ENTITY)°ò¥»·§©Àªº¸Ñ»¡«á¡A¥»¸`§Ú­Ì±N¥Ü½d¤@¨Ç SGML ©M XML ³q¥Îªº ENTITY ¨Ï¥Î§Þ¥©¡C­º¥ý°²³]¥»¸`¦U½d¨Ò³£¬O¦b user ®a¥Ø¿ýªº Document/sgml ¸ô®|½s¿èªº¡A©Ò¥H§Ú­Ì¥ý°õ¦æ¤@¤U«ü¥O¡G

$ mkdir -p $HOME/Document/sgml

¹ï©ó¨Ï¥Î XML »y¨¥©w¸qªº DocBook ¤å¥óÂàĶ¡A§Ú­Ì¨Ï¥Î Red Hat ¤½¥qªº xmlto ®M¥ó¡C¦Ó¹ï©ó¨Ï¥Î SGML »y¨¥©w¸qªº DocBook ¤å¥ó¡A«h¨Ï¥Î openjade ®M¥ó¡CÁöµM openjade ¤]¥i¥H¸ÑĶ XML »y¨¥©w¸qªº¤å¥ó®æ¦¡¡A¦ý¨º¬O¥H SGML ªº³W«h¥h¼ÒÀÀ XML ªº¦æ¬°¡A±`±`·|¤£¤p¤ßÂX¤j¤F XML ªº¸ÑÄÀ¡A¦Ó¨º¨ÇÂX¤j¸ÑÄÀ¡A¤@¯ë¼Ð·Çªº XML ¸Ñ;¹¬O§@¤£¨ìªº[4]¡C©Ò¥H°w¹ï¤£¦P»yªk¿ï¾Ü¥¿½Tªº¸Ñ;¹¡A¬O¥¿½T¤F¸Ñ¼Ð°O»y¨¥®Ä¯àªº¥²­n³~®|¡C¤£²M·¡«ç¼Ë¦w¸Ë¨Ï¥Î¤W­±¨â­Ó¸Ñ;¹ªº¡A½Ð°Ñ¦Ò DocBook ¸ÑĶÂà´«Àô¹Òªº«Ø¥ß ¤@¤å¡C


2.1. ¦r¦ê¤º®e´À´«

¤@¦p§Ú­Ì¦b³\¦hµ{¦¡»y¨¥ªº±`¼Æ«Å§i¤@¼Ë¡A¹ï©ó¤@¨Ç¤º®e±Ô­z¥i¯à·|¦³§ó°Êªº¦r¦ê©ÎÀËÅç­È¡A¬°¤F«O«ù¼u©Ê¡A§Ú­Ì¥ý¦bµ{¦¡ªº¤@¶}©l¬°¦¹¹w³]­È¨ú­Ó¥N¦W¡A¦A¨ì¹ê»Ú­nÅã¥Ü¹w³]­Èªº¦a¤è¥´¤W¥N¦W¡A¦Ó¤£¬Oª½±µ¥´¹w³]­È¡C¦n³B¬O¦pªG¨º¤Ñ§Ú­Ì¦³¥²­n§ó¸Ó¦¹¹w³]­È®É¡A¥u­n§ó¸Ó¸Ó¥N¦W«áªº¹w³]­È§Y¥i¡A¤£»Ý­n¨ìÁc½Æªºµ{¦¡±Ô­z¤¤¡A¤@¤@¥h§â³o¨Ç¹w³]­È§ï¹L¨Ó¡A¦]¬°¥u­n­«·s½sͤ@¹M¡A½s;¹´N·|®Ú¾Ú·s­È¡AÀ°§Ú­Ì¦Û°Ê§ó¥¿¹L¨Ó¤F¡C


2.1.1. ª½±µ´À´«

SGML ªº»yªkªí¥Ü¤¤¡Ainternal ENTITY ªº·N¸q¡A´X¥G´N©Mµ{¦¡»y¨¥ªº±`¼Æ«Å§i¤@¼Ë¡C¨Ò¦p¡G

Example 4. ²³æ internal ENTITY½d¨Ò

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY teamname "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤">
]>
<article><title>&teamname;²Õ´³¹µ{</title>
  <para>......</para>
</article>

³o¬O SGML »P XML ³Ì²³æªº¤@ºØ ENTITY ¨Ï¥Î½d¨Ò¡A§A¦b prolog ªº subset °Ï«Å§i teamname ³o­Ó±`¼Æªº¹w³]­È¬O "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤"¡CµM«á§A¦b article,title «á´¡¤J teamname ³o­Ó±`¼Æ«Å§i¡A¨º»ò¸g¹L¸Ñ;¹ªº½sĶ¡Aarticle ªº title ³Ì«á·|Åã¥Ü "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤²Õ´³¹µ{" ¡A¦pªG§A§â teamname ¹w³]­È§ï¦¨ "»Å¾Ç¶é"¡A¨º·íµM title ´NÅã¥Ü "»Å¾Ç¶é²Õ´³¹µ{"¡C

¤W­±³o­Ó½d¨Ò¥i¥H»¡Â²³æ¨ì¤£­È±o¦h°µ»¡©ú¡A¤U­±§Ú­ÌÁ|­Ó§ó¦³¥Îªº½d¨Ò¡CÄ´¦p©w«¬¤Æ«´¬ù¡A¥ß¬ù¤H³£¬O¥Ò¤è¤A¤èªººÙ©I¡A¨ìñ¬ù®É¦A§â·í¨Æ¤H¯u¹ê©m¦W¶ñ¤J¡C¦pªG¬°¤F½d¥»¤å¥ó©Mñ¬ù¤å¥óªº·í¨Æ¤H¸p¦W¤£¦P¡A¦Ó­n·Ç³Æ¨â¥÷ÀɮסA¨º¤]¦³ÂI¤Ó¨S®Ä²v¤F¡C¤U­±ªº½d¨Ò§â«´¬ù¥ß¬ù¤H§ï¥Î¹êÅé¿é¤J¡A§A´N·|µoı¡A¤£¦Pªº¤Hñ¬ù¡A¤£»Ý­n§ï¾ã¥÷¤å¥ó¡Aprolog °Ï§ï ENTITY §Y¥i¡C

Example 5. ³sÄò´À´«¦r¦ê­È½d¨Ò

<?xml version='1.0' encoding="Big5"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                  "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"[
  <!ENTITY site.org "¥X¯²¤è">
  <!ENTITY site.user "©Ó¯²¤è">
  <!ENTITY sign.date "¤¤µØ¥Á°ê xx ¦~ xx ¤ë xx ¤é">
]>
<article><title>ºô­¶ªÅ¶¡¯²¥Î¦X¬ù®Ñ</title>
  <para>¤µ¦³Âù¤è¬°©Ó¯²ºô­¶ªÅ¶¡¡A¯S¥ß¬ù³W©wÂù¤èÅv§Q¸q°È¦p¤U¡G</para>
  <orderedlist>
    <listitem><para>¤µ¦³©Ó¯²¤H&site.user;¦Vºô¯¸¾÷ºc&site.org;©Ó¯²ºô­¶ªÅ¶¡§@¬°ºô­¶µo§G¨Ï¥Î¡C
      </para></listitem>
    <listitem><para>&site.user;¦Û¥»¦X¬ù¥Í®Ä¤é°_¡A¾Ö¦³©Ò©Ó¯²ºô­¶ªÅ¶¡§¹¾ãÅv§Q¡A©Òµo§Gºô­¶ªº
      ¨¥½×³d¥ô¡A¥ç¥Ñ&site.user;¦Û­t¡C</para></listitem>
    <listitem><para>&site.user;À³«ö¤ë¦V&site.org;ú¯Ç¯²ª÷·s¥x¹ô 200 ¤¸¡C</para></listitem>
    <listitem><para>&site.user;¦p¤íú¤T­Ó¤ë¥H¤Wªº¯²ª÷¡A&site.org;¦³Åvµø¬°¦X¬ù²×¤î¡A°±¤î
      &site.user;¨Ï¥ÎÅv§Q¡C</para></listitem>
    <listitem><para>¦X¬ù´Á¶¡¡A&site.org;À³¹ï&site.user;±H©ñªººô­¶¡AºÉµ½¨}ºÞ²z¤H¤§³d¥ô¡A
      ¨Ã¦b¦X¬ù²×¤î«á¡A¥N¬°«O¦s&site.user;ºô­¶¤T­Ó¤ë¡C</para></listitem>
  </orderedlist>
  <para>¥H¤W±ø´Ú¡A¬Ò¸g¥ß¬ùÂù¤è¦P·N¡A¯S¦¹®Ñ­±¬°ÃÒ¡C¥ß¬ù¤H¡G</para>
  <simplelist>
    <member>ºô­¶ªÅ¶¡¥X¯²¤H¡G&site.org;</member>
    <member>ºô­¶ªÅ¶¡©Ó¯²¤H¡G&site.user;</member>
  </simplelist>
  <para>¥ß¬ù¤é´Á¡G&sign.date;</para>
</article>

¤W¨Ò¬O¤@­Ó©w«¬¤Æ«´¬ùªº½d¥»¡A¨Ñ«È¤áñ¬ù«eªº°Ñ¦Ò¡A¹ê»Úñ¬ù®É¡A§ï´«¤@¤U site.org, site.user ©M sign.date ¤T­Ó internal ENTITY ªº³]©w­È¡A´N¥i¥H­«½sͦ¨¤@¥÷¹ê»Úªº¥¿¦¡¦X¬ù¡A§A¥i¥H¤À§O§ï³o¤T­Ó¹êÅé«á­«½sͤ@µf¡A¥HÅçÃҮĪG¡C


2.1.2. ²Õ¦X´À´«

«e¤@¤p¸`¬O ENTITY ¦r¦ê´À´«ªº³Ì²³æ¥Îªk¡A¦]¬°¤£ºÞ¬Y­Ó ENTITY ¦b¤å¥ó¤¤³Q´¡¤J´X¦¸¡A¥L³£¥u¬O§â ENTITY ª½±µ´«¦¨¹w¥ý³]©wªº¦r¦ê¦Ó¤w¡C¥»¸`­n¤¶²Ðªº¬O¦r¦ê´À´«§ó¶i¤@¨Bªº§Q¥Î¡A´N¬O¤@­Ó ENTITY ªº³]©w­È¸ÌÁÙ¥]§t¤F¨ä¥Lªº ENTITY¡A³o¸Ì§Ú­ÌºÙ¥L¬O²Õ¦X§Î¦¡ªº¹êÅé¡CÄ´¦p¡G

Example 6. ²Õ¦X¹êÅ骺¨Ï¥Î

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY cool.school "http://www.study-area.org/">        <!-- (1) ºô¯¸¦ì§} -->
  <!ENTITY cool.subject"tip/">                              <!-- (2) ¤ÀÃþ¦ì§} -->
  <!ENTITY dbook.write "&cool.school;&cool.subject;docw/docwrite.html">    <!-- (3) Àɮצì§} -->
  <!ENTITY dbook.trans "&cool.school;&cool.subject;doctrans/doctrans.html"><!-- (4) Àɮצì§} -->
]>
<article><title>DocBook Â²¤¶</title>
  <para>»Ý­n¤F¸Ñ¦p¦ó«Ø¥ß DocBook ¸ÑĶÀô¹Òªº½Ð°Ñ¦Ò <ulink url="&dbook.trans;">
  &dbook.trans;</ulink>¡A­n¤F¸Ñ¦p¦ó¼g§@ DocBook ¤å¥óªº½Ð°Ñ¦Ò
   <ulink url="&dbook.write;">&dbook.write;</ulink> ¡C</para>
</article>

¦p¤W¨Ò¡AÀɮצì§} (3) ©M (4) ³£¤º²[ (1) ºô¯¸¦ì§}©M (2) ¤ÀÃþ¦ì§}³o¨â­Ó¹êÅé¡A¦]¬°¥L­Ì³]©wªº¤º³¡¤£¬O³æ¯Âªº¦r¦ê¡AÁÙ¥]§t¤F¨ä¥L¹êÅé´¡¤J±Ô­z¡A©Ò¥HºÙ¬°²Õ¦X¹êÅé¡C²Õ¦X¹êÅ饻¨­³Q´¡¤J®É¡A·|±N©Ò¦³¤º²[¹êÅé¤@°_´À´«®i¶}¡A¦X¦¨¤@¾ã­Ó¦r¦ê¡C

¨Ï¥Î³oºØ¤è¦¡¨Ó²Õ´¹êÅé¡A³Ì¤jªº¥\¥Î´N¬OÅý¹êÅé(ENTITY)¶¥¼h¤Æ¡C¥H¤W¨Ò¨Ó¬Ý¡A·í§Ú­Ì§ó§ï (1)(2) ³o¨â­Ó¹êÅé®É¡A(3)(4) ·|¸òµÛ³s°Ê¡A©Ò¥H·í¤å¥ó¨Ì­ì²Õ´µ²ºc·h²¾¨ì·s¦aÂI«á¡A¥u­n§ïÅܬÛÃöªº¶¥¼h¹êÅé³]©w­È¡A´N¥i¥H¹F¦¨¥þÅé¹êÅé¤@°_§ïÅܪº§@¥Î¡C³o¦bºô­¶·h®a©Î²¾¥Ø¿ý®É¯S§O¦³¥Î¡A¦]¬°§A¥u­n§ó§ï (1) ©Î (2) ªº¹êÅé³]©w§}¡A´N·|¤Þ°_¨ä¥L¦Pµ²ºc¹êÅ骺¬Û°t¦X§ïÅÜ¡A¦Ó¤£¥²¤@­Ó¤S¤@­Óªº¥h¬ÛÃö¹êÅé§ó§ï¡C


2.2. ­«½Æ¨Ï¥Î©T©wªº¤å¥ó¤ù¬q

2.2.1. ²³æ«¬

Á|­Ó§Ú³Ì±`¨Ï¥Îªºª©Åv«Å§i¤è¦¡¡A§Ú¥ý¨Ï¥Î¡G

Example 7. ·s¼W¥~³¡§t¬AÀɽd¨Ò

cat << EOF > $HOME/Document/sgml/legal.inc
<?xml encoding="Big5"?>
<para>¥»¤å±Ä¥Î GNU ²Õ´ªº GPL¤½¶}ª©Åv«Å§i¡AÅwªï½Æ»s,§ï¼g,´²§G¡A
¨Ã­n¨D§AÀ³¸Ó¥H¦P¼ËªºÅv§Q±ø´Ú¡A±Â¤©¤å¥óªº¨Ï¥Î¤H¡C¹ï GPL ªº¶i¤@¨Bªº¸ÑÄÀ¡A
½Ð°Ñ¦Ò<ulink url="http://www.linux.org.tw/CLDP/OLD/doc/GPL.html">
GNU ³q¥Î¤½¦@³\¥iÃÒ</ulink>¡C</para>
EOF

Important

legal.inc ³o­Ó§t¬AÀɪº²Ä¤@¦æ <?xml encoding="Big5"?> ±Ô­z¹ï SGML ¦Ó¨¥²@µL§@¥Î¡A¦ý¹ï XML ¦Ó¨¥«oÃö¥G¸ÑªR¬O§_¦Xªkªº­«­nÃöÁä¡C¤Z¬O¸Ó¤å¥ó¤£¬O±Ä¥Î UTF-8 (us ascii ºâ¬O UTF ªº¦@¦P¤ä´©)©Î UTF-16 ½s½Xªº¡A³q³q¥²¶·¦b¤å¥ó³Ì¶}ÀY¨Ï¥Î¦¹ XML ±Ô­z¡A¨Ãµù©ú¥¿½Tªº encoding ½s½X¡C©Ò¥H¬°¤F½T«O§Aªº§t¬AÀÉ¥i¥H¦b SGML ©M XML ¨âÃ䪺¸ÑªR¾¹³q¥Î¡A«ØÄ³³£¥[¤W³o­Ó XML ±Ô­z¡C

¤W­±«ü¥O°õ¦æ§¹²¦¡A§Ú´N¦h¤F¤@­Ó legal.inc ¡A±µµÛ§Ú´N¥i¥H¦b§Úªº SGML ¥»¤å¸Ì¤Þ¥Î¥L¤F¡CÄ´¦p§Ú¦b $HOME/Document/sgml ¼g¤F³o¼Ë¤@­Ó DocBook ¤å¥ó¡G

Example 8. §t¬A¥~³¡¤å¥ó¤ù¬q

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
<!ENTITY twbaby.include SYSTEM "legal.inc">
]>
<article><title>SGML ENTITY §t¬A¥~³¡ÀÉ®×½d¨Ò</title>
  <para>§Ú­Ì¥i¥H¥Î ENTITY ªº SYSTEM ´y­zµü¨Ó´¡¤J¥~³¡ÀɮסG</para>
  <sect1><title>ª©Åv«Å§i</title>
    &twbaby.include;
  </sect1>
</article>

½sĶ«áªºµ²ªG¿é¥X¬O¡G

SGML ENTITY §t¬A¥~³¡ÀÉ®×½d¨Ò

§Ú­Ì¥i¥H¥Î ENTITY ªº SYSTEM ´y­zµü¨Ó´¡¤J¥~³¡ÀɮסG

ª©Åv«Å§i. ¥»¤å±Ä¥Î GNU ²Õ´ªº GPL¤½¶}ª©Åv«Å§i¡AÅwªï½Æ»s,§ï¼g,´²§G¡A¨Ã­n¨D§AÀ³¸Ó¥H¦P¼ËªºÅv§Q±ø´Ú¡A±Â¤©¤å¥óªº¨Ï¥Î¤H¡C¹ï GPL ªº¶i¤@¨Bªº¸ÑÄÀ¡A½Ð°Ñ¦ÒGNU ³q¥Î¤½¦@³\¥iÃÒ¡C

§Ú­Ó¤H´X¥G¨C½g¦bºô¸ô¤Wµoªíªº¹q¸£§Þ³N¤å³¹¡A³£·|°µ³o¬q GPL ª©Åv«Å§i¡A¦]¦¹§Ú§â¥¦§@¦¨§t¬AÀÉ¡A´N¥i¥H¤@¦Aªº´¡¤J§Úªº DocBook ¤å¥ó¤¤¡C¤£¥²¨C¦¸³£­«·s§ï¼g¡A¤]¤£¥²§â¤@­ÓÀÉ®× copy ¦n¦h¥÷©ñ¤£¦P¤å¥ó¤¤¡A®{µM¼W¥[Àɮתº²V¶Ã¡A³oºØ¤å¥ó¼Ò²Õ¤Æ¡A¯u¬O¦n¥Î°Ú¡C

¦b¥D¤å¥ó¤¤´¡¤J¥~³¡§t¬AÀÉÁöµM¤è«K¡A¦ý¤å¥óµ²ºc²Õ´ªº°t¦X¤´¤£¯à¿ù¶Ã¡A­n¿í¦u DocBook DTD ­ì¦³ªº¬[ºc¡A­«ÂI¦p¤U¡G

  • ´¡¤Jªº§t¬AÀÉ¥u¬O¥D¤å¥óªº¤@­Ó¤p¤ù¬q¡A¨Ã¤£¬O¤@­Ó§¹¾ãªº DocBook ¤å¥ó¡C

  • ¤@¥÷ SGML ¤å¥ó¥u¥i¥H¦³¤@­Ó DOCTYPE «Å§i¡A¤@­Ó Subset «Å§i°Ï¡A©M¤@¹ï®Ú¼ÐÅÒ¡A¦]¦¹§t¬AÀɤ¤¤£¥i¥H¥X²{ DOCTYPE «Å§i¡ASubset «Å§i°Ï¥H¤Î¤å¥ó®Ú¼ÐÅÒ¡C

  • ©I¥s§t¬AÀɪº¥D¤å¥ó¡A³Ì¤Ö­n¦³§¹¾ãªº DOCTYPE ¤å¥ó«Å§i¡Asubset «Å§i°Ï¬q©M¤@¹ï®Ú¼ÐÅÒ¡C

  • ¥~³¡§t¬AÀɤ£¬O´¡¤J¦b SGML prolog ªº Subset «Å§i°Ï¡A´N¬O´¡¦b¥»¤å®Ú¼ÐÅÒ¤º¡C

  • ´¡¤J¨ì Subset °Ïªº§t¬AÀɤº®e¥²¶·¬O DTD «Å§i¦¡©ÎªÌ DTD «Å§i¦¡ªº¶°¦X¡C

  • ´¡¤J¨ì¥»¤å®Ú¼ÐÅҰϪº§t¬AÀÉ¡A°£¤F¤@¯ë¤å¦r¡A¤]¥i¥H¦³¼ÐÅÒªº¶¥¼hµ²ºc¡A¦ý¥Lªºµ²ºc¥²¶·°t¦X©Ò´¡¤J°Ï¬q¡A²Å¦X DocBook DTD ªº©w¸qµ²ºc¡CÁ¿ªº¤ñ¸û²LÅã¤@ÂI¡A´N¬O§t¬AÀɤ¤¦pªG¦³¼ÐÅÒµ²ºc¡A¥L¥u¯à´¡¦b¤÷¼ÐÅҰϬq¤¤¡C

  • §t¬AÀɸ̥i¥H¦A´¡¨ä¥L§t¬AÀÉ¡A¦ý¦P¼Ë¥²¶·²Å¦X«e­z¦U±ø­ì«h¡C

¨ä¹ê¦b¥D¤å¥ó¤¤´¡¤J§t¬AÀɪº³W«h¨Ã¤£Ãø²z¸Ñ¡A§â¥L·Q¦¨¨ä¹ê´N¬O¿í¦u­ì¨Ó DocBook ¤å¥óªº³W«h¡A¥u¬O§â¤¤¶¡¬Y¨Ç¤ù¬q¸ê®Æ¡A¦s¦b¥t¥~ªºÀɮ׸̡A½sͮɦA§â¥L³q³q«÷´ê¦^¨Ó¦Ó¤w¡C


2.2.2. ¶i¶¥«¬

ÀHµÛ§A¨Ï¥Î DocBook ®æ¦¡¼¶¼g¤å¥ó¡A¸ê®Æ·U¨Ó·U¤j¡A©T©wªº¦@¥Î¸ê®Æ¤ù¬q¤]·U¨Ó·U¦h¡A³o®É¦A¦b¤å¥óªº subset °Ï¬q¤¤§Q¥Î SI ±Ô­z¨Ó¤@¤@«ü©ú¥~³¡¸ê®Æ¸ô®|¦ì§}¡A¥H¨Ñ¦b¥»¤å±Ô­z¤¤¯à°÷´¡¤J¡A´N·|Åܱo¤Q¤ÀÁcº¾¡C³o®É§Ú­Ì¬O§_¯à§â©Ò¦³¨Ï¥Î SI ±Ô­zªº external ENTITY «Å§i¡A¶°¦X¼g¦b¤@­ÓÀɮפ¤¡A¨º»ò¥H«á©Ò¦³»Ý­n«Å§i³o¨Ç¥~³¡¸ê®Æªº¤å¥ó¡A¥u­n¦b subset °Ï°õ¦æ¤@¦¸´¡¤J°Ê§@¡A´Nµ¥©ó«Å§i¤F©Ò¦³ªº¦@³q¥~³¡¸ê®Æ¡Hµª®×¬OªÖ©wªº¡A§Q¥Î«e¤@¸`§Ú­Ì¾Ç·|ªº¥~³¡¸ê®Æ§t¬Aªº°ò¥»ª¾ÃÑ¡A§Ú­Ì´N¥i¥Hºt¦ù¥X§ó¶i¶¥ªºÀÉ®×§t¬A¥\¯à¡C

­º¥ý§Ú­Ì°²©w©Ò¦³¥~³¡§t¬A¸ê®Æ³£¶°¤¤©ñ¸m¦b common ³o­Ó¤l¥Ø¿ý¸Ì¡A¦]¦¹§Ú­Ì°õ¦æ¤U¦C«ü¥O¨Ó°µ¤@­Ó¸ô®|¥X¨Ó¡G

          $ mkdir -p $HOME/Document/sgml/common
        

±µµÛ§Ú­Ì°²©w¤U¦C¤T­Ó¥~³¡¸ê®Æ¬O¨C½g¦bºô¸ôµoªíºô­¶®É¡A³£·|¤Þ¥Îªº¸ê®Æ¡A§Ú­Ì¥ý¤@¤@»s§@¡A¦s©ñ¦b $HOME/Document/sgml/common ¸ô®|¤U¡C

 

ÀɮצWºÙ:legal.inc

<?xml encoding="Big5"?>
<legalnotice><para>¥»¤å±Ä¥Î GNU ²Õ´ªº GPL¤½¶}ª©Åv«Å§i¡AÅwªï½Æ»s,§ï¼g,´²§G¡A
¨Ã­n¨D§AÀ³¸Ó¥H¦P¼ËªºÅv§Q±ø´Ú¡A±Â¤©¤å¥óªº¨Ï¥Î¤H¡C¹ï GPL ªº¶i¤@¨Bªº¸ÑÄÀ¡A
½Ð°Ñ¦Ò<ulink url="http://www.linux.org.tw/CLDP/OLD/doc/GPL.html">
GNU ³q¥Î¤½¦@³\¥iÃÒ</ulink>¡C</para></legalnotice>
           

 
--ª©Åv«Å§i 
 

ÀɮצWºÙ:author-oldguy.inc

<?xml encoding="Big5"?>
<author>
  <honorific>µo°_¤H</honorific>
  <othername>¦Ñ°^¥Í</othername>
  &twbaby.org.inc;
</author>
           

 
--¤å¥ó§@ªÌ¸ê®Æ 
 

ÀɮצWºÙ:twbaby.org.inc

<?xml encoding="Big5"?>
<affiliation>
  <orgname>¥xÆW¥øÃZÄ_Ä_¤u§@¶¤</orgname>
  <orgdiv>½s¿è¥Xª©²Õ</orgdiv>
  <address>
    <otheraddr>
      <ulink url="http://3ybaby.v-club.net/">¥øÃZÄ_Ä_ºô¯¸</ulink>
    </otheraddr>
  </address>
</affiliation>
           

 
--¤å¥óµo§G³æ¦ì¸ê®Æ 

±µµÛ§Ú­Ì¦b common ¸ô®|¤U§@­Ó index.ent ªº SI «Å§i¶°¦XÀɦp¤U¡G

 

ÀɮצWºÙ:index.ent

<?xml encoding="Big5"?>
<!ENTITY twbaby.legal.inc SYSTEM "legal.inc">
<!-- GPL ª©Åv«Å§i§t¬AÀÉ -->
<!ENTITY twbaby.authur.oldguy SYSTEM "author-oldguy.inc">
<!-- ¦Ñ°^¥Í¸ê®Æ§t¬AÀÉ -->
<!ENTITY twbaby.org.inc SYSTEM "twbaby.org.inc">
<!-- ¥øÃZÄ_Ä_¤u§@¶¤¸ê®Æ§t¬AÀÉ -->
           

 
--ENTITY ¶°¦X«Å§iÀÉ 

­nª`·Nªº¬O¡G

  • ¦]¬°³o¨Ç external ENTITY ±N¨Ó¬O­n´¡¦b¤å¥ó½s¼g°Ïªº(®Ú¼ÐÅҰϬq¤¤)¡A©Ò¥H¨Ï¥Î General ENTITY «Å§i¤è¦¡¡A¹êÅé¦WºÙ«e¤£¥[ % ¦r²Å¡C

  • ³o¨Ç SYSTEM ´y­zµü«á¬O±Ä¥Î¬Û¹ï¸ô®|«ü¥X¥~³¡§t¬AÀɸô®|¡A³o¸Ìªº¬Û¹ï¡A¬O«ü ENTITY «Å§iÀÉ©M¨ä«ü©w§t¬AÀɪº¬Û¹ï¦ì¸m¡A¦Ó¤£¬O«ü¥D¤å¥ó»P§t¬AÀɪº¬Û¹ï¦ì¸m¡C

  • ³Ì¦n¬°¨C­Ó ENTITY «Å§iÀɪº¤º®e©Î¥\¥Î°µ­Ó²µu³Æµù»¡©ú¡A§_«h¡A¤£¥X¨â­Ó§«ô¡A§A·|§Ñ¤F¨º¨Ç§t¬AÀɬO°µ¤°»ò¥Îªº¡C

  • ­þ©È¤¤¤å¸ê®Æ¥u¦b³Æµù¦r²Å¤¤¡A­þ©È¯u¥¿ªº«Å§i±Ô­z³£¬O­^¤å¡A¥u­n¤å¥ó¤¤¦³¤@­Ó¤¤¤å¦r¡A³£½Ð§A¨Ï¥Î xml ±Ô­z³]©w¦n encoding ÄݩʡA¦]¬° xmlto ¥u­n¬Ý¨ì¤å¥ó¤¤¦³«D ascii ©Î utf-8 ¦r¤¸¡A¤@«ßµø¬°¿ù»~¦Ó²×¤î°õ¦æ¡A¤£¥u xmlto ¦p¦¹¡A³\¦h¨ä¥Lªº XML ¸ÑªR¾¹¤]¤@¼ËÄY®æªºªñ¥GÀt¤ò(¦pªG§A½T©w§Aªº©Ò¦³§t¬AÀɳ£¥u¦b SGML ¤U¸ÑĶ¡A´N¤£¥²¦p¦¹³Â·Ð¡ASGML parser ¤£ care ¨º­Ó encoding¡C)

³Ì«á§Ú­Ì½s¿è¤@¥÷´ú¸Õ¥\¯àªº¥D¤å¥ó $HOME/Document/sgml/test.sgml(or test.xml)¡A­º¥ý«Å§i¤å¥ó«¬ºA¡A¨Ã¥´¶} prolog ªº subset °Ï¡ASGML ®æ¦¡¬O¡G

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [

XML ®æ¦¡¡G

<?xml version="1.0" encoding="Big5"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                  "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd" [

±µµÛ§Ú­Ì§â­è­è¨º­Ó ENTITY «Å§i¶°¦XÀÉ´¡¤J¨ì prolog ªº subset °Ï¡A²£¥Í³v¤@«Å§i ENTITY ªº®ÄªG¡G

  <!ENTITY % twbaby.include SYSTEM "common/index.ent">
  <!-- ¥Ñ©ó ENTITY ¥²¶·©ó subset °Ï«Å§i¡Asubset °Ï¥²¶·¨Ï¥Î Parameter
       ENTITY ¡A©Ò¥H¹êÅé¦WºÙ«e¥[ % ¦r²Å¡C -->
  %twbaby.include;    <!-- §â index.ent ÀÉ®×´¡¤J«Å§i°Ï¡A²£¥Í«Å§i®ÄªG¡C -->

Ãö¤W subset °Ï¡A¨Ã¶}©l®Ú¼ÐÅÒ¡A¶i¤J¥»¤å½s¿è°Ï¡G

]]>
<article>

¦b¥»¤å½s¿è°Ï¤¤¨Ï¥Î subset °Ï«Å§iªº External ENTITY¡G

  <title>©T©w¸ê®Æ¤ù¬q­«½Æ¨Ï¥Î½d¨Ò</title>
  <articleinfo>
    &twbaby.legal.inc;
    &twbaby.authur.oldguy;
  </articleinfo>
  <para>§A¥i¥H¥Î¤@­Ó¥~³¡ ENTITY «Å§i¶°¦XÀÉ¡A¨Ó²Î¦X©Ò¦³ªº±`¥Î¸ê®Æ¤ù¬q¡A´¡¤J¥»¤å¤¤¨Ó­«½Æ¨Ï¥Î¡C</para>
</article>

²{¦b§A¥i¥H§â©Ò¦³³o¨Ç³£´ê¦b¤@°_¡A¥Î openjade or xmlto ½sͦ¨ HTML ¬Ý¬Ý®ÄªG¡C

Note

¦b³o½d¨Ò¤¤¡AÁöµM article ®Ú¼ÐÅÒ¥u¥X²{¨â­Ó External ENTITY ´¡¤J¡A¦ý¨ä¹ê¬O¤T­Ó ENTITY ³£¥Î¤W¤F¡A¦]¬°¦b author-oldguy.inc ³o­Ó§t¬AÀɦ³°µ¤F´¡¤J¥t¤@­Ó§t¬AÀÉ twbaby.org.inc ªº°Ê§@¡A©Ò¥H¤@­Ó³Q«Å§i¹Lªº External Entity ¡A¤£¥u¥i¥H¥D¤å¥ó¤¤³Q´¡¤J¡A¤]¥i¥H¦b«Å§i®Ä¤O©Ò¤Îªº¥t¤@­Ó§t¬AÀɤ¤³Q´¡¤J¡C


2.3. ¹L®É³sµ²­×¥¿¾÷¨î

¦b¼ô±x¤F internal ENTITY ªº±`¼Æ«Å§i¡A¥H¤Î external ENTITY ªº¥~³¡§t¬AÀɫŧiªº¨Ï¥Î¤èªk«á¡A§Ú­Ì´N¥i¥Hµ½¥[ÅܤơA°µ¥X³\¦h¬Ù®É¬Ù¤Oªºªþ¥[¾÷¨î¥X¨Ó¡CÄ´¦p¤U­±¤¶²Ðªº¡A¸Ñ¨M¦]¥~³¡³sµ²Àɦì§}§ïÅÜ¡A¾É­P­ì³sµ²¥¢®Ä°ÝÃDªº¾÷¨î¡C

¦pªG§Ú»¡ªñ¦~¨Ó­·°g¨ì¥@¬É¦U¦a¨C­Ó¨¤¸¨ªº¡AWorld Wide Web ºô­¶¡A¥¦³Ì¤Þ¤H¤J³Ó¡A¨Ã¿W¨ã¯S¦âªº¡A´N¬O Hyper Link(¶W³sµ²)³o¶µ¥\¯à¡AÀ³¸Ó¤j®a¤£·|¦³²§Ä³¤~¹ï¡C¦ý¦³¹LºûÅ@¨Ã§ó·sºô¯¸¸gÅ窺¤H³£ª¾¹D¡A³Ì¥O¤HÀY¯k¡A¨Ã¥B»Ý­n±`±`¯d·Nªº¡A´N¬O¹L®É³sµ²¦ì§}ªº§ó¥¿¡C¦]¬°§A¥i¥H¾aµÛ¥J²Ó©MÂÔ·V¨ÓºÉ¥i¯à­°§C¦Û¤v¼¶¼gºô­¶ªº¿ù»~¸ê°T¡A¦ý§A¨S¿ìªk±±¨î§O¤Hªººô­¶¤£·h®a´«¦a¤è¡A¥u­n§Aªººô­¶¤¤¦³¦V¥~³sµ²¨ä¥Lºô¸ô¸ê°Tªº±Ô­z¡A§A´N­n¦³¦¹³sµ²±Ô­z¥i¯àÀH®É·|¹L®Éªº¤ß²z·Ç³Æ¡A§A¥u¯à±µ¨ü³o­Ó¨Æ¹ê¦Ó¤@ÂI¿ìªk¤]¨S¦³¡C

·íµM¡A´Nºâ¥Î DocBook ¨ÓÂàͲ£¥Íºô­¶¡A´Nºâ¥Î SGML ENTITY ¥\¯à¨Ó¨ó§U¡A¤´¤£¯àªý¤î§O¤Hªººô­¶¤£·h®a¡C¦ý¥i¥HÂÇ¥Ñ SGML ENTITY ªº¨ó§U¨Ó»ü¬Ù§A§ó·sºô­¶¤¤¹L®É³sµ²±Ô­zªº¤u§@¡AÅý§A¤£¥²Â½¹Mºô­¶ªº¨C¤@¦æ¬q¸¨¡A¨Ó§ä¥X³sµ²±Ô­z¦ó¦b¡C

­n¹F¦¨³o¼Ëªº¥\¯à¡A¥²¶·°µ¨ì¨â­Ó­«ÂI¡G²Ä¤@¡A©Ò¦³¦b¤å¥ó¤¤ªº¶W³sµ²±Ô­z¡A¤@«ß¥Ñ internal ENTITY ¨ú¥N¡F²Ä¤G¡A©Ò¦³·|¥Î¨ìªº¶W³sµ² ENTITY «Å§i¡A¶°¤¤¼g¨ì¤@­Ó¥~³¡§t¬AÀɤ¤¡C¨Ò¦p§Ú·|°µ¤@­Ó $HOME/Document/sgml/common/oururl.ent ¦p¤U¡G

<?xml encoding="Big5"?>
<!ENTITY addrlose.url "http://mysite.mydomain/addrlose.html">
<!-- ºô¸ô¤WµLªk¦A·j´M¨ì­ì©lÀɮתº¿ù»~³qª¾ºô­¶ --> 
<!ENTITY docbook.onlinebook.url "http://www.docbook.org/tdg/en/html/docbook.html">
<!-- DocBook ©x¤èª©½u¤W¤â¥U¦ì§} -->
<!ENTITY openjade.download.url "http://openjade.sourceforge.net/">
<!-- openjade ­ì½X¤U¸ü¦ì§} -->
<!ENTITY install.jade.url "http://www.study-area.org/tips/doctrans/doctrans.html">
<!-- OpenJade ¦w¸Ë»¡©ú¤å¥ó¦ì§} -->
<!-- ¨ä¥Lºô¸ô³sµ²¦ì§} ...... -->

±µµÛ§Ú¦b $HOME/Document/sgml/test.sgml ¥D¤å¥ó¤¤¥Î oururl.ent ªº ENTITY ¨Ó¨ú¥N Hyper Link ªº URL ±Ô­z¦p¤U¡G

Example 9. ¥~³¡§t¬A¶W³sµ²«Å§i

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY % twbaby.hlink.ent SYSTEM "common/oururl.ent">
  %twbaby.hlink.ent;
]>
<article><title>DocBook Â²¤¶</title>
  <para>·Q­n¨ú±o DocBook ¸ÑĶªºµ{¦¡¼Ò²Õ¡A¥i¥H¨ì <ulink url="&openjade.download.url;">
    openjade ®M¥ó</ulink> ¥h¤U¸ü¡C¤£ª¾¦p¦ó¦w¸Ëµ{¦¡¼Ò²Õ¡A¥i¥H¥h <ulink url="&install.jade.url;">
    ¬d¬Ý¦w¸Ë»¡©ú¤â¥U</ulink>¡C¦Ü©ó¤£ª¾¦p¦ó¼¶¼g DocBook ¤å¥ó¡A¤]¥i¨ì<ulink url=
    "&docbook.onlinebook.url;">½¾\©x¤è½u¤W¤â¥U</ulink>¡C</para>
</article>

·í§A°µ³o¼Ë¦w±Æ¡A¥H«á¥ô¦ó¨ä¥L³Q³sµ²ºô­¶·h®a¡A§A¥u­n§ó§ï oururl.ent ³o­Ó«Å§iÀɪº¬ÛÃö ENTITY ³]©w­È«á¡A¦A­«·s±N¤å¥ó½sͤ@¦¸§Y¥i¡C¤£»Ý­n¨ìºô­¶¤º®e¤¤¤@¦æ¤@¦æ¥h½§ä¡A§â¬ÛÃöªº³sµ²§ä¥X¨Ó¡C(·í§Aªººô­¶¼Æ¶q¤Q¤ÀÃe¤j®É¡A§A·|©ú¥Õ¤@¦æ¤@¦æ§ä¬O¦h®£©Æªº¤@¥ó¨Æ¡C)¦Ó¹ï©ó¨º­Ó¹ý©³±qºô¸ô¤¤®ø¥¢ªº³Q³sµ²­ì©lÀÉ¡A«h¥Î addrlose.url ³o­Ó ENTITY ©Ò«ü¥Üªººô­¶¡A¨ú¥N­ì ENTITY ³]©w­È¡A¨Ó¦VÂsÄýªÌ³ø§i¡A³o­Óºô¸ô¸ê·½¤w°h¥Xºô¸ô¡A¤£´_¥X²{¤F¡C

¦¹¥~¦pªG§A±Ä¥Î¶°¤¤¶W³sµ²«Å§iÀɪº¾÷¨î¡A§A¤£¥²µ¥ÂsÄýªÌ³qª¾§Aºô¯¸¤¤¦³Ãa³sµ²µo¥Í¡Aµ½©ó¼¶¼g server ºÝ script ªº¡A¥i¥H¥Î¦¹Àɸê°T°õ¦æ¦Û°Ê°»´úµ{¦¡¡AÂǥѦ^À³°»´ú¨Óµoı³sµ²²§±`ª¬ªp¡C¤£·|¼g script ªº¡A´N§â©Ò¦³«Å§iªº¶W³sµ² ENTITY ¼g¦¨¤@¤j±i HTML ¡A§ä­Ó¤H¨C¤Ñ³v¤@«ö¤@¤U¨Ó´ú¸Õ¡A³o³£¤ñ§A¤@¤@¨ìºô­¶¤º¤å¤¤¥h§ä¡A·|¦³®Ä²vªº¦h¡C§A¥i¥H¤£¥²¹ïºô­¶¤¤¹L®É³sµ²¨º»òµL¤O·P¡A¥u­n§Aµ½¥Î SGML ªº ENTITY «Å§i¥\¯à¡C


3. ¦@¦P¼g§@Àô¹Òªº§G¸m

¸g¹L«e­±¤@³s¦ê°ò¥»Æ[©Àªº¤¶²Ð©M°ò¥»»yªkªº½m²ß¡A²{¦bÁ`ºâ¥i¥H¶}©l§Ú­Ì¨Ï¥Î DocBook ®æ¦¡¤å¥óªº¥t¤@¤j²z¥Ñ¡A¦h¤H¦@¦P¼g§@¡C¦b¶}©l¤§«e§ÚÁÙ¬O­n¦A´£¿ô¤@¦¸¡ADocBook ¯à´£¨Ñªº¥\¯à¬O¤Æ¾ã¬°¹s¡A¤ÀÀY¬I¤u¤§«á¡A¦A·J¾ã¦¨½s¡C¦Ü©ó¨ä¥LÅv­­ºÞ¨î¡Aª©¥»­×¥¿¾úµ{¬ö¿ý¡A«h¤£¦b DocBook ±±¨î½d³ò¤º¡A¤£¹L¨âªÌ«o¥i¥H¦X¨Ö¹B§@¡A¬Û±o¯q¹ü¡C


3.1. ¦h¤H¼g§@ªº°ò¥»Àô¹Ò§G¸m

¤£ºÞ§A¥´ºâ­n³z¹Lºô»Úºô¸ô¡A°Ï°ìºô¸ô¡A©Î¦@¥Î¥D¾÷¡A¨ÓÅý³\¦h¤H¦@¦P½s¿è¤@¥÷¤å¥ó¡A§AÁ`­n¦b©ñ¸m¤å¥óªº¥D¾÷¤W¡A¶}©ñ©Ò¦³°Ñ»P¦@¦P¼g§@ªº¤H¡A¨ã¦³µn¤J¥D¾÷ªºÅv­­¡A¨ÃÅý¥L­Ì¦b¸Ó¥D¾÷¤W¡A¾Ö¦³¤@­Ó±MÄݪº¸ê®Æ§¨¡A¨ÓÂ\©ñ¥L­Ì³Q¤À°t¨ì½s¿èªº¤l¤å¥ó¡C

¦b³o¸Ì§Ú­Ì°µ¤@­Ó°²³]¡A¥xÆW¥øÃZÄ_Ä_¤u§@¶¤ªºµo°_¤H¦Ñ°^¥Í¡AÁܶ°¤F¦b¥xÆW BBS Linux ½×¾Âªº¤T¤j°ª¤â¡A¤p¦{,ºô¤¤¤H,§õªG¥¿¨Ó¤À§O´N¨t²Î,ºô¸ô,±Æª©¦C¦L³¡¥÷¡A´£¨Ñ¥L­Ì¿W¨ì¨£¸Ñ©M¸gÅç¡A·J¾ã¦¨ Linux ±K§Þ·J½s¤@½g¡A¥H¨Ñ±À¼s´£ª@ Linux ªÀ¸s¨Ï¥Î¸gÅ礧¥Î¡C§Ú­Ì²{¦b´N¥H³o­Ó°µ°²³]¡A¨Ó¬Ý¬Ý«ç¼ËªºÀô¹Ò¦w±Æ¡A¥i¥H«Øºc¦¨¤@­Ó¦h¤H¦@¦P¼¶¼gªº DocBook Àô¹Ò¡C

­º¥ý§Ú­Ì°²³]¦Ñ°^¥Íªº¨º¥xºô¸ô¥D¾÷¦WºÙ¬O cvs.baby3y.org.tw¡A§A¥i¥HÅý¥L¦¨¬°¤@­Ó cvs server ¡Atelnet server or ssh server ¡A¨ÓÅý¨Ï¥ÎªÌ¤W¤U¶Ç¤å¥ó¸ê®Æ[5]¡A¤U­±ªº°Ê§@½Ð¥ý¤Á´«¦¨ root °õ¦æÅv­­¦A°µ°õ¦æ©R¥O°Ê§@¡C­º¥ý§Ú­Ì»Ý­n«Ø¥ß¤@­Ó cvs group ¨Ó°Ï§O DocBook ¤å¥ó½s¿èªÌ¡A©Î³æ¯Âªº cvs.baby3y.org.tw ¥D¾÷µn¤JªÌ¡C

# groupadd cvs

°£«D§Ú­Ì­n«Ø¥ß cvs server ¡A¤~­n¤@¦P«Ø¥ß cvs user ¡A§_«h¥ú¦³ cvs group §Y¥i¡C±µµÛ§Ú­Ì«Ø¥ß¦@¦P¤å¥ó½s¼g°Ï¥Ø¿ý¨Ã³]©w¾A·íÅv­­¡G

# mkdir /home/cvsroot
# chmod 775 /home/cvsroot
# chown root.cvs /home/cvsroot

OK¡A§Ú­Ì¦³¤F¤@­Ó¦@¦P¼g§@¸ê®Æ§¨¡A¦ý§A¤£·|¥u¼g¤@½g Linux ±K§Þ·J½s´Nº¡¨¬¤F¡A±N¨Ó¤@©wÁÙ¦³³\¦h¨ä¥L¤£¦PÃD¥Øªº¦@¦P¤å¥ó·|¦b¦¹°Ï½s¼g¡C§A¤£·|§Æ±æ¤£¦PÃD¥Øªº¤å¥ó³£°ï¦b¤@­Ó¥Ø¿ý¤¤¶Ã¦¨¤@¹Î¡A¦]¦¹§Ú­Ìµ¹³o¦¸±K§Þ·J½s¤å¥ó¤@­Ó³æ¿Wªº¥Ø¿ý tltp(Taiwan Linux Tip Project)¡C

# mkdir /home/cvsroot/tltp
# chmod 750 /home/cvsroot/tltp
# chown root.cvs /home/cvsroot/tltp

Note

¦pªG§A·QÅý¤@¯ëµn¤JªÌ¤]¥i¥H¶i¤J¤Î¾\Äý /home/cvsroot/tltp ¸ê®Æ¡A§A¥i¥H³]©wÅv­­¼Ò¦¡¬° 755 ¡A¥»½d¨Ò³] 750 ªí¥Ü«D tltp ¤å¥ó½s¼g­û¤£±o¶i¤J¥»°Ï¡C

²{¦b§Ú­Ìª¾¹D /home/cvsroot/tltp ´N¬O§Ú­Ì±K§Þ·J½s¤å¥óªº³Ì¤W¼h¥Ø¿ý¡A±µµÛ§Ú­Ì­n¦b³o¤å¥ó®Ú¥Ø¿ý¤U¤À§O«Ø¥ß¦U­Ó½s¼g­û¦Û¤v¤å¥ó©ñ¸mªº³æ¿W¸ê®Æ§¨¡C·íµM­º¥ý§A­n¦b cvs.baby3y.org.tw ¥D¾÷¤W«Ø¥ß ¤p¦{(kenduest),ºô¤¤¤H(netman),§õªG¥¿(edward) ¤T¤Hªº±b¸¹¡A«Ø¥ßªº¤èªk½Ð¦Û¦æ°Ñ¦Ò useradd ©R¥O¡A¦¹³B¤£¦AÂØ­z¡A±µµÛ§A­n½s¿è /etc/group ¸s²ÕÀÉ¡A°µ¤U¦Cªº§ó§ï¡G

cvs:x:nnn
§ï¦¨
cvs:x:nnn:kenduest,netman,edward

¦p¦¹¤~¯àÅý kenduest,netman,edward ¤T¤H¨ú±o¶i¤J tltp ªºÅv­­¡C±µµÛ§A­n«Ø¥ß kenduest µ¥¤Hªº¤À§O¸ê®Æ§¨¡G

# mkdir /home/cvsroot/tltp/kenduest
# chmod 750 /home/cvsroot/tltp/kenduest
# chown kenduest.cvs /home/cvsroot/tltp/kenduest

¨ä¥L¨â¤H¤]¨Ì¦P¼Ëªºªk«h¡A¦b tltp ¤U¤À§O«Ø¥ß netman ©M edward ¤l¸ê®Æ§¨¡A³Ì«á§AÀ³¸Ó«Ø¥ß¤@­Ó¥þÅé¸ê®Æ¦@¥Î°Ï common ¦p¤U¡G

# mkdir /home/cvsroot/tltp/common
# chmod 770 /home/cvsroot/tltp/common
# chown root.cvs /home/cvsroot/tltp/common

¸g¹L¥H¤W³o¨Ç¾úµ{¡A¦@¦P¤å¥ó¼g§@ªº¨t²ÎÀô¹Ò³W¹º´Nºâ§¹³Æ¡A±µµÛ¡A´N¬O DocBook ¤å¥ó°t¸m¸Ó¤W³õªº®É­Ô¤F¡C


3.2. ¥D°Æ¤å¥óµ²ºc

¦³¤F external ENTITY «Å§iªº·§©À«á¡A¦p¦ó¦b¥D¤å¥ó¤¤§t¬A¥~³¡¤å¥ó·Q¥²¬O»´¦Ó©öÁ|ªº¨Æ¡A²{¦b§Ú­Ì´N¦b /home/cvsroot/tltp/ ¸ô®|½s¿è¤@­Ó main.sgml(xml)·í¥D¤å¥ó¨Ó´¡¤J kenduest,netman,edward ¤T­Ó¤H½s¼gªº°Æ¤å¥ó¡G

Example 10. SGML ¥D¤å¥ó½d¨Ò

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY kenduest.main SYSTEM "kenduest/mainchap">
  <!ENTITY netman.main SYSTEM "netman/mainchap">
  <!ENTITY edward.main SYSTEM "edward/mainchap">
]>
<book><title>Linux ±K§Þ°Ýµª·J½s</title>
  <chapter><title>¾É½×</title>
    <para>¥»¤å¶°¦X¦b¥xÆW BBS ½×¾Â¤W¡A±`±`¼ö¤ß¬°ºô¤Í±ÆºÃ¸Ñ´b¡A¦^µª Linux
    §@·~¨t²Î¬ÛÃö°ÝÃDªº¤T¤j°ª¤â¡A¤p¦{,ºô¤¤¤H©M§õªG¥¿¤T¦ì¥ý¥Í¡C¤À§O´N¥L­Ì¦b
     Linux ¤Wªº±Mªø©Ò¾Ç¡A´£¨ÑºëÅPªº¤ÀªR»P¿W¨ì¨£¸Ñ¡AîPµÑ¦¨¤@½g§¹¾ã¤å³¹¡C
    ³o¯u¬O 2004 ¦~¦Û¥Ñ³nÅéªÀ¸s¬ã¨s±À®iªº¤@¤j³Ó¨Æ¡A§Æ±æ¤j®a¯àÂǦ¹¬Û¤¬¥æ¬y¡A
    ¶i¨B¤@¤é¤d¨½¡C</para>
  </chapter>
  &kenduest.main;
  &netman.main;
  &edward.main;
</book>

¤W­±¬O SGML ½d¨Ò¡AXML ½d¨Ò¨£¤U¦C¡G

Example 11. XML ¥D¤å¥ó½d¨Ò

<?xml version="1.0" encoding="big5"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
               "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd" [
  <!ENTITY kenduest.main SYSTEM "kenduest/mainchap">
  <!ENTITY netman.main SYSTEM "netman/mainchap">
  <!ENTITY edward.main SYSTEM "edward/mainchap">
]>
<book><title>Linux ±K§Þ°Ýµª·J½s</title>
  <chapter><title>¾É½×</title>
    <para>¥»¤å¶°¦X¦b¥xÆW BBS ½×¾Â¤W¡A±`±`¼ö¤ß¬°ºô¤Í±ÆºÃ¸Ñ´b¡A......(¥H¤U¦P¤W)<para>
  </chapter>
  &kenduest.main;
  &netman.main;
  &edward.main;
</book>

³o¼Ë¦b¥D¤å¥óªº subset °Ï´¡¤J°Æ¤å¥óªº¨Ï¥Î¤è¦¡¬Û«H¨SÔ£¤j¾Ç°Ý¡A¤]¤£»Ý¤Ó¦h¸ÑÄÀ¡A¤£¹L«o¦³¨Ç­­¨î¬O­n¥þÅé°Ñ»P½s¼g¤H­û¿í¦uªº¡G

  • external ENTITY ªº¥~³¡Àɮ׸ô®|«Å§i¡A­nª`·N¥~³¡ÀɮשM¥D¤å¥óªº¬Û¹ï¦ì¸m¡C

  • ´N³o­Ó½d¨Ò¤¤¡Amainchap Åܦ¨¦U¤l¤å¥ó½s¼g­û³Ì¤W¼hªº¤å¥ó¡A¦U¤l¤å¥ó½s¼g­û¥²¶·¨Ï¥Î³o­ÓÀɦW¡A¤£±oÅܧó¡C

  • ¬°¤F±N¨Ó¨C­Ó¤H½s¼gªº¤l¤å¥ó¯à©M¦b¤@¶ô¡A¤£³y¦¨¤å¥óµ²ºc½Ä¬ð¡A¥D¤å¥ó¼¶¼g­û¥²¶·§iª¾¦U¤l¤å¥ó½s¼g­û³Q¤À°t¨ìªº³Ì¤W¼h¼ÐÅÒ¬°¦ó¡A¤l¤å¥ó½s¼g­û¥u¯à¨Ï¥Î¸Ó³Ì¤W¼h¼ÐÅÒªº¤l¼ÐÅÒ¡A¨ÃÁ×§K¤å¥ó¤¤¦³¸õ¥X³Ì¤W¼h¼ÐÅÒ¬q¸¨¤§¥~ªº²{¶Hµo¥Í¡C¨Ò¦p¥»¨Ò¡Akenduest,netman,edward ¤À¨ìªº³Ì¤W¼h¼ÐÅÒ³£¬O chapter¡A©Ò¥H¤T¤H³£¸Ó¦b¦Û¤v¥Ø¿ý¤¤ªº mainchap ÀÉ¥H <chapter> ¬°¤å¥ó¶}ÀY¡A¥H </chapter> ¬°¤å¥óµ²§À¡A¨Ã¥B¥u¨Ï¥Î chapter ªº¤l¼ÐÅÒ³W¹º¤å¥ó¡C

  • ¦pªG§A¬O¨Ï¥Î XML »yªk³W«h½sĶ DocBook ¤å¥ó¡A¨º»ò©Ò¦³ªº¥~³¡§t¬A¤å¥ó¡A¥u­n½s½X¤£¬O UTF-8 or UTF-16 ¡A´N¤@«ß¥²¶·¦b¤å¥ó¶}ÀY¥[ <?xml encoding="code-name"?> ªº«Å§i¡A§_«h·|³y¦¨½sĶ¿ù»~¡C


3.3. ¦b¥D¤å¥ó¤¤¨Ï¥Î¥~³¡¹êÅé«Å§iÀÉ

¦b¥D¤å¥ó´¡¤J¥~³¡¹êÅé(external ENTITY)«Å§iÀɪº¥Î·N¦³¤G¡G

  1. Åý¤å¥óªº¹êÅ骺«Å§i¥i¥H¤@¦¸¾ã§å§¹¦¨¡Aºû«ù¥D¤å¥óªºÂ²³æ²M·¡¡C

  2. ÂǥѦb¥~³¡¹êÅé«Å§iÀɤ¤§t¬A¨ä¥Lªº¹êÅé«Å§iÀÉ¡AÅý¤l¤å¥ó½s¼g­û¤]¥i¥H¦Û¦æ³]©w¹êÅé«Å§i¡C


3.3.1. ¥~³¡¾ã§å«Å§i¹êÅéÀÉ®×

§Ú­Ì¥ý½Í¥D¤å¥ó¦p¦ó§Q¥Î§t¬A¥~³¡¹êÅé«Å§iÀɨӾã§å³B²z¹êÅé«Å§i¡A§Ú­Ì¥ý°µ¤@­Ó /home/cvsroot/tltp/url.ent ªº¥D¤å¥óºô¸ô¸ê·½«Å§iÀÉ¡G

Example 12. ¥~³¡ºô¸ô¦ì§}¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY common.oldguy.email "oldgen@pchome.com.tw">
<!-- ¥»¤åÁ`½s¦Ñ°^¥Íªº email «H½c -->
<!ENTITY gnu.legal.url.tw "http://www.linux.org.tw/CLDP/OLD/doc/GPL.html">
<!-- GNU GPL ª©ÅvÁn©ú¤¤Ä¶¤å¥ó¦ì§} -->

±µµÛ§Ú­Ì»s§@¤@¥÷ /home/cvsroot/tltp/main.ent ÀÉ®×§@¬°¥D¤å¥óªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀÉ¡A¨Ã§t¬A´¡¤J­è­è°µ¦nªººô¸ô¦ì§}«Å§iÀÉ url.ent¡G

Example 13. ¥D¤å¥óªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY % common.url.ent SYSTEM "url.ent">
<!-- «Å§iºô¸ô¸ê·½³sµ²¦ì§}«Å§iÀɸô®|¦ó¦b -->
%common.url.ent;
<!-- «Å§i¹Lªº¥~³¡¹êÅé¡A­n°õ¦æ´¡¤J°Ê§@¤~·|¹ê»Ú²£¥Í§@¥Î¡C -->

³Ì«á§Ú­Ì¦b¥D¤å¥ó main.sgml(xml) ¤¤¤Þ¥Î´¡¤J¥D­n¥~³¡«Å§iÀÉ main.ent¡G

Example 14. ¥D¤å¥ó´¡¤J¥~³¡«Å§iÀÉ

<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY % external.module SYSTEM "main.ent">
  %external.module;
                                                                                                 
  <!ENTITY kenduest.main SYSTEM "kenduest/mainchap">
  <!ENTITY netman.main SYSTEM "netman/mainchap">
  <!ENTITY edward.main SYSTEM "edward/mainchap">
]>
<book><title>Linux ±K§Þ°Ýµª·J½s</title>
  <chapter><title>¾É½×</title>
    <para>¥»¤å¶°¦X¦b¥xÆW BBS ½×¾Â¤W¡A±`±`¼ö¤ß¬°ºô¤Í±ÆºÃ¸Ñ´b......</para>
    <para>¹ï¥»½g¤å³¹¦³¥ô¦ó§åµû«ØÄ³¡A½Ð email ¨ìÁ`½s¦Ñ°^¥Íªº¹q¶l«H½c
      <email>&common.oldguy.email;</email> ¡A¹ï©ó¦U³¹¥Dµ§¦³¶i¤@¨Bªº½Ð¯q¡A
      <!-- ´¡¤J url.ent ¤¤ªº«Å§i¤Þ¥Î -->
      ½Ð°Ñ¦Ò¦U³¹¤º¥Dµ§´£¨Ñ¤§Ápµ¸¤è¦¡¤Îºô¸ô¦ì§}¡C</para>
  </chapter>
  &kenduest.main;
  &netman.main;
  &edward.main;
</book>


3.3.2. ¤l¤å¥ó½s¼g­û¤]¥i¥H¦Û­q¹êÅé«Å§i

§Ú­Ì¦b«e­±ªº³¹¸`´¿¸g»¡¹L¡A¤@¾ã¥÷ DocBook ¥u¦³¤@­Ó prolog ¥i¥H¶}±Ò subset ´¡¤J¹êÅé«Å§i¡A¦Ó¥B¥u¦³¥D¤å¥ó¥i¥H¶}±Ò subset °Ï¬q¡C¨º»ò§@¬°³Q§t¬A©I¥sªº¤l¤å¥ó¡A¬O¨S¦³ subset °Ï¡A¤]µLªk°µ¦UºØ¹êÅé«Å§iªº¡C¨º»ò¤l¤å¥óªº½s¼g­û¦pªG­n¨Ï¥Î ENTITY ¦n¥Îªº¥\¯à¡A´N¤@©w­n«ô°U¥D¤å¥ó½s¼g­ûÀ°¥L«Å§i¡A¦Ó¤£¯à¦Û­q¹êÅé«Å§i¶Ü¡H

¨ä¹ê§Ú­Ì¥u­n°O¦í¤@­ÓÆ[©À¡A§Ú¦b¥D¤å¥ó«Å§i¤Þ¥Î¤@­Ó¥~³¡¹êÅéÀÉ¡A³o­Ó¹êÅéÀÉ´N¥i¥H¦A¥h«Å§i¤Þ¥Î¨ä¥L¹êÅéÀÉ¡A³o»ò¤@¼h¤@¼h¤Þ¥Î¤U¨Ó¡A³Ì«á©Ò¦³¥~³¡Àɮתº¹êÅé«Å§i¡A³£·|·JÁ`¨ì¥D¤å¥óªº subset °Ï¥h«Å§i¡C©Ò¥H¥u­n¥D¤å¥ó¼¶¼g­û©M¤l¤å¥ó¼¶¼g­û¨óij¦n¡A¦b¥D¤å¥ó´¡¤J¤@­Ó¥Ñ¤l¤å¥ó¼¶¼g­û½s¼gªº¥~³¡¹êÅé«Å§iÀÉ¡A¤l¤å¥ó½s¼g­û´N¥i¥H³z¹L³o­ÓÀɮפ¤¤¶¡A¼h¼hÂà¥Î¨ä¥L¦Û¤v½s¼gªº¥~³¡¹êÅé«Å§iÀÉ¡A¨Ã§â¥¦À³¥Î´¡¤J¨ì¦Û¤v¤å¥ó¤¤¡C

¤U­±§Ú­Ì´N§â­ì¨Ó¥D¤å¥óªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀɧï¼g¤@¤U¡AÅý¥L·|¥h§t¬A kenduest,netman,edward ¤T¤H¥Ø¿ý¤Uªº main.ent ¥~³¡¹êÅé«Å§iÀÉ¡A¦nÅý¤T¦ì¤l¤å¥ó½s¼g­û¥i¥H¦Û­q¹êÅé«Å§i¡C¦¹¥~§Ú­Ì¤]¥[¤F­Ó¦@¦P¸ê®Æ°Ï common/main.ent ¨Ó¤Þ¥Î¦@¦P°Ïªº¬ÛÃö¸ê®Æ¡C

Example 15. ¥D¤å¥óªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀÉ(¼W¸É A)

<?xml encoding="big5"?>
<!ENTITY % common.url.ent SYSTEM "url.ent">
%common.url.ent;
<!-- ¥D¤å¥ó¦@¥Îªººô¸ô¸ê·½³sµ²¦ì§} -->
<!ENTITY % common.module SYSTEM "common/main.ent">
%common.module;
<!-- ¦@¦P¨Ï¥Îªº¥~³¡¹êÅé(external ENTITY)«Å§iÀÉ -->
<!ENTITY % kenduest.module SYSTEM "kenduest/main.ent">
%kenduest.module;
<!-- ¤p¦{¨Ï¥Îªº¥~³¡¹êÅé(external ENTITY)«Å§iÀÉ -->
<!ENTITY % netman.module SYSTEM "netman/main.ent">
%netman.module;
<!-- ºô¤¤¤H¨Ï¥Îªº¥~³¡¹êÅé(external ENTITY)«Å§iÀÉ -->
<!ENTITY % edward.module SYSTEM "edward/main.ent">
%edward.module;
<!-- §õªG¥¿¨Ï¥Îªº¥~³¡¹êÅé(external ENTITY)«Å§iÀÉ -->

·í§Ú­Ì¦b¥D¤å¥óªº main.ent ¼W¥[¤F¹ï¤l¤å¥ó°Ïªº¥~³¡¹êÅé«Å§iÀɧt¬A¤Þ¥Î«á¡A¦U¤l¤å¥óªº½s¼g­û´N¯à°÷¦b¦Û¤v¸ô®|ªº main.ent ¤¤¡A¦Û­q¹êÅé«Å§i¡A©ÎªÌ¶i¤@¨BÂà§t¬A´¡¤J¨ä¥L¥~³¡¹êÅé«Å§iÀÉ¡C²{¦b§Ú­Ì´N§Q¥Î kenduest ½s¼g­û¬°¨Ò¨Ó»¡©ú¡A­º¥ý§Ú­Ì½s¼g kenduest ªº /home/cvsroot/tltp/kenduest/main.ent¡G[6]

Example 16. kenduest ªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY kenduest.email.url "kenduest@abc.123.com">
<!-- ´¡¤J kenduest ªº email ¦ì§} -->

±µµÛ§Ú­Ì½s¼g kenduest ªº³Ì¤W¼h¤l¤å¥ó /home/cvsroot/tltp/kenduest/mainchap ¨Ó´ú¸Õ¡G

Example 17. kenduest ªº³Ì¤W¼h¤l¤å¥ó

<?xml encoding="big5"?>
<chapter><title>¨t²Î¬[ºc»P¨ç¦¡®w</title>
  <para>«Üºa©¯¦³³o­Ó¾÷·|¦b³o¸Ì©M¤j®a¤À¨É¦³Ãö¶}©ñ§@·~¨t²Îªº¨Ï¥Î¸gÅç¡A
  ÁöµM Linux ªº¨t²Î¬[ºc»P¨ç¦¡®w¬O§Úªº¿³½ì¡A¨Ã¯Ó¶O¤£¤Ö¤ß¤O¥h±´¯Á¡C
  ¦ý¤@­Ó¤Hªº¤~¤O´¼¼z¦³­­¡A²¨º|Á`¬OÃø§K¡A©Ò¥H¤å¤¤¦³¤£·í¤£§´©Î«Ý°Óºe³B¡A
  Á٧Ʊ椣§[¨Ó¨ç <email>&kenduest.email.url;</email> ¡A
                 <!-- ´¡¤J kenduest ªº main.ent «Å§i¡AÁöµM¨S¦³ subset °Ï¡A
                      ¦ý³z¹L main.ent ©M¥D¤å¥óªº main.ent ³sµ²Ãö«Y¡A
                      kenduest ¦Û¤v©w¸qªº¹êÅé«Å§i·|³Q±a¨ì¥D¤å¥óªº subset
                      °Ï¥h«Å§i¡C -->
  ´f»P«ü¥¿¡A¤£³Ó·PÁ¡C</para>
</chapter>

Important

³o¸Ì¦³­Ó­n¯S§O¯d·Nªº´N¬O°µ¹êÅé«Å§i®É¿ï¥Î¹êÅé¦WºÙªº°ÝÃD¡A¦]¬°¨C­Ó¤l¤å¥ó½s¼g­ûªº¤l¤å¥ó©M¥~³¡¹êÅé«Å§iÀɳ£¬O©ñ¦b¦Û¤vªº¥Ø¿ý¤U¡A©Ò¥HÁa¨ÏÀɦW¬Û¦P¡A¤]¤£·|²V²c¡C¦ý¬O¨C­Ó¤H«Å§i¥X¨Óªº¹êÅé¡A³£·|¶°¤¤¨ì¥D¤å¥óªº subset °Ï¥h¶°¤¤«Å§i¡A¨º®É¦pªG¨â­Ó¤H«Å§iªº¹êÅé¦WºÙ¬Û¦P¡A´N·|²£¥Í«Å§iÄv¦Xªº°ÝÃD¡A¤£ºÞ¬O SGML or XML ¡A³£¤£·|¤À¿ë¹êÅ骺¨Ó·½¦Ó°µ¤À§Oªº³B²z¡A¥L§â©Ò¦³ªº¹êÅé©M¥~³¡¸ê®Æµø¬°¤@­Ó¾ãÅé¡A¦Ó±Ä¨ú¤@­Ó©T©w­È¡C¬°¤FÁ×§K½s¼g­û«Å§i¹êÅé¦WºÙªº¬Û¤¬¤zÂZ¡A«Å§i¹êÅé¦WºÙ®ÉÀ³¸Ó¯d·NÁ×§K©M§O¤H¨ú¤@¼Ëªº¹êÅé¦WºÙ¡A¹³½d¨Ò¤¤ªº¡A§â³æ¯Âªº email.url ¹êÅé«Å§i¦WºÙ«e¡A¥[¤W kenduest ¨Ï¥ÎªÌ±b¸¹¡A§@¬°¹êÅé¦WºÙªº¤@³¡¤À¡A´N¬O¤@­Ó¤£¿ùªº¤èªk¡C


3.4. ¤l¤å¥ó¤¤§t¬A©µ¦ù¥~³¡¹êÅé«Å§iÀÉ®×

«e¤@¸`½d¨Ò§Ú­Ì¤w¸g½m²ß¤F¦p¦ó¥Î¥D¤å¥óªº¥~³¡¹êÅé«Å§iÀÉ main.ent ¥h§t¬A´¡¤J¤l¤å¥óªº main.ent ¡A¨Ó¹F¦¨¤l¤å¥ó½s¼g­û¤]¯à©w¸q«Å§i¦Û¤vªº¹êÅé¡C³o¤@¸`§Ú­Ì­n½m²ßªº¬O³z¹L¤l¤å¥óªº¥~³¡¹êÅé«Å§iÀÉ main.ent ¤¤¤¶¡A¦A©µ¦ù´¡¤J§ó¦h¨ä¥Lªº¥~³¡¹êÅé«Å§iÀÉ¡C³o¨Ç´¡¤J¨ä¥L¹êÅé«Å§iÀɪº°t¦X¡A¥u»Ý­×§ï¦Û¤v¥Ø¿ý¤¤ªº main.ent §Y¥i¡A¤£»Ý­n¦A³Â·Ð¥D¤å¥ó½s¼g­û¥h°µ­×§ï¥D¤å¥óªº main.ent ¡C

²{¦b§Ú­Ì¥H¤l¤å¥ó½s¼g­û netman ªº¤å¥óµ²ºc¨Ó¥Ü½d¤@¤U³o­Óµ²ºc¡C­º¥ý§Ú­Ì°µ¤@­Ó netman ©w¸qªº /home/cvsroot/tltp/netman/url.ent §@¬°¥~³¡¹êÅé«Å§iÀÉ¡G

Example 18. netman ªº¥~³¡¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY netman.site.url "http://myweb.mydomain.org.tw">
<!-- »Å¾Ç¶é°Q½×°Ïºô§} -->

±µµÛ§ï¤@¤U kenduest ªº main.ent µ²ºc¡A¨Ó§@¬° netman ªº /home/cvsroot/tltp/netman/main.ent ¨Ï¥Î¡G

Example 19. netman ªº³Ì¤W¼h¥~³¡¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY % netman.url.ent SYSTEM "url.ent">
%netman.url.ent;
<!-- ´¡¤Jºô¤¤¤Hºô¸ô¦ì§}¹êÅé«Å§iÀÉ  -->

²{¦b netman §â¥~³¡¹êÅéÀÉ url.ent §t¬A¦b main.ent ªº³]©w³£°µ¦n¤F¡A§Ú­Ì´N¥i¥H¨Ï¥Î¤l¤å¥ó /home/cvsroot/tltp/netman/mainchap ¨Ó¸Õ¸Õ¤Þ¥Î©µ¦ù¥~³¡¹êÅé«Å§iÀɪº¥\¯à¦p¦ó¡G

Example 20. netman ªº¤l¤å¥ó´ú¸Õ

<?xml encoding="big5"?>
<chapter><title>ºô¸ô³q°T»P¦w¥þ</title>
  <para>¤µ¤Ñ«Ü°ª¿³¦³³o­Ó¾÷·|¡A¦b»Å¾Ç¶é¤§¥~©M¤j®a½Í½Íºô¸ô¡C¦pªG¥»³¹»¡±o¤£©P¥þªº¦a¤è¡A
    ¦U¦ì¥i¥HÄ~Äò¨Ó <ulink url="&netman.site.url;">»Å¾Ç¶é°Q½×°Ï</ulink>
                    <!-- ³o¬O¦b netman ¸ô®|¤U url.ent «Å§iªº¹êÅé¡A
                         §Ú­Ì¥i¥Ñ¦¹Æ[¹î³]©w¬O§_¥¿½T¡C -->
    ©M§Ú­Ì¶i¤@¨B¥æ¬y¡C</para>
</chapter>

Note

¦b¤l¤å¥óªº main.ent ¸Ì§t¬A¨ä¥L¥~³¡ÀɮסAÁÙ¬O­nª`·N main.ent »P³Q§t¬AÀɪº¬Û¹ï¸ô®|¡C­nª`·N¡I¡I¦b½d¨Ò¤¤ url.ent ªº¬Û¹ï¸ô®|¡A¬O«ü©M¤l¤å¥ó main.ent ªº¬Û¹ï¸ô®|¡A¦Ó¤£¬O©M¥D¤å¥ó main.ent ªº¬Û¹ï¸ô®|¡AÁa¨Ï¥L­Ì³Ì«á·|³Q±a¨ì¥D¤å¥ó¥h«Å§i¡C³Ì²³æªº­ì«h¬O¡A³Q«Å§iÀɮתº¬Û¹ï¸ô®|¡A¬O«ü»P«Å§i¥LªºÀɮתº¬Û¹ï¸ô®|¡C


3.5. ¦b¤l¤å¥ó¤¤´¡¤J¤l¤å¥ó

¤l¤å¥ó¬JµM¥i¥H´¡¤J¥t¥~ªº¥~³¡¹êÅé«Å§iÀÉ¡A·íµM¤]¥i¥H´¡¤J§ó²Ó¤Àªº¤l¤å¥ó¤ù¬q¸ê®Æ¡A§Ú­Ì´N¥Î edward ªº¸ê®Æ§¨¨Ó¸Õ¸Õ¡C­º¥ý§Ú­Ì¥ý»s§@ /home/cvsroot/tltp/edward/secta ©M sectb ³o¨â­Ó²µuªº¤l¤å¥ó¡G

Example 21. edward ªº²Ä¤G¼h¤l¤å¥ó(a)

<?xml encoding="big5"?>
<sect1><title>Tex/Latex</title>
  <para>¥»¸`±N¤¶²Ð¦b UNIX ¨t²Î¤U¡A­º±À¤@«üªº¤å¥ó±Æª©³nÅé¡ATex/Latex¡C</para>
</sect1>

Example 22. edward ªº²Ä¤G¼h¤l¤å¥ó(b)

<?xml encoding="big5"?>
<sect1><title>Post Script</title>
  <para>¥»¸`±N¤¶²Ð¦b¸ê°T³B²z¤¤¡A³Ì­·¦æªº¦Lªí¾÷¦C¦L©R¥O´y­zÀÉ¡APost Script¡C</para>
</sect1>

±µµÛ§Ú­Ì¨Ó»s§@ /home/cvsroot/tltp/edward/main.ent ³o­Ó¥~³¡¹êÅé«Å§iÀɮסG

Example 23. edward ªº¥~³¡¹êÅé«Å§iÀÉ

<?xml encoding="big5"?>
<!ENTITY edward.sect.a SYSTEM "secta">
<!-- §õªG¥¿ªº²Ä¤@°Ï¬qªº§t¬AÀÉ -->
<!ENTITY edward.sect.b SYSTEM "sectb">
<!-- §õªG¥¿ªº²Ä¤G°Ï¬qªº§t¬AÀÉ -->

³Ì«á§Ú­Ì½s¼g /home/cvsroot/tltp/edward/mainchap¡G

Example 24. edward ªº³Ì¤W¼h¤l¤å¥ó

<?xml encoding="big5"?>
<chapter><title>Linux ¨t²Î¤¤®æ¦¡¤å¥óªº¨Ï¥Îª¬ªp</title>
  &edward.sect.a;
  &edward.sect.b;
</chapter>


3.6. ¿é¥X¾ã¥÷¤å¥ó

¤£ºÞ¬O´ú¸Õ¾ã¥÷¤å¥ó®ÄªG¦p¦ó¡A©ÎªÌ²×©ó­nµ²½Z¥¿¦¡¹ï¥~µo§G¡A§Aªº½s͹ï¶H³£¬O /home/cvsroot/tltp/main.sgml or main.xml ¡C¤£ºÞµ²ºc¦h½ÆÂø¡A¦h¤Ö¤H°Ñ»P¡A³Ì«á³£¥u¥Î¤@­Ó©R¥O¡A°w¹ï¤@­Ó³Ì¤W¼h¥D¤å¥ó¡C¦pªG§A¬O¨Ï¥Î SGML »yªkªº DocBook ¡A§Aªº½sĶ©R¥OÀ³¸Ó¬O¡G

$ openjade -t sgml -d style-sheet-filename /home/cvsroot/tltp/main.sgml

¦pªG¥Îªº¬O XML ªº DocBook ¡A«h½sĶ©R¥O¬O¡G

$ xmlto html /home/cvsroot/tltp/main.xml

4. ¨Ì¸Ñ;¹¹ê§@¦Ó¤£¦Pªº ENTITY ¥\¯à

«e­±¦U¸`©Ò¤¶²Ðªº¡A¤£ºÞ¬O XML ©Î SGML ¡A³£¬O¦³©w¸q³W½dªº¡A¤@¯ëªº¸Ñ;¹¤]³£¤ä´©³o¨Ç¥\¯à¡C¥»¸`«h±N¤¶²Ð¤@¨Ç¡G©ÎªÌ¬O SGML »P XML ¦³©Ò¤À§Oªº®t²§¡A©ÎªÌ¬O¯S©w¸Ñ;¹¹ï³W½d¹ê§@ªº¤ä´©«×¤£¦P¡AÁ`¤§¡A§Ú·|¯S§O«ü¥X¨º­Ó¸Ñ;¹¦³¤ä´©¡A¦Ó¤£¯à¹B¥Î¦b§OºØ¸Ñ;¹¤W¡C


4.1. ±ø¥ó½sĶ

¤£ºÞ¬O SGML ©M XML ¡A¦b¥L­Ì¥¿¦¡¹ï¥~µo§Gªº³W®æ«ØÄ³®Ñ¤W¡A³£¦³Ä³©w ENTITY ³z¹L IGNORE ©M INCLUDE ­Èªº³]©w¡A¥i¥H¹F¦¨Ãþ¦üµ{¦¡»y¨¥¨ººØ #ifdef »yªkªº±ø¥ó½sĶ®ÄªG¡C¦ý¬O¸g§Ú¹ê¦a´ú¸Õ¡A­t³d¸ÑĶ SGML ªº openjade ©M­t³d¸ÑĶ XML ªº xmlto¡A¦b»yªk¨Ï¥Î¤W¦³®t²§¡A¦Ó xmlto ªº­­¨î¤ñ¸û¦h¡A¥\¯à¤]¤£¦p openjade §¹¾ã¡A²{¦b¤À­z¦p«á¡C


4.1.1. openjade ªº ENTITY ±ø¥ó½sĶ

©Ò¥H¥ý»¡ openjade ¡A¬O¦]¬°»yªk­­¨î¤Ö¡A¥\¯à¦h¡A¤ñ¸û®e©öÅý§A¤F¸Ñ¤°»ò¥s ENTITY ªº±ø¥ó½sĶ¡C­º¥ý§Ú­Ì¥ý¥Ü½d¤@­Ó subset °Ïªº ENTITY ±ø¥ó½sĶ¡G

Example 25. SGML ªº Subset °Ï±ø¥ó½sĶ

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY % site.choice "IGNORE">              <!-- µù1 -->
  <![%site.choice;[                              <!-- µù2 -->
    <!ENTITY site.name "¥øÃZÄ_Ä_¤u§@¶¤">        <!-- µù3 -->      
  ]]>                               <!-- µù4 -->
  <!ENTITY site.name "»Å¾Ç¶é">                  <!-- µù5 -->
]>
<article><title>ENTITY ªº±ø¥ó½sĶ</title>
  <para>Åwªï¥úÁ{[&site.name;]ºô¯¸¡C</para>      <!-- µù6 -->
</article>

³o­Ó½d¨Ò­Y¤£¬O¹ï SGML »yªkµy¦³¯A²¤ªº¤H¡A²r¤@¬ÝÁÙ¯u·|¦³ÂIÃø©ó²z¸Ñ¡A©Ò¥H½Ð­@¤ß¬Ý§¹¤U­±ªº¸ÑÄÀ¡G

µù1, ³]©w±ø¥ó¼Ð¥Ü¹êÅéªì­È

¥ô¦ó ENTITY ªº±ø¥ó½s͹B§@¡A³£»Ý­n«Å§i¤@­Ó±ø¥ó¼Ð¥Ü¹êÅé¨Ó´x±±±ø¥ó³]©w¡C¤@­Ó±ø¥ó¼Ð¥Ü¹êÅ饲¶·¦³ '%' ¦r²Å¬°«e¸m¦r²Å¡Aªí¥Ü¥u¦³ Parameter ENTITY ¤~¯à·í±ø¥ó¼Ð¥Ü¹êÅé¡C±ø¥ó¼Ð¥Ü¹êÅé¥u¥i¥H¦³ INCLUDE(¤Þ¥Î) ©Î IGNORE(©¿²¤)¨âºØ¿ï¶µ­È¡A¨Ã¥B¥²¶·¥H '"' ¦r²Å¥]§¨©ó¿ï¶µ­È«e«á¡C³o¸Ìªº³]©w¬O±ø¥ó¹êÅ骺¦WºÙ¬O site.choice ¡A¥Lªº¿ï¶µ­È¬O IGNORE(©¿²¤)¡C

µù2, site.choice ±ø¥ó°Ï¬q¶}©l

¦b subset °Ï¬q¤¤¥i¥H¦³«Ü¦h­Ó±ø¥ó½sĶ°Ï¬q¡A¦ý¥u¦³ site.choice °Ï¬q¡A¬O¨ü site.choice ±ø¥ó½s͹êÅé³]©w­È±±¨îªº¡C°Ï¬q¶}©lªºªí¥Ü¦¡¬O¡G

<![%±ø¥ó¹êÅé¦WºÙ;[

µù3, site.choice ±ø¥ó°Ï¬q¤º®e

¦b¤@­Ó±ø¥ó½sĶ°Ï¬q¤¤¡A¥i¥H¦³«Ü¦hªº«Å§i¡A³o¸Ì¬°¤F¸Ñ»¡¤è«K¡A¥u³]©w¤@­Ó±`¼Æ«Å§i(internal ENTITY) site.name ¡C¦ý¥Ñ©ó±ø¥ó¼Ð¥Ü¹êÅé site.choice ªº³]©w­È¬O IGNORE¡A©Ò¥H¦b³o­Ó½d¨Ò¸Ì¡A³o¸Ìªº«Å§i¥Ü³Q©¿²¤¤£²£¥Í§@¥Îªº¡C

µù4, ±ø¥ó°Ï¬qµ²§ô

¤£ºÞ±ø¥ó½s͹êÅé¦WºÙ¬O¤°»ò¡A°Ï¬qµ²§ô²Å¸¹¤@«ß¬O ]]>

µù5, ±ø¥ó°Ï¬q¥~ªº¹ïÀ³³]©w

§Ú­Ì³q±`·|¦b¬Y­Ó±ø¥ó°Ï¬q¤§«á¡A§â±ø¥ó°Ï¬q¤¤ªº¦U«Å§i¦A¦¸«Å§i¡A¨Ãµ¹¤©¤£¦Pªº³]©w­È¡A¹F¨ì¿ï¾Ü¤Á´«ªº¥Ø¼Ð¡C

µù6, ±ø¥ó½s͵²ªGÅã¥Ü³B

openjade ³Ì«á·|¨Ì¾Ú±ø¥ó½sͫŧi³]©w­È§âµ²ªG´¡¦b§@ªÌ­n¨Dªº¦ì¸m¡C¦b³o­Ó½d¨Ò¤¤¡A¥Ñ©ó site.choice ¬O IGNORE ¡A©Ò¥H site.choice °Ï¬q¤¤ site.name="¥xÆW¥øÃZÄ_Ä_¤u§@¶¤" ªº«Å§i³Q©¿²¤¡A¦Ó¥Ñ°Ï¬q«áªº site.name="»Å¾Ç¶é" ¨M©w site.name ªº³Ì«á³]©w­È¡C¦ý·í§Ú­Ì§â site.choice ³]©w­È§ï¦¨ INCLUDE ®É¡A¨º»ò±ø¥ó½sĶ°Ï¬q¤¤ site.name="¥xÆW¥øÃZÄ_Ä_¤u§@¶¤" ªº«Å§i´N·|³Q°õ¦æ¡A¨Ì¾Ú SGML ¦P¦W ENTITY ­«½Æ«Å§iªº³B²z­ì«h¬O¥ý¦û¥ýĹ¡A©Ò¥H«á­±ªº site.name="»Å¾Ç¶é" ´N·|¥¢¥h§@¥Î¡A©Ò¥H³Ì«á³]©w­È´N·|¬O "¥xÆW¥øÃZÄ_Ä_¤u§@¶¤" ¡C

¥ú¦³ if «Å§i»yªk¦n¹³ÁÙ¬O¦³¨º»òÂI¯Ê¾Ñ¡A³Ì¦n¬O¯à¹³¤@¯ëµ{¦¡»y¨¥¨º¼Ë¡A¦³­Ó if ... else ... endif ³oºØ¤À¬y¦¡»yªk¡C­ì«h¤WÁÙ¬O¥i¥H¡A¥u¬O»yªk¤W¤ñ¸û¶O¸ÑÄÀ¤@¨Ç¡A¦pªG¦³¿³½ì¡A¤U­±ªº¨Ò¤lÁÙ­n¥J²Ó·Q¤@¤U¤~·|³q¾å¡C

Example 26. SGML If ... Else »yªk

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY % site.else.choice "IGNORE">    <!-- µù1 -->
  <![%site.else.choice;[
    <!ENTITY % site.if.choice "IGNORE">    <!-- µù2 -->
    <!ENTITY site.name "¥øÃZÄ_Ä_¤u§@¶¤">
  
  ]]>
  <!ENTITY % site.if.choice "INCLUDE">     <!-- µù3 -->
  <![%site.if.choice;[
    <!ENTITY site.name "»Å¾Ç¶é">
  
  ]]>
]>
<article><title>ENTITY ªº±ø¥ó½sĶ</title>
  <para>Åwªï¥úÁ{[&site.name;]ºô¯¸¡C</para>
</article>

µù1, else ±ø¥ó¼Ð¥Ü¹êÅé

§Ú­Ì¥ý°²³] site.else.choice ¬° else ¿ï¶µ¡A¹w³]­È¬° IGNORE¡A«h site.else.choice °Ï¬q¤£·|¥h°õ¦æ¡C

µù2, if °Ï¬qÃö³¬³]©w

site.if.choice ³]¬° IGNORE ¡A«h¦]¬°¥ý¦û­ì«h¡A·|À£¨î«á­± site.if.choice ªº¨ä¥L³]©w¡A¨Ï±o site.if.choice °Ï¬q¤ºªº«Å§iµLªk°õ¦æ¡C

µù3, if ±ø¥ó¼Ð¥Ü¹êÅé

¦pªG«e­±¨S¦³¥ô¦ó site.if.choice ªº¥ý¦æ³]©w¡A¨º»ò site.if.choice ±N¨Ì¦¹³B³]©w¬° INCLUDE ¡Asite.if.choice °Ï¬q¤ºªº«Å§i¤]±N³Q°õ¦æ¡C

©Ò¥H§Ú­Ì¥i¥Hª¾¹D¡A site.if.choice °Ï¬q¯à§_°õ¦æ¡A¬O­n¬Ý site.else.choice °Ï¬q¤¤ªº site.if.choice ¬° IGNORE ªº«Å§i¬O§_°õ¦æ¨Ó¨M©w¡C³o¼Ë´N¯à¹F¦¨ site.else.choice ³Q INCLUDE ¡Asite.if.choice ´N·| IGNORE ¡A¦Ó site.else.choice IGNORE ¡Asite.if.choice INCLUDE ªº³oºØ¤GªÌ¾Ü¤@ªº®ÄªG¡C

±ø¥ó½sͬJµM¥i¥H¦b subset ¤¤¨Ï¥Î¡A¨º¬O§_¤]¯à¨Ï¥Î¦b¥»¤å±Ô­z¤¤©O¡Aµª®×¬OªÖ©wªº¡A¤U­±ªº½d¨Ò§A¥i¥H±N site.else.choice ¤À§O³]¬° IGNORE ©M INCLUDE «á¡A¦A½sĶÂà´«¬Ý¬Ý¡A´N·|µoı¥»¤å·|²£¥Í¾ã¬q¥X²{©Î®ø¥¢ªº±¡ªp¥X²{¡C

Example 27. ¦b¥»¤å¤¤¨Ï¥Î±ø¥ó½sĶ

<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
  <!ENTITY % site.else.choice "IGNORE">
  <![%site.else.choice;[
    <!ENTITY % site.if.choice "IGNORE">
  ]]>
  <!ENTITY % site.if.choice "INCLUDE">
]>
<article><title>ENTITY ªº±ø¥ó½sĶ</title>
  <para>¦b¦Û¥Ñ³nÅ骺¶}©ñªÀ°Ï¤¤¡A
  <![%site.if.choice;[
  »Å¾Ç¶é¥H¦Û¥Ñ³nÅé½u¤Wªº¾Ç²ß»P°Q½×¦Ó»D¦W¡C
  ]]>
  
  <![%site.else.choice;[
  ¥xÆW¥øÃZÄ_Ä_¤u§@¶¤§Æ±æ¬ãµo»´«K©öÄâ±aªº§@·~Àô¹Ò¡A¨Ó
  ±À¼s¦Û¥Ñ³nÅ骺¨Ï¥Î»Pµo®i¡C
  ]]>
  
  </para></article>

³Ì«á¡AÁÙ­nµ¹§A­ÓÅå³ß¡Aopenjade ¥i¥HÅý§Aª½±µ±q©R¥O°Ñ¼Æ¤¤§ïÅܳQ½sͤå¥óªº±ø¥ó½sĶ­È¡C¨Ò¦p¤W­±ªº¨Ò¤l¡A¦pªG§Ú­Ì­n§â±ø¥ó½s͹êÅé site.else.module ³]©w­È§ï¬° INCLUDE ¡A§Ú­Ì¤£¥²­n¥h§ïÀɮפº®e¡A§Ú­Ì¥u­n¦b¨Ï¥Î openjade ½sͤå¥ó®É¡A¥[¤W -i °Ñ¼Æ§Y¥i¡A¨Ò¦p¡G

$ openjade -t sgml -i site.else.module -d <style-sheet filename> SgmlFile[7]

-i site.else.choice ªº®ÄªG´Nµ¥¦P©ó­×§ï site.else.choice ³]©w¬° INCLUDE¡C


4.1.2. xmlto ªº±ø¥ó½sĶ

®Ú¾Ú W3 ²Õ´¦b XML 1.0 ¤Tª© ¤¤¦³´£¨ì¡AXML ¤ä´©¸g¥Ñ ENTITY ³]©w IGNORE ©M INCLUDE ­È¡A¨Ó¹F¦¨±ø¥ó¿ï¶µ«Å§iªº¥\¯à¡C¦ý¹ê»Ú¤W¦pªG§A¨Ï¥Î xmlto ¨Ó½sĶ«e¤@¤p¸`ªº½d¨Ò¦p¤U¡G

<?xml version="1.0" encoding="big5"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
               "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"[
  <!ENTITY % site.choice "IGNORE">
  <![%site.choice;[
    <!ENTITY site.name "¥øÃZÄ_Ä_¤u§@¶¤">
  ]]>
  
  <!ENTITY site.name "»Å¾Ç¶é">
]>
<article><title>ENTITY ªº±ø¥ó½sĶ</title>
  <para>Åwªï¥úÁ{[&site.name;]ºô¯¸¡C</para>
</article>

«h§A·|±o¨ì error: xmlParseInternalSubset: error detected in Markup declaration ³o¼Ëªº¿ù»~°T®§¡C§AÀ³¸Ó±Ä¥Î±N­ì¥»ªº±ø¥ó½sĶ°Ï¬q¥t¦s¦¨¥~³¡ÀɮסA¨Ò¦p¡G

filename:extmod.ent

<?xml encoding="big5"?>
  <!ENTITY % site.choice "INCLUDE">
  <![%site.choice;[
    <!ENTITY site.name "¥øÃZÄ_Ä_¤u§@¶¤">
  ]]>

±µµÛ¦A¦b¥D¤å¥óªº subset °Ï¤¤¨Ï¥Î external ENTITY §â extmod.ent ³o­Ó¥~³¡¹êÅé«Å§iÀɧt¬A¶i¨Ó¦p¤U½d¨Ò¡G

Example 28. XML ªº±ø¥ó½sĶ»yªk

<?xml version="1.0" encoding="big5"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
               "http://www.oasis-open.org/docbook/xml/4.0/docbookx.dtd"[
  <!ENTITY % external.module SYSTEM "extmod.ent">
  %external.module;
  <!ENTITY site.name "»Å¾Ç¶é">
]>
<article><title>ENTITY ªº±ø¥ó½sĶ</title>
  <para>Åwªï¥úÁ{[&site.name;]ºô¯¸¡C</para>
</article>

¿í·Ó½d¨Òªº¤è¦¡´N¥i¥H¹F¦¨ XML ¤å¥óªº±ø¥ó½sĶ¥\¯à¡C¦Ü©ó¬°¦ó­n³o¼ËÂà­ÓÅs¡A§Ú¬O§¹¥þ¤£²M·¡¡A¥Ñ©ó®É¶¡¥^«P¡A§Ú¨S¯à¦n¦n¬ã¨s XML ³W®æ©M xmlto ©R¥Oªº»¡©ú¤å¥ó¡A©Ò¥H¤£ª¾¬O XML ³W©w¦p¦¹¡A©Î¬O xmlto ­I«áªº®Ö¤ßµ{¦¡¦Û¤vªºµ¦²¤¿ï¾Ü¡A§Ú§¹¥þ¨S·§©À¡A§Ú¥u¬O±q¹ê°µ¤¤ª¾¹D¡A SGML ¤£ºÞ¬Oª½±µ¦b subset ¨Ï¥Î¡A©Î³z¹L external ENTITY ¶¡±µ¤Þ¥Î³£¥i¡A¦ý xmlto «o­­¨î¥u¯à³z¹L external ENTITY ¶¡±µ¤Þ¥Î¡C

¦Ü©ó¤£ºÞ¬O³æ¯Âªº ifdef ¤@¬qªº¥Îªk¡A©Î if ... else ¨â¬q¥Îªk¡ASGML ©M XML ³£¤ä´©¡A¦ý¥»¤å±Ô­zªº±ø¥ó½sĶ¡A©M¥H©R¥O°Ñ¼Æ¿ï¶µ§ïÅܱø¥ó½sͳ]©w­È¡A§Ú¥u¦b SGML ¤Uªº openjade ¸Õ¦¨¥\¹L¡Axmlto §ä¤£¨ì¬ÛÃö¥\¯à¡Cê©ó§@ªÌ¾Ç¾i¦³­­¡A¥u¯àª¾¨äµM¡A¦ÓµLªk§i¶D¤j®a©Ò¥HµM¡A¦pªG¦³¯à©úÁA XML »P SGML ¸Ñ;¹ªí²{¤£¦Pªº­ì¦]¡A©ÎªÌ¬YºØ Markup »y¨¥¥t¦³ÁÑ®|¡A³£½Ð mail ¨ì¥»¤å§Ç¨¥ªº§@ªÌ«H½c«ü¾É§Ú¤@¤U¡A§Ú¤@©w°¨¤W¶i¦æ¾ã²z¡A¤½§G¥X¨Ó¡AÅý¤j®a¤À¨É§AªººB´n¡C


5. µ²»y

¬Ý§¹¥»¤å¦U³¹¸`½d¨Ò¡A§Q¥Î SGML ©w¸qªº¹êÅé¥\¯à¡A©Ò¯à°µ¨ìªº±`¼Æ«Å§i¡A§t¬A¥~³¡ÀɮסA¥H¤Î±ø¥ó½sĶ¡A¬Û«H§A¹ï SGML ®æ¦¡¤å¥ó¼Ò²Õ¤Æ¯à¤O¦L¶H²`¨è¡C¥H SGML ÆF¬¡ªº²Õ¦X©Ê¡A¥[¤W DocBook ¼ÐÅÒ©w¸qªºÂ×´I§¹¾ã¡AÃø©Ç¥L¦¨¬°¦U³nÅé¶}µo¹Î¶¤¦@¦P¤å¥ó¥æ´«®æ¦¡ªº­º¿ï¡C¹ï³o¨ÇÀuÂI¡A§Ú­Ì¤£¥Î¦A»¡¤@¹M¡A¦ý¦³¨Ç¦b¼Ð°O»y¨¥¨Ï¥Î®É¸Óª`·Nªº¨Æ¶µ¡A¦bµ²»y¤¤´£¿ô¤j®a¤@¤U¡G


6. DocBook ¬ÛÃö°Ýµª¶°

DocBook ¼g§@°Ýµª

6.1. §Ú¸Ó¥Î DocBook ¨ú¥N¨ä¥L®æ¦¡¤å¥ó¶Ü¡H
6.2. §Úªº¸ê®Æ®ø¥¢¤F¡H
6.3. À³¸Óª`·N¨Ï¥Îªº½s½X¦r¤¸
6.4. DocBook ªº¤å¥ó«¬ºA©w¸qªº¦WºÙ¦³¤À¤j¤p¼g¶Ü¡H
6.5. PI(Public Identifier) ©M SI(System Identifier)¨º­Ó¦n©O¡H

³o¸Ì¹Á¸Õ¦^µª¤@¨Ç§A¦b»s§@ DocBook ¤å¥ó®É¡A¥i¯à¸I¨ìªº°ÝÃD¡C

6.1. §Ú¸Ó¥Î DocBook ¨ú¥N¨ä¥L®æ¦¡¤å¥ó¶Ü¡H

¬JµM DocBook ¥i¥H¤@¦¸¿é¤J¡AµM«áÂন HTML,PS,RTF ¦hºØ®æ¦¡¿é¥X¡A¨º¬O§_·N¨ýµÛ¥H«á§Ú¥u­n¾Ç DocBook ¤@ºØ®æ¦¡´N¦n¡A¤Ï¥¿¨ä¥Lªº®æ¦¡¥i¥H¥ÎÂà´«ªº¡C

§Ú­Ó¤Hªºµª®×¬O§_©wªº¡C²Ä¤@¡GDocBook ¥»¨­¤£¬O³Q³]­p¨Ó¨ú¥N¥ô¦ó¨ä¥L¥i¨Ñ¾\Äýªº®æ¦¡¤å¥ó¥Îªº¡A¥L¦s¦b¥Øªº¤£¬O­n§ïÅܧAªºÅã¥Ü¤èªk©M¦æ¬°¡A¥L¦s¦bªº¥Øªº¬O¾ã²z²Õ´§Aªº¦UºØ¤å¥ó¡A¤]´N¬O¥L§â¤@°ïÂø¶Ãªº¸ê®Æ¡A·J¾ã¨ì§A·Qªí¹Fªº¼Ò¦¡¤¤¥h¡C©Ò¥H DocBook ¤£¯à¨ú¥N HTML,PS,RTF ¡A¦]¬°¨º¬O¤£¦P¥\¯àªº¨âºØªF¦è¡A§AÀ³¸Ó¦P®É¾Ç²ß¤@ºØ§A³ßÅwªº¾\Äý®æ¦¡¤å¥ó¦A¥[¾Ç¤@­Ó DocBook ¡A¥Î DocBook À°§A²Õ´©M¥æ´«§Aªº¸ê®Æ¨Ó·½¡C

²Ä¤G¡GDocBook ¨Ã¥¼¥]§t©Ò¦³ªº¤å¥ó¥DÃD¡A´N¹³¥»¤â¥U¤¤¤@¦A±j½Õªº¡ADocBook ªº¥Øªº¦b»s§@¥X½×²z©Êªº¡A§Þ³N©Êªº¤å¥ó¡C¹ï©ó¤@¨Ç¤åÃÀ©Êªº¡A¬Æ¦Ü¦h´CÅ鮿¦¡¡ADocBook ¨Ã¤£¾A¦X¡C©Ò¥H¦b¼g²z½×¤å³¹®É¡A§A¥i¥H¥Î DocBook ¥[¤@­Ó¨ä¥L¾\Äý®æ¦¡·í¨}¦nªº²Õ¦X¤è®×¡A¦ý¦pªG§A­nªí¹F¸Öµüºq½áªº·N¹Ò¡A¦h´CÅ骺ÃÀ³N·P°Ê¡A§A¥²»Ý¬°§A¨Ï¥Îªº¾\Äý®æ¦¡¤å¥ó¡A´M¨D¨ä¥Lªº°t®M²Õ¦X¡C

6.2. §Úªº¸ê®Æ®ø¥¢¤F¡H

¬°¦ó§Ú¦b DocBook ¤å¥ó¤¤¬Y¨Ç¼ÐÅÒªº¤º®e¸ê®Æ¡AÂà´«¦¨¨ä¥L®æ¦¡¤å¥ó«á¡A¨Ã¥¼¥X²{¦b·sªº®æ¦¡¤å¥ó¤¤¡H§Ú¼ÐÅÒªº»yªk©M¤º®e¸ê®Æ®æ¦¡³£¦Xªk¡A¨Ã³q¹L¸ÑªR¾¹ªº¦XªkÀË´ú¡A¨ÃµL¥ô¦ó¿ù»~Åã¥Ü¡A½Ð°Ý¿ù»~¥X¦b¨º¸Ì©O¡H

«D±`¦³¥i¯à¬O²@µL¿ù»~¡A¦]¬°­t³d³]©wÂà´«¼Ë¦¡ªº DSSSL ¤å¥ó¤£¥u¯à¨M©w¤@­Ó¼ÐÅÒ¿é¥X¦¨¤°»ò¼Ë¤l¡A§ó¥i¥H¨M©w¨º¨Ç¼ÐÅÒ¸ê®Æ­n¿é¥X¡A¨º¨Ç¼ÐÅÒ¤£¿é¥X¡C©Ò¥H¦pªG§A°Ñ·Ó http://www.study-area.org/tips/doctrans/doctrans.html ¤¤Ä¶ªº»¡©ú¡A¤À§O¦b -d ¿ï¶µ¨Ï¥Î Norman Walsh's DSSSL ªº docbook.dsl ©M TLDP ªº ldp.dsl ½sͤ@¦¸¡A´N·|©ú¥Õ¬Y¨Ç³¡¥÷ docbook.dsl ©M ldp.dsl ·|¦³¿ï¾Ü¿é¥Xªº¤£¦P¡C©Ò¥H¡ADocBook ªº¬Y¨Ç¼ÐÅÒ¤º®e¸ê®Æ¡A¦b¬Y¨Ç DSSSL ÀɮפU¤£·|Âà¨ì·s¤å¥ó¤¤¡A¤£¶È¥¿±`¡A¦Ó¥B¥¿¬O DSSSL ­nµo´§ªº¿ï¾Ü¥\¯à¡C

6.3. À³¸Óª`·N¨Ï¥Îªº½s½X¦r¤¸

DocBook ¤¤°£¤F '<','>','&' ­t¦³¯S®í¥\¯à¡A¦³¨Ï¥Î­­¨î¥~¡AÁÙ¦³¨º¨Ç¦r¤¸ªº¨Ï¥Î¦³­­¨î©O¡H

'_' ©³½u¦r¤¸

©³½u¦r¤¸¤£¸Ó¥X²{¦b¹êÅé(ENTITY)³]©w¦r¦ê¡A©ÎÄݩʳ]©w¦r¦ê¸Ì¡C

6.4. DocBook ªº¤å¥ó«¬ºA©w¸qªº¦WºÙ¦³¤À¤j¤p¼g¶Ü¡H

DocBook ¨º»ò¦hªº¼ÐÅÒ©MÄݩʦWºÙ¡A¥H¤Î©w¸qªº¯S®í ISO ¹êÅé¦r¤¸¡A°£¤F¤£¯à«÷¿ù¦r¥~¡A¦³¨S¦³¤j¤p¼g¤§¤À©O¡H

³o°ÝÃD¦³­Ó¼Ò¾®¨â¥iªºµª®×¡A¦pªG§Æ±æ§Aªº DocBook ¤å¥ó¥Ñ XML »yªk¨Ó¸ÑªR¡A¨º»ò´N¼ÐÅÒ©MÄݩʦWºÙ¨Ó»¡¡A¬O¦³¤j¤p¼gªº¤À§O¡A¦ý¦pªG¥Ñ SGML »yªk¨Ó¸ÑªR¡A¨S¦³¤j¤p¼g¤À§O¡A¤]´N¬O "BOOK" ©M "book" ¥Nªí¤@¼Ëªº·N«ä¡C¦ý³o¥u¬O´N¼ÐÅÒ¤ÎÄݩʦWºÙ¦Ó¨¥¡A¦pªG¤@­Ó¥Ñ¹êÅé©w¸qªº¦WºÙ¡A¤£ºÞ¬O XML or SGML ¡A³£¬O¦³¤j¤p¼g¤À§Oªº¡A©Ò¥H¥Nªí '<' ¦r²Åªº¥Ã»·¥u¯à¬O &lt; ¡A&LT; µ´¹ï¬O¿ù»~¡C³Ì«áªº«ØÄ³¬O¡A¬°¤F¤@­Ó source ¦³¥i¯à¸g¹L XML ©M SGML ¨âºØ»yªk¸ÑªR¾¹ªºÂà´«¡A©Ò¥HÁÙ¬O±Ä¨ú¤j¤p¼g¦³°Ï§Oªº¼gªk¤ñ¸û¦n¡A¦pªG¤£½T©w¡A¦hÂsÄý¤@¤U DocBook ©x¤èª©½u¤W¤â¥U¡A¸òµÛ¼Ð·Ç¨«¡A¬O«OÃÒ¥æ¬yµLꪺ°ß¤@ªkªù¡C

6.5. PI(Public Identifier) ©M SI(System Identifier)¨º­Ó¦n©O¡H

SGML ±Ä¥Î PI ªº¤è¦¡·j´M DTD ¼Ò²ÕÀɮסAXML «h±Ä¥Î SI ªº¤è¦¡·j´M DTD ¼Ò²ÕÀɮסA³o¨âºØ DTD ¸ê·½©w¦ìªkªº¤u§@­ì²z¦³¦ó¤£¦P¡H­Ë©³¨º­Ó¤ñ¸û¦n©O¡H

¥ý»¡»¡ SI ¤è¦¡¦n¤F¡A¦pªG¤@­Ó¼Ð°O®æ¦¡¤å¥óªº DTD ¼Ò²Õ¤w¸gÃe¤j¨ì¤£¾A¦X©M¥»¤å¤º®e¸ê®Æ©ñ¦b¤@­ÓÀɮ׮ɡA¥L´N·|±N¼Ð°O®æ¦¡¤å¥óªº DTD ¼Ò²Õ¸ê®Æ³¡¥÷»P¥»¤å¤ÀÂ÷¡A¦s¦¨¥t¤@­ÓÀɮסA¨Ó¨Ñ¼Ð°O¥»¤å¤º®e©I¥s¡C¬JµM DTD ¼Ò²Õ¬O¥t¥~¤@­ÓÀɮסA¥»¤å­n·j´M¨ì¥L¡A·íµM­n¬ö¿ý¥Lªº¸ô®|¦ì§}¡A©Ò¥H³Ì¶}©lªº DTD ¼Ò²Õ·j´M©w¦ì¡A¬O±Ä¥Î SI ªº¤è¦¡¡A´N¬O SYSTEM ªí­zµü«á­±¥[ DTD Àɮ׸ô®|¦ì§}¦r¦ê¡C

³o¦b¼Ð°O¤å¥ó¥u¦b¤@¥x¾÷¾¹¤¤¹B§@®É¬O OK ªº¡A¦ý¦pªG§A§â¤@¥÷¼Ð°O®æ¦¡¤å¥ó±q¤@¥x¹q¸£·h¨ì¥t¤@¥x¹q¸£¤¤¸ÑͮɡA·Ð³Â´N¨Ó¤F¡C¦]¬° A ¹q¸£ªº¬YºØ DTD Àɮצì§}¦³¥i¯à©M B ¹q¸£ªº DTD Àɮצì§}¤£¦P(¤×¨ä¬O¹³ DocBook ³oºØ¤å¥ó¥»Åé»P DTD ¼Ò²Õ¤À§O¦w¸Ëªºª¬ªp¯S§O©úÅã)¡A¨º»ò§A®Ú¾Ú A ¹q¸£ªº DTD ¦ì§}³]©w¼Ð°O¤å¥ó¤¤ªº SI ¦ì§}¡A«Ü¥i¯à¨ì¤F B ¹q¸£¡ADTD «o¦b¥t¤@­Ó¸ô®|¡A¾É­P§Aªº SI ³]©w¥¢®Ä¡C

¬°¤F¸Ñ¨M³o­Ó¤£¦P¾÷¾¹¡AÀɮ׸ô®|³W¹º¤£¦Pªº°ÝÃD¡ASGML µoªí PI ªº³W®æ¡A´N¬OÃþ¦ü PUBLIC "-//OASIS//DTD DocBook V4.2//EN" ³o¼ËªºªF¦è¡A¥¦¤£ª½±µ«ü©ú DTD ¬ÛÃöÀɮ׸ô®|¦ó¦b¡A¥u¬Oµ¹¨C­Ó¤£¦Pªº DTD ¼Ò²Õ¤@­Ó°ß¤@ªº¡A»P©Ò¦³¨ä¥LºØªº DTD ¤£¦PªºÃѧO¦r¦ê¡CµM«á¥Ñ catalog ³o­ÓÀɮסA§â PI ÃѧO¦r¦ê©M³o¥x¾÷¾¹ªº DTD Àɮ׸ô®|¡A°µ¤@­Ó¨â¨â¹ïÀ³¡A·í SGML ªº¸ÑªR¾¹Åª¨ì¤å¥ó«¬ºA«Å§i¤¤ªº PI ¦r¦ê®É¡A´N¤£¬O¥h§ä¤å¥ó¤ºªº SI ³]©w¡A¦Ó¬O¨ì catalog ³o­ÓÀÉ¡A¬d©ú³o­Ó PI ¦r¦ê©Ò¥Nªíªº DTD ¼Ò²Õ¡A¬O¦b³o¥x¾÷¾¹ªº¤°»ò¸ô®|¤W¡A´N¥i¥H¤£¨ü¤£¦P¾÷¾¹¡A¸ô®|¤£¦Pªº§xÂZ¤F¡C©Ò¥H§Ú­Ì¦b«Ø¥ß SGML ¤å¥ó¸ÑĶÀô¹Ò®É¡A¥²¶·¥ý¦w¸Ë¦n¦U­Ó¥i¯à¥Î¨ìªº DTD ¼Ò²ÕÀɮסAµM«á¥Î¤@­Ó catalog ÀÉ¡A¬ö¿ý¨C­Ó DTD ¼Ò²Õªº PI ¦r¦ê©M¦b¥»¥x¾÷¾¹ªºÀɮ׸ô®|¹ïÀ³ªí¡C¨º»ò·í¨Ï¥Î SGML ¸ÑªR¾¹®É¡A©Î³z¹L SGML_CATALOG_FILES Àô¹ÒÅܼƫü©ú¨t²Îªº SGML catalog ÀÉ¡A©ÎªÌ¥Î°Ñ¼Æ©R¥O¼Ð©ú catalog ÀɩҦb¡A´N¥i¥H§ä¨ì©Ò¦³¦b³o¥x¾÷¾¹¤Wªº¦UºØ DTD ÀɮפF¡C³o´N¬O SGML PI ¹B°µªº°ò¥»­ì²z¡C

SGML ªº PI ³]­p¡A¨Ã¨S¦³Àò±o XML «C·ý¡AXML ¤´µM¬O±Ä¥Î SI ªº¤è¦¡¥h©w¦ì´M§ä DTD Àɮצì¸m¡C¤£¹L¥Ñ©ó XML ±j½Õ¸óºô¸ôªº¸ê®Æ¹B§@¡A©Ò¥H¥Lªº SI ¤£¬O«ü¥»¾÷¤Wªº DTD ¸ê·½¸ô®|¡A¦Ó¬O«üºô¸ô¤Wªº URL ¦ì§}¡C³o¼Ëªº³]­p¦³¥L±j¤jªº¦n³B¡A­º¥ý SGML ¤å¥ó­n¹B§@«e¡A¤@©w¥²¶·¦b¥»¾÷¦w¸Ë¬ÛÃö DTD ¼Ò²ÕÀɮסA¦ý XML ¤£¥²¡A¦]¬°¥¦¤£¬O±q¥»¾÷¨ú±o DTD ³]©w¡A¦Ó¬O³z¹Lºô¸ô¶Ç°e¡A¨ú±o DTD ¼Ò²ÕÀɮסC©Ò¥H­n¬Ý¬YºØ DTD ©w¸q¤å¥ó¡A¤£¥²¦b¨C¥x¾÷¾¹¸Ë¬ÛÃöªº DTD ¡A¥u­n¦bºô¸ôªº¬Y³B¦³³]©w¦nªº DTD ¼Ò²Õ¸ê·½§Y¥i¡C

¦A¨ä¦¸¡A³Ì«á XML ±Ä¥Îªº¤å¥ó©w¸q¡A¬O¥Ñ SI «ü©wªººô¸ô DTD ¨M©wªº¡A¨º»ò©Ò¿×ªº PI ´N¤£¦A¨º»ò¨ã¦³Åv«Â©Ê©M¼Ð·Ç©Ê¡A¤Ï¦ÓÅܦ¨¤@ºØ³Æµù»¡©ú¦Ó¤w¡C©Ò¥H¸U¤@ DTD ªººûÅ@³æ¦ì¹ï³W«h©w¸q¦³©Ò§ó°Ê¡AXML ºô¸ô SI ªº¤è¦¡¡A°¨¤W§ó§ï¡A°¨¤W¥Í®Ä¡A¤£¥²¹³ SGML ªº PI ¤è¦¡¡AÁÙ­n³qª¾ User ¤U¸ü§ó·s DTD ¨ì¦Û¤v¾÷¾¹¸Ì¦w¸Ë¤~¦æ¡C

XML ºô¸ô SI ¥\¯à³o»ò¦n¡A¨º¯ÊÂI©O¡H·íµM´N¬Oºô¸ô­n³q°Ú¡A¨ä¦¸´N¬O¸U¤@­ì¨Óµo§G DTD ªº³æ¦ì§ï¤F­ì¨Óªº DTD URI ¡A¨º»ò XML ³£·|¦]¬°§ä¤£¨ì DTD ¦Ó¸ÑĶ¥¢±Ñ¡C·íµM XML ªº SI ¤]¥i¥H«ü¦V¥»¾÷ªº DTD ¸ô®|¦ì§}¡A¦ý¤@­Ó«ü¦V¥»¾÷ DTD ªº SI ¡A·íµM¤ñ SGML ªº PI ÁÙ¤£¦p¡C

¨ä¦¸ XML §ïª©§ó·s§Ö³tªºÀuÂI¤]¥i¯à³y¦¨¤£¨}«áªG¡A¨º´N¬O¦pªG§Ú¥Î SGML ªº PI ¡A¥u­n§Ú¥»¾÷ªº DTD ¼Ò²ÕÀɮפ£ÅÜ¡A§Ú¼g¥X¨Óªº SGML ¤å¥ó´N¥i¥H¥Ã»·±o¨ì¦P¼Ëªºµ²ªG¡C¦ý XML SI ªº DTD ÀÉ¡A«o¬O¥Ñ DTD µo§G³æ¦ì±±¨îªº¡C¸U¤@¥D¨ÆªÌ¨S·§©À¡A§ó§ï DTD ©w¸q¤£¥Î·sª©¥»¸¹¥t¶}¤@­Ó DTD ºô¸ô¦ì§}¡A¦Óª½±µ¦V­ì¨Ó¦ì§}ªº DTD ÀɮפU¤âªº¸Ü¡A¨º»ò´N·|¦³§A«e¨â¤Ñ»s§@ªº¦Xªkªº¨}¦n XML ¡A¹L¨â¤Ñ«oÅܱo¤£¦Xªk¡A®æ¦¡¤£¨}¤F¡C©Ò¥H¨Ï¥Î XML SI ¡A§A³Ì¦n¥²¶·¥ý½T©w¡A¨º­Ó DTD ªºµo§GªÌ¡A·|§â¥Lªº DTD ºûÅ@±o«Üí©w¡C

¥H¤W´N¬O SGML PI ©M XML SI ªº¹B§@­ì²z¤j²¤¤ÀªR¡A¥i»¡¨â¤è¦U¦³§Q¹ú¡A¦ý¦pªGºô¸ôºZ³q¡ADTD µo§GªÌ¤SºûÅ@ªº«Ü¦nªº¸Ü¡Aºô¸ô SI µLºÃ¬O¤ñ¸û¯àµo´§§Y®É¥\®Äªº¨t²Î¡C

DocBook °Ñ¦Ò¦r¨å

DocBook ¬ÛÃö¦rµü¸ÑÄÀ

D

Document Style Semantics and Specification Language
(DSSSL)

¤å¥ó¼Ë¦¡ªí¥Ü¤Î³]©w»y¨¥¡G¤@ºØ¥H SGML ¼Ð°O»yªk©w¸qªº¼Ð°O»y¨¥¡A¥L³Q©w¸qªº¥Øªº¬O­n´À¨ä¥L¥H SGML »yªk©w¸qªº®æ¦¡¤å¥ó¡A¨M©w¤@­Ó¿é¥Xªº¼Ë¦¡¡C²³æªº»¡ªk DSSSL ¬O¨ä¥L SGML ¤å¥óªº«¬ª©©Î¼Ë¦¡ªí¡A³z¹L¥L SGML ¯àÂà´«¦¨¨ä¥L¦UºØ¤£¦P®æ¦¡ªº¤å¥ó¡C

See Also: Standard Genralized Markup Language.

Document Type Definitions
(DTD)

¤å¥ó«¬ºA©w¸q¡G¨Ï¥Î¦b SGML ¤å¥ó¤¤¡A¤@ºØ¥Î¨Ó´y­z¬Y¯S©w®æ¦¡ªº¤å¥ó¤ÀÃþ©M¶¥¼hµ²ºcªº»¡©ú¤å¥ó¡A¬O SGML ¤å¥óªº°ò¦©M°_ÂI¡C

See Also: Standard Genralized Markup Language.

E

Element
(tag)

¤ÀÃþ¤¸¯À¡G³o¬O¨Ï¥Î¦b SGML DTD ¤å¥ó¤¤ªº¤@­Ó°ò¥»²Õ¦¨¡C­º¥ý§Ú­Ì±N¬Y¯S®í®æ¦¡¤å¥ó°µ¤ÀÃþ¡AµM«á¥Î¼Ð°O¥[¥H°Ï¹j¡A¨Ãµ¹¤£¦PªºÃþ§O¤@­Ó¯S©wªº¦WºÙ¡A§Ú­ÌºÙ¤@­ÓÃþ§O´N¬O¤@­Ó Element (¨ä¹ê¤]´N¬O¤@­Ó¼ÐÅÒªº¥t¤@ºØ»¡ªk)¡A¦Ó¤@¥÷¤å¥ó´N¬O¥Ñ¤£¦Pªº Element ¦³²Õ´¦³¬[ºcªº²Õ´°_¨Óªº¡C

See Also: Document Type Definitions.

ENTITY
(ent)

¹êÅé¡A³o­Ó¦Wµü«ÜÃø±æ¤å¥Í¸q¡A´N¨ä¹ê»Ú¥Nªíªº§t·N¬O«ü¡G¥»¤å³¡¥÷¤ù¬qªº¥N¦Wµü¡C¥»¤å¤ù¬q¤p¨ì¤@­Ó¦r²Å¡A¤@­Ó¦r¦ê¡A¤j¨ì¤@­ÓÀɮסA³£¥i¥H¨ú¤@­Ó¦WºÙ¨Ó¥Nªí¥¦¡A¦Ó³Ì«á¸ÑĶªºµ²ªG¡AÅã¥Üªº¤]¬O¥¦¥Nªí·N¸q¡A¦Ó«D¨º­Ó¥N¦W

O

Organization for the Advancement of Structured Information Standards
(OASIS)

µ²ºc¤Æ¸ê°T¼Ð·Ç«Å¾É²Õ´(¦pªG§AÄ@·N¡A¤]¥i¥H¥s¥¦ºñ¬w²Õ´¡A³o¼ËªºÁY¼g¦WºÙÀ³¸Ó¬O¦³·Nªº¦w±Æ§a)¡C³o¬O«DÀç§Qªº±À¼s²Õ´¡A¥D­n¬O¦b­t³d±À°Ê¤@¨Ç²£·~¬É¸ê°T¼Ð·Çªº¬ã¨s¡A¸ê®Æ»`¶°»P¶}µo¡A¤×¨ä¬O SGML ©M XML ªº±À¼s©M¤¶²Ð¡C¥»¤å¤¶²Ðªº DocBook ®æ¦¡¤å¥ó¼Ð·Ç¡A§Y¥Ñ OASIS ­t³d¨î©w¡AºûÅ@¡A§ó·s¡C

P

Public Identifier
(PI)

¤½¦@ÃѧO¦r¦ê¡G´N¬O¨C­Ó¤£¦PºØÃþ¤Îª©¥»ªº¤å¥ó®æ¦¡¼Ð·Ç»s§@ªÌ¡A¬°¦Û¤vªº®æ¦¡¼Ð·Ç¨ú¤@­Ó¿W¯S¥B°ß¤@ªºÃѧO¦r¦ê¡A¨Ã¤½§i©Pª¾¡CÅý§O¤H©Î¸Ñ͵{¦¡¬Ý¨ì³o¼Ëªº¦r¦ê¡A´Nª¾¹D¦¹¤å¥ó±Ä¥Î¬YºØ¯S©w®æ¦¡ªº¼Ð·Ç¡A¦Ó¾Ú¥H³B²z¡C¤@¯ë¥Lªº®æ¦¡¬O¡G

"prefix//owner-identifier//text-class text-description//language//display-version"

¨Ò¦p DocBook 4.2 DTD ªº PI ¬O¡G

"-//OASIS//DTD DocBook V4.2//EN"

¦U³¡¥÷²Õ¦¨·N¸q¦p¤U¡G

prefix, «e¸m²Å¸¹

¤À¬° '+' ©M '-' ¨â­Ó¦r²Å¡A'+' ªí¥Ü¦³¸g ISO ²Õ´¥¿¦¡µù¥U¡A'-' «h¬O¥¼¦V ISO ²Õ´¥Ó½Ðµù¥U¤âÄò¡C

owner-identifier, ¾Ö¦³ªÌÃѧO¦r¦ê

ªí©ú¦¹¤@¼Ð·Ç¬O¥Ñ¨º­Ó­Ó¤H©Î²Õ´­t³d­q©w¤ÎºûÅ@ªº¡A¨Ò¦p DocBook 4.2 DTD ¬O¥Ñ OASIS ³o­Ó²Õ´¨î©wºûÅ@ªº¡C

text-class, ¤å¥óÃþ§O

¦b SGML ¤¤¸û±`¨£ªº¤ÀÃþ¦³¡GDOCUMENT,DTD,ELEMENTS,ENTITIES,NONSGML¡C

text-description, ¤å¥ó´y­z

¨î©w¼Ð·ÇªÌ¥i¥H¬°¨ä¨î©wªº®æ¦¡¼Ð·Ç¨Ï¥Î¤@­Ó¿W¯Sªº´y­zµü¡A¦p DocBook V4.2¡C

language, »y¨¥°Ï°ì¼ÐÃÑ

ªí¥Ü³o­Ó¤å¥ó¼Ð·Ç¬O¨Ï¥Î¦óºØ¦a°Ïªº»y¨¥¤å¦r»s§@ªº¡A³q±`¨Ï¥Î ISO ²Õ´¨â¦r²Å°Ï°ì»y¨¥¼Ð·Ç¨ó©w¡C

display-version, ª©¥»½s¸¹¼ÐÃÑ

¦pªG¦P¼ËªºÃþ§O¡A¦P¼Ë´y­zªº®æ¦¡¼Ð·Ç¡A¥ý«á¥X¤F´X­Ó¦³­×¥¿ªºª©¥»¡A¥i¥H¨Ï¥Î¦¹¶µÃѧO¡C³o¬O¤@­Ó¿ï¶µ¡A¤£¤@©w­n¨Ï¥Î¡C¦³¨Ç PI ¦r¦ê¦b text-description ¤¤´N¥]§t¤Fª©¥»¤À§O¡A©Ò¥H¨S¦³¨Ï¥Î¨ì display-version ³o¶µÃѧO¡C

See Also: System Identifier.

S

Standard Genralized Markup Language
(SGML)

³q¥Î¼Ð·Ç¼Ð°O»y¨¥¡G¤@ºØ´y­z¤å¥ó¤ÀÃþ¤Î²Õ´¬[ºcªºªí¥Ü»yªk¡A³oºØ»yªk¬O³z¹L¦b¤å¥ó¤¤´¡¤J¼Ð°O¸ê®Æ¡A¨Ó°µ¤å¥ó¤º®e¤ÀÃþ©M²Õ´¡C³z¹L¦@¦Pªº SGML »yªk¼Ð·Ç¡A¤£¦Pªº¾\ÄýªÌ¤Î¾\Äýµ{¦¡¡A¯à°÷·Ç½Tªº´x´¤¤å¥óªºµ²ºc¨Ã¥[¥H¦³®Äªº³B²z¡C¨î©w SGML ªº ISO ²Õ´¨Ã§V¤O¨î©w¤£¦P¾÷¾¹¥­¥x©M§@·~Àô¹Òªº¸ê®Æ¥æ´«®æ¦¡¼Ð·Ç¡AÂǥѳo¨Çªþ¥[¼Ð·Ç¡A¿í·Ó SGML ¼Ð·Ç¼g§@ªº¤å¥ó¡A³£¯à¨É¦³¸ó¥­¥x¥æ´«¸ê®Æªº¥iÄâ©Ê«K§Q¡C

SGML Declaration
(SGMLDECL)

SGML «Å§i¡G´£¨Ñ½sĶ DTD©Ò»Ýªº¥þ³¡¸ê°T¤Î­åªR¤å¥ó¹ê¨Ò©Ò»Ýªº³¡¥÷¸ê°T¡C¨Ò¦p¡A¥¦©w¸q¤F¤å¥óªº¦r¤¸(Characters Set)¡B¼ÐÅÒªº¬É­­²Å¸¹ (Delimiters)¡B³B²z¤å¥ó®É©Ò»ÝªºÀx¦s®e¶q(Storage Capacity)¡B¤å¥ó¨Ï¥Îªº¨ãÅé»yªk(Concrete Syntax)¡B¨ãÅé»yªk¾A¥Îªº½d³ò(Scope)¡B¤å¥ó¨Ï¥ÎªºSGML¯S¼x(SGML Features)µ¥µ¥¡C

See Also: Document Type Definitions.

System Identifier
(SI)

¨t²ÎÃѧO¡G³o¬O©M Public Identifier ¬°¤F¦P¤@¥Øªºªº¥t¤@ºØ§@ªk¡A³£¬O¬°¤F§t¬A¥~³¡ÀɮסA¹F¦¨¤å¥ó¼Ò²Õ¤Æªº¾÷¨î¡C¤@¶}©l SGML §t¬A¥~³¡Àɮ׳£¬O±Ä¥Î System Identifier ªº§@ªk¡A´N¬O«e­±¥[¤@­Ó SI ªºªí¥Üµü¡A«á­±´N¬O³Q§t¬AÀɮתºµ´¹ï©Î¬Û¹ï¸ô®|¦ì§}¦r¦ê¡C¨Ò¦p¡G

somename SYSTEM "³Q§t¬AÀɪº¸ô®|¦r¦ê"

somename ¥i¥H¬O§@ªÌ¦Û¤v¿ï¥Îªº¥ô¤@¦WºÙ¡A¦]¬° SYSTEM ªºÃѧO¡A§Ú­Ì´N¥i¥H¦b»Ý­n´¡¤JÀɮתº¦a¤è¥Î &somename; ³o¼Ëªºªí¥Ü¦¡¡A¨Ó´¡¤J³Q«Å§iªºÀɮסC

ÁöµM³o¬O«Ü¦³¥Îªº¤u¨ã¡A¦ý·í¤@­Ó¤å¥ó¦³«ÜÃe¤j¼Æ¶qªº§t¬AÀÉ¥²¶·³Q¸g±`©Ê¤Þ¥Î®É¡A´N·|¦b¸ó¥­¥x¶Ç»¼¾D¹J¤£¦P¾÷¾¹¡AÀɮ׸ô®|§G¸m®t²§¡A©Ò¾É­Pªº§t¬AÀɮצì§}¿ù»~¡C©Ò¥H¤~¦³ Public Identifier ©M CATALOG ªº·s¤èªk¡A¦³Ãö Public Identifier ¬ÛÃö¸Ñ»¡¡A½Ð°Ñ¦Ò¥»Ãã¨å PI ¶µ¸Ñ»¡¡C

See Also: Public Identifier.

X

Extensible Markup Language
(XML)

¥i©µ¦ù¦¡¼Ð°O»y¨¥¡G¬°¤F¦b Web ºô¯¸¤W¹B§@¡A«K©ó¸ê®Æ¥æ´«¶Ç»¼±Mªù³]­pªº SGML ºë²«ü¥O¶°¡C¥L°ò¥»¤W©µÄò¤F SGML ªººë¯«©M¹B§@¼Ò¦¡¡A¦ý±Ä¥Î¤F§óÄY®æªº¼Ð°Oªí¥Üªk¡A¨Ã§R°£¤F¤@¨Ç SGML ¤W»Pºô¸ô¹B§@¨S¦³ª½±µÃöÁpªº«ü¥O©M¥\¯à¡A¥Øªº¬OÅýÀ³¥Îµ{¦¡¯à§ó²«K¦Ó§Ö³tªº¹F¦¨¸ÑªRÂàĶªº¤u§@¡C

See Also: Standard Genralized Markup Language.

Extensible Stylesheet Language
(XSL)

©µ¦ù¦¡¼Ë¦¡ªí»y¨¥¡G´N¦p¦P DSSSL ¤§©ó SGML ªº­t³d®æ¦¡¤Î¿é¥XÂà´«¡AXSL ¤]­t³d XML ªº®æ¦¡¤Î¿é¥XÂà´«¡C

See Also: Extensible Markup Language, Document Style Semantics and Specification Language.

Extensible Stylesheet Language Transformations
(XSLT)

XSL ªºÅÜÅé¡A¤SºÙ¬°·s¤@¥Nªº XSL ¡C

See Also: Extensible Markup Language, Extensible Stylesheet Language.

Notes

[1]

XML »y¨¥¦P¼Ë¦³±`¼Æ«Å§i»P§t¬A¥~³¡Àɮתº¥\¯à¡A¦ý¤£¦p SGML ©w¸qªº§¹¾ã¡A¥\¯à¤ñ¸û¤Ö¡A¤]¤£¹³ SGML ¨º»ò¤è«K¡C

[2]

¨Ò¦p§Ú­Ì³Ì±`¨Ï¥Îªº SGML ¸ÑªR¾¹ OpenSP¡C

[3]

¦pªG§Aªº DocBook ¸ÑĶÀô¹Ò¬O±Ä¥ÎÃþ¦üDocBook ¸ÑĶÂà´«Àô¹Òªº«Ø¥ß¤è¦¡«Ø¥ßªº¡A¨º§AÀ³¸Ó¦³ openjade ©M onsgmls ³o¨â­Ó¸ÑªRµ{¦¡¥i¥H¥Î¡A¥H©R¥O¼Ò¦¡¿é¤J¡G

onsgmls -s -w duplicate sgmlfile
openjade -s -w duplicate sgmlfile

´N¥i¥H¬d¥X¾ã¥÷¤å¥ó¬O§_¦³­«½Æ«Å§i¦P¦W ENTITY¡C¤£¹L¤@©w­n¦³­Ó·§©À¡A­«½Æ«Å§i¦P¦W ENTITY ¦b SGML ¤¤¬O¦Xªkªº¡A¥¦¥Î³o­Ó¯S©Ê»s§@¥X¦³©µ®i©Ê¥i¶ì©Êªº DTD ¼Ò²Õ¬[ºc¡C

[4]

openjade ¬O­Ó¤£¦º³¾ªº¸Ñ;¹¡A¥L·|ºÉ¤@¤Á¥i¯à±o¥X²z·Qªº¿é¥Xµ²ªG¡AÁa¨Ï§Aªº»yªk¿ù»~±o«ÜÄY­«¡C

[5]

¦p¦ó«Ø¥ß¦UºØ¥iµn¤J¡A¨Ã¤W¤U¶Ç¸ê®Æªº¦øªA¾¹¡A½Ð¨Ì¦U¦øªA¾¹¬ÛÃö»¡©ú¿ì²z¡A¥»¤å¤£¥t°µ»¡©ú¡C

[6]

§A¥i¥H¥Î # su - kenduestªº¤è¦¡¨Ó¼ÒÀÀ kenduest ªºµn¤J¥D¾÷¡C

[7]

¦³Ãö openjade ¨Ï¥Î©R»¡©ú½Ð°Ñ¦Ò openjade ¦w¸Ë»¡©ú¤å¥ó ¡C¦pªG§A¬O¥Îªº red hat ¤½¥qªº docbook-utils ¤u¨ã¡A«h¥i¥H¨Ï¥Î docbook2html SgmlFile -i site.else.choice¡C