[XML.NET] 1. XML 소개

이 책은 XML의 기본적인 내용을 소개하고 .NET Framework에서 제공하는 다양한 XML 기술을 소개합니다.

.NET Framework에서는 다양한 XML 기술을 제공합니다. 이러한 XML.NET 기술을 이용하면 높은 생산성과 표준 기반의 데이터 표준화 및 ADO.NET 기술 등을 효과적으로 사용할 수 있습니다.

XML은 여러분이 아시는 것처럼 W3C 표준으로 XML.NET에서도 W3C에서 권장하는 XML과 스키마, DOM 등의 표준을 따르고 있습니다. 이는 다른 플랫폼의 서비스나 서로 다른 시스템 사이의 데이터 표준화 및 상호 운용을 보장한다는 의미입니다.

XML(Extensible Markup Language)은 W3C에서 권장하는 확장 가능한 마크업 언어입니다.

XML은 대부분의 Markup 언어처럼 데이터의 메타 정보를 태그로 구성하여 나타내는 언어입니다.

예를 들어 학번이 20160823, 이름이 “홍길동”, 나이가 20인 학생 데이터를 다음과 같이 표현할 수 있습니다.

<학생>
  <학번> 20160823</학번>
  <이름> 홍길동 </이름>
  <나이> 20 </나이>
<학생>

실제 학생 데이터는 20160823, 홍길동, 20 이며 <학생>, <학번>, <이름>, <나이>는 실제 데이터가 무엇을 의미하는지 나타낸 메타 데이터입니다.

XML은 메타 데이터를 표현하는 마크(태그)를 확장할 수 있어서 어떠한 데이터도 표현할 수 있습니다. 이러한 특징은 프로그래밍 언어나 시스템에 독립적인 특징을 갖게 합니다. 여기서 독립적이라는 말은 특정 언어나 시스템에서만 사용할 수 있는 것이 아니라 모든 언어와 시스템에서 사용할 수 있다는 의미로 해석할 수 있습니다.

XML의 구조가 HTML과 비슷하고 데이터를 표현할 때 사용할 수 있는 특징으로 많은 이들은 단순히 문서 편집기를 이용하여 데이터를 표현할 때 사용하는 것으로 생각하기도 합니다. 하지만 XML의 강력함은 대부분의 개발 환경에서 XML 데이터를 생성하고 분석하는 기술을 제공하는 특징에서 나온다고 할 수 있습니다.

이러한 특징은 하나의 시스템 내의 데이터를 생성, 가공, 분석할 때 뿐만 아니라 서로 다른 시스템이나 서비스 사이에 데이터를 주고 받고 통합할 수도 있습니다.

특히 XML의 구조를 XML 스키마로 표현할 수 있고 XML 스키마 또한 XML 구조를 갖고 있어 데이터를 주고 받을 때 어떠한 구조의 데이터를 주고 받는지 약속하는 것이 수월합니다.

특히 XML은 안전한 구조를 보장하기 때문에 XML에 관한 기술 개발에도 비용을 줄일 수 있습니다. 여기서 안전한 구조라는 말은  요소와 요소 사이의 부모-자식 관계가 명확하고 시작 요소가 있으면 반드시 종료 요소가 있는 것을 말합니다.

다음은 종료 요소가 없어 안전하지 않은 구조입니다. XML에서는 이와 같은 구조를 허용하지 않습니다.

<A>
   <B>
     <C>
   </B>
</A>

다음은 B와 C의 관계가 서로 엉켜있어 안전하지 않은 구조입니다. XML에서는 이와 같은 구조를 허용하지 않습니다.

<A>
   <B>
     <C>
     </B>
   </C>
</A>

다음은 안전한 구조입니다.

<A>
   <B>
      <C>
      </C>
   </B>
</A>