반응형

◆ ID
XML에서는 내부 응용 프로그램에서 구성요소들을 구분하기 위해 ID를 사용합니다.
ID 값은 특별한 의미를 가지므로 XML 처리기는 문서에서 ID형식의 속성값이 같은 두 개의 구성요소가 존재할 수 없다는 것을 알고 있습니다.
속성의 형식을 ID 형식으로 지정하기만 하면 속성의 이름에 관계 없이 ID속성이 됩니다.
그리고 #FIXED 속성은 같은 값을 갖기 때문에 ID 형식에서는 #FIXED를 사용할 수 없고 #REQUIRED를 사용합니다.
<?xml version = "1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [                           
<!ELEMENT DOCUMENT (CUSTOMER)*>                
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>         
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>           
<!ELEMENT LAST_NAME (#PCDATA)>                  
<!ELEMENT FIRST_NAME (#PCDATA)>                 
<!ELEMENT DATE (#PCDATA)>                      
<!ELEMENT ORDERS (ITEM)*>                      
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>         
<!ELEMENT PRODUCT (#PCDATA)>                   
<!ELEMENT NUMBER (#PCDATA)> 
<!ELEMENT PRICE (#PCDATA)>                     
<!ATTLIST CUSTOMER
    CUSTOMER_ID ID #REQUIRED>
]>
<DOCUMENT>
    <CUSTOMER CUSTOMER_ID = "C1232231">
.
.
.
    </CUSTOMER>
    <CUSTOMER CUSTOMER_ID = "C1232232">
            .
.
.
    </CUSTOMER>
</DOCUMENT>

◆ IDREF
IDREF 형식은 문서의 구조에 대한 내용을 지정하기 위한 속성을 사용하고자 할 때 지정합니다. 특히 구성요소들 사이의 관계에 대한 내용을 지정하기 위해 사용하며 IDREF 속성은 문서의 다른 구성요소에 대한 ID값을 저장합니다.
<?xml version = "1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [                           
<!ELEMENT DOCUMENT (CUSTOMER)*>                
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>         
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>           
<!ELEMENT LAST_NAME (#PCDATA)>                  
<!ELEMENT FIRST_NAME (#PCDATA)>                 
<!ELEMENT DATE (#PCDATA)>                      
<!ELEMENT ORDERS (ITEM)*>                      
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>         
<!ELEMENT PRODUCT (#PCDATA)>                   
<!ELEMENT NUMBER (#PCDATA)> 
<!ELEMENT PRICE (#PCDATA)>                     
<!ATTLIST CUSTOMER
    CUSTOMER_ID ID #REQUIRED
    EMPLOYER_ID IDREF #IMPLIED>
]>
<DOCUMENT>
    <CUSTOMER CUSTOMER_ID = "C1232231">
.
.
.
    </CUSTOMER>
    <CUSTOMER CUSTOMER_ID = "C1232232" EMPLOYER_ID="C1232231">
.
.
.
    </CUSTOMER>
</DOCUMENT>
위와 같이 문서의 일반적인 중첩 구조에 반영되어 있지 않은 부모-자식 관계를 설정하고자 하는 경우 구성요소의 IDREF 속성에 부모에 해당하는 구성요소의 ID를 지정합니다.
XML 처리기는 문서의 ID와 IDREF 구조를 내부 응용 프로그램으로 전달해주고, 응용 프로그램에서는 그 정보를 사용하여 문서의 구성요소 간의 관계를 재구성하루 수 있습니다.
반응형

+ Recent posts