Á¦6Àå. XML Schema

XML SchemaÀÇ ÀåÁ¡

*** Schema¿¡´Â ENTITY ±â´ÉÀÌ ¾ø´Ù => DTD°¡ °è¼Ó »ç¿ëµÉ ÀÌÀ¯...

XML Schema ±âÃÊ

·çÆ® ¿ä¼Ò ¼±¾ð <schema>

<schema   xmlns="URI"
        targetNamespace="URI"
        elementFormDefault="qualified ¶Ç´Â unqualified"
        attributeFormDefault="qualified ¶Ç´Â unqualified"

        version="¹öÀü¹øÈ£">

¿ä¼ÒÀÇ Á¤ÀÇ <element>, <any>, <group>

<element  name="¿ä¼Ò À̸§"     type="(Àü¿ª)¿ä¼Ò Çü½Ä"
                ref="Àü¿ª¿ä¼Ò ÂüÁ¶"   form="qualified ¶Ç´Â unqualified"
                minOccurs="À½¾Æ´Ñ Á¤¼ö"  maxOccurs="À½¾Æ´Ñ Á¤¼ö | unbound"
                default="±âº» °ª"      fixed="°íÁ¤ °ª">
  • Àü¿ª¼±¾ð°ú Áö¿ª¼±¾ð 
    • Àü¿ª¼±¾ð (global declaration) : <schema>ÀÇ ÀڽĿä¼Ò, Schema ¹®¼­¿¡¼­ Àç»ç¿ë°¡´É
    • Áö¿ª¼±¾ð (local declaration) : ƯÁ¤ ÄÁÅÙÃ÷ ³»¿¡¼­¸¸ À¯È¿
  • ¿ä¼ÒÀÇ Çü½Ä ¼±¾ð ¹æ¹ý
    1. Áö¿ªÇü½Ä »ç¿ë : <complexType> ¶Ç´Â <simpleType>À¸·Î ¼±¾ð
    2. <element  name="¼º¸í">
        <complexType>
            ... Çü½Ä Á¤º¸ ...
        </complexType>
      </element>
      <element  name="¼º¸í">
        <simpleType>
            ... Çü½Ä Á¤º¸ ...
        </simpleType>
      </element>
      ¡¡
    3. Àü¿ªÇü½Ä »ç¿ë : type="Àü¿ªÇü½Ä" ¼Ó¼º »ç¿ë
    4. <schema  xmlns="http://www.w3.org/2001/XMLSchema" 
              targetNamespace="http://mm.sm.ac.kr/names" 
              xmlns:mm="http://mm.sm.ac.kr/names" 
              elementFormDefault="qualified">
         <complexType name="À̸§Á¤ÀÇ">
            <sequence>
               <element  name="À̸§"  type="string"/>
               <element  name="º°¸í"  type="string"/>
               <element  name="¼º"  type="string"/>
            </sequence>
            <attribute  name="ȣĪ"  type="string"/>
        </complexType>

         <element  name="¼º¸í"  type="mm:À̸§Á¤ÀÇ"/>
      </schema>


      mm: Ÿ°Ù À̸§°ø°£

      Àü¿ªÇü½Ä(type) ¼±¾ð
        => Àç»ç¿ë °¡´É


      Àü¿ªÇü½Ä »ç¿ë - string 
        => Schema¿¡¼­ ¼±¾ð

      Àü¿ªÇü½Ä »ç¿ë - mm:À̸§Á¤ÀÇ 
        => mm ¹®¼­ ³»¿¡¼­ ¼±¾ð
      ¡¡
    5. ±âÁ¸ Àü¿ª¿ä¼ÒÀÇ ÂüÁ¶ : ref="Àü¿ª¿ä¼Ò" ¼Ó¼º »ç¿ë
    6. <schema  ... 
              xmlns:mm="http://mm.sm.ac.kr/names" ... >
         <element  name="À̸§"  type="string"/>
         <element  name="º°¸í"  type="string"/>
         <element  name="¼º"  type="string"/>

         <complexType name="À̸§Á¤ÀÇ">
            
      <sequence>
                <element  ref="mm:À̸§" />
                <element  ref="mm:º°¸í" />
                <element  ref="mm:¼º" />

             </sequence>
             <attribute  name="ȣĪ"  type="string"/>
        </complexType>

         <element  name="¼º¸í"  type="mm:À̸§Á¤ÀÇ"/>
      </schema>

      mm: Ÿ°Ù À̸§°ø°£

      Àü¿ª¿ä¼Ò ¼±¾ð
       - mm:À̸§, mm:º°¸í, mm:¼º

      Àü¿ªÇü½Ä(type) ¼±¾ð
       - mm:À̸§Á¤ÀÇ


      Àü¿ª¿ä¼Ò »ç¿ë 
        => mm ¹®¼­ ³»¿¡¼­ ¼±¾ð

      Àü¿ªÇü½Ä »ç¿ë - mm:À̸§Á¤ÀÇ 
        => mm ¹®¼­ ³»¿¡¼­ ¼±¾ð
  • ¡¡
  • form ¼Ó¼º : ¿ä¼ÒÀÇ qualification
  • cardinality : 
    • minOccurs="À½¾Æ´Ñ Á¤¼ö"  maxOccurs="À½¾Æ´Ñ Á¤¼ö | unbound"
    • Àü¿ª ¿ä¼Ò¿¡¼­´Â »ç¿ë ºÒ°¡
    • ¿¹
    •   <element  name="º°¸í1"  type="string"  minOccurs="2"  maxOccurs="2">
        <element  ref="mm:º°¸í2"  maxOccurs="10">      <!-- overriding -->
        <element  name="º°¸í3"  type="string"  minOccurs="0"  maxOccurs="unbound">
      ¡¡
  • default  ¼Ó¼º : ¿ä¼ÒÀÇ °ªÀÌ ¾øÀ» ¶§ ´ëü
  • fixed ¼Ó¼º : ¿ä¼ÒÀÇ °ªÀÌ ¾øÀ¸¸é ´ëü, °ªÀÌ ´Ù¸£¸é À¯È¿¼º °ËÁõ ¿À·ù

³»¿ë ¸ðµ¨ <complexType>, <sequence>, <choice>, <group>ÂüÁ¶, <all>

¼Ó¼ºÀÇ ¼±¾ð <attribute>, <attributeGroup>

<attribute  name="¼Ó¼º À̸§"     type="Àü¿ª Çü½Ä"
                ref="Àü¿ª¼Ó¼º ÂüÁ¶"   form="qualified ¶Ç´Â unqualified"
                use="optional | prohibited | required"
                default="±âº» °ª"      fixed="°íÁ¤ °ª">

³»Àå µ¥ÀÌÅÍ Çü½Ä

»ç¿ëÀÚ Á¤ÀÇ µ¥ÀÌÅÍ Çü½Ä <simpleType>

<simpleType  name="À̸§"  final="...">

XML SchemaÀÇ ¹®¼­È­