|
¼¶/¬Ý³õ¤H
¥Ø¿ý3. ¸ÑªRXML¤å¥óªº¸ÑªR¾¹
4. ¥ÎDTD®Õ¹ï(Validate)XML¤å¥ó
¡@4.1 ¬Æ»ò¬ODTD¡H
¡@4.2 ¬°XML¤å¥ó½Õ¥ÎDTD
¡@4.3 XML¡u¼Æ¾Ú¡vÃþ«¬
¡@4.4 «Å§i¤¸¯À(Declaring Elements)
¡@4.5 ¹êÅé(Entities)«Å§i¤Î¨Ï¥Î
¡@4.6 «Å§iÄÝ©Ê(Declaring Attributes)
3. ¸ÑªRXML¤å¥óªº¸ÑªR¾¹§Ú̪¾¹D¤@¥÷XML¤å¥ó¨ä¹ê¥u¬O¯Â¤å¦rªº¤åÀÉ¡A§ÚÌ¥ÎNotepad´N¥i¥H³Ð«Ø©Îק復¡A¦ý§Ú̦p¦ó¥i¥H¸ÑªR(Parse)¤@¥÷XML©O¡H ¨ä¹ê§AªºÂsÄý¾¹(Browser)¦h¼Æ¤w¨ã³Æ¸ÑªRXMLªº¥\¯à¡A³o¥]¬AIE 5.0©Î¥H¤Wª©¥»¡BNetscape 6©Î¥H¤Wª©¥»µ¥µ¥¡AIE ¥Ñ5.0ª©¶}©l«K¤ä´©¡G
- XML1.0 (¥Ø«e¦UÂsÄý¾¹³£¥u¤ä«ù1.0ª©)
- XML DOM¡BW3C DTD standards
- XML embedded in HTML as Data Islands
- Binding XML data to HTML elements
- XML with XSL and CSSµ¥¼Ð·Ç¡C
§A¥i¥H«ö¦¹¸Õ¸Õ¥ÎÂsÄý¾¹¶}±Ò¤@ÓXML¤å¥ó¡C(3.sample.xml)§A·|¨£¨ìIE·|¥H¾ðª¬µ²ºcÅã¥Ü³o¥÷XML¤å¥ó¡A§t¤l¤¸¯Àªº¤¸¯À®Ç¦³"-"´î¸¹¡A«ö¤U·|±N¨ä¥]§tªº¤¸¯ÀºPÅ|°_¨ÓÅܦ¨"+"¥[¸¹¡C©Ò¥H¡AIE¨ä¹ê¤w¸g¬O¤@ÓXMLªº¸ÑªR¾¹¡A¦pªGXML»yªk¥X¿ù¡A¥¦·|Åã¥Ü³ø§i¿ù»~ªº«H®§¡C¥H«á§Ú̪º¨Ò¤l¤]·|°²³]¤j®a¨Ï¥ÎIE§@¸ÑªR¾¹¸ÑªRXML¤å¥ó¡C¸ÑªR¾¹©ÎÀ³¥Îµ{¦¡¦pµo²{¤@¥÷XML¤å¥ó»yªk¤W¥X¿ù¡A©ÎªÌ»PDTD¤£¥G¦X«KÀ³¸Ó¥ß§Y°±¤îÄ~Äò¸ÑªR/³B²z¡C ³o¬O¤@¥÷»yªk¦³¿ù»~ªºXML¤å¥ó¡C(3.sample_error.xml) ³o¸Ì¬OW3Cªº¤@Ó²³æValidator¡A¤j®a¥i¥H¦Û¦æ¥h¸Õ¸Õ¡Ghttp://www.w3schools.com/dom/dom_validate.asp 4. ¥ÎDTD®Õ¹ï(Validate)XML¤å¥ó®Õ¹ï(Validation)
§A¤j¬ù¤w¸gª¾¹D«ç¼Ë¤~¬O¤@¥÷»yªk¥¿½T(Well-Formed)ªºXML¤å¥ó¤F¡A¦Ó¤@¥÷¦X¥G¤@DTD(Document Type Definition)ªºWell-Formed XML¤å¥ó¡A«K¬O¤@¥÷¦³®Ä(Valid)ªºXML¡C µù¡G°£¤FDTD¥~¡A²{¦bÁÙ¦³XML Schema³o¥»¨¥ÑXML«Øºc¦¨ªº»y¨¥¥h®Õ¹ï¨ä¥LXML¤å¥ó¡A¦³¾÷·|§Ú·|¥t¤å¤¶²Ð¡C 4.1 ¬Æ»ò¬ODTD¡H¤å¥ó®æ¦¡©w¸q(DTD)¡A¬O¤@¥÷¥Î¨Ó®Õ¹ïXMLªº¤å¥ó¡A¥¦©w¸q¤F¤@¥÷¦³®Ä¤å¥ó©Ò»Ýnªº¦³®Ä¤¸¯À¤Î¨äµ²ºc¡C§A¥i±N¥¦¬Ý¦¨«Øºc¤@¥÷XMLªº«Ø¿vÂŹϡA¥¦¹º¥X¤F¦³®Ä¤å¥óªº§G§½©M©Ò»Ý§÷®Æ¡C¨Ï¥ÎDTD¥i¥H¥On¨Ï¥ÎXML¨Ó·¾³qªº¤£¦P³æ¦ì²Î¤@®æ¦¡°_¨Ó¡A¦Ó¥B³o®æ¦¡ÁÙ¥i«½Æ³Q¨Ï¥Î¡C¥H¤U§Ú̱N·|Á¿¸Ñ¦p¦ó«Øºc¤@¥÷DTD©M¦p¦óÅýXML¨Ï¥Î¥¦¡C 4.2 ¬°XML¤å¥ó½Õ¥ÎDTD¤@¥÷XML¤å¥ón¨Ï¥ÎDTD¡A¥i¥H¥H¤º³¡©w¸q(Inline)¤è¦¡¦s¦b©óXML¤¤¡A¤]¥i¥H¥~³¡³sµ²(External)¤@ÓDTDÀɮסC§ÚÌ¥ý¬Ý¬Ý¤U¨Ò¡G <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE book [
<!ELEMENT book (name,author,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<description>This book teaches you XML!</description>
</book>
½Ð°Ñ¦Ò(4.2.book.xml)°Ñ¬Ý¹ê»Ú®ÄªG¡C ³o¬O©M¤W¤@³¹¤¤³Ìªìªº¨Ò¤l¤@¼Ëªº¤@¥÷XML¡A¤£¦P¬O¥¦¦b¤å¥óªºÀÉÀY³¡¥÷¡A<?xml ... ?>«á±¥[¤J¤F¤@¨ÇDTD¡C¤W¨Ò¬O¤@ºØ¤º³¡©w¸qDTDªº¤èªk¡A¤º³¡DTD©w¸qªº»yªk¦p¤U¡G <!DOCTYPE ®Ú¤¸¯À¦WºÙ [¤¸¯À©w¸q]>
¤W¨Ò¤¤ªº"book"´N¬O®Ú¤¸¯À¦WºÙ¡A¦Ó¤§«áªº´X¦æ<!ELEMENT ... >´N¬O¤¸¯Àªº©w¸q¤F¡A³o¤§«á·|¸Ô½Í¡C²{¦b¬Ý¬Ý¥~³¡³sµ²DTDªº¤èªk¡G <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book SYSTEM "4.2.book.dtd">
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<description>This book teaches you XML!</description>
</book>
³o©M¤W¨Ò¬O§¹¥þ¤@¼Ëªº¡A¥u¬O±N¤U±´X¦æ©â¨ì(4.2.book.dtd)¸Ì(½Ð¥Î¯Â¤å¦r½s¿è¾¹¶}±ÒDTDÀÉ)¡G <!ELEMENT book (name,author,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
µM«á¦bXML¤å¥ó¦P¼Ë¦ì¸m¨Ï¥Î¤U±ªº»yªk½Õ¥ÎDTD¡G(standalone¤£n³]¬°"yes") <!DOCTYPE ®Ú¤¸¯À¦WºÙ SYSTEM "DTDÀɮצì¸m">
§A¥i¥H«e©¹http://www.w3schools.com/dom/dom_validate.asp¡A±N§AªºXML³s¦PDTD¿é¤J¡A´N¥i´ú¸Õ¨ì¨Ï¥ÎDTD®Õ¹ïXMLªº®ÄªG¡C 4.3 XML¡u¼Æ¾Ú¡vÃþ«¬¥®É½sµ{¸Ì¦³©Ò¿×¼Æ¾ÚÃþ«¬(Data Type)¡A¨ºXML¤ºªº¡u¼Æ¾Ú¡v(¨ä¹ê¥u¬O¯Â¤å¦r°Õ)¬O«ç¤ÀÃþªº©O¡H¨ä¹ê¤@ª½¥H¨Ó§Ú̳£¦³©Ò´£¤Î¡AÅý§Ú̲{¦b·Å²ß¤@¤U¡C 4.3.1 ¤¸¯À(Element)³o¬Oºc¦¨XMLªº¥Dn³¡¥÷¡A¤W±¨Ò¤l¤¤ªºbook¡Bname¤]¬O¤¸¯À¡C¤¸¯Àªº¤º®e¥i¥H¬O¤å¦r¡B¨ä¥L¤¸¯À¡B¨âªÌ²V¦X¡B¤]¥i¥H¬OªÅªº¡C 4.3.2 ¼Ð°O(Tag)¼Ð°O¬O¥Î¨Ó¼Ð¥Ü¤¸¯À¡A¶}©l¼Ð°O<name>ªí¥Üname¤¸¯Àªº¶}©l¡Aµ²§ô¼Ð°O</name>ªí¥Üname¤¸¯Àªº§¹µ²¡C 4.3.3 ÄÝ©Ê(Attributes)¥i¬°¤¸¯À´£¨ÑÃB¥~ªº¸ê®Æ¡CÄݩʩñ¸m©ó¶}©l¼Ð°O¤§¤º¡C 4.3.4 ¹êÅé(Entities)³o´N¬O¥Î¨Ó©w¸q¤@¨Ç±`¥Î¦r¦êªºÅܼơA¦³ÂI¹³½sµ{¤¤©w¸qconstantªº·§©À¡C¨Ò¦p<´N¬O¥Nªí<ªº¡A¸ÑªR¾¹À³¸Ó¦Û°Ê®i¶}¹êÅé©Ò¥Nªíªº¦r¦ê¡C 4.3.4 PCDATA»PCDATAPCDATA¬Oparsed character data¡A§Y¬O¤@¨Ç·|³Q¸ÑªR¾¹¶i¦æ¸ÑªRªº¦r²Å¦ê¡A¦r²Å¦êªº¦p§t¦³¼Ð°O²Å¸¹¡A¸ÑªR¾¹À³±N¥¦Ì§@¤¸¯À³B²z¡C¬Û¤Ï¦a¡ACDATA¬Ocharacter data¡A¸ÑªR¾¹¥u·|±N©Ò¦³¤å¦r¡A¥]¬A¥X²{ªº¼Ð°O·í¦¨´¶³q¤å¦r¡C 4.4 «Å§i¤¸¯À(Declaring Elements)²{¦b§Ú̶}©l¾Ç²ßDTDªº»yªk¡Cº¥ý¬O«Å§i¤¸¯À¡A¤¸¯À³Q«Å§i«á´N¥²¶·¥X²{¦bXML¤å¥ó¤¤¹ïÀ³ªº¦ì¸m¡A«Å§i»yªk¦p¤U¡G <!ELEMENT ¤¸¯À¦WºÙ ¤¸¯À¤º®e©w¸q>
4.4.1 ¤å¦r¤º®eªº¤¸¯À<!ELEMENT ¤¸¯À¦WºÙ (#PCDATA)>
¦p4.2¨Ò¤l¤¤ªºname¡Bauthor³£¬O©w¸q¬°¤å¦r¤º®eªº¤¸¯À¡C 4.4.2 ¥]§t¤l¤¸¯Àªº¤¸¯À<!ELEMENT ¤¸¯À¦WºÙ (¤l¤¸¯À¦WºÙ,¤l¤¸¯À¦WºÙ,¤l¤¸¯À¦WºÙ,...)>
¦p4.2¨Ò¤l¤¤ªºbook¡A©w¸q¤Fn«ö¦¸§Ç¥X²{name¡Bauthor¡Bdescription³o¤TÓ¤l¤¸¯À¡C¯d·N·í©w¸q³o¤¸¯À±N·|¥X²{ªº¤l¤¸¯À§Ç¦C(Sequence)«á¡AXML¤å¥ó¤¤´N¥²¶·«ö¦P¼Ë¦¸§Ç¥X²{³o¨Ç¤l¤¸¯À©ó¤÷¤¸¯À¤§¤º¡C¥t¥~¡ADTD¤¤¤]¥²¶·©w¸q©Ò¦³¤l¤¸¯À(¨£4.2ªº¨Ò¤l)¡C·íµM¡A¤l¤¸¯À¤¤¤]¥i¦A¥]§t¤l¤¸¯À(ie. Hierarchy Relation)¡C ¤£¹L¡ADTD¤ºªº¤l¤¸¯À©w¸q¥i¥H¤£«ö¤÷¤¸¯À©w¸q¤¤ªº§Ç¦C¦¸§Ç¡A¦p¤U±ªºDTD¸ò4.2ªº®ÄªG¤@¼Ë¡G <!ELEMENT book (name,author,description)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT name (#PCDATA)>
4.4.3 ¥ô·N¤º®eªº¤¸¯À<!ELEMENT ¤¸¯À¦WºÙ ANY>
¦p¦¹¸Ó¤¸¯À¥i¥H¤£¦¸§Ç¦¸¼Æ¦a¥]§t¥ô¦ó¥i¸ÑªRªº¸ê®Æ¡A¦p¨ä¥L¤¸¯À¡B¤å¦r¡C 4.4.4 ªÅ¤¸¯Àªº«Å§i<!ELEMENT ¤¸¯À¦WºÙ EMPTY>
¨Ò¦pXHTML¤¤ªº<br/>´N¬O¥Î<!ELEMENT br EMPTY>¨Ó«Å§i¡A"EMPTY"¬ODTD¤@ÓÃöÁä¦r(Keyword)¡C 4.4.5 ±±¨î¤¸¯À¥X²{ªº¦¸¼Æ¦b4.2¤¤©w¸q¤F¦bbook¤¸¯À¤§¤U¡An«ö¦¸§Ç¥X²{name¡Bauthor¡Bdescription¦U¤@¦¸¡C¦ý¦pªG§ÚÌ·Qauthor¥i¥H¦h©ó¤@¦ì¤S¦p¦ó©O¡H ¦b¤l¤¸¯À§Ç¦C¤ºªº¤l¤¸¯À¦WºÙ®Ç¥[¤W¥H¤U²Å¸¹´N¥i¥H±±¨î¥¦Ì¥X²{ªº¦¸¼Æ(¦³ÂI¹³regex)¡G ?
| 0©Î1¦¸
| *
| ¤j©ó©Îµ¥©ó0¦¸
| +
| ¤j©ó©Îµ¥©ó1¦¸
| ¨S¦³²Å¸¹
| 1¦¸ |
<!ELEMENT book (name,author+,description?)>
¤W¨Ò¥Nªíbook¤¸¯À¤ºªºauthor¤¸¯À¦Ü¤Ön¦³¤@Ó¡Adescription´N¦³0©Î1Ó¡C 4.4.6 ¿ï¾Ü©Ê¤¸¯À <!ELEMENT book (name,(author|description))>
¦p¤W¨Ò¡A¨Ï¥Î¿ï¾Ü©Ê²Å¸¹"|"¥Nªíbook¤º¥i¥H¥X²{author©Î(¦ý¤£¯à¦P®É¥X²{)description¡C±N¥H¤W©Ò¾Çªº²V¦X¨Ï¥Î¡A´N¥i³]©w¥X§ó½ÆÂøªº¤å¥ó®æ¦¡©w¸q¡C¨Ò¦p¡G <!ELEMENT book (#PCDATA|name|author|description)*>
´N¥Nªíbook¤¸¯À¤º¥i¥H¥X²{¤£¦¸¼Æªº¤å¦r¸ê®Æ©Îname¡Bauthor¡Bdescription¡C 4.4.7 Âk»¼µ²ºc(Recursive structure)<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE book [
<!ELEMENT book (name,author,description,old_version?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT old_version (book)>
]>
<book>
<name>XML Quick Guide II</name>
<author>Vance Lee</author>
<description>This book is version TWO!</description>
<old_version>
<book>
<name>XML Quick Guide I</name>
<author>Vance Lee</author>
<description>This book is version ONE!</description>
</book>
</old_version>
</book>
¯d·N¤W¨Ò¤¤¬õ¦â¦rªº³¡¥÷¡Abook¬Oold_versionªº¤÷¤¸¯À¡A¦ýold_version¤]¬Obookªº¤÷¤¸¯À¡A¨º§Y¬O¥i¥H´`Àô¦a¥]§tbook©Mold_version³o¨âÓ¤¸¯À¡A¦ý¥²¶·¯d·Nold_version¨Ï¥Î¤F"?"²Å¸¹¡A«ü©ú¥¦¬O¥i¥H¤£¥X²{ªº¡A³o¥Nªí´`Àô·|¦³§¹µ²ªº¤@¤Ñ¡I¦pªG¨S¦³³]©w"?"¡A¨º«K·|¥X²{¿ù»~¡C 4.5 ¹êÅé(Entities)«Å§i¤Î¨Ï¥Î¦p«e¤å©Òz¡A¹êÅé(Entities)¬O¥Î¨Ó©w¸q±`¥Î¤å¦rªºÅܼơA¦Ó¹êÅé°Ñ¦Ò(Entities Reference)´N¬O¥Î¨Ó³sµ²¦Ü¨º¨Ç¹êÅé¡C 4.5.1 ¤º³¡©w¸qªº¹êÅé(Internal Entity)<!ENTITY ¹êÅé¦WºÙ "¹êÅé¦r¦êÈ">
¨Ï¥Î¤W±ªº»yªk¦bDTD¤¤©w¸q¤@Ó¦r¦êªº¹êÅé¡A¨º»ò¦bXML¤¤¥un¦b¹êÅé¦WºÙªº«e«á¤À§O¥[¤W"&"©M";"«K¦¨¬°¤@Ó¹êÅé°Ñ¦Ò¡C¥H¤U¨Ï¥Î½d¨Ò®ÄªG±N©M4.2¸Ìªº§¹¥þ¤@¼Ë¡G <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE book [
<!ENTITY writer "Vance Lee">
<!ELEMENT book (name,author,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<book>
<name>XML Quick Guide</name>
<author>&writer;</author>
<description>This book teaches you XML!</description>
</book>
4.5.2 ¥~³¡©w¸qªº¹êÅé(External Entity)<!ENTITY ¹êÅé¦WºÙ SYSTEM "URI©ÎURL">
¥~³¡¹êÅ馳ÂI¹³C©ÎPHP¤¤ªºinclude¡A§Y¬O¦bXML¤¤´¡¤@¬q¨Ó¦Û¨ä¥LÀɮתº¤º®e¡C½Ð¬Ý¥H¤U¨Ò¤l¡G <?xml version="1.0" encoding="ISO-8859-1"?>
<!-- standalone cannot be "yes" above -->
<!DOCTYPE book [
<!ELEMENT book (name,author,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ENTITY desc SYSTEM "4.5.2.txt">
]>
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
&desc;
</book>
¦Ó4.5.2.txtªº¤º®e¦p¤U¡A¦¹¨Ò®ÄªG±N©M4.2¤@¼Ë¡G
<description>This book teaches you XML!</description>
Ãö©ó¹êÅ骺¨Ï¥Î¡A¦³¥H¤Uªºª`·N¨Æ¶µ¡G - ¹êÅé¦bDTD¤¤¤@¸g©w¸q¡A´N¥i¥H³Q¨ä¥LDTD¤¤ªº¹êÅé©w¸q¤¤½Õ¥Î¡A¦ý¤£¥i¦b¤¸¯À©w¸q¤¤¨Ï¥Î¡C
- ¹êÅé¦bDTD¤¤¥i¥H¤¬¬Û°Ñ¦Ò¨Ï¥Î¡A¦ý¤£¥i°µ¦¨´`Àô½Õ¥Î¡C
4.5.3 °Ñ¼Æ«¬½Õ¥Îªº¹êÅé(Parameter Entity)<!ENTITY % ¹êÅé¦WºÙ "¹êÅé¦r¦êÈ">
¤§«eªº¹êÅé¬O¥Î"&"¨Ó½Õ¥Î¡A¦ý°Ñ¼Æ«¬¹êÅé¬O¥Î"%"¨Ó½Õ¥Îªº¡C°Ñ¼Æ«¬¹êÅé¥u¦b¥~³¡DTD¤¤¨Ï¥Î¡A¦bXML¤å¥ó¤º³¡¤£¥i¥H¨Ï¥Î°Ñ¼Æ«¬ªº¹êÅé½Õ¥Î¡C¤£¹L¡A°Ñ¼Æ«¬ªº¹êÅé¥i¥H³Q¤¸¯À©w¸q¨Ï¥Î¡A³oÂI´N»P¤§«eªº¹êÅ餣¦P¡C¤U±¬O¨Ï¥Î½d¨Ò¡A®ÄªG©M4.2ªº¬O¤@¼Ëªº(4.5.3.book.xml)¡G <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book SYSTEM "4.5.3.book.dtd">
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<description>This book teaches you XML!</description>
</book>
DTDÀɤº®e(4.5.3.book.dtd)¡G
<!ENTITY % info "(name,author,description)">
<!ENTITY % pd "(#PCDATA)">
<!ELEMENT book %info;>
<!ELEMENT name %pd;>
<!ELEMENT author %pd;>
<!ELEMENT description %pd;>
4.5.4 IGNORE¦b½sµ{®É§ÚÌ·|¦³comment¡A¦bDTD¤¤§Ṳ́]¦³¥H¤U»yªk¥i°µ¨ìcommentªº®ÄªG¡A¦ý¥u¥i¥H¥Î¦b¥~³¡DTD¡G <![IGNORE [comment to ignore]]>
4.5.5 µ²¦X¤º³¡DTD»P¥~³¡DTD³o¨Ò¤l©M4.2ªº®ÄªG¬O¤@¼Ëªº¡A¯d·NYªG¤º³¡DTD»P¥~³¡DTD¦³«½Æªº¦a¤è¡A«h¥H¤º³¡DTDÀu¥ý(4.5.5.book.xml)¡G <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book SYSTEM "4.5.5.book.dtd" [
<!ELEMENT author (#PCDATA)>
<!ELEMENT description (#PCDATA)>
]>
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<description>This book teaches you XML!</description>
</book>
DTDÀɤº®e(4.5.5.book.dtd)¡G
<!ELEMENT book (name,author,description)>
<!ELEMENT name (#PCDATA)>
4.5.6 ¤Þ¥Î¼ÆÓ¤£¦PªºDTD°Ñ¦Ò¤U¨Ò(IE¦ü¥G¥¼¯à¤ä´©°Ñ¼Æ«¬¹êÅé¨Ï¥Î¡A¦ý³o¬O¦XªkªºDTD¡I)(4.5.6.book.xml)¡G
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE book SYSTEM "4.5.6.book.dtd">
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<description>This book teaches you XML!</description>
</book>
DTDÀɤº®e(4.5.6.book.dtd)¡G
<!ELEMENT book (name,author,description)>
<!ENTITY % partA SYSTEM "4.5.6.booka.dtd">
%partA;
<!ENTITY % partB SYSTEM "4.5.6.bookb.dtd">
%partB;
(4.5.6.booka.dtd):
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
(4.5.6.bookb.dtd):
<!ELEMENT description (#PCDATA)>
4.6 «Å§iÄÝ©Ê(Declaring Attributes)¤§«e§Ú̾Dz߹L¦p¦ó«Å§i¤¸¯À(Elements)¡A¤j®a¥çª¾¹D¤¸¯À·í¤¤¥i¥H¥]§tÄÝ©Ê(¥i°Ñ¦Ò²Ä2.4¸`)¡A¨º¦bDTD¤¤¬Oì¦ó©w¸qÄݩʪº©O¡H 4.6.1 «Å§iÄݩʻyªk<!ATTLIST ¤¸¯À¦WºÙ ÄݩʦWºÙ ÄÝ©ÊÃþ§O ÄÝ©ÊÀq»{È>
ÄÝ©ÊÃþ§O(attribute-type)¥i¥H¦³¥H¤U¥i¯à¡G
Ãþ§O
| ¸ÑÄÀ
| CDATA
| ¤å¦r¸ê®Æ
| (en1|en2|..)
| ªTÁ|«¬(Enumerated)¡AÄÝ©ÊÈ¥²¶·¬OªTÁ|¦Cªº¨ä¤¤¤@Ó
| ID
| §YIdentifierÃþ¡AXML¤¤¨ä¥L¦a¤è¤£¯à«½Æ¬Û¦PªºIDÈ
| IDREF
| ÄÝ©ÊȬO¨ä¥LIDÃþÄݩʪºÈ(¬G¬°°Ñ¦Ò)
| IDREFS
| Äݩʪº¨ä¥LIDÃþÄݩʪºÈªº¦Cªí(list)(¥ÎªÅ®æ¤À¶})
| NMTOKEN
| ÄÝ©ÊÈ¥²¶·¬O¦³®ÄªºXML¦WºÙ(^¼Æ¦r¡B"."¡B":"¡B"_"¡B"-")
| NMTOKENS
| ÄÝ©ÊȬO¦³®ÄªºXML¦WºÙªº¦Cªí(¥ÎªÅ®æ¤À¶})
| ENTITY
| ÄÝ©ÊȬO¤@Ó¥~³¡¹êÅé
| ENTITIES
| ÄÝ©ÊȬO¥~³¡¹êÅ骺¦Cªí(¥ÎªÅ®æ¤À¶})
| NOTATION
| ÄÝ©ÊȬO¤@Ónotation(µy«á¦A¸Ñ)
| xml:
| ÄÝ©ÊȬO¤@ÓpredefineªºxmlÈ |
¦ÓÄÝ©ÊÀq»{È(default-value )¥i¦³¥H¤U¥i¯à¡G
Àq»{ÈÃþ§O
| ¸ÑÄÀ
| some values
| Áä¤Jªº¸ê®Æ·|³Qµø§@¸ÓÄݩʪºÀq»{È
| #REQUIRED
| ªí¥Ü¸ÓÄݩʥ²¶·¥X²{
| #IMPLIED
| ªí¥Ü¸ÓÄݩʥi¥H¤£¥X²{
| #FIXED value
| ÄÝ©ÊȳQ³]©w©T©w¬°value |
§ÚÌ¥i¥H°Ñ¦Ò¥H¤Uªº¹ê¨Ò(4.6.1.book.xml)¡G
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE book [
<!ELEMENT book (name,author+,description)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author userid ID #REQUIRED>
<!ATTLIST author sex CDATA #REQUIRED>
<!ELEMENT description (#PCDATA)>
]>
<book>
<name>XML Quick Guide</name>
<author userid="X1234" sex="male">Vance Lee</author>
<author sex="female" userid="X1235">Vinnie Lee</author>
<description>This book teaches you XML!</description>
</book>
¤W¨Ò¤¤author¤¸¯À³Q³]©wªþ¦³¨â¶µÄÝ©Ê(userid©Msex)¡G <!ATTLIST name userid ID #REQUIRED>
<!ATTLIST name sex CDATA #REQUIRED>
sexÄݩʳQ³]©w¬°CDATA¡A¥Nªí¨ä¤º®e¬O¤@¯ëªº¦r¦ê¡A¦Ó¨äÄݩʤº©wȳQ³]©w¬°#REQUIRED¡Aªí¥Ü¦bnameªº°_©l¼Ð°O¤º¥²¶·¦³sex³oÄݩʡC¦Óuserid³Q©w¬°¬OIDÃþ¡A«h¨äȤ£¯à¦b¦¹¤å¥ó¤º³Q«½Æ¨Ï¥Î¡C¤W¨Ò¥çÅã¥ÜÄݩʪº¥X²{¦¸§Ç¬O¤£«nªº¡C 4.6.2 ¨Ï¥Î¤º©wÈ¡B#FIXED¡B#IMPLIEDªº¹ê¨Ò<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!DOCTYPE book [
<!ELEMENT book (name,author+,description)>
<!ATTLIST book publisher CDATA #FIXED "ABC Company">
<!ATTLIST book language CDATA "English">
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ATTLIST author nationality CDATA #IMPLIED>
<!ELEMENT description (#PCDATA)>
]>
<book>
<name>XML Quick Guide</name>
<author>Vance Lee</author>
<author nationality="China">Vinnie Lee</author>
<description>This book teaches you XML!</description>
</book>
½Ð«ö¦¹(4.6.2.book.xml)°Ñ¬Ý¦¹¨Ò¡A§A·|¨£¨ì¸ÑªR¾¹·|¦Û°Ê¦bbook¥[¤Wpublisher©MlanguageÄݩʡC¦bpublisherªºDTD³]©w¤¤¨Ï¥Î¤F#FIXED¡A§Y¬O»¡¦bbook¼Ð°O¤º·|¦Û°Ê³]©w¦³publisher="ABC Company"¡A¦bXML¤å¥ó¤¤¤£¥²(¤]¤£¯à°÷)¥[¤Wpublisher³oÄݩʡC¦ÓlanguageÄݩʪº¤º©wȳQ³]©w¬°"English"¡A¨º»ò¦pªGXML¤¤book¼Ð°O¨S¦³³]©wlanguageÄݩʡA¸ÑªR¾¹·|¦Û°Ê¸É¤Wlanguage="English"¡Cauthor¤¤ªºnationality³Q³]©w¦¨#IMPLIED¡Aªí¥ÜÄݩʥiµø»Ýn¨Ó³]©w¡AµL»Ýn®É¥i¥H¬Ù²¤¤£¥[¡C 4.6.3 ÄÝ©ÊÃþ«¬Enumerated¦pªG±N4.6.1¨Ò§ï¥Î<!ATTLIST author sex (male|female) "male">ªº¸Ü¡A«hªí¥ÜsexÄݩʬOEnumeratedÃþ«¬¡A¥u¤¹³\ÄÝ©ÊȬO"male"©Î"female"¨ä¤¤¤@Ó¡C 4.6.4 ÄÝ©ÊÃþ«¬NMTOKEN©MNMTOKENS³Q³]¬°NMTOKENÃþ«¬ªºÄÝ©ÊÈ¥²¶·¬O¦XªkªºXML¦WºÙ(¨£²Ä¤@½Ò)¡A¦ý¤£¤@©wn¥H^¤å¦r¥À©Î"_"§@¶}ÀY¡A¨Ò¦p¡G - ¥¿½T ¡X 123-AA4 , 123:AA4 , 123_AA4 , :123 , AAA , AA-BB , AA_BB
- ¤£¥¿½T ¡X 123*AA4 , %123. AA BB , (123)
¦ÓNMTOKENS¡A¬G¦W«ä¸q´N¬O¥Ñ¦hÓNMTOKEN²Õ¦X¦Ó¦¨ªºÄÝ©ÊÃþ«¬¡AÄÝ©ÊȤº¥i¥]§t¦hÓNMTOKEN¡A¨Ã¥ÎªÅ®æ¤À¶}¡A¦p"123-aa :ccc"´Nªí¥Ü¥¦¦@Àx¤F"123-aa"©M":ccc"¨âÓNMTOKEN¡C 4.6.5 ÄÝ©ÊÃþ«¬ID¡BIDREF¡BIDREFS¤§«e¤¶²Ð¹LID´N¬Oidentifierªº·N«ä¡A³oºØÄÝ©ÊÃþ«¬ªºÈ¬O¥Î§@ų§Oªº¡A¤å¥ó¤º¤£¯à¦³¨ä¥L¬Û¦PªºÄÝ©ÊÈ¥X²{¡C¥H4.6.1.book.xml§@¨Ò¡A¦pªGXML³¡¥÷§ï¦¨¥H¤U±¡ªp¸ÑªR¾¹´N·|µ¹¥X¿ù»~°T®§¡G <book>
<name>XML Quick Guide</name>
<author userid="X1234" sex="male">Vance Lee</author>
<author userid="X1234" sex="female">Vinnie Lee</author>
<description>This book teaches you XML!</description>
</book>
¦ÓIDREF¬OIdentifier Referenceªº·N«ä¡Aªí¥Ü¨äÄÝ©ÊÈ¥²¶·¬OXML¤å¥ó¤º´¿¸g¥X²{¹LªºIDÃþ«¬ÄÝ©ÊÈ(³o´N¬Oreferenceªº·N«ä¹À)¡C¨º»òIDREFS©M«e±ªºNMTOKENS¤]¬O¤@¼Ë¡A¥Nªí¥i¥H¦³¦hÓIDREF¨Ã¥ÎªÅ®æ¤À¶}¡C 4.6.6 ¤@¨Ç¯S§OªºÄÝ©ÊÃþ«¬<!ATTLIST element-name xml:space (default|preserve) "preserve">
³o¤@ºØenumeratedªºÄÝ©ÊÃþ«¬¡A¥u¦³default©Îpreserve¡Adefaultªí¥Ü§i¶DÀ³¥Îµ{§Ç¥H¨ä¤º©wªº¤èªk³B²z¦¬¨ìªºªÅ®æ¡A¦Ópreserve«h§i¶DÀ³¥Îµ{§Ç¤@©wn¦b³B²z®É§âªÅ®æ³£«O¯d¤U¨Ó(¨Ò¦p¦pªG¨º¤¸¯Àªº¤º®e¬O¤@¨Ç·½¥N½X)¡C¯d·N³o¨Ã¤£¹H¤Ï¤§«eÁ¿¹LXML«O¯d©Ò¦³ªÅ®æªº³W©w¡A¨º¬Oªí¥Ü¸ÑªR¾¹(¦Ó«DÀ³¥Îµ{§Ç)¥²¶·³B²z©Ò¦³ªÅ®æ¡C <!ATTLIST element-name xml:lang (en|la|tw...) "en">
¥t¤@Ó¯S§OªºÄÝ©ÊÃþ«¬¬Oxml:lang¡A¥¦¤]¬Oenumeratedªº¤@ºØ¡A¥i¥H¬OISO-639¤¤¨ä¤¤¤@Ó¥Nªí¤£¦P»y¨¥ªº¦r²Å¡C ¨Ó¨ì³o¸Ì¡Aº©ªøªºDTD¾Ç²ß¤]§i¤@¬q¸¨¤F¡A¦b³o¤@½Ò¤¤§Ú̾Ƿ|¤F¨Ï¥ÎDTD¥hValidate¤@¥÷XML¤å¥ó¡A©ú¥Õ¤@¥÷DTD¡A«K¥i¤F¸Ñ¨ä¥L¤H¨î©wªºXML¤å¥óªº³W©w®æ¦¡¡C¦b¤U¤@½Ò¡A§ÚÌ·|°Q½×¤@¤U¦p¦óÅã¥Ü¡B®i¥Ü(Displaying and Presenting)¤@¥÷XML¤å¥ó(§Ú̱N¤¶²Ð¨Ï¥ÎXSL)¡C
¬ÛÃö³sµ²¡G
- W3C School XML Validator (¥i³B²z³æ¤@XML Validate)
- DTD¹ê¨Ò¡GXHTML1.0 TransitionalªºDTD
- XMLµ§°O(¤@) ²¤¶»P»yªk
¬ÛÃö¤å¥ó¡G
- 3.sample.xml
- 3.sample_error.xml
- 4.2.book.dtd
- 4.2.book.xml
- 4.5.3.book.dtd
- 4.5.3.book.xml
- 4.5.5.book.dtd
- 4.5.5.book.xml
- 4.5.6.book.dtd
- 4.5.6.book.xml
- 4.5.6.booka.dtd
- 4.5.6.bookb.dtd
- 4.6.1.book.xml
- 4.6.2.book.xml
µoªí¤é´Á¡G2004-07-13
|