XML 입문 | XML 기본 | XML 요소 (element)

XML 문서는 하나 하나의 데이터 요소(element)라는 것을 사용하여 작성한다. 여기에서는 요소를 작성하는 방법에 대해 설명한다.

XML 요소

요소의 구문은 다음과 같다.

<요소 이름>내용</요소 이름>

<요소 이름>을 시작 태그, </요소 이름> 종료 태그라고 한다. 시작 태그와 종료 태그 사이에 요소의 “내용"을 텍스트로 작성한다(다른 자식 요소를 포함될 수 있다). 시작 태그에서 종료 태그까지를 요소라고 한다.

요소 이름은 자유롭게 정할 수 있지만, 어떤 데이터인지 보고 알 수 있는 이름으로 하는 것이 좋다.

이전 페이지로 작성된 XML 문서의 샘플를 보도록 하자.

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>바나나</name>
    <color>노랑</color>
  </food>

  <food>
    <name>사과</name>
    <color>빨강</color>
  </food>
</foods>

이 XML 문서에는 <name>바나나</name><color>노랑</color>등의 요소가 포함되어 있다. <name> 바나나 </name>은 “name"에 대한 데이터 값은 “바나나"이고, <color>노랑</color>은 “color"에 대한 데이터 값은 “노랑"이다.

요소 이름의 규칙

요소 이름에는 지금까지의 예제처럼 영문과 숫자 외에 한글을 사용할 수 있다. 다음 예제는 요소 이름에 한글로 작성하였다.

<?xml version="1.0" encoding="UTF-8" ?>
<식료품>
   <음식>
     <이름>바나나</이름>
     <색상>노랑</색상>
   </음식>

   <음식>
     <이름>사과</이름>
     <색>빨강</색상>
   </음식>
</식료품>

샘플은 브라우저에 표시해 보면 다음과 같이 표시된다.

어쨌든 요소 이름은 어떤 데이터에 대한 요소인지를 알 수 있도록 요소 이름을 정해야 한다. 그리고 요소 이름에 숫자를 포함 할 수 있지만 숫자로 시작하는 이름을 붙일 수 없다.

요소의 내용에 다른 요소를 작성

요소의 내용에 다른 요소를 포함 할 수 있다. 이전 샘플을 다시 보도록 하자.

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>바나나</name>
    <color>노랑</color>
  </food>

  <food>
    <name>사과</name>
    <color>빨강</color>
  </food>
</foods>

“food"요소의 시작 태그 <food>와 종료 태그</food> 사이에 <name>바나나</name><color>노랑</color>로 2개의 다른 요소가 작성되어 있다.

이는 “food"에 관한 데이터로 “name"과 “color"에 대한 데이터가 각각의 값은 “name"이 “바나나"이고 “color"가 “노랑"이라는 뜻이다. 여기서 “food"는 “name"과 “color"부모 요소이고 “name"과 “color"는 “food"의 자식 요소가 된다. 요소의 내용에 다른 요소로 정의함으로써 XML 문서의 데이터를 보다 처기하기 쉬워진다.

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>노란 바나나</food>
  <food>빨간 사과</food>
</foods>

또한 부모 요소가 자식 요소를 포함 할 수 있다. 위에 XML 문서는 계층적인 구조이다.

빈 요소(Empty element)

요소는 시작 태그와 종료 태그 사이에 내용을 작성하는 것이지만, 내용이 없는 요소도 존재한다. 이러한 요소를 빈 요소라고 한다. 예를 들어 HTML 문서에는 줄 바꿈을 나타내는 <br> 요소와 이미지를 나타내는 <img> 요소가 빈 요소이다. 요소의 내용으로 텍스트로 작성하는 것이 아니라, 이미지와 같은 데이터가 포함되어 있는 경우에 빈 요소를 사용한다(이미지의 경우 텍스트는 없지만 다른 페이지에서 설명할 “속성"을 사용하여 이미지 파일의 위치 등을 작성한다).

빈 요소의 경우는 내용이 작성하기는 것이 아니기에 요소는 다음과 같이 작성된다.

<요소 이름></요소 이름>

빈 요소의 경우는 시작 태그와 종료 태그를 한번에 다음과 같이 작성할 수 있다.

<요소 이름/>

슬래시 (/) 앞에 공백을 포함 할 수도 있다.

<요소 이름 />

루트 요소(Root element)

XML 문서에는 여러 요소를 포함한다. 그리고 요소에서 다른 요소를 포함 할 수 있다. 여기에서 XML 문서를 작성하는데 있어서 또 다른 중요한 규칙이 있다. 그것은 XML 문서 전체는 XML 선언을 제외하고 하나의 요소에 작성해야 한다는 뜻이다.

이전의 XML 문서의 샘플을 다시 보도록 하자.

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>바나나</name>
    <color>노랑</color>
  </food>

  <food>
    <name>사과</name>
    <color>빨강</color>
  </food>
</foods>

가장 바깥에 “foods"요소가 있고, 이 요소의 내용으로 다른 모든 요소가 작성되어 있다. 가장 바깥에 있는 요소를 루트 요소라고 한다.

예를 들어 아래과 같이 XML 문서는 가장 바깥에 있는 요소가 2개가 되므로, XML 문서로는 올바르지 않다.

<?xml version="1.0" encoding="UTF-8" ?>
<food>
  <name>바나나</name>
  <color>노랑</color>
</food>

<food>
  <name>사과</name>
  <color>빨강</color>
</food>

XML 문서를 작성하려면 반드시 가장 바깥에 있는 계층 요소는 단일 요소가 되도록 해야 한다.




최종 수정 : 2019-10-07