[XML.NET] 3. XML 문서 작성

XML 문서를 작성할 때는 먼저 작성할 개체의 요소를 파악하고 분석합니다. 그리고 요소를 추상화한 형태로 작성하고 요소명과 특성명을 구분해서 정의하세요. 이러한 과정을 거친 후에 XML 문서를 작성하세요.

ehclub.net의 회원 정보를 XML로 표현해 봅시다. 회원의 정보는 아이디, 이름, 이메일, 성별, 나이를 표현하기로 할게요.

먼저 관리할 데이터를 추상화하세요.

이를 구체적으로 표현하기 위한 방법은 많습니다. 하지만 프로그램 방식으로 이를 해독한다고 가정한다면 간단한 구조를 갖는 것이 좋습니다.

간단한 구조를 갖게 구성하기 위한 여러 가지 방법 중에 다음은 기본적인 사항입니다.

필수적인 정보는 요소로 표현

선택적인 정보는 요소나 특성으로 표현해도 무방

여러 가지 의미를 복합해야 하는 부분은 요소로 표현

다음은 대부분 요소를 이용하여 표현한 예입니다.

<?xml version="1.0" encoding="euc-kr" standalone="yes" ?>
<!-- 대부분 요소를 이용하여 표현한 예 -->
<회원목록 site="ehclub.net">
 <회원>
  <필수정보>
   <회원아이디>ehclub</회원아이디>
   <회원이름>장언휴</회원이름>
  </필수정보>
  <선택정보>
   <이메일>jejutour@daum.net</이메일>
   <나이>20</나이>
   <성별>남</성별>   
  </선택정보>
 </회원>
 <회원>
  <필수정보>
   <회원아이디>jejutour</회원아이디>
   <회원이름>장문석</회원이름>
  </필수정보>
  <선택정보>
   <이메일>jejutour@daum.net</이메일>
   <나이>21</나이>
   <성별>남</성별>
  </선택정보>
 </회원>
</회원목록>

다음은 선택 정보를 특성으로 표현한 예입니다.

<?xml version="1.0" encoding="euc-kr" standalone="yes" ?>
<!-- 선택 정보는 특성으로 표현한 예 -->
<회원목록 site="ehclub.net">
 <회원 이메일="jejutour@daum.net" 나이="20" 성별="남">
   <회원아이디>ehclub</회원아이디>
   <회원이름>장언휴</회원이름>
 </회원>
 <회원 이메일="jejutour@daum.net" 나이="21" 성별="남">
   <회원아이디>jejutour</회원아이디>
   <회원이름>장문석</회원이름>
 </회원>
</회원목록>

현재는 특성이 많지 않기 때문에 선택 정보를 특성으로 표현한 것이 간단하게 보일 수 있습니다. 하지만 특성이 많으면 하나의 태그를 한 줄에 보기 힘들고 프로그램에서 해석하는 비용이 많이 들 수도 있습니다. 또한 자식 요소가 너무 많은 것도 같은 문제를 유발할 수 있습니다.

따라서 하나의 요소에 특성과 자식 요소가 특정 개수 미만으로 유지할 수 있게 하세요. 이를 위해 특성을 요소로 바꾸거나 자식 요소를 자손 요소로 변경할 필요가 생길 수 있습니다.

참고로 요소는 Element 특성은 Attribute를 번역한 것입니다. XML만 다루는 곳에서는 Attribute를 속성으로 많이 번역합니다. 하지만 C#에는 Property가 있고 이를 속성으로 번역하여 여기에서는 Attribute를 특성으로 번역할게요.