Á¦5Àå. XML DTD

DTD¿Í À¯È¿¼º °ËÁõ

DTD ÀÛ¼ºÇϱâ : ¿¹Á¦  

¹®¼­Çü½Ä ¼±¾ð (Document Type Declaration)

    • Internal/External Subset È¥¿ë
      ¿¹)
    • <!DOCTYPE  address-book  SYSTEM  "ex03-03.dtd" [
          <!ELEMENT memo ANY>
      ]>

¿ä¼Ò(Element) ¼±¾ð

¼Ó¼º(Attribute) ¼±¾ð

<!ATTLIST  ¿ä¼Ò¸í  ¼Ó¼º¸®½ºÆ®>
                          ¼Ó¼º¸í  ¼Ó¼ºÇü½Ä  °ª¼±¾ð
  • ¼Ó¼º °ªÀÇ Çü½Ä (10°¡Áö)
    CDATA   ÅؽºÆ® ¹®ÀÚ¿­ (½ºÆ®¸µ)
    ID ½Äº°ÀÚ ÇØ´ç ¿ä¼Ò¸¦ À§ÇÑ °íÀ¯ À̸§, XML À̸§ ±ÔÄ¢ Áؼö
    IDREF   µ¿ÀÏÇÑ ID°ªÀ» °®°í ÀÖ´Â ¿ä¼Ò¿¡ ´ëÇÑ ÂüÁ¶(¸µÅ©)
    IDREFS  °ø¹éÀ¸·Î ±¸º°µÇ´Â IDREFÀÇ ¸ñ·Ï
    ENTITY   ¹Ì¸® Á¤ÀÇµÈ ¿ÜºÎ ¿£Æ¼Æ¼ À̸§
    ENTITIES  °ø¹éÀ¸·Î ±¸º°µÇ´Â ¿£Æ¼Æ¼ÀÇ ¸ñ·Ï
    NMTOKEN   ÇϳªÀÇ À̸§ ÅäÅ« (°ø¹éÀÌ ¾ø´Â ´Ü¾î)
    NMTOKENS  °ø¹éÀ¸·Î ±¸º°µÇ´Â NMTOKENÀÇ ¸ñ·Ï
    ¿­°ÅÇü ¸®½ºÆ® ´ÝÇôÁø ¸ñ·Ï, |·Î ±¸º°µÇ´Â °ª Áß¿¡ Çϳª »ç¿ë
    NOTATION  ¸í½ÃÀûÀ¸·Î ¼±¾ðµÈ NOTATION type »ç¿ë
  • ¼Ó¼º °ª ¼±¾ð (´ÙÀ½ 4°³Áß Çϳª)
    • #REQUIRED : Çʼö °ªÀÌ ¹Ýµå½Ã Á¦°øµÇ¾î¾ß ÇÔ
    • #IMPLIED : °ªÀÌ ¾øÀ» ¶§ ÀÀ¿ëSWÀÇ ³»Æ÷µÈ °ªÀ» »ç¿ë
    • #FIXED : DTD¿¡ ¼±¾ðµÈ °íÁ¤ °ªÀ» »ç¿ë
    • default : °ªÀÌ ¾øÀ» ¶§ ±âº» °ªÀ¸·Î »ç¿ë
  • CDATA ¼Ó¼º
    • ¿¹)

    <!ATTLIST report    remark  CDATA  #REQUIRED>

        =>  <report remark="2nd Submission"> . . . </report>
        =>  <report remark="´Ù½Ã Á¦Ãâ"> . . . </report>
        X   <report> . . . </report>
  • ID, IDREF, IDREFS ¼Ó¼º
    • ID ¼Ó¼º°ªÀº XML À̸§ ±ÔÄ¢À» Àû¿ë
    • ID ¼Ó¼º°ªÀº ¹®¼­ ³» À¯ÀÏÇÑ °ª
    • ÇÑ ¿ä¼Ò¿¡´Â ÇϳªÀÇ ID ¼Ó¼º¸¸ °¡´É
    • ID ¼Ó¼º°ªÀº ¹Ýµå½Ã #IMPLIED ¶Ç´Â #REQUIRED ·Î ÁöÁ¤
      ¿¹)

    <!ELEMENT person (name, email*, addr?) >
         <!ATTLIST person   perID ID #REQUIRED >
         <!ATTLIST name   honor (Mr | Ms | Dr) #IMPLIED   suffix (Jr | sr | III) #IMPLIED >
          . . .  
    <!ELEMENT book ...>
    <!ATTLIST book   author  IDREF  #REQUIRED >

         . . .
    <!ELEMENT article ...>
    <!ATTLIST article   authors  IDREFS  #REQUIRED >

     =>  <person perID="sblim" > <name honor="Dr" > Soon Bum Lim </name> </person>
           <person perID="hong01" > <name honor="Mr" > Gildong Hong </name> </person>
     ...
     =>  <book author="sblim"> . . . </book>
     ...
     =>  <article authors="sblim  hong01"> . . . </book>
  • ENTITY, ENTITIES ¼Ó¼º
    • ENTITY ¿¡¼­ ¼±¾ðµÈ À̸§À» »ç¿ë
    • ¿¹)

    <!ENTITY  myPhoto  SYSTEM  "file:///C:/images/photo01.gif"  NDATA  gif >
    <!ENTITY  newPhoto  SYSTEM  "file:///C:/images/photo02.gif"  NDATA  gif >
     
    . . .
    <!ATTLIST pic  image  ENTITY  #
    IMPLIED>
    <!ATTLIST pics  image  ENTITIES  #IMPLIED>
        =>  <pic  image="myPhoto"  ... >
        =>  <pics  image="myPhoto  newPhoto"  ... >

  • NMTOKEN, NMTOKENS ¼Ó¼º
    • XML À̸§±ÔÄ¢°ú »ó°ü¾ø´Â °ø¹éÀ¸·Î ±¸ºÐµÇ´Â À̸§
    • ¿¹)

    <!ATTLIST name   honor NMTOKENS #IMPLIED   suffix NMTOKEN #IMPLIED >
        =>  <name honor="Mr. Dr. Grand"> Soon Bum Lim </name> </person>
        =>  <name honor="Princess" suffix="3rd"> Joo Eun Lim </name> </person>

  • NOTATION ¼Ó¼º
    • NOTATION ¿¡¼­ ¼±¾ðµÈ À̸§¸¸ ¸í½ÃÀûÀ¸·Î »ç¿ë
    • ¿¹)

    <!NOTATION  bmp SYSTEM  "file:///C:/windows/paint.exe">
     . . .
    <!ATTLIST pic  type  NOTATION (JPEG | gif | bmp) #REQUIRED>

        =>  <pic  type="gif"  ... >

  • ¼Ó¼º °ª ¼±¾ð ¿¹Á¦

    <!ATTLIST document  version  CDATA  "1.00" >   
        =>  <document version="1.00"> My Report ... </document>
        =>  <document> My Report ... </document>
        =>  <document version="2.00"> My Report ... </document>

    default ¼Ó¼º°ª ÁöÁ¤
    1.00
    Æļ­°¡ ÀÌ °ªÀ» Á¦°ø (1.00)
    2.00

    <!ATTLIST document   version  CDATA  #FIXED  "1.00" >
        =>  <document version="1.00"> My Report ... </document>
        =>  <document> My Report ... </document>
        X   <document version="2.00"> My Report ... </document>

    #FIXED ¼Ó¼º°ª ÁöÁ¤
    1.00
    Æļ­°¡ ÀÌ °ªÀ» Á¦°ø (1.00)
    * À¯È¿¼º °ËÁõ ¿À·ù

ENTITY

  • ¿ÜºÎ ¿£Æ¼Æ¼ ÂüÁ¶ : SYSTEM ¶Ç´Â PUBLIC ½Äº°ÀÚ ÀÌ¿ë
    <?xml version="1.0" encoding="EUC-KR"?>
    <!DOCTYPE address-book SYSTEM "address-book.dtd" [
       <!ENTITY hong SYSTEM "hong.ent">
       <!ENTITY sblim
    SYSTEM "sblim.ent">
    ]>
    <address-book>
         &hong;
         &sblim;
    </address-book>
    filename : hong.ent
    <entry>
        <name>È«±æµ¿</name>
        <tel>02-710-9379</tel>
    </entry>
    filename : sblim.ent
    <entry>
        <name>ÀÓ¼ø¹ü</name>
        <tel>02-710-9424</tel>
    </entry>
  • ¿ÜºÎ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ - ¿ÜºÎ ¿£Æ¼Æ¼ ÆÄÀÏÀ» DTD ³»¿¡ Æ÷ÇÔ
  • <?xml version="1.0" encoding="EUC-KR"?>
    <!DOCTYPE memo [
       <!ELEMENT memo (attendee+)>
       <!ELEMENT attendee (#PCDATA)>
       <!ENTITY % s-name SYSTEM "initial.ent">
       %s-name;
    ]>
    <memo>
         <attendee> &cent;&JP; , &yen;&YY; ,
         &pound;&SB;
    </attendee>
    </memo>
    filename : initial.ent
    <?xml version="1.0" encoding="EUC-KR"?>
    <!ENTITY YS "±è¿ë»ê">
    <!ENTITY JP "¹ÚÁ¾ÇÊ">
    <!ENTITY SB "ÀÓ¼ø¹ü">
    <!ENTITY YY "À±¿ëÀÍ">

    <!ENTITY cent "&#x00a2;" > 
    <!ENTITY pound "&#x00a3;" > 
    <!ENTITY yen "&#x00a5;" > 

    ** ¿£Æ¼Æ¼·Î ¹®¼­ °ü¸® => ±Ô¸ð°¡ Å« DTD¿Í ¹®¼­ ÁýÇÕÀ» ¸ðµâÈ­ & °ü¸®

  • Unparsed Entity
    • ÀϹÝÀûÀ¸·Î ¿£Æ¼Æ¼´Â ¹®¼­³»¿¡¼­ ÆĽÌ. 
      • Áï, ¿©·¯ ¹®¼­¿¡¼­ °øÀ¯ ¸ñÀûÀ¸·Î ÀÛ¼ºÇÑ À¯È¿ÇÑ ¹®¼­
    • ºñ XML µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁò ÇÊ¿ä. ¿¹, À̹ÌÁö µ¥ÀÌÅÍ
      • NDATA·Î À¯Çü Ç¥±â
    • ¿¹(p.268) 
      • <!ENTITY w3c-logo PUBLIC "-//...//...//EN"  NDATA  GIF>
      • <!ENTITY  myPhoto  SYSTEM  "http:/mm.../images/photo01.gif"  NDATA  gif >

NOTATION

  • XML Æļ­°¡ ó¸® ¸øÇÏ°í ¿ÜºÎ ¸®¼Ò½º¸¦ ÂüÁ¶ÇÒ ÇÊ¿ä
    • unparsed entityÀÇ °æ¿ì À¯Çü ¼±¾ð ¹× ½Äº°ÀÚ·Î ÆÇ´ÜÇÏ¿© ÀÀ¿ëSW¿Í ¿¬°á
    • ¿¹
    • <!NOTATION GIF89a PUBLIC 
              "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN" 
              "C:\windows\kodakprv.exe">
      <!NOTATION jpg PUBLIC  "+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION JPG Graphic Interchange Format//EN">
      <!NOTATION GIF89a SYSTEM "GIF">      <!-- MiME Çü½Ä -->
      <!NOTATION GIF89a SYSTEM "image/gif">
      <!NOTATION jpeg SYSTEM "JPG">
      <!NOTATION bmp SYSTEM "file:///c:/windows/paint.exe">     <!-- Á÷Á¢ Ç¥±â -->

DTDÀÇ ÇÑ°è

  • ÀåÁ¡
    • ¾îÇø®ÄÉÀ̼ǰú µ¶¸³ÀûÀ¸·Î À¯È¿¼º °ËÁõÀÌ °¡´É
    • ¼Ó¼º¿¡ ´ëÇÏ¿© °ªÀÇ À¯Çü Á¦ÇÑÀ̳ª ±âº»°ª Á¦°øÀÌ °¡´É
    • ¹®¼­ÀÇ ¸ðµâÈ­ °¡´É
  • ±âÁ¸ DTD Á¦¾àÁ¡
    • XML ¹®¹ý°ú ´Ù¸£´Ù : SGML ¹®¹ý¿¡ ±âÃÊ
    • µ¥ÀÌÅÍ Çü½Ä¿¡ ´ëÇÑ Áö¿ø ºÎÁ· : ¿ä¼ÒÀÇ ³»¿ëÀÌ ÅؽºÆ®·Î Á¦ÇÑ, ¼ýÀÚ Ã³¸® ºÒ°¡´É
    • ³»¿ë ¸ðµ¨ ±â¼ú¿¡ ÇÑ°è : »ó¼Ó/°´Ã¼ÁöÇâ °³³ä ºÒ¿ÏÀü, ¹Ýº¹¼º Á¦¾î ÇÑ°è (¿¹, "k¹ø ¹Ýº¹" ºÒ°¡´É)
    • XML ³×ÀÓ½ºÆäÀ̽º Áö¿øÀÌ ºÒ¿ÏÀü
  • »õ·Î¿î ±¸Á¶ Á¤ÀÇ ¹æ¹ý¿¡ ´ëÇÑ Á¦¾È
    • XML Schema
    • DCD(Document Content Description)
    • SOX(Schema for Object-oriented XML)
    • DDML(Document Definition Markup Language)