½ºÅ°¸¶ ¹®¼­¸¦ »ç¿ëÇÏ´Â XML ¹®¼­

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

½ºÅ°¸¶ ¹®¼­¸¦ ±âº»À¸·Î ÇÏ´Â Business Object Á¤ÀǸ¦ À§ÇÑ ¿ä±¸»çÇ×

½ºÅ°¸¶ ¹®¼­¸¦ ³ªÅ¸³»´Â Business Object Á¤Àǰ¡ XML Data HandlerÀÇ ¿ä±¸»çÇ×À» ÁؼöÇϵµ·Ï ÇÏ·Á¸é, ´ÙÀ½À» Æ÷ÇÔÇÏ´Â ÀÌ ¼½¼ÇÀÇ ÁöħÀ» »ç¿ëÇϽʽÿÀ.

½ºÅ°¸¶ ¹®¼­ÀÇ Business Object ±¸Á¶

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

XML ¹®¼­ÀÇ ½ºÅ°¸¶ ¹®¼­ ¿¹´Â ±×¸² 18¿¡ Ç¥½ÃµË´Ï´Ù.

½ºÅ°¸¶ ¹®¼­ÀÇ À̸§Àº OrderÀ̸ç, ÀÀ¿ëÇÁ·Î±×·¥ Order ¿£Æ¼Æ¼¿¡ ÇØ´çÇÏ´Â ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù. ÀÌ »ùÇà ½ºÅ°¸¶ ¹®¼­´Â »ùÇà DTD ¹®¼­°¡ ¼³¸íÇÑ °Í°ú µ¿ÀÏÇÑ Business Object ±¸Á¶¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù. ±×¸² 13¿¡¼­´Â Order ½ºÅ°¸¶ ¹®¼­¿Í ¿¬°üµÈ XML ¹®¼­¿¡ ÇØ´çÇϵµ·Ï ÀÛ¼ºÇÒ ¼ö ÀÖ´Â Business Object Á¤ÀÇÀÇ ±¸Á¶¸¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 18. »ùÇà XML ½ºÅ°¸¶ ¹®¼­

<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="qualified">
 
        <xs:complexType name="AccessoryType">
                 <xs:sequence>
             <xs:element ref="Quantity"/>
                         <xs:element ref="Type"/>
                 </xs:sequence>
                 <xs:attribute name="Name" type="xs:string" use="required"/>
     </xs:complexType>
         <xs:element name="Order">
                 <xs:complexType>
                         <xs:sequence>
                                 <xs:element name="Unit" type="UnitType" 
                    maxOccurs="unbounded"/>
                         </xs:sequence>
     </xs:complexType>
         </xs:element>
         <xs:element name="PartNumber" type="xs:string"/>
         <xs:element name="Price" type="xs:string"/>
         <xs:element name="Quantity" type="xs:string"/>
         <xs:element name="Type" type="xs:string"/>
         <xs:complexType name="UnitType">
                 <xs:sequence>
                         <xs:element ref="PartNumber" minOccurs="0"/>
             <xs:element ref="Quantity"/>
             <xs:element ref="Price"/>
             <xs:element name="Accessory" type="AccessoryType" minOccurs="0"
                    maxOccurs="unbounded"/>
                 </xs:sequence>
     </xs:complexType>
 </xs:schema>
 

½ºÅ°¸¶ ¹®¼­ÀÇ Çʼö Business Object Á¤ÀÇ

½ºÅ°¸¶ ¹®¼­¸¦ ³ªÅ¸³»·Á¸é Business Object ±¸Á¶¿¡ ¼³¸íµÇ¾î ÀÖ´Â ÃÖ¼ÒÇÑ µÎ °³ ÀÌ»óÀÇ Business Object Á¤Àǰ¡ ÇÊ¿äÇÕ´Ï´Ù. ½ºÅ°¸¶ ¹®¼­ÀÇ °æ¿ì, ÀÌ Business Object Á¤ÀÇ¿¡´Â ´ÙÀ½°ú °°Àº Ãß°¡ ¿ä±¸»çÇ×ÀÌ ÀÖ½À´Ï´Ù.

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

ÀÌ µÎ °¡Áö Çʼö Business Object Á¤ÀÇ ¸ðµÎ ´ë»ó À̸§ °ø°£ ¹× ÀÓÀÇÀÇ ±¸¼º¿ä¼Ò À̸§ ÀÚ°ÝÀ» Á¤ÀÇÇÏ´Â Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸°¡ ÇÊ¿äÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â Business-object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¸¦ ÂüÁ¶ÇϽʽÿÀ.

±×¸² 18¿¡ ÀÖ´Â XML schema ¿ä¼Ò´Â ´ÙÀ½°ú °°½À´Ï´Ù.

<?xml version="1.0" encoding="UTF-8"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="qualified">
 

±×¸² 19¿¡¼­´Â ÀÌ ½ºÅ°¸¶ ¿ä¼Ò¸¦ ³ªÅ¸³»´Â ÃÖ»óÀ§ ·¹º§ Business Object Á¤ÀÇÀÎ TopLevelÀ» º¸¿©ÁÝ´Ï´Ù.

±×¸² 19. »ùÇà ÃÖ»óÀ§ ·¹º§ Business Object Á¤ÀÇ

[BusinessObjectDefinition]
 Name=TopLevel
 AppSpecificInfo=elem_fd=qualified;attr_fd=unqualified
 ...
 
   [Attribute]
    Name=XMLDeclaration
 Type=String
    AppSpecificInfo=type=pi;
    ...
 [End]
 
   [Attribute]
    Name=Order
    Type=TopLevel_Order
    AppSpecificInfo=elem_name=Order;
    ...
 [End]
 ...
 [End]
 

XML ODA°¡ ±×¸² 19¿¡ ÃÖ»óÀ§ ·¹º§ Business Object Á¤ÀǸ¦ »ý¼ºÇÑ °æ¿ì, ´ÙÀ½ ODA ±¸¼º µî·Ï Á¤º¸¸¦ ¼³Á¤ÇÑ »óÅ¿©¾ß ÇÕ´Ï´Ù.


ODA ±¸¼º µî·Ï Á¤º¸ µî·Ï Á¤º¸ °ª
BOPrefix ¼³Á¤µÇÁö ¾ÊÀ½
TopLevel "TopLevel"
Root "Order"
DoctypeorSchemaLocation true

·çÆ® ¿ä¼Ò Business Object Á¤ÀÇÀÇ ¿¹´Â ±×¸² 26À» ÂüÁ¶ÇϽʽÿÀ.

½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â Business Object Á¤ÀÇ

ÀÏ¹Ý Business Object Á¤ÀÇ´Â ´ÙÀ½ Áß ÀÓÀÇÀÇ XML ±¸¼ºÀ» ³ªÅ¸³À´Ï´Ù.

ÀÌ·¯ÇÑ À¯ÇüÀÇ Business Object Á¤ÀÇÀÇ °æ¿ì, Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â Ư¼ö Á¤º¸°¡ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÀÏ¹Ý Business Object Á¤ÀÇÀÇ ¼Ó¼ºÀº XML º¹ÇÕ À¯Çü¿¡ Á¤ÀǵǾî ÀÖ´Â ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù.

ÁÖ:
ÇÏÀ§ ¿ä¼ÒÀÇ ¼ø¼­ ±×·ìÀ» Æ÷ÇÔÇÏ´Â º¹ÀâÇÑ À¯ÇüÀÇ °æ¿ì, ¼ø¼­ ±×·ì¿¡ ÀÖ´Â °¢°¢ÀÇ ÇÏÀ§ ¿ä¼Ò´Â Business Object Á¤ÀÇÀÇ ¼Ó¼ºÀ¸·Î Ç¥ÇöµË´Ï´Ù.

¿¹¸¦ µé¾î, Unit¶ó´Â XML ¿ä¼Ò°¡ ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǴ °ÍÀ¸·Î °¡Á¤ÇϽʽÿÀ.

<xsd:element name="Unit">
 <xsd:complexType>
     ...
     </xsd:complexType>
 </element>
 

´ÙÀ½ Business Object Á¤Àǰ¡ Unit ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù.

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

½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î Çϴ ȥÇÕ Business Object Á¤ÀÇ

È¥ÇÕ Business Object Á¤ÀÇ´Â ¹®ÀÚ µ¥ÀÌÅÍ ¹× ±âŸ ÇÏÀ§ ¿ä¼ÒÀÇ È¥ÇÕ ³»¿ëÀ» Æ÷ÇÔÇÏ´Â, È¥ÇÕ XML ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù. ½ºÅ°¸¶ ¹®¼­´Â ´ÙÀ½°ú °°ÀÌ mixed ¼Ó¼ºÀÌ true·Î ¼³Á¤µÇ¾î ÀÖ´Â º¹ÇÕ À¯ÇüÀ¸·Î¼­ È¥ÇÕ À¯Çü XML ¿ä¼Ò¸¦ ¼³¸íÇÕ´Ï´Ù.

<xsd:complexType mixed="true">
         <xsd:sequence>
         <xsd:element name="subElement1" type="subElementType"/>
         ...
         </xsd:sequence>
     </xsd:complexType>
 

ÁÖ:
ÀÌ ¼½¼Ç¿¡ ¼³¸íµÈ ´ë·Î È¥ÇÕ Business Object´Â ¿ä¼Ò ¹× ¹®ÀÚ µ¥ÀÌÅÍÀÇ ¹Ýº¹ ¸ñ·ÏÀ» À§ÇØ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ× ¸ñ·ÏÀÌ ¾î¶°ÇÑ ¹®ÀÚ µ¥ÀÌÅ͵µ °¡ÁöÁö ¾ÊÀ¸¸é, ±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§¿¡ ¼³¸íµÈ °Íó·³ ·¦ÆÛ Business Object¸¦ »ç¿ëÇϽʽÿÀ.

ÀÌ º¹ÇÕ À¯ÇüÀº mixed ¼Ó¼ºÀ» true·Î ¼³Á¤Çϱ⠶§¹®¿¡, Á¤ÀÇÇÏ´Â Çϳª ÀÌ»óÀÇ ºÎ¼Ó ¿ä¼Ò»Ó¸¸ ¾Æ´Ï¶ó ¹®ÀÚ µ¥ÀÌÅ͵µ °¡Áú ¼ö ÀÖ½À´Ï´Ù. mixed ¼Ó¼ºÀÌ false·Î ¼³Á¤µÇ¸é, ¹®ÀÚ µ¥ÀÌÅͰ¡ º¹ÇÕ À¯Çü¿¡ Çã¿ëµË´Ï´Ù.

¿¹¸¦ µé¾î, ±×¸² 20¿¡¼­´Â ½ºÅ°¸¶ ¹®¼­¿¡ Á¤ÀÇµÈ È¥ÇÕ À¯Çü XML ¿ä¼Ò¸¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 20. È¥ÇÕ À¯Çü XML ¿ä¼ÒÀÇ »ùÇà ½ºÅ°¸¶ ¹®¼­

<xsd:complexType name="Cust" mixed="true">
         <xsd:sequence>
         <xsd:element name="Name"/>
         <xsd:element name="Address"/>
         <xsd:element name="Phone"/>
         </xsd:sequence>
     </xsd:complexType>
 

È¥ÇÕ À¯Çü XML ¿ä¼Ò¸¦ ³ªÅ¸³»·Á¸é ´ÙÀ½ µÎ °¡Áö Business Object Á¤Àǰ¡ ÇÊ¿äÇÕ´Ï´Ù.

±×¸² 20¿¡¼­ Business Object Á¤ÀÇÀÎ MyApp_Cust°¡ Cust È¥ÇÕ À¯Çü ¿ä¼Ò¸¦ ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ´ÙÀ½°ú °°½À´Ï´Ù.

[BusinessObjectDefinition]
 Name = MyApp_Cust
 AppSpecificInfo = type=MIXED;
  
 [Attribute]
    Name=Cust_wrapper1
    Type=MyApp_CustWrapper1
 Cardinality=n
 AppSpecificInfo=(Cust|Address|Phone)
    ...
 [End]
 

½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ·¦ÆÛ Business Object Á¤ÀÇ

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

ÁÖ:
ÀÌ ¼½¼Ç¿¡ ¼³¸íµÈ ´ë·Î ·¦ÆÛ Business Object´Â ¹®ÀÚ µ¥ÀÌÅͰ¡ ¾Æ´Ñ ¿ä¼Ò°¡ ÀÖ´Â ¹Ýº¹ ¼±ÅûçÇ× ¸ñ·ÏÀ» À§ÇØ »ç¿ëµË´Ï´Ù. ¼±ÅûçÇ× ¸ñ·Ï¿¡ ¹®ÀÚ µ¥ÀÌÅͰ¡ ÀÖÀ¸¸é, È¥ÇÕ Business Object¸¦ »ç¿ëÇϽʽÿÀ. ÀÚ¼¼ÇÑ Á¤º¸´Â ½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î Çϴ ȥÇÕ Business Object Á¤ÀǸ¦ ÂüÁ¶ÇϽʽÿÀ.

½ºÅ°¸¶ ¹®¼­´Â ´ÙÀ½ ¸ðµ¨ ±×·ì Áß Çϳª°¡ ÀÖ´Â º¹ÇÕ À¯ÇüÀ¸·Î¼­ ¼±ÅûçÇ× ¸ñ·Ï XML ¿ä¼Ò¸¦ ¼³¸íÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ä«µð³¾¸®Æ¼¸¦ Ç¥½ÃÇϱâ À§ÇØ ÀÌ ¸ðµ¨ ±×·ìÀº minOccurs¿Í maxOccurs ¼Ó¼ºÀ¸·Î ¹ß»ý Á¦ÇÑÀ» Áö¿øÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â Ç¥ 20À» ÂüÁ¶ÇϽʽÿÀ.

¿¹¸¦ µé¾î, ½ºÅ°¸¶ ¹®¼­ÀÇ XML ¿ä¼Ò Á¤ÀÇ´Â ´ÙÀ½°ú °°À» ¼ö ÀÖ½À´Ï´Ù.

<xsd:element name="CUST">
 <xsd:complexType>
         <xsd:choice minOccurs="0" maxOccurs="unbounded">
             <xsd:element ref="U"/>
             <xsd:element ref="I"/>
             <xsd:element ref="B"/>
         </xsd:choice>
     </xsd:complexType>
 </xsd:element>
 

ÀÌ ¿ä¼Ò¿¡´Â ¼±ÅÃÀûÀ̸ç(¸ñ·Ï ³» ÇϳªÀÇ ÇÏÀ§ ¿ä¼Ò´Â ¹Ýµå½Ã ³ªÅ¸³ª¾ß ÇÔ), ÀÓÀÇ ¼ø¼­´ë·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â ¼¼ °¡Áö ÇÏÀ§ ¿ä¼Ò°¡ ÀÖ½À´Ï´Ù. ±×¸² 14¿¡¼­´Â ÀÌ À¯ÇüÀÇ XML ¹®¼­¸¦ º¸¿©ÁÝ´Ï´Ù. ±×¸² 16¿¡¼­´Â ÀÌ XML ¹®¼­ÀÇ ·¦ÆÛ Business Object Á¤ÀǸ¦ º¸¿©ÁÝ´Ï´Ù. ±×¸² 17¿¡¼­´Â ·¦ÆÛ Business Object Á¤ÀǸ¦ º¸¿©ÁÝ´Ï´Ù.

½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î ÇÑ Business Object Á¤ÀÇÀÇ À¯Çü ´ëü

À¯Çü ´ëü¸¦ »ç¿ëÇÏ¿© ÆÄ»ýµÈ À¯ÇüÀ» °³º° XML ¹®¼­ ÀνºÅϽº¿¡ ±âº» À¯Çü ´ë½Å Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯Çü ´ëü°¡ ¹ß»ýÇÒ °æ¿ì, ÇϳªÀÇ µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÖ´Â ¼±¾ðÀ» µû¸£´Â ¿ä¼Ò¿¡ À̸¦ È®ÀåÇϰųª Á¦ÇÑÇÏ´Â µ¥ÀÌÅÍ À¯ÇüÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ½ºÅ°¸¶ Á¤ÀÇ¿¡¼­ ShirtType ¹× HatTypeÀº ±âº» ProductTypeÀÇ ÆÄ»ýµÈ À¯ÇüÀÔ´Ï´Ù.

±×¸² 21. À¯Çü ´ëü¸¦ »ç¿ëÇÏ´Â »ùÇà ½ºÅ°¸¶

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="items" type="ItemsType"/>
 <xsd:complexType name="ItemsType">
         <xsd:sequence>
             <xsd:element ref="product" maxOccurs="unbounded"/>
         </xsd:sequence>
     </xsd:complexType>
 <xsd:element name="product" type="ProductType"/>
 <xsd:complexType name="ProductType">
         <xsd:sequence>
           <xsd:element name="number" type="xsd:string"/>
             <xsd:element name="name" type="xsd:string"/>
         </xsd:sequence>
     </xsd:complexType>
 <xsd:complexType name="ShirtType">
     <xsd:complexContent>
     <xsd:extension base="ProductType">
         <xsd:sequence>
                 <xsd:element name="size" type="xsd:string"/>
                 <xsd:element name="color" type="xsd:string"/>
         </xsd:sequence>
             </xsd:extension>
     </xsd:complexContent>
     </xsd:complexType>
 <xsd:complexType name="HatType">
     <xsd:complexContent>
     <xsd:extension base="ProductType">
         <xsd:sequence>
                 <xsd:element name="size" type="xsd:string"/>
         </xsd:sequence>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
 </xsd:schema>
 

À§ÀÇ ½ºÅ°¸¶¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â, ´ÙÀ½°ú °°Àº XML ¹®¼­°¡ À¯È¿ÇÕ´Ï´Ù.

±×¸² 22. XML ¹®¼­ÀÇ ÆÄ»ýµÈ À¯Çü

<items xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <product>
       <number>999</number>
       <name>Special Seasonal</name>
 </product>
 <product xsi:type="ShirtType">
       <number>557</number>
       <name>Short-Sleeved Linen Blouse</name>
       <size>M</size>
       <color>blue</color>
 </product>
 <product xsi:type="HatType">
       <number>443</number>
       <name>Four-Gallon Hat</name>
       <size>L</size>
 </product>
 </items>
 

ProductTypeÀÌ ¹ß»ýÇÏ´Â °÷¸¶´Ù, xsi:type ¼Ó¼º¿¡¼­ Ç¥½ÃÇÏ´Â ÆÄ»ýµÈ À¯Çü ShirtType ¹× HatTypeÀ» ´ë½Å Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯Çü ´ëü°¡ ¹ß»ýÇÑ XML ¹®¼­¸¦ Ç¥½ÃÇϱâ À§ÇØ, XML Data Handler´Â ·¦ÆÛ Business Object¸¦ XML ¹®¼­ÀÇ ÇÏÀ§ ¼Ó¼ºÀ¸·Î ÀÛ¼ºÇÕ´Ï´Ù. ÀÌ ·¦ÆÛ Business Object¿¡´Â º¹ÇÕ À¯Çü(±×¸² 21ÀÇ ProductType) ¹× ÆÄ»ýµÈ À¯Çü(ShirtType ¹× HatType)¿¡ ÇØ´çÇÏ´Â ÇÏÀ§ ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. Ç¥ 18 ¹× Ç¥ 19¿¡¼­´Â À§ÀÇ XML ½ºÅ°¸¶¿¡¼­ »ý¼ºµÇ´Â Business Object Á¤ÀǸ¦ Ç¥½ÃÇÕ´Ï´Ù.

Ç¥ 18. ItemsType¿¡ ´ëÇÑ Business Object Á¤ÀÇ
¼Ó¼º À̸§ À¯Çü Ä«µð³¾¸®Æ¼ ASI
Product ProductTypeWrapper N (product);typeSub=true

Ç¥ 19. ProductTypeWrapper¿¡ ´ëÇÑ Business Object Á¤ÀÇ
¼Ó¼º À¯Çü Ä«µð³¾¸®Æ¼ ASI
ProductType ProductType 1 Elem_name=product;

xsiType=ProductType

ShirtType ShirtType 1 Elem_name=product;

xsiType=ShirtType;

HatType HatType 1 Elem_name=product;

xsiType=HatType;

½ºÅ°¸¶ ¹®¼­ÀÇ Business Object ¼Ó¼º µî·Ï Á¤º¸

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

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

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

½ºÅ°¸¶ ¹®¼­ÀÇ XML ±¸¼º¿ä¼Ò¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸

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

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

XML Data Handler´Â ´ÙÀ½ À¯ÇüÀÇ Business Object Á¤ÀǸ¦ »ç¿ëÇÏ¿© ½ºÅ°¸¶ ¹®¼­¿¡ Á¤ÀǵǾî ÀÖ´Â ´Ù¸¥ Á¾·ùÀÇ ·çÆ® XML ¿ä¼Ò¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ·¯ÇÑ À¯ÇüÀÇ Business Object Á¤ÀÇ´Â Business Object ·¹º§¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸·Î ±¸º°µË´Ï´Ù.


Ç¥ 23. Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ëÇÑ Å±×
ű×

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

¼³¸í ÀÚ¼¼ÇÑ Á¤º¸
target_ns ½ºÅ°¸¶ ¹®¼­ÀÇ ´ë»ó À̸§ °ø°£À» ÁöÁ¤ÇÕ´Ï´Ù. ½ºÅ°¸¶ À̸§ °ø°£
attr_fd ¼Ó¼º À̸§ÀÇ ±ÔÁ¤ ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§
elem_fd ·ÎÄ÷Π¼±¾ðµÈ ¿ä¼Ò À̸§ÀÇ ±ÔÁ¤ ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§

ÁÖ:
ºñÁî´Ï½º ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ ¶ÇÇÑ type=MIXED ű׸¦ Æ÷ÇÔÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î Çϴ ȥÇÕ Business Object Á¤ÀǸ¦ ÂüÁ¶ÇϽʽÿÀ.

½ºÅ°¸¶ À̸§ °ø°£

DTD¿Í ´Þ¸® ½ºÅ°¸¶ ¹®¼­´Â ÃÖ¼ÒÇÑ Çϳª ÀÌ»óÀÇ À̸§ °ø°£À» Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù. À̸§ °ø°£Àº XML ¹®¼­ ³»¿¡ ÀÖ´Â ¿ä¼ÒÀÇ À̸§, ¿ä¼Ò À¯Çü ¹× ¼Ó¼ºÀ» À§ÇÑ ¹®¸ÆÀ» Á¦°øÇÕ´Ï´Ù. À̸§ °ø°£Àº HTTP, FTP ¹× ´Ù¸¥ Á¾·ùÀÇ °æ·Î¸¦ Æ÷ÇÔÇÏ´Â URI(Uniform Resource Identifier)ÀÔ´Ï´Ù. Ç¥ 24¿¡¼­´Â ½ºÅ°¸¶ ¹®¼­°¡ ½ºÅ°¸¶ ±¸¼º¿ä¼Ò »çÀÌÀÇ ÂüÁ¶¸¦ ºÐ¼®Çϵµ·Ï ¼±¾ðÇÒ ¼ö ÀÖ´Â À̸§ °ø°£À» º¸¿©ÁÝ´Ï´Ù.

Ç¥ 24. XML À̸§ °ø°£
À̸§ °ø°£ ¼³¸í À̸§ °øÅë Á¢µÎºÎ
XML ½ºÅ°¸¶ À̸§ °ø°£ XSDL(XML Schema Definition Language)¿¡ »ç¿ëµÇ´Â ¸ðµç ±¸¼º¿ä¼Ò(¿¹: element, schema ¹× simpleType)¸¦ Á¤ÀÇÇÕ´Ï´Ù.
http://www.w3.org/2001/
 XMLSchema
 
xsd, xs
XML ½ºÅ°¸¶ ÀνºÅϽº À̸§ °ø°£ ½ºÅ°¸¶ ÀνºÅϽº¿Í ¿¬°üµÈ ³× °¡Áö ¼Ó¼º(type, nil, schemaLocation ¹×

noNamespaceSchemaLocation)À» Á¤ÀÇÇÕ´Ï´Ù.

http://www.w3.org/2001/
 XMLSchema-instance
 
xsi
»ç¿ëÀÚ Á¤ÀÇ À̸§ °ø°£

¼±¾ðµÇ°Å³ª ±Û·Î¹ú ¼±¾ð(¿¹: element, attribute, type ¶Ç´Â group)¿¡ ÀÇÇØ Á¤ÀÇµÈ ¸ðµç ±¸¼º¿ä¼Ò¸¦ Á¤ÀÇÇÕ´Ï´Ù.

ÁÖ:
·ÎÄ÷Π¼±¾ðµÈ ¿ä¼Ò´Â ´ë»ó À̸§ °ø°£À» »ç¿ëÇÒ ¼öµµ ÀÖ°í »ç¿ëÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§À» ÂüÁ¶ÇϽʽÿÀ.
»ç¿ëÀÚ Á¤ÀÇ »ç¿ëÀÚ Á¤ÀÇ

ÁÖ:
XML ODA´Â ´ë»ó À̸§ °ø°£ÀÌ ¿©·¯ °³ÀÎ ½ºÅ°¸¶ ¹®¼­¸¦ Áö¿øÇÕ´Ï´Ù.

¸ðµç ½ºÅ°¸¶ ¹®¼­´Â targetNamespace ÅÂ±×¿Í ÇÔ²² ±Û·Î¹ú ±¸¼º¿ä¼Ò(¿ä¼Ò, ¼Ó¼º, À¯Çü ¶Ç´Â ±×·ì)°¡ ¼ÓÇÏ´Â À̸§ °ø°£À» ½Äº°ÇÏ´Â ÇϳªÀÇ ´ë»ó À̸§ °ø°£À» ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.

½ºÅ°¸¶ ¿ä¼Ò¿¡ targetNamespace űװ¡ Æ÷ÇԵǴ °æ¿ì, XML ¹®¼­¿¡ ´ëÇØ ¼±¾ðµÈ ´ë»ó À̸§ °ø°£À» ÁöÁ¤ÇÏ·Á¸é ÇØ´ç ½ºÅ°¸¶ ¹®¼­¿¡ ´ëÇØ »ý¼ºµÈ °¢ Business Object Á¤ÀÇÀÇ ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ target_ns űװ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

target_ns=´ë»ó À̸§ °ø°£ÀÇ URI ÁÖ¼Ò
 

´ÙÀ½°ú °°ÀÌ ¸ðµç Business Object Á¤ÀÇ¿¡ ´ëÇØ Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ target_ns űװ¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù.

ÁÖ:
ÀÌÀü XML Data Handler ¹öÀü¿¡¼­´Â ÃÖ»óÀ§ ·¹º§ Business Object Á¤Àǰ¡ À̸§ °ø°£ Á¢µÎºÎ¿¡ ´ëÇÑ ¼Ó¼ºÀ» °®°í, Ư¼º ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ÇØ´ç type=defaultNS ¹× type=xmlns ű׸¦ »ç¿ëÇÏ´Â °ÍÀ¸·Î ¿¹»óÇß½À´Ï´Ù.

À̸§ °ø°£ Á¢µÎºÎ¸¦ Á¤ÀÇÇϱâ À§ÇÑ ÀÌ ¸ÞÄ¿´ÏÁòÀº ¹Ù²î¾úÀ¸³ª, ±âÁ¸ Business Object Á¤ÀÇ¿ÍÀÇ ¿ªÈ£È¯¼ºÀ» À§ÇØ XML Data Handler´Â °è¼Ó ÀÌ ¸ÞÄ¿´ÏÁòÀ» Áö¿øÇÕ´Ï´Ù. »õ Business Object Á¤ÀÇ´Â ÀÌ ¼½¼Ç¿¡ ¼³¸íµÈ ´ë·Î target_ns ű׸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. XML ODA´Â target_ns ű׸¦ »ç¿ëÇϵµ·Ï ¼öÁ¤µÇ¾ú½À´Ï´Ù.

¿¹¸¦ µé¾î, ±×¸² 23ÀÇ ½ºÅ°¸¶ ¹®¼­´Â XML ½ºÅ°¸¶ À̸§ °ø°£(xsd Á¢µÎºÎ »ç¿ë) ¹× ´ë»ó À̸§ °ø°£(±âº» À̸§ °ø°£)À» Á¤ÀÇÇÕ´Ï´Ù.

±×¸² 23. Schema1.xsd »ùÇà ½ºÅ°¸¶ ¹®¼­

<?xml version="1.0" encoding="UTF-8"?>
 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.ibm.com/ns1" xmlns="http://www.ibm.com/ns1">
 
   <xsd:complexType name="TaxInfoType">
         <xsd:sequence>
          <xsd:element name="SSN" type="string">
 </xsd:element>
 
         <xsd:element name="State" type="string">
 </xsd:element>
         </xsd:sequence>
     </xsd:complexType>
 
   <xsd:element name="Customer">
 <xsd:complexType>
         <xsd:sequence>
             <xsd:element name="TaxInfo" type="TaxInfoType">
 </xsd:element>
 
            <xsd:element name="BillTo" type="xsd:string">
 </xsd:element>
         </xsd:sequence>
 
         <xsd:attribute name="Name" type="xsd:string">
          </xsd:attribute>
 
         <xsd:attribute name="ID" type="xsd:string">
          </xsd:attribute>
     </xsd:complexType>
 </xsd:element>
 </xsd:schema>
 

XML ODA´Â ÀÌ ½ºÅ°¸¶ ¹®¼­¿¡ ´ëÇÑ ¼¼ °¡Áö Business Object Á¤ÀÇ

(BOPrefix_TopLevel, BOPrefix_TopLevel_Customer ¹×

BOPrefix_TopLevel_TaxInfoType)¸¦ »ý¼ºÇÕ´Ï´Ù. ¿©±â¼­ BOPrefix ¹× TopLevelÀº À̵é ODA ±¸¼º µî·Ï Á¤º¸ÀÇ °ªÀÔ´Ï´Ù. ÀÌµé ¼¼ °¡Áö Business Object Á¤ÀÇ´Â ¸ðµÎ ÇØ´ç Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ ³»¿ëÀÌ µé¾î ÀÖ½À´Ï´Ù.

target_ns=http://www.ibm.com/ns1;elem_fd=unqualified;attr_fd=unqualified
 

ÁÖ:
±×¸² 23ÀÇ schema ¿ä¼Ò¿¡´Â elementFormDefault ¶Ç´Â attributeFormDefault ¼Ó¼ºÀÌ Æ÷ÇÔµÇÁö ¾ÊÀ¸¹Ç·Î, ÀÌ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â unqualified·Î ¼³Á¤µÈ elem_fd ¹× attr_fd űװ¡ Æ÷ÇԵ˴ϴÙ. ÀÚ¼¼ÇÑ Á¤º¸´Â ±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§À» ÂüÁ¶ÇϽʽÿÀ.

ÇϳªÀÇ ½ºÅ°¸¶ ¹®¼­´Â ÇϳªÀÇ ´ë»ó À̸§ °ø°£¸¸ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª import ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ´Ù¸¥ ½ºÅ°¸¶ ¹®¼­ÀÇ ´ë»ó À̸§ °ø°£¿¡ Á¤ÀǵǾî ÀÖ´Â ¿ä¼Ò ¹× ¼Ó¼ºÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

±×¸² 24¿¡¼­´Â ±×¸² 23¿¡ Á¤ÀǵǾî ÀÖ´Â Schema1.xsd ¹®¼­¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â ½ºÅ°¸¶ ¹®¼­¸¦ º¸¿©ÁÝ´Ï´Ù. ÀÌ ½ºÅ°¸¶ ¹®¼­´Â ns2 À̸§ °ø°£À» °¡Á®¿À°í, ÀÌ À̸§ °ø°£Àº TaxInfoType º¹ÇÕ À¯Çü, BillTo ¿ä¼Ò ¹× Name ¼Ó¼ºÀ» ¼±¾ðÇÕ´Ï´Ù.

±×¸² 24. ´ë»ó À̸§ °ø°£ °¡Á®¿À±â

<?xml version "1.0" encoding="UTF-8"?>
 <xsd:schema smlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.com/ns1" xmlns="http://www.example.com/ns1"
    attributeFormDefault="qualified" elementFormDefault="qualified"
    xmlns:ns2="http://www.example.com/ns2">
 
   <xsd:import schemaLocation="Schema2.xsd" 
       namespace="http://www.example.com/ns2"/>
 
   <xsd:element name="Customer2">
 <xsd:complexType>
         <xsd:sequence>
             <xsd:element name="TaxInfo" type="ns2:TaxInfoType">
 </xsd:element>
 
            <xsd:element ref="ns2:BillTo">
 </xsd:element>
         </xsd:sequence>
 
         <xsd:attribute ref="ns2:Name">
          </xsd:attribute>
 
         <xsd:attribute name="ID" type="xsd:string">
          </xsd:attribute>
     </xsd:complexType>
 </xsd:element>
 </xsd:schema>
 

·çÆ® ¿ä¼ÒÀÎ Customer2¿¡ ´ëÇÑ Business Object Á¤ÀÇ´Â ´ÙÀ½°ú °°ÀÌ TaxInfo, BillTo ¹× Name XML ±¸¼º¿ä¼Ò¸¦ ³ªÅ¸³»´Â ÇØ´ç ¼Ó¼º¿¡ ´ëÇÑ ÀÌ ´ëü À̸§ °ø°£À» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

±×¸² 25¿¡¼­´Â ns2 À̸§ °ø°£¿¡ TaxInfoType, BillTo ¹× Name XML ±¸¼º¿ä¼Ò¸¦ Á¤ÀÇÇÏ´Â ½ºÅ°¸¶ ¹®¼­¸¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 25. µÎ ¹øÂ° À̸§ °ø°£ Á¤ÀÇ

<?xml version "1.0" encoding="UTF-8"?>
 <schema smlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.com/ns2"
    attributeFormDefault="qualified" elementFormDefault="qualified"
    xmlns:ns2="http://www.example.com/ns2">
 
   <complexType name="TaxInfoType">
       <sequence>
          <element name="SSN" type="string">
 </element>
          <element name="State" type="string">
 </element>
       </sequence>
 </complexType>
 
   <attribute name="Name" type="string"
    </attribute>
 
   <complexType name="AddressType">
       <sequence>
          <element name="Zip" type="string">
 </element>
          <element name="Street" type="string">
 </element>
       </sequence>
 </complexType>
 
   <element name="BillTo" type="ns2:AddressType">
 </element>
 </schema>
 

±×¸² 25¿¡¼­´Â Customer2 ·çÆ® ¿ä¼Ò¿¡ ´ëÇÑ Business Object Á¤ÀǸ¦ º¸¿©ÁÝ´Ï´Ù.

±×¸² 26. »ùÇà ·çÆ® ¿ä¼Ò Business Object Á¤ÀÇ

[BusinessObjectDefinition]
 Name=TopLevel_Customer2
 AppSpecificInfo=target_ns=http://www.example.com/ns1;elem_fd=qualified;
    attr_fd=qualified
 ...
 
   [Attribute]
 Name=Name
 Type=String
    AppSpecificInfo=attr_name=Name;type=attribute;attr_ns=http://www.example.com/ns2
    ...
 [End]
 
   [Attribute]
    Name=ID
 Type=String
    AppSpecificInfo=attr_name=ID;type=attribute
    ...
 [End]
 
   [Attribute]
 Name=schemaLocation
 Type=String
    AppSpecificInfo=attr_name=schemaLocation;type=xsischemalocation
    ...
 [End]
 
   [Attribute]
    Name=TaxInfo
    Type=TopLevel_TaxInfoType
    AppSpecificInfo=elem_name=TaxInfo
    ...
 [End]
 
   [Attribute]
 Name=BillTo
    Type=TopLevel_AddressType
    AppSpecificInfo=elem_name=BillTo;elem_ns=http://www.example.com/ns2
    ...
 [End]
 ...
 [End]
 

±ÔÁ¤µÈ ±¸¼º¿ä¼Ò À̸§

XML ¹®¼­¿¡¼­, À̸§ °ø°£°ú ¿¬°üµÈ ±¸¼º¿ä¼ÒÀÇ À̸§Àº ´ÙÀ½°ú °°ÀÌ ±ÔÁ¤ ¶Ç´Â ±ÔÁ¤µÇÁö ¾Ê½À´Ï´Ù.

schema ¿ä¼ÒÀÇ elementFormDefault ¼Ó¼ºÀº ·ÎÄ÷Π¼±¾ðµÈ ¿ä¼Ò À̸§ÀÇ ±ÔÁ¤ ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

±âº»ÀûÀ¸·Î, ·ÎÄ÷Π¼±¾ðµÈ ¿ä¼Ò´Â ±ÔÁ¤µÇÁö ¾ÊÀ¸¸ç ±âº» À̸§ °ø°£¿¡ ¼ÓÇÕ´Ï´Ù.

elementFormDefault ¼Ó¼º °ªÀº Ç¥ 25¿¡¼­Ã³·³ Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡¼­ elem_fd ÅÂ±× °ªÀ» ÆÇº°ÇÕ´Ï´Ù.


Ç¥ 25. elem_fd ÅÂ±× ¼³Á¤
elementFormDefault °ª elem_fd ÅÂ±× °ª
"unqualified"(¶Ç´Â ¼Ó¼ºÀÌ ÁöÁ¤µÇÁö ¾ÊÀ½) elem_fd=unqualified
"qualified" elem_fd=qualified

¿¹¸¦ µé¾î, ±×¸² 23¿¡ ÀÖ´Â ½ºÅ°¸¶ ¹®¼­ÀÇ schema ¿ä¼Ò¿¡´Â

elementFormDefault ¼Ó¼ºÀÌ ¾ø½À´Ï´Ù. µû¶ó¼­ ÀÌ ½ºÅ°¸¶ ¹®¼­ÀÇ ¸ðµç Business Object Á¤ÀÇ¿¡ ÀÖ´Â Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸(BOPrefix_TopLevel, BOPrefix_TopLevel_Customer ¹× BOPrefix_TopLevel_TaxInfoType. ¿©±â¼­ BOPrefix ¹× TopLevelÀº ÀÌ ODA ±¸¼º µî·Ï Á¤º¸ °ªÀÓ)¿¡´Â ´ÙÀ½ űװ¡ ÀÖ½À´Ï´Ù.

elem_fd=unqualified
 

ÁÖ:
½ºÅ°¸¶ ¹®¼­ÀÇ schema ¿ä¼Ò¿¡ ´ÙÀ½ ¼Ó¼ºÀÌ Æ÷ÇÔµÈ °æ¿ì, ÀÌ ¼¼ °¡Áö Business Object Á¤ÀÇ¿¡ ´ëÇÑ Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ÀÌ¿Í µ¿ÀÏÇÑ Å±װ¡ Æ÷ÇԵ˴ϴÙ.
elementFormDefault="unqualified"
 

°³º° XML ¿ä¼Ò¿¡ form ¼Ó¼ºÀÌ Æ÷ÇԵǾî ÀÖ´Â °æ¿ì, ÀÌ form ¼Ó¼º °ªÀº

elementFormDefault ¼Ó¼ºÀÇ ¼³Á¤À» ´ëüÇÕ´Ï´Ù.

schema ¿ä¼ÒÀÇ elementFormDefault ¼Ó¼ºÀº ¿ä¼Ò À̸§ÀÇ ±ÔÁ¤ ¿©ºÎ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

±âº»ÀûÀ¸·Î, ¼Ó¼º À̸§Àº ±ÔÁ¤µÇÁö ¾Ê°í ÀÓÀÇÀÇ À̸§ °ø°£¿¡ ¼ÓÇÏÁö ¾Ê½À´Ï´Ù.

attributeFormDefault ¼Ó¼º °ªÀº Ç¥ 26¿¡¼­Ã³·³, elementFormDefault ¼Ó¼º °ªÀÌ elem_fd ÅÂ±× °ªÀ» ÆÇº°ÇÏ´Â °Í°ú µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ÀÇ attr_fd ÅÂ±× °ªÀ» ÆÇº°ÇÕ´Ï´Ù.


Ç¥ 26. attr_fd ÅÂ±× ¼³Á¤
attributeFormDefault °ª elem_fd ÅÂ±× °ª
"unqualified"(¶Ç´Â ¼Ó¼ºÀÌ ÁöÁ¤µÇÁö ¾ÊÀ½) attr_fd=unqualified
"qualified" attr_fd=qualified

¿¹¸¦ µé¾î, ±×¸² 23¿¡ ÀÖ´Â ½ºÅ°¸¶ ¹®¼­ÀÇ schema ¿ä¼Ò¿¡´Â

attributeFormDefault ¼Ó¼ºÀÌ ¾ø½À´Ï´Ù. µû¶ó¼­ ÀÌ ½ºÅ°¸¶ ¹®¼­ÀÇ ¸ðµç Business Object Á¤ÀÇ¿¡ ÀÖ´Â Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸(BOPrefix_TopLevel, BOPrefix_TopLevel_Customer ¹× BOPrefix_TopLevel_TaxInfoType. ¿©±â¼­ BOPrefix ¹× TopLevelÀº ÀÌ ODA ±¸¼º µî·Ï Á¤º¸ °ªÀÓ)¿¡´Â ´ÙÀ½ űװ¡ ÀÖ½À´Ï´Ù.

attr_fd=unqualified
 

ÁÖ:
½ºÅ°¸¶ ¹®¼­ÀÇ schema ¿ä¼Ò¿¡ ´ÙÀ½ ¼Ó¼ºÀÌ Æ÷ÇÔµÈ °æ¿ì, ÀÌ ¼¼ °¡Áö Business Object Á¤ÀÇ¿¡ ´ëÇÑ Business Object ·¹º§ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ÀÌ¿Í µ¿ÀÏÇÑ Å±װ¡ Æ÷ÇԵ˴ϴÙ.
attributeFormDefault="unqualified"
 

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

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

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


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

elem_name=XML ¿ä¼Ò À̸§

elem_ns=¿ä¼Ò Á¤ÀÇ¿¡ ´ëÇÑ À̸§ °ø°£

elem_fd=¼Ó¼º ¾ç½Ä °ª

XML ¿ä¼ÒÀÇ °æ¿ì
º¹ÇÕ À¯ÇüÀÇ XML ¿ä¼Ò

type=pcdata

º¹ÇÕ À¯ÇüÀÇ XML ¿ä¼ÒÀÇ °æ¿ì
XML ¿ä¼ÒÀÇ ¼Ó¼º

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

type=attribute

attr_ns=¼Ó¼º Á¤ÀÇ¿¡ ´ëÇÑ À̸§ °ø°£

attr_fd=¼Ó¼º ¾ç½Ä °ª

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

escape=true

Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â XML ¿ä¼Ò ¶Ç´Â ¼Ó¼ºÀÇ °æ¿ì
XML ¹®¼­¿¡ Ãß°¡ÇÒ ÁÖ¼® type=comment XML ÁÖ¼®ÀÇ °æ¿ì
ó¸® ¸í·É¾î type=pi XML ó¸® ¸í·É¾îÀÇ °æ¿ì
XML ÀνºÅϽºÀÇ schemaLocation ¶Ç´Â

noNamespaceSchemaLocation ¼Ó¼º

type=xsischemalocation

type=xsinoNSlocation

XML ½ºÅ°¸¶ À§Ä¡ÀÇ °æ¿ì

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

XML ¿ä¼ÒÀÇ °æ¿ì

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

elem_name=XML ¿ä¼Ò À̸§
 
 

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

´ÙÀ½°ú °°Àº °æ¿ì Business Object ¼Ó¼ºÀÌ XML ¿ä¼Ò¸¦ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

XML ¿ä¼Ò¸¦ ³ªÅ¸³»´Â Business Object ¼Ó¼º ¶ÇÇÑ ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ ű׸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

º¹ÇÕ À¯ÇüÀÇ XML ¿ä¼ÒÀÇ °æ¿ì

Business Object Á¤Àǰ¡ XML º¹ÇÕ À¯Çü(complexType)À» ³ªÅ¸³»´Â °æ¿ì, ÀÌ º¹ÇÕ À¯ÇüÀÇ ³»¿ëÀº ÀÌ Business Object Á¤ÀÇ¿¡¼­ ´Ü¼ø(String) ¼Ó¼ºÀ¸·Î Ç¥½ÃµË´Ï´Ù.

ÀÌ Business Object ¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸°¡ ¿ä¼Ò À̸§À» ½Äº°ÇÏ·Á¸é ¹Ýµå½Ã elem_name ű׸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

ÁÖ:
ÀÌ Å±׿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â XML ¿ä¼ÒÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML º¹ÇÕ À¯ÇüÀÇ °æ¿ì, Business Object ¼Ó¼ºÀº Ç¥ 28¿¡¼­Ã³·³ º¹ÇÕ À¯Çü ³»¿ëÀ» ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.


Ç¥ 28. XML º¹ÇÕ À¯ÇüÀÇ ³»¿ë
º¹ÇÕ À¯Çü ¿ä¼ÒÀÇ À¯Çü ¼³¸í ¼Ó¼º ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸
´Ü¼ø XML ¿ä¼Ò ¹®ÀÚ ³»¿ë¸¸ ÀÖ´Â ¿ä¼Ò. ´Ù¸¥ ¾î¶°ÇÑ ¿ä¼Ò ¶Ç´Â XML ¼Ó¼ºµµ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù. º¹ÇÕ À¯Çü¿¡¸¸ ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù. type=pcdata
´Ü¼ø ³»¿ë ¹®ÀÚ µ¥ÀÌÅ͸¸(¿ä¼Ò°¡ ¾Æ´Ô) type=pcdata;notag
¼Ó¼ºÀÌ ÀÖ´Â XML ¿ä¼Ò ¹®ÀÚ µ¥ÀÌÅÍ ¹× ÇÏÀ§ ¿ä¼Ò¿Í ¼Ó¼ºÀÇ Á¶ÇÕÀÌ ¸ðµÎ ÀÖ´Â ¿ä¼Ò

¾øÀ½

ÀÌ·¯ÇÑ À¯ÇüÀÇ XML ¿ä¼Ò´Â ´ÜÀÏ Business Object ¼Ó¼ºÀ¸·Î¼­°¡ ¾Æ´Ñ Business Object Á¤ÀǷΠǥ½ÃµÇ¾î¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â ½ºÅ°¸¶ ¹®¼­¸¦ ±â¹ÝÀ¸·Î ÇÏ´Â Business Object Á¤ÀǸ¦ ÂüÁ¶ÇϽʽÿÀ.

type=pcdata ű׸¦ »ç¿ëÇÏ´Â ÇÑ ¿¹·Î, ´Ü¼ø XML ¿ä¼Ò¸¸ ÀÖ´Â TaxInfoType º¹ÇÕ À¯Çü¿¡ ´ëÇÑ Á¤Àǰ¡ ±×¸² 23ÀÇ ½ºÅ°¸¶ ¹®¼­¿¡ µé¾î ÀÖ½À´Ï´Ù.

TaxInfoType XML º¹ÇÕ À¯Çü¿¡ ´ëÇÑ Business Object Á¤ÀÇ(BOPrefix_TopLevel_TaxInfoType. ¿©±â¼­ BOPrefix ¹× TopLevelÀº °¢°¢ À̸§À» ÁöÁ¤ÇÑ ODA ±¸¼º µî·Ï Á¤º¸ °ªÀÓ)¿¡´Â µÎ °¡Áö ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. °¢ ¼Ó¼ºÀº ±×¸² 27¿¡ Ç¥½ÃµÈ ´ë·Î ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸ÀÇ ¿¬°üµÈ XML ºÎ¼Ó ¿ä¼Ò À̸§À» °®°Ô µË´Ï´Ù. ÀÌ º¹ÇÕ À¯Çü¿¡´Â ´Ü¼ø XML ¿ä¼Ò¸¸ ÀÖÀ¸¹Ç·Î(ÇÏÀ§ ¿ä¼Ò ¶Ç´Â ¼Ó¼ºÀÌ ¾øÀ½), ÇØ´ç Business Object ¼Ó¼º¿¡µµ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ type=pcdata űװ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

±×¸² 27. ´Ü¼ø ¿ä¼Ò°¡ ÀÖ´Â XML ¿ä¼Ò À¯Çü¿¡ ´ëÇÑ »ùÇà Business Object Á¤ÀÇ

[BusinessObjectDefinition]
 Name=BOPrefix_TopLevel_TaxInfoType
 AppSpecificInfo=target_ns=;elem_fd=unqualified;attr_fd=unqualified
 ...
 [End]
 
[Attribute]
 Name=SSN
 Type=String
 AppSpecificInfo=elem_name=SSN;type=pcdata
 ...
 [End]
 
[Attribute]
 Name=State
 Type=String
 AppSpecificInfo=elem_name=SSN;type=pcdata
 ...
 [End]
 

type=pcdata ÅÂ±×¿Í °áÇÕÇØ¼­ notag Ű¿öµå¸¦ »ç¿ëÇÏ´Â ÇÑ ¿¹·Î, Price¶ó´Â XML ¿ä¼Ò°¡ ´Ü¼ø ³»¿ë¸¸À» °®´Â Áï, ¹®ÀÚ µ¥ÀÌÅ͸¸À» Æ÷ÇÔÇÏ´Â PriceType º¹ÇÕ À¯ÇüÀ̶ó°í °¡Á¤ÇϽʽÿÀ.

ÀÌ °æ¿ì, simpleContent ¿ä¼Ò°¡ Currency ¼Ó¼ºÀ» Á¤ÀÇÇß°í, Price¿¡ ´ëÇÑ µ¥ÀÌÅͰ¡ ÇÊ¿äÇÕ´Ï´Ù.

<xsd:element name="Price" type="PriceType">
     <xsd:complexType name="PriceType">
         <xsd:simpleContent>
             <xsd:extension base="xsd:decimal">
                 <xsd:attribute name="Currency" type="xsd:NMTOKEN"/>
             </xsd:extension>
         </xsd:simpleContent>
     </xsd:complexType>
 </element>
 

PriceType º¹ÇÕ À¯Çü¿¡ ´ëÇÑ Business Object Á¤ÀÇ¿¡´Â ´Ü¼ø ³»¿ë°ú ¿¬°üµÈ ¹®ÀÚ µ¥ÀÌÅ͸¦ º¸À¯ÇÏ´Â ¼Ó¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¼Ó¼º¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ´ÙÀ½ÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

type=pcdata;notag
 

notag Ű¿öµå´Â XML Data Handler°¡ Áߺ¹ ½ÃÀÛ Å±×(Çϳª´Â Business Object Á¤ÀÇ¿ë, ´Ù¸¥ Çϳª´Â ¼Ó¼º¿ë)¸¦ »ý¼ºÇÏÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù.

XML Data Handler´Â ÇØ´ç ¼Ó¼º¿¡ ´ëÇÑ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ notag°¡ Ç¥½ÃµÇÁö ¾ÊÀ¸¸é ¸ðµç Business Object ¼Ó¼º¿¡ ´ëÇØ ½ÃÀÛ ¹× ³¡ ű׸¦ ÀÛ¼ºÇÕ´Ï´Ù.

Price ÇÏÀ§ Business Object Á¤ÀÇ´Â ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.

[BusinessObjectDefinition]
 Name = Price
 AppSpecificInfo =
  
 [Attribute]
 Name = Currency
 Type = String
 AppSpecificInfo = attr_name=Currency;type=attribute;
 ...
 [End]
  
 [Attribute]
 Name = Price
 Type = String
 AppSpecificInfo = elem_name=Price;type=pcdata;notag
 ...
 [End]
 

Price µ¥ÀÌÅ͸¦ º¸À¯Çϱâ À§ÇÑ Business Object ¼Ó¼ºÀÌ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. Price µ¥ÀÌÅÍÀÇ ¼Ó¼ºÀº ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡¼­ Data Handler°¡ ¼Ó¼º¿¡ ´ëÇØ ½ÃÀÛ ¹× ³¡ ű׸¦ ÀÛ¼ºÇÏÁö ¾Êµµ·Ï notag¸¦ ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, Data Handler´Â Price µ¥ÀÌÅÍ¿¡ ´ëÇØ »õ XML ¿ä¼Ò¸¦ »ý¼ºÇÏÁö ¾Ê°í »óÀ§ ¿ä¼Ò¿¡¸¸ µ¥ÀÌÅ͸¦ Ãß°¡ÇÕ´Ï´Ù.

¶ÇÇÑ Currency ¼Ó¼º °ªÀ» º¸À¯Çϱâ À§ÇØ Á¸ÀçÇØ¾ß ÇÏ´Â ´Ù¸¥ ¼Ó¼ºÀÌ Business Object Á¤ÀÇ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ´Ü¼ø ³»¿ëÀÌ ¼Ó¼ºÀ» Æ÷ÇÔÇϸé, Business Object Á¤Àǵµ °¢ XML ¼Ó¼ºÀ» À§ÇÑ ¼Ó¼ºÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â type=attribute űװ¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

ÀÚ¼¼ÇÑ Á¤º¸´Â XML ¼Ó¼ºÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML ¼Ó¼ºÀÇ °æ¿ì

Business Object Á¤Àǰ¡ XML À¯Çü ¶Ç´Â º¹ÇÕ À¯ÇüÀ» ³ªÅ¸³»´Â °æ¿ì, ½ºÅ°¸¶ ¹®¼­°¡ ÀÌ À¯Çü¿¡ ´ëÇØ ¼±¾ðÇÏ´Â ¼Ó¼ºÀº Business Object Á¤ÀÇ¿¡¼­ ¼Ó¼ºÀ¸·Î ³ªÅ¸³³´Ï´Ù. Business Object ¼Ó¼ºÀÌ XML ¿ä¼ÒÀÇ ¼Ó¼ºÀ» ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸´Â ¹Ýµå½Ã ´ÙÀ½ ű׸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

ÁÖ:
À̵é ű׿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â XML ¼Ó¼ºÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ. type=attribute ÅÂ±× »ç¿ë¿¡ ´ëÇÑ ¿¹´Â º¹ÇÕ À¯ÇüÀÇ XML ¿ä¼ÒÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML ¼Ó¼ºÀ» ³ªÅ¸³»´Â Business Object ¼Ó¼º ¶ÇÇÑ ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ ű׸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

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

³»¿ë¿¡ Ư¼ö ¹®ÀÚ°¡ Æ÷ÇԵǾî ÀÖ´Â XML ¿ä¼Ò ¶Ç´Â XML ¼Ó¼ºÀ» ³ªÅ¸³»´Â Business Object ¼Ó¼º¿¡´Â XML Data Handler¿¡ ÀÇÇÑ À̽ºÄÉÀÌÇÁ 󸮰¡ ÇÊ¿äÇÕ´Ï´Ù.

Data Handler¿¡ À̽ºÄÉÀÌÇÁ 󸮸¦ ¼öÇàÇØ¾ß ÇÔÀ» ¾Ë¸®·Á¸é, Business Object ¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ űװ¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

escape=true
 

½ºÅ°¸¶ ¹®¼­¸¦ »ç¿ëÇÏ´Â XML ¹®¼­¸¦ À§ÇØ À̽ºÄÉÀÌÇÁ 󸮸¦ ÁöÁ¤ÇÏ´Â ´Ü°è´Â DTD¸¦ »ç¿ëÇÏ¿© ½ºÅ°¸¶¸¦ ¼³¸íÇÏ´Â XML ¹®¼­¸¦ À§ÇØ À̽ºÄÉÀÌÇÁ 󸮸¦ ÁöÁ¤ÇÏ´Â °Í°ú µ¿ÀÏÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â Ư¼ö ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â XML ¿ä¼Ò ¶Ç´Â ¼Ó¼ºÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML ÁÖ¼®ÀÇ °æ¿ì

XML Data Handler°¡ Business Object¸¦ XML ¹®¼­·Î º¯È¯ÇÏ´Â °æ¿ì, ¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ ´ÙÀ½ ű׸¦ Æ÷ÇÔ½ÃÄÑ XML ¹®¼­¿¡ XML ÁÖ¼®À» Ãß°¡Çϵµ·Ï ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.


 type=comment
 

XML ODA´Â XML ÁÖ¼®¿¡ ´ëÇÑ Business Object ¼Ó¼ºÀ» ÀÚµ¿À¸·Î »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº ¼öµ¿À¸·Î Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù. ½ºÅ°¸¶ ¹®¼­¿¡¼­ ¼³¸íÇÏ´Â ´ë·Î XML ¹®¼­¿¡ ÁÖ¼®À» Ãß°¡ÇÏ´Â ´Ü°è´Â DTD°¡ ¼³¸íÇÏ´Â XML ¹®¼­¿¡ ´ëÇÑ ÁÖ¼®À» Á¤ÀÇÇÏ´Â ´Ü°è¿Í µ¿ÀÏÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â XML ÁÖ¼®ÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

XML ¹®¼­¿¡ XML ó¸® ¸í·É¾î°¡ ÀÖ´Â °æ¿ì, ½ºÅ°¸¶ ¹®¼­¿Í ¿¬°üµÈ ÀϺΠBusiness Object Á¤ÀÇ¿¡ ó¸® °ªÀ» º¸À¯ÇÏ´Â ¼Ó¼ºÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÌ ¼Ó¼ºÀÇ ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡´Â ´ÙÀ½ type űװ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

type=pi
 
 

¿¹¸¦ µé¾î, XML Data Handler°¡ XML ¹®¼­¸¦ Business Object·Î º¯È¯ÇÏ´Â °æ¿ì, XML ¹öÀü¿¡ XMLDeclarationÀ̶ó´Â ÃÖ»óÀ§ ·¹º§ Business Object Á¤ÀÇÀÇ Æ¯¼ö ¼Ó¼ºÀ» ºÎ¿©ÇÕ´Ï´Ù. ±×¸² 19¿¡ ÀÖ´ÂÀÇ ÃÖ»óÀ§ ·¹º§ Business Object¿¡¼­´Â TopLevel_Customer Business Object Á¤ÀÇÀÇ XMLDeclaration ¼Ó¼ºÀ» º¸¿©ÁÝ´Ï´Ù. type=pi ű׿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â XML ó¸® ¸í·É¾îÀÇ °æ¿ì¸¦ ÂüÁ¶ÇϽʽÿÀ.

XML ½ºÅ°¸¶ À§Ä¡ÀÇ °æ¿ì

½ºÅ°¸¶ ¹®¼­¸¦ À§ÇØ ½ºÅ°¸¶ À§Ä¡¸¦ ÂüÁ¶ÇÏ´Â XML ¹®¼­´Â ´ÙÀ½°ú °°Àº Á¤º¸¸¦ Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù.

¿¹¸¦ µé¸é, XML ¹®¼­°¡ ±×¸² 28¿¡ ÀÖ´Â À̸§ °ø°£ ¼±¾ðÀ» °¡Áø´Ù°í °¡Á¤ÇϽʽÿÀ.

±×¸² 28. XML ¹®¼­ÀÇ »ùÇà ½ºÅ°¸¶ À§Ä¡ Á¤ÀÇ

<order xmlns="http://sampleDoc.org.ord"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.example.com/order order.xsd">
    ...
 /<order>
 

½ºÅ°¸¶ ¹®¼­´Â ´ë»ó À̸§ °ø°£À» Á¤ÀÇÇÏ´Â ´ÙÀ½ À̸§ °ø°£ ¼±¾ðÀ» °¡Áú ¼ö ÀÖ½À´Ï´Ù.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns="http://www.example.com/order"
      targetNamespace="http://www.example.com/order">
 

ÀÌ XML ¹®¼­¸¦ ³ªÅ¸³»´Â Business Object°¡ schemaLocation ¼Ó¼º¿¡ Á¤º¸¸¦ º¸À¯ÇÏ·Á¸é, ÇØ´ç Business Object Á¤Àǰ¡ ÀÌ ½ºÅ°¸¶ À§Ä¡ Á¤º¸¿¡ ´ëÇÑ ¼Ó¼ºÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ·çÆ® ¿ä¼Ò Business Object Á¤ÀÇ¿¡¼­, ÀÌ ½ºÅ°¸¶ À§Ä¡ Á¤º¸´Â ´ÙÀ½°ú °°ÀÌ Ç¥½ÃµË´Ï´Ù.

ÀÌ XML ¹®¼­¸¦ ³ªÅ¸³»´Â ½ºÅ°¸¶ ¹®¼­ÀÇ ·çÆ® ¿ä¼Ò Business Object Á¤ÀÇ¿¡´Â ½ºÅ°¸¶ À§Ä¡¿¡ ´ëÇÑ ´ÙÀ½ ¼Ó¼ºÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

[Attribute]
 Name=schemaLocation
 Type=String
 AppSpecificInfo=type=xsischemalocation;
 

ÁÖ:
¼Ó¼ºÀÌ schemaLocation ¶Ç´Â noNamespaceSchemaLocation XML ¼Ó¼ºÀ» ³ªÅ¸³»´Â °æ¿ì, ÇØ´ç ÀÀ¿ëÇÁ·Î±×·¥ ƯÁ¤ Á¤º¸¿¡ type=attribute űװ¡ ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù.

XML ODA´Â ÇØ´ç DoctypeorSchemaLocation ODA ±¸¼º µî·Ï Á¤º¸ÀÇ °ª¿¡ µû¶ó ÃÖ»óÀ§ ·¹º§ Business Object¿¡ schemaLocation ¶Ç´Â noNamespaceSchemaLocation ¼Ó¼ºÀ» »ý¼ºÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÕ´Ï´Ù.

½ºÅ°¸¶ ¹®¼­¿¡¼­ Business Object Á¤ÀÇ ÀÛ¼º

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

Áö¿øµÇ´Â ½ºÅ°¸¶ ¹®¼­ ±¸Á¶

XML ODA´Â ½ºÅ°¸¶ÀÇ ¿ä¼Ò ¼±¾ðÀ» Business Object Á¤ÀÇÀÇ ¼Ó¼ºÀ¸·Î ¸ÊÇÎÇÕ´Ï´Ù. Business Object ¼Ó¼º À¯ÇüÀº XML ¿ä¼Ò ¼±¾ð¿¡ ÁöÁ¤µÈ À¯Çü¿¡ µû¶ó ´Ù¸¨´Ï´Ù. ´Ü¼ø À¯ÇüÀº String Java À¯ÇüÀ¸·Î ¸ÊÇε˴ϴÙ. º¹ÇÕ À¯ÇüÀº Business Object Á¤ÀÇ·Î ¸ÊÇε˴ϴÙ.

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

Áö¿øµÇÁö ¾Ê´Â ½ºÅ°¸¶ ¹®¼­ ±¸Á¶

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

Copyright IBM Corp. 1997, 2003