XML 입문 | XML 기본 | XML 속성 (attribute)
XML 문서에 작성하는 요소에 속성(attribute)이라고 하는 부가적인 정보를 작성하여 넣을 수 있다. 여기에서는 속성을 작성하는 방법과 요소와 속성의 구분에 대해 간단히 설명한다.
속성을 작성하는 방법
속성은 요소 중에서도 시작 태그 안에 작성한다. 구문은 다음과 같다.
<요소명 속성명="속성 값">내용</요소명>
속성명 및 속성 값을 작성한다. 속성 값은 따움표(", ‘)로 묶어 작성한다. 예를 들어 “food"요소에 속성명이 “id"이고, 속성 값이 “001"인 경우에는 다음과 같이 작성한다.
<food id="001">바나나</food>
하나의 요소에 여러개의 속성을 작성할 수 있다. 각 속성 간에 공백을 사이에 넣고 속성 명과 속성 값 쌍을 작성한다. 여러 속성을 작성할 시에는 동일한 요소에 동일한 속성을 여러 번 작성할 수 없다.
<요소명 속성명1="속성 값1" 속성명2="속성 값2" 속성명3="속성 값3">내용</요소명>
예를 들면, “food"요소에서 속성명이 “id"이고, 속성 값이 “001"이며 다른 속성으로 속성명이 “저장 위치"에 속성 값이 “작은 냉장고"인 경우에는 다음 같이 작성한다.
<food id="001" 저장위치="작은 냉장고">바나나</food>
그럼, 지금까지 작성한 XML 문서 샘플에 속성을 추가해 보자.
<?xml version="1.0" encoding="UTF-8" ?>
<foods>
<food id="001">
<name>바나나</name>
<color>노랑</color>
</food>
<food id="002">
<name>사과</name>
<color>빨강</color>
</food>
</foods>
요소와 속성의 구분
요소에 부가적인 데이터를 작성할 때에 사용되는 것이 속성이기도 하지만, 요소에는 내용으로 다른 요소를 자식 요소로 작성할 수 있기에 추가적인 데이터를 자식 요소으로도 작성할 수 있다.
예를 들명, 아래 2개의 샘플은 속성을 사용한 점과 자식 요소를 사용했다는 점이 다르지만, 같은 정보를 나타내는 XML 문서이다.
<?xml version="1.0" encoding="UTF-8" ?>
<foods>
<food id="001">
<name>바나나</name>
<color>노랑</color>
</food>
<food id="002">
<name>사과</name>
<color>빨강</color>
</food>
</foods>
<?xml version="1.0" encoding="UTF-8" ?>
<foods>
<food>
<id>001</id>
<name>바나나</name>
<color>노랑</color>
</food>
<food>
<id>002</id>
<name>사과</name>
<color>빨강</color>
</food>
</foods>
그럼 속성과 요소를 어떻게 구분하여 사용하면 좋은지 설명하자면, 속성은 동일한 속성을 여러 사용할 수 없다는 점에 규칙상의 제약을 제외하고 어느 쪽을 사용해도 된다. 단, 아주 길거나 줄 바꿈이 포함된 텍스트인 경우에는 자식 요소를 사용하는 것이 적합하다. 그리고 이미지 파일의 위치 등 텍스트로 표시 할 필요가 없는 데이터의 경우도 속성이 적합하다. 외부에 보여줄 필요가 없는 내부적인 데이터에 대해서도 속성을 사용하는 것이 적합할 수도 있다.
이미지를 나타내는 같은 요소의 경우에는 텍스트로 표시 할 내용이 없기에 이미지 파일의 위치는 속성 값으로 작성하고, 요소는 빈 요소로 작성할 수 있다.
<img src="http://www.devkuma.com/sample.jpg"/>
XML은 규칙상에 문제가 없으면 속성이던 자식 요소이던 상관 없다. 단지, 헤깔리지 않도록 어떤한 경우에는 속성을 사용하는 규칙을 정하고, 그 규칙에 따라 작성이 되었을 때에 보다 알아보기 쉬울 것이다.