DTD¸¦ »ç¿ëÇÏ´Â XML ¹®¼­

DTD(¹®¼­ À¯Çü µ¥ÀÌÅÍ)´Â ½ºÅ°¸¶¶ó´Â XML ¹®¼­ÀÇ ÅÛÇø®Æ®¸¦ ¼³¸íÇϱâ À§ÇØ Æ¯¼ö ±¸¹®À» Á¦°øÇÏ´Â XML ¹®¼­¿ë µ¥ÀÌÅÍ ¸ðµ¨ÀÔ´Ï´Ù. ÀÌ DTD´Â .dtd È®ÀåÀÚ¸¦ °¡Áö´Â ÆÄÀÏÀÔ´Ï´Ù. XML ¹®¼­ÀÇ ½ºÅ°¸¶¸¦ ³ªÅ¸³»´Â Business Object Á¤ÀÇ´Â ¹®¼­ÀÇ ±¸Á¶¸¦ º¸Á¸ÇÏ°í ±â·ÏÇÏ´Â µ¥ DTDÀÇ Á¤º¸¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¼½¼Ç¿¡¼­´Â DTD¿¡¼­ Business Object Á¤ÀÇÀÇ ±¸Á¶ Á¤º¸¸¦ ¾Ë¾Æ³»´Â °Í¿¡ ´ëÇØ ´ÙÀ½ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.

DTD¸¦ ±âº»À¸·Î ÇÏ´Â Business Object Á¤ÀÇ ¿ä±¸»çÇ×

DTD¿¡ »óÀÀÇÏ´Â Business Object Á¤Àǰ¡ XML Data HandlerÀÇ ¿ä±¸»çÇ×À» µû¸£µµ·Ï ÇÏ·Á¸é, ´ÙÀ½À» Æ÷ÇÔÇÏ´Â ÀÌ ¼½¼ÇÀÇ ÁöħÀ» µû¸£½Ê½Ã¿À.

Business Object Á¤ÀǸ¦ ÀûÀýÇÏ°Ô ±¸¼ºÇϸé Data Handler°¡ Business Object¸¦ XML ¹®¼­·Î, XML ¹®¼­¸¦ Business Object·Î ¿Ã¹Ù¸£°Ô º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. XML Data HandlerÀÇ Business Object ÀÛ¼º ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸´Â ½ºÅ°¸¶ ¹®¼­¸¦ »ç¿ëÇÏ´Â XML ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

DTDÀÇ Business Object ±¸Á¶

DTD¸¦ ³ªÅ¸³»·Á¸é Business Object ±¸Á¶¿¡ ¼³¸íµÇ¾î ÀÖ´Â ÃÖ¼ÒÇÑ µÎ °³ ÀÌ»óÀÇ Business Object Á¤Àǰ¡ ÇÊ¿äÇÕ´Ï´Ù.

DTDÀÇ °æ¿ì, ÀÌ Business Object Á¤ÀÇ¿¡´Â ´ÙÀ½°ú °°Àº Ãß°¡ ¿ä±¸»çÇ×ÀÌ ÀÖ½À´Ï´Ù.

DTD¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â Business Object Á¤ÀǸ¦ »ç¿ëÇÏ¿© XML Data Handler°¡ ó¸®ÇÏ´Â Business Object´Â ´ÙÀ½ ±ÔÄ¢À» µû¶ó¾ß ÇÕ´Ï´Ù.

ÁÖ:
ÀϹÝÀûÀÎ Business Object ¿ä±¸»çÇ× ¸ñ·ÏÀº Business Object Á¤ÀÇÀÇ ¿ä±¸»çÇ×À» ÂüÁ¶ÇϽʽÿÀ.

´ÙÀ½Àº XML ¹®¼­ÀÇ DTD ¿¹ÀÔ´Ï´Ù.

DTDÀÇ À̸§Àº OrderÀ̸ç, ÀÀ¿ëÇÁ·Î±×·¥ Order ¿£Æ¼Æ¼¿¡ ÇØ´çÇÏ´Â ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù.

<!--Order -->
 <!-- Element Declarations -->
 <!ELEMENT Order (Unit+)>
 <!ELEMENT Unit (PartNumber?, Quantity, Price, Accessory*)>
 <!ELEMENT PartNumber (#PCDATA)>
 <!ELEMENT Quantity (#PCDATA)>
 <!ELEMENT Price (#PCDATA)>
 <!ELEMENT Accessory (Quantity, Type)>
 <!ATTLIST Accessory
      Name CDATA >
 <!ELEMENT Type (#PCDATA)>
 

±×¸² 13¿¡¼­´Â Order DTD¿Í ¿¬°üµÈ XML ¹®¼­¿¡ ÇØ´çÇϵµ·Ï ÀÛ¼ºÇÒ ¼ö ÀÖ´Â Business ObjectÀÇ ±¸Á¶¸¦ º¸¿©ÁÝ´Ï´Ù. Order DTDÀÇ °¢ XML ¿ä¼Ò ¹× ¿ä¼Ò ¼Ó¼º¿¡´Â ÇØ´ç Business Object ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. ÃÖ»óÀ§ ·¹º§ Business Object¿¡´Â XML ¼±¾ð DOCTYPE°ú ÃÖ»óÀ§ ·¹º§ Order ¿ä¼Ò¿¡ ´ëÇÑ ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. ¶ÇÇÑ ¿ä¼Ò ¼Ó¼º À̸§Àº Accessory Business Object¿¡¼­ ù ¹øÂ° ¼Ó¼ºÀÔ´Ï´Ù.

±×¸² 13. Order DTD¸¦ »ç¿ëÇÏ´Â XML ¹®¼­ÀÇ Business Object ¿¹


DTDÀÇ Business Object ¼Ó¼º µî·Ï Á¤º¸

XML ¹®¼­ÀÇ Business Object Á¤Àǰ¡ DTD¸¦ ±âº»À¸·Î Çϸé, Business Object ¼Ó¼ºÀÌ Business Object ¼Ó¼º µî·Ï Á¤º¸¿¡¼­ ³íÀÇµÈ Á¦ÇÑ»çÇ×À» °¡Áý´Ï´Ù. ¶ÇÇÑ, DTD ±¸¹®ÀÌ Business Object ¼Ó¼ºÀÇ "Çʼö"¸¦ ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù.

"Çʼö"´Â XML Data Handler°¡ ¼Ó¼ºÀ» ÇÊ¿ä·Î ÇÏ´ÂÁö¸¦ ÆÇº°ÇÏ´Â, Ä«µð³¾¸®Æ¼¿Í ¼Ó¼ºÀÌ Å°ÀÎÁö ¿©ºÎ¸¦ Æ÷ÇÔÇÏ´Â ¿ä¼ÒÀÇ Á¶ÇÕÀÔ´Ï´Ù. ¼Ó¼ºÀÌ ÇʼöÀ̸é, Çʼö ¼Ó¼º µî·Ï Á¤º¸°¡ true·Î ¼³Á¤µÇ¾î¾ß ÇÕ´Ï´Ù.

Çʼö ¼Ó¼º µî·Ï Á¤º¸ÀÇ ¼³Á¤Àº ´ÙÀ½°ú °°ÀÌ XML ¿ä¼Ò ¹× ¼Ó¼º ½ºÆå»Ó¸¸ ¾Æ´Ï¶ó Ä«µð³¾¸®Æ¼, Ű ¹× ¿ÜºÎ Ű ¼Ó¼º µî·Ï Á¤º¸ÀÇ ¼³Á¤¿¡ µû¶ó ´Ù¸¨´Ï´Ù.

DTDÀÇ XML ±¸¼º¿ä¼Ò¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸

ÀÌ ¼½¼Ç¿¡¼­´Â DTD¸¦ ±âº»À¸·Î ÇÏ´Â Business Object Á¤ÀÇÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ Çü½Ä¿¡ ´ëÇÑ ´ÙÀ½ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù.

Business-object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸

XML Data Handler´Â ´ÙÀ½ À¯ÇüÀÇ Business Object¸¦ »ç¿ëÇÏ¿© DTD¿¡¼­ »ý¼ºµÈ ¿©·¯ Á¾·ùÀÇ XML ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù.

ÀÌ·¯ÇÑ À¯ÇüÀÇ Business Object´Â Business Object ·¹º§¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ÀÇÇØ ±¸º°µË´Ï´Ù.

DTD¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ÀÏ¹Ý Business Object Á¤ÀÇ

ÀÏ¹Ý Business Object´Â XML ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù.

ÀÌ À¯ÇüÀÇ Business Object¿¡¼­, Business Object ·¹º§¿¡ ÀÖ´Â ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â Business Object°¡ ÂüÁ¶ÇÏ´Â XML ¿ä¼Ò À̸§À» ½Äº°ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, XML ¿ä¼Ò¸¦ ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù°í °¡Á¤ÇϽʽÿÀ.

<!ELEMENT Unit(...)> 
 

¿¬°üµÈ Business Object Á¤ÀÇ¿¡ ´ëÇÑ Business Object ·¹º§¿¡¼­ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

[BusinessObjectDefinition]
 Name = MyApp_Unit
 AppSpecificInfo = elem_name=Unit
 [Attribute]
 ...
 

DTD¸¦ ±â¹ÝÀ¸·Î Çϴ ȥÇÕ Business Object Á¤ÀÇ

È¥ÇÕ Business Object´Â ¹®ÀÚ µ¥ÀÌÅÍ(#PCDATA) ¹× ±âŸ ÇÏÀ§ ¿ä¼ÒÀÇ È¥ÇÕ ³»¿ëÀ» Æ÷ÇÔÇÏ´Â, È¥ÇÕ XML ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù.

È¥ÇÕ À¯Çü XML ¿ä¼ÒÀÇ DTD Ç¥½Ã´Â ´ÙÀ½°ú °°½À´Ï´Ù.

<!ELEMENT (#PCDATA | CONTAINED_ELEMENT1 | CONTAINED_ELEMENTN)*>
 

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°ÀÌ DTD¿¡ Cust XML ¿ä¼Ò°¡ Á¤ÀǵǾî ÀÖ´Ù°í °¡Á¤ÇϽʽÿÀ.

<!ELEMENT Cust(#PCDATA | Address | Phone)*>
 

È¥ÇÕ À¯Çü XML ¿ä¼Ò¸¦ ³ªÅ¸³»·Á¸é È¥ÇÕ À¯Çü Business Object Á¤ÀǸ¦ »ç¿ëÇϽʽÿÀ. È¥ÇÕ Business Object Á¤ÀÇ¿¡¼­´Â ±× Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸°¡ ´ÙÀ½À¸·Î µÇ¾î ÀÖ½À´Ï´Ù.

Business Object Á¤ÀÇ¿¡¼­´Â Business Object ·¹º§¿¡¼­ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ÀÎ Cust ¿ä¼Ò¸¦ ³ªÅ¸³»´Â MyApp_Cust°¡ ´ÙÀ½°ú °°½À´Ï´Ù.

[BusinessObjectDefinition]
 Name = MyApp_Cust
 AppSpecificInfo = Cust;type=MIXED;
 

DTD¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ·¦ÆÛ Business Object Á¤ÀÇ

·¦ÆÛ Business Object´Â ¹Ýº¹ ¼±ÅûçÇ× ¸ñ·ÏÀ» ³ªÅ¸³À´Ï´Ù. ÀÌ À¯ÇüÀÇ Business Object Á¤ÀÇ´Â XML ¿ä¼Ò¿¡ ÀÓÀÇÀÇ ¼ø¼­ ¹× ÀÓÀÇÀÇ Ä«µð³¾¸®Æ¼·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â ÇÏÀ§°¡ ÀÖ´Â °æ¿ì ÇÊ¿äÇÕ´Ï´Ù. ·¦ÆÛ Business Object´Â XML ¹®¼­¿¡¼­ ÇÏÀ§ ¿ä¼ÒÀÇ ¼ø¼­ ¹× Ä«µð³¾¸®Æ¼¸¦ º¸Á¸ÇÕ´Ï´Ù.

¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼Ò¿¡¼­´Â DTD Á¤Àǰ¡ ´ÙÀ½°ú °°½À´Ï´Ù.

(CONTAINEDELEMENT1 | ... | CONTAINEDELEMENTN)*
 

¿¹¸¦ µé¾î, DTDÀÇ ¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼Ò Á¤ÀÇ´Â ´ÙÀ½°ú °°À» ¼ö ÀÖ½À´Ï´Ù.

<!ELEMENT CUST( U | I | B )* )>
 

ÀÌ ¿ä¼Ò¿¡´Â ¾Æ¹« ¼ø¼­·Î³ª Ç¥½ÃµÉ ¼ö ÀÖ´Â ¼±ÅÃÀûÀÎ ¼¼ °¡ÁöÀÇ ºÎ¼Ó ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù. °¢ ºÎ¼Ó ¿ä¼Ò´Â ´Ü¼ø ¿ä¼ÒÀÔ´Ï´Ù. ±×¸² 14¿¡¼­´Â ÀÌ À¯ÇüÀÇ XML ¹®¼­¸¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 14. ¹Ýº¹ ¼±ÅûçÇ× ¸ñ·ÏÀÇ XML ¹®¼­ ³»¿ë

<CUST>
    <U>.....
    </U>
    <B>.....
 \   </B>
    <I>.....
    </I>
    <B>.....
 \   </B>
    <U>.....
    </U>
 ...
 

DTD¿¡ Á¤ÀÇµÈ ¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼Ò¸¦ ³ªÅ¸³»±â À§ÇØ Business Object Á¤ÀÇ´Â °èÃþ ±¸Á¶ÀÔ´Ï´Ù. ´ÙÀ½ Business Object Á¤ÀǸ¦ Æ÷ÇÔÇÕ´Ï´Ù.

±×¸² 15¿¡¼­´Â ¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼Ò¿¡ ´ëÇÑ Business Object Á¤ÀÇÀÇ °èÃþ ±¸Á¶ ±×¸²À» º¸¿©ÁÝ´Ï´Ù. ·±Å¸ÀÓ¿¡¼­ °¢°¢ÀÇ ÇÏÀ§ Business Object´Â ·¦ÆÛ Business ObjectÀÇ ÀνºÅϽºÀÌ°í µ¥ÀÌÅͷΠä¿öÁø ´Ü ÇϳªÀÇ ¼Ó¼ºÀ» °¡Áý´Ï´Ù. ¿¹·Î¼­, ±×¸² 14¿¡ ÀÖ´Â XML ³»¿ëÀÇ Business Object´Â 5°³ÀÇ ÇÏÀ§¸¦ °¡Áö¸ç, °¢°¢Àº ÇØ´ç ¼Ó¼ºÀ¸·Î ä¿öÁ® ÀÖ½À´Ï´Ù.

±×¸² 15. ¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼ÒÀÇ °èÃþ ±¸Á¶ Business Object Á¤ÀÇ


±×¸² 16¿¡¼­´Â »óÀ§ Business Object Á¤ÀÇÀÎ MyApp_Cust¸¦ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿Í ÇÔ²² º¸¿©ÁÝ´Ï´Ù.

±×¸² 16. ¼±ÅûçÇ× ¸ñ·Ï ¿ä¼ÒÀÇ »óÀ§ Business Object Á¤ÀÇ

[BusinessObjectDefinition]
 Name = MyApp_Cust
 AppSpecificInfo =
  
 [Attribute]
 Name = CustWrapper
 Type = MyApp_CustWrapper
 Cardinality = N
    AppSpecificInfo = attr_name=CustWrapper;(U|I|B)
 [End]
 

·¦ÆÛ Business Object Á¤ÀÇÀÎ MyApp_CustWrapper´Â °¢ ¼±ÅûçÇ× ¿ä¼Ò¸¶´Ù Çϳª¾¿, ¼¼ °³ÀÇ ¼Ó¼ºÀ» °¡Áý´Ï´Ù. °¢ ¼±ÅûçÇ× ¿ä¼Ò¿¡ ¹®ÀÚ µ¥ÀÌÅͰ¡ Àֱ⠶§¹®¿¡ °¢ ¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸°¡ ´ÙÀ½À» ÁöÁ¤ÇÕ´Ï´Ù.

ÁÖ:
¹®ÀÚ µ¥ÀÌÅÍÀÇ ¼Ó¼º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â PCDATA¸¸ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

±×¸² 17¿¡¼­´Â ÀÌ XML ¹®¼­ÀÇ ·¦ÆÛ Business Object Á¤ÀǸ¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 17. ¼±ÅûçÇ× ¸ñ·Ï ¿ä¼ÒÀÇ ·¦ÆÛ Business Object Á¤ÀÇ

[BusinessObjectDefinition]
 Name = MyApp_CustWrapper
 AppSpecificInfo =
  
 [Attribute]
 Name = DataU
 Type = String
    AppSpecificInfo = attr_name=U;type=pcdata;
 [End]
  
 [Attribute]
 Name = DataI
 Type = String
    AppSpecificInfo = attr_name=I;type=pcdata;
 [End]
  
 [Attribute]
 Name = DataB
 Type = String
    AppSpecificInfo = attr_name=B;type=pcdata;
 [End]
 

¹è¿­ ¼Ó¼º ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸

Business Object ¼Ó¼ºÀÌ ´Ù¸¥ ¿ä¼Ò¸¦ Æ÷ÇÔÇÏ´Â XML ¿ä¼Ò¸¦ Ç¥½ÃÇÒ °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ¿ä¼ÒÀÇ À̸§ÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, DeliveryDate ¼Ó¼ºÀÌ Business Object À¯ÇüÀ» °¡Áö¸ç DATETIME ¿ä¼Ò¸¦ Ç¥½ÃÇÒ °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ¿ä¼ÒÀÇ À̸§ÀÌ Æ÷ÇԵ˴ϴÙ.

Name = DeliveryDate
 Relationship = Containment
 Cardinality = n
 AppSpecificInfo = DATETIME
 

¼Ó¼º ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸

Business Object Á¤ÀÇÀÇ ¼Ó¼ºÀº ´ÙÀ½ XML ±¸¼º¿ä¼Ò¸¦ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ 27¿¡¼­´Â ÀÌµé ´Ù¸¥ XML ±¸¼º¿ä¼ÒÀÇ ¼Ó¼º ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ëÇÑ ÅÂ±× ¹× ÀÌ Å±׿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÏ´Â ÀÌ ¸Å´º¾óÀÇ ÀýÀ» ÇÔ²² º¸¿©ÁÝ´Ï´Ù.


Ç¥ 17. ¼Ó¼º ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ëÇÑ Å±×
Business Object ¼Ó¼ºÀÇ Ç¥½Ã ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ ÀÚ¼¼ÇÑ Á¤º¸
XML ¿ä¼Ò

elem_name=XML ¿ä¼Ò À̸§

XML ¿ä¼ÒÀÇ °æ¿ì
PCDATA¸¸ ÀÖ´Â XML ¿ä¼Ò

elem_name=name of

XML element;type=pcdata

PCDATA¸¸ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì
XML ¿ä¼ÒÀÇ ¼Ó¼º

attr_name=XML ¼Ó¼ºÀÇ À̸§

type=attribute

XML ¼Ó¼ºÀÇ °æ¿ì
¹®ÀÚ µ¥ÀÌÅÍ ¹× ¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼Ò

type=pcdata;notag

¹®ÀÚ µ¥ÀÌÅÍ ¹× ¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì
³»¿ë¿¡ Ư¼ö ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖ´Â XML ¿ä¼Ò ¶Ç´Â ¼Ó¼º

escape=true

Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â XML ¿ä¼Ò ¶Ç´Â ¼Ó¼ºÀÇ °æ¿ì
DOCTYPE ¼±¾ðÀÇ °æ¿ì

type=doctype

XML DOCTYPE ¼±¾ðÀÇ °æ¿ì
CDATA ¼½¼ÇÀÇ °æ¿ì

type=cdata

CDATA ¼½¼ÇÀÇ °æ¿ì
XML ¹®¼­¿¡ Ãß°¡ÇÒ ÁÖ¼® type=comment XML ÁÖ¼®ÀÇ °æ¿ì
ó¸® ¸í·É¾î type=pi XML ó¸® ¸í·É¾îÀÇ °æ¿ì

ÁÖ:
¼Ó¼º ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â
( a | b | c ) ÅÂ±× ¾ç½ÄÀÇ Æ÷ÇÔÇÏ¿© ¹Ýº¹ ¼±ÅûçÇ×À» ³ªÅ¸³»´Â ´ÙÁß Ä«µð³¾¸®Æ¼ ¼Ó¼ºÀ» ÁöÁ¤ÇÒÀÚ¼¼ÇÑ Á¤º¸´Â DTD¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ·¦ÆÛ Business Object Á¤ÀǸ¦ ÂüÁ¶ÇϽʽÿÀ.

XML ¿ä¼ÒÀÇ °æ¿ì

XML ¿ä¼Ò¸¦ ³ªÅ¸³»´Â ¸ðµç ´Ü¼ø(String) Business Object ¼Ó¼º¿¡´Â ¿¬°üµÈ ¿ä¼Ò¸¦ ½Äº°Çϱâ À§ÇÑ elem_name űװ¡ ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

elem_name=XML ¿ä¼Ò À̸§
 

¿¹¸¦ µé¾î, Business Object ¼Ó¼ºÀÎ CustLNameÀÌ ´Ü¼ø XML ¼Ó¼ºÀ» ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Name = CustLName
 AppSpecificInfo = elem_name=CustLName;
 

XML ¿ä¼Ò À̸§Àº Ư¼ö ¹®ÀÚ(¿¹: ¸¶Ä§Ç¥ ¹× ÇÏÀÌÇÂ(-))¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª Business Object ¼Ó¼ºÀÇ À̸§Àº ÀÌ·¯ÇÑ Æ¯¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. µû¶ó¼­ XML ¿ä¼ÒÀÇ À̸§À» elem_name ű׿¡ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Business Object ¼Ó¼ºÀÇ À̸§À» ÁöÁ¤ÇÏ·Á¸é, XML ODA´Â XML ¿ä¼ÒÀÇ À̸§¿¡¼­ Ư¼ö ¹®ÀÚ¸¦ Á¦°ÅÇϰí À̸¦ ¹ØÁÙ(_) ¹®ÀÚ·Î ¹Ù²ß´Ï´Ù.

´ÙÀ½ ¿¹Á¦¿¡¼­, XML ¿ä¼Ò¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ¼Ó¼ºÀÌ Æ¯¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇϰí ÀÖÀ¸¹Ç·Î ½ÇÁ¦ XML ¿ä¼Ò À̸§°úÀÇ Â÷ÀÌÁ¡À» ÁöÁ¤ÇÕ´Ï´Ù.

Name = Phone_Tag
 AppSpecificInfo = elem_name=Phone#Tag;
 

XML ¿ä¼ÒÀÇ ½ÇÁ¦ À̸§Àº Business Object ¼Ó¼º À̸§¿¡´Â ¿Ã¹Ù¸£Áö ¾ÊÀº ÆÄ¿îµå ±âÈ£(#)¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ±×·¯¹Ç·Î, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ÀÇ elem_name ű״ ½ÇÁ¦ XML ¿ä¼Ò À̸§À» ÁöÁ¤ÇÕ´Ï´Ù. ¿¬°üµÈ Business Object ¼Ó¼ºÀÇ À̸§¿¡´Â ÆÄ¿îµå ±âÈ£´Â ¹ØÁÙ·Î ±³Ã¼µË´Ï´Ù.

PCDATA¸¸ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì

¹®ÀÚ µ¥ÀÌÅ͸¸ ÀÖ´Â XML ¿ä¼Ò´Â PCDATA ¿ä¼Ò ³»¿ë ÁöÁ¤ÀÚ¸¸ Àִ ȥÇÕ ¿ä¼ÒÀÔ´Ï´Ù. PCDATA¸¸ ÀÖ´Â XML ¿ä¼Ò¸¦ ³ªÅ¸³»´Â Business Object ¼Ó¼ºÀº ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½°ú °°Àº type űװ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

type=pcdata 
 
 

ÀÌ °æ¿ì, ¿ä¼Ò À̸§Àº ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡¼­ ù ¹øÂ° ÇʵåÀ̰í, type ¸Å°³º¯¼ö´Â µÎ ¹øÂ° ÇʵåÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, PCDATA¸¸ Æ÷ÇÔÇÏ´Â PartNumber¶ó´Â ¿ä¼Ò´Â DTD¿¡ ´ÙÀ½ Á¤ÀǸ¦ °¡Áý´Ï´Ù.

<!ELEMENT PartNumber (#PCDATA)>
 

Business Object Á¤ÀÇ¿¡ ÀÖ´Â ÇØ´ç ¼Ó¼ºÀº ´ÙÀ½ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¸¦ °¡Áú °ÍÀÔ´Ï´Ù.

Name = PartNumber
 AppSpecificInfo = elem_name=PartNumber;type=pcdata;
 

ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ notag ÅØ½ºÆ®°¡ Æ÷ÇÔµÈ °æ¿ì¿¡µµ XML Data Handler°¡ XML ¸¶Å©¾÷À» »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù. ¼Ó¼º °ª¸¸ XML ¹®¼­¿¡ Ãß°¡ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ¹®ÀÚ µ¥ÀÌÅÍ ¹× ¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML ¼Ó¼ºÀÇ °æ¿ì

Business Object ¼Ó¼ºÀÌ XML ¿ä¼ÒÀÇ ¼Ó¼ºÀ» ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ űװ¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

ÁÖ:
Business Object ±¸Á¶¿¡ ¼³¸íµÇ¾î ÀÖ´Â ´ë·Î, XML ¼Ó¼ºÀ» ³ªÅ¸³»´Â ¸ðµç Business Object ¼Ó¼ºÀº XML ¿ä¼Ò¸¦ ³ªÅ¸³»´Â ¸ðµç Business Object ¼Ó¼º ¾ÕÀÇ Business Object Á¤ÀÇ¿¡ ³ªÅ¸³ª¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î Business Object ¼Ó¼º, ID°¡ XML ¼Ó¼º, ID¸¦ ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Name = ID
 AppSpecificInfo = attr_name=ID;type=attribute;
 

type=attribute ű׸¦ »ç¿ëÇÏ´Â ´Ù¸¥ ¿¹¸¦ º¸·Á¸é ¹®ÀÚ µ¥ÀÌÅÍ ¹× ¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

¹®ÀÚ µ¥ÀÌÅÍ ¹× ¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼ÒÀÇ °æ¿ì

XML ¿ä¼Ò°¡ PCDATA ¶Ç´Â CDATA¸¸ Æ÷ÇÔÇϰí Çϳª ÀÌ»óÀÇ XML ¼Ó¼ºÀ» °®´Â °æ¿ì, Business Object Á¤ÀÇ´Â ´ÙÀ½ ¼Ó¼ºÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, Price¶ó´Â XML ¿ä¼Ò¿¡ Currency¶ó´Â ¼Ó¼ºÀÌ ÀÖ°í PriceÀÇ µ¥ÀÌÅ͸¦ ÇÊ¿ä·Î ÇÑ´Ù°í °¡Á¤ÇϽʽÿÀ.

<!ELEMENT Price (#PCDATA)>
 <!ATTLIST Price Currency NMTOKEN #IMPLIED>
 

Price ¿ä¼Ò¿¡ XML ¼Ó¼ºÀÌ Àֱ⠶§¹®¿¡, Business Object Á¤ÀÇ¿¡¼­ Currency¿¡ ´ëÇÑ Business Object ¼Ó¼ºµµ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ, Price µ¥ÀÌÅ͸¦ °¡Áö´Â ´Ù¸¥ ¼Ó¼ºÀÌ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. Price µ¥ÀÌÅÍÀÇ ¼Ó¼ºÀº ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡¼­ Data Handler°¡ ¼Ó¼º¿¡ ´ëÇØ ½ÃÀÛ ¹× ³¡ ű׸¦ ÀÛ¼ºÇÏÁö ¾Êµµ·Ï notag¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

Price ÇÏÀ§ Business Object´Â ´ÙÀ½°ú °°À» ¼ö ÀÖ½À´Ï´Ù.

[BusinessObjectDefinition]
 Name = Price
 AppSpecificInfo = Price
 

   [Attribute]
 Name = Currency
 Type = String
 AppSpecificInfo = attr_name=Currency;type=attribute;
    ...
 [End]
 

   [Attribute]
 Name = Price
 Type = String
 AppSpecificInfo = Price;type=pcdata;notag
    ...
 [End]
 

ÀÌ·¯ÇÑ °æ¿ì, Data Handler´Â Price µ¥ÀÌÅÍ¿¡ ´ëÇØ »õ XML ¿ä¼Ò¸¦ »ý¼ºÇÏÁö ¾Ê°í »óÀ§ ¿ä¼Ò¿¡¸¸ µ¥ÀÌÅ͸¦ Ãß°¡ÇÕ´Ï´Ù.

Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â XML ¿ä¼Ò ¶Ç´Â ¼Ó¼ºÀÇ °æ¿ì

XML ¿ä¼Ò¸¦ Ç¥½ÃÇÏ´Â Business Object ¼Ó¼ºÀ̳ª À̽ºÄÉÀÌÇÁ 󸮸¦ ÇÊ¿ä·Î ÇÏ´Â ³»¿ëÀÌ ÀÖ´Â XML ¼Ó¼º¿¡´Â ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ űװ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

escape=true
 
 

¼Ó¼ºÀÌ °ª¿¡ ´ÙÀ½ Ư¼ö ¹®ÀÚ°¡ ÀÖ´Â XML ¿ä¼Ò¸¦ ³ªÅ¸³»¸é, ¼Ó¼ºÀÌ À̽ºÄÉÀÌÇÁ 󸮸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù.

¼Ó¼ºÀÌ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ escape=true°¡ ¾øÀ¸¸é, ¼Ó¼ºÀº À̽ºÄÉÀÌÇÁ 󸮵ÇÁö ¾Ê½À´Ï´Ù. ÀÌ Å±״ ±âÁ¸ÀÇ ¾î¶°ÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸µçÁö ³¡¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ´ÙÀ½°ú °°½À´Ï´Ù.

[Attribute]
 Name=Data
 Type=String
 AppSpecificInfo=Price;type=pcdata;escape=true
 [End]
 

¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸°¡ À̽ºÄÉÀÌÇÁ ű׸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¸é, XML Data Handler´Â DefaultEscapeBehavior µî·Ï Á¤º¸ÀÇ °ªÀ» È®ÀÎÇÏ¿© À̽ºÄÉÀÌÇÁ ó¸® ¼öÇà ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù.

XML DOCTYPE ¼±¾ðÀÇ °æ¿ì

Business Object ¼Ó¼ºÀÌ ÇÁ·Ñ·Î±×¿¡ ¹®¼­ À¯Çü ¼±¾ðÀ» ³ªÅ¸³»´Â °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ type űװ¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

type=doctype
 
 

¿¹¸¦ µé¾î Business Object ¼Ó¼ºÀÎ DocTypeÀÌ DOCTYPE ¿ä¼Ò¸¦ ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Name = DocType
 AppSpecificInfo = type=doctype;
 

DocType ¼Ó¼ºÀÇ °ªÀÌ ´ÙÀ½°ú °°À» °æ¿ì,

DOCTYPE CUSTOMER "customer.dtd"
 

Data Handler´Â ´ÙÀ½ XMLÀ» »ý¼ºÇÕ´Ï´Ù.

<!DOCTYPE CUSTOMER "customer.dtd">
 

¶ÇÇÑ ÀÌ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â XML ¹®¼­¿¡ ÀÏ¹Ý ¿£Æ¼Æ¼ ¼±¾ðÀ» Æ÷ÇÔÇϱâ À§ÇØ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ³»ºÎ DTD ¶Ç´Â ¸Å°³º¯¼ö ¿£Æ¼Æ¼ ¼±¾ðÀ» Æ÷ÇÔÇϱâ À§ÇÑ ¸í½ÃÀû Áö¿øÀº ¾ø½À´Ï´Ù. ÀÌ´Â ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡¼­ type=doctypeÀÇ ¼Ó¼º °ª¿¡ Àüü ÅØ½ºÆ®¸¦ ³Ö¾î ¹®¼­¿¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

CDATA ¼½¼ÇÀÇ °æ¿ì

Business Object ¼Ó¼ºÀÌ XML ¹®¼­ ³»¿¡¼­ CDATA¸¦ Ç¥½ÃÇÒ °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ´ÙÀ½ type űװ¡ Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÕ´Ï´Ù.

type=cdata
 
 

¿¹¸¦ µé¾î, Business Object ¼Ó¼ºÀÎ UserArea°¡ CDATA ¼Ó¼ºÀ» ³ªÅ¸³»´Â °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Name = UserArea
 AppSpecificInfo = type=cdata;
 

XML ÁÖ¼®ÀÇ °æ¿ì

XML Data Handler°¡ Business Object¸¦ XML ¹®¼­·Î º¯È¯ÇÒ ¶§, XML ¹®¼­¿¡ ÁÖ¼®À» Ãß°¡ÇÑ´Ù°í ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Data Handler°¡ ÁÖ¼®À» Ãß°¡ÇÒ ¼ö ÀÖ°Ô ÇÏ·Á¸é, ´ÙÀ½ ´Ü°è¸¦ ¼öÇàÇϽʽÿÀ.

¿¹¸¦ µé¸é, Comment¶ó´Â Business Object ¼Ó¼ºÀÌ Data Handler°¡ XML ¹®¼­¿¡ Ãß°¡ÇØ¾ß ÇÏ´Â XML ÁÖ¼®À» ³ªÅ¸³»´Â °æ¿ì, Comment ¼Ó¼ºÀº ´ÙÀ½°ú °°À» °ÍÀÔ´Ï´Ù.

Name = Comment
 AppSpecificInfo = type=comment;
 

ÀÌ ¼Ó¼ºÀÌ Customer information update from application A"¶ó´Â °ªÀ» °¡Áú °æ¿ì, ´ÙÀ½ XMLÀÌ »ý¼ºµË´Ï´Ù.

<!--Customer information update from application A-->
 

XML ó¸® ¸í·É¾îÀÇ °æ¿ì

Business Object ¼Ó¼ºÀÌ Ã³¸® ¸í·É¾î¸¦ ³ªÅ¸³»´Â °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ´ÙÀ½ type űװ¡ Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÕ´Ï´Ù.

type=pi
 
 

¿¹¸¦ µé¾î, Business Object ¼Ó¼ºÀÎ XMLDeclarationÀÌ ÇÁ·Ñ·Î±×¿¡ XML ¼±¾ðÀ» ³ªÅ¸³»´Â °æ¿ì, ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

Name = XMLDeclaration
 AppSpecificInfo = type=pi;
 

¼Ó¼º °ªÀÌ ´ÙÀ½°ú °°À» °æ¿ì

xml version = "1.0" 
 

XML Data Handler´Â ´ÙÀ½°ú °°Àº XMLÀ» »ý¼ºÇÕ´Ï´Ù.

<?xml version="1.0"?> 
 

DTD¿¡¼­ Business Object Á¤ÀÇ ÀÛ¼º

DTD´Â XML ¹®¼­ÀÇ Çü½Ä¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

±×·¯¹Ç·Î DTD´Â Business Object Á¤ÀÇ¿¡ ÇÊ¿äÇÑ Á¤º¸¸¦ ¾ò´Â µ¥ ¸Å¿ì À¯¿ëÇÕ´Ï´Ù. DTD¿¡ ÀÖ´Â ±¸Á¶ Á¤º¸¸¦ Business Object Á¤ÀÇ·Î º¯È¯Çϱâ À§ÇØ XML Object Discovery Agent(ODA)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. XML ODA¿¡ ´ëÇÑ Á¤º¸´Â XML ODA¸¦ »ç¿ëÇÏ¿© Business Object Á¤ÀÇ ÀÛ¼ºÀ» ÂüÁ¶ÇϽʽÿÀ.

ÁÖ:
XML Data HandlerÀÇ ÀÌÀü ¹öÀüÀº DTD¿¡¼­ Business Object Á¤ÀǸ¦ ÀÛ¼ºÇÏ´Â µÎ °¡Áö µµ±¸¸¦ Æ÷ÇÔÇÕ´Ï´Ù. Edifecs SpecBuilder¿Í ÇöÀç´Â »ç¿ëÇÏÁö ¾Ê´Â XMLBorgen À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù. XML ODAÀÌ µÎ µµ±¸¸¦ ´ë½ÅÇϰí ÀÌµé µµ±¸´Â ±â´É¸é¿¡¼­ ¹Ù²î¾ú½À´Ï´Ù.

Áö¿øµÇ´Â DTD ±¸Á¶

XML ODA´Â ´ÙÀ½°ú °°Àº DTD ±¸Á¶¸¦ Áö¿øÇÕ´Ï´Ù.

Áö¿øµÇÁö ¾Ê´Â DTD ±¸Á¶

XML ODA´Â ´ëºÎºÐÀÇ DTD¸¦ ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ´ÙÀ½ DTD ±¸Á¶´Â Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

Copyright IBM Corp. 1997, 2003