초보자를 위한 XML 설명

작성자: Colin Wilcox

적용 대상
Microsoft Office 2003

XML(Extensible Markup Language)에 대해 들어 보았을 것입니다. 조직에서 XML을 사용해야 하는 여러 가지 이유에 대해서도 들어 보았을 것입니다. 그러나 XML이란 정확히 무엇일까요? 이 문서에서 XML의 기본 사항 즉, 정의와 작동 방법에 대해 설명할 것입니다. 이 문서를 읽은 후에는 IT 부서의 XML 전문가와 전문적인 수준의 대화를 나눌 수 있게 될 것입니다.

XML에 대한 자세한 내용은 이 문서 끝 부분의 링크를 통해 추가 정보를 볼 수 있습니다. 전문가가 아니더라도 XML의 정의, 작동 방법 그리고 XML로 무엇을 할 수 있는지 이해할 수 있습니다.

마크업과 태그에 대한 개요

사람들은 수세기 동안 문서를 만들어 왔으며 그 만큼 오랫동안 자신의 문서에 표시(mark up)를 해 왔습니다. 예를 들면 학교 선생님들은 항상 학생들의 시험지에 표시를 합니다. 이를 통해 학생들에게 단락을 옮기고, 문장의 명확하게 만들고, 틀린 철자를 고치라고 지시합니다. 문서에 표시함으로써 텍스트의 구조, 의미 및 시각적 모양을 조정하고 변경하게 됩니다. Microsoft Office Word의 변경 내용 추적 기능을 사용한 적이 있다면 컴퓨터를 이용한 표시 작업을 수행해 본 적이 있는 것입니다.

컴퓨터 작업에서 "문서에 표시하는 것"이 "마크업"으로 발전했습니다. 마크업이란 태그(때로는 토큰이라고도 함)라고 하는 코드를 사용하여 데이터의 구조와 시각적 모양 그리고 XML의 경우 데이터의 의미를 정의하는 프로세스를 말합니다.

이 문서의 HTML 코드도 현재 사용되고 있는 컴퓨터 마크업의 좋은 예입니다. Internet Explorer에서 이 페이지를 마우스 오른쪽 단추로 클릭하고 소스 보기를 클릭하여 이 문서를 탐색하면 일반 텍스트와 <p><h2>같은 HTML(Hypertext Markup Language) 태그가 혼합되어 있는 것을 보게 될 것입니다. HTML 문서와 XML 문서 안에 있는 태그는 꺽쇠 괄호로 둘러 싸여 있어 알아보기가 쉽습니다. 이 문서의 소스 코드에서 HTML 태그는 각 단락의 시작과 끝을 정의하고 각 이미지의 위치를 표시하는 등의 여러 가지 작업을 수행합니다.

XML 문서에도 태그가 들어 있지만 그 점만 빼고 나머지는 전혀 다릅니다. 다음과 같은 차이가 있습니다.

  • HTML은 데이터의 모양을 정의할 뿐입니다. 즉 표시 언어일 뿐입니다.
  • XML은 데이터의 구조와 의미를 설명합니다. 데이터의 구조와 의미를 설명하는 태그를 사용하면 다양한 방법으로 데이터를 재사용할 수가 있습니다. 예를 들어 많은 양의 영업 데이터를 갖고 있을 때 각 항목이 명확하게 식별되어 있으면 영업 보고서에 필요한 항목만 로드하고 다른 항목은 회계 데이터베이스로 로드할 수 있습니다.
  • HTML은 모든 사용자가 공유하는 미리 정의된 태그 세트만 사용합니다.
  • XML은 데이터와 그 데이터의 구조를 설명하는 데 필요하다면 어떠한 태그도 만들 수 있습니다. 예를 들어 애완 동물에 대한 정보를 저장하고 공유해야 할 경우에는 다음과 같은 XML 코드를 만들 수 있습니다.

<?xml version="1.0"?>
<고양이>
  <이름>나비</이름>
  <품종>샴</품종>
  <나이>6</나이>
  <중성화>예</중성화>
  <발톱 제거>아니요</발톱 제거>
  <등록 번호>Izz138bod</등록 번호>
  <소유자>이강주</소유자>
</고양이>

XML 태그를 사용하면 지금 보고 있는 것이 어떤 종류의 데이터인지 정확히 알 수 있습니다. 예를 들면 이것이 고양이에 대한 데이터임을 알게 되면 고양이의 이름과 나이 등을 쉽게 알 수 있습니다. 거의 모든 데이터 구조를 정의하는 태그를 만들 수 있다는 점이 XML을 "확장 가능(extensible)"하게 만들어 줍니다.

그러나 이 코드 예제의 태그와 HTML 파일의 태그를 혼동하지 마십시오. 예를 들어 이 XML 구조를 HTML 파일에 붙여 넣고 브라우저에서 이 파일을 보면 결과는 다음과 같습니다.

나비 샴 6 예 아니요 Izz138bod 이강주

브라우저에서는 XML 태그가 무시되고 데이터만 표시됩니다.

잘 구성된 데이터에 대한 참고 사항

IT 부서의 누군가가 "잘 구성된" XML에 대해 말하는 것을 들었을 것입니다. 잘 구성된 XML 파일은 XML을 제어하는 매우 엄격한 규칙 세트를 준수합니다. 파일이 그러한 규칙을 준수하지 않으면 XML이 작동을 중지합니다. 예를 들면 앞의 코드 예제에서 모든 여는 태그는 닫는 태그와 쌍을 이루고 있어 잘 구성된 데이터에 관한 규칙 중 하나를 준수하고 있습니다. 이 중 한 태그를 제거하고 Office 프로그램 중 하나에서 이 파일을 열려고 하면 오류 메시지가 나타나고 프로그램이 파일 사용을 중지시킵니다.

잘 구성된 XML을 만드는 규칙은 어렵지 않지만 반드시 알아야 할 필요는 없습니다. 그러나 데이터가 잘 구성된 경우에만 프로그램과 시스템 간에 XML 데이터를 공유할 수 있습니다. XML 파일을 열 수 없다면 파일이 잘 구성되지 않았기 때문일 수도 있습니다.

XML은 또한 플랫폼에 독립적입니다. XML을 사용하도록 구축된 프로그램은 하드웨어나 운영 체제에 관계없이 XML 데이터를 읽고 처리할 수 있습니다. 예를 들어 올바른 XML 태그를 사용한다면 데스크톱 프로그램을 사용하여 메인프레임 컴퓨터의 데이터를 열고 작업할 수 있습니다. 그리고 XML 데이터 본문을 누가 만들었는지에 관계없이 Access, Word, InfoPath™ 및 Excel 등 여러 가지 Microsoft Office 2003 프로그램에서 같은 데이터에 대해 작업할 수 있습니다. XML은 이렇게 이식성이 높기 때문에 데이터베이스와 사용자 데스크톱 간에 데이터를 교환하기 위한 가장 인기있는 기술 중 하나가 되었습니다.

다른 프로그램에서 사용하는 XML

XML 시스템은 일반적으로 태그가 지정되고 잘 구성된 데이터 외에 두 가지 추가 구성 요소인 스키마와 변환도 사용합니다. 다음 섹션에서 이러한 추가 구성 요소가 작동하는 방법을 설명할 것입니다.

스키마에 대한 개요

용어를 두려워 하지 마십시오. 스키마란 XML 데이터에 어떤 것은 상주할 수 있고 어떤 것은 상주할 수 없는지에 대한 규칙을 포함하고 있는 XML 파일일 뿐입니다. 스키마 파일은 보통 .xsd라는 파일 이름 확장명을 사용하는 반면에 XML 데이터 파일은 .xml이라는 확장명을 사용합니다.

프로그램에서는 스키마를 통해 데이터의 유효성을 검사할 수 있습니다. 스키마는 데이터를 구조화하고 데이터를 만든 이와 그 밖의 다른 사용자들이 데이터를 이해할 수 있도록 하는 기초가 됩니다. 예를 들어 사용자가 날짜 필드에 텍스트를 입력하는 것처럼 올바르지 않은 데이터를 입력하면 프로그램이 사용자가 올바른 데이터를 입력하라는 내용의 메시지를 표시할 수 있습니다. XML 파일의 데이터가 해당 스키마의 규칙을 준수하는 한 XML을 지원하는 모든 프로그램이 이 스키마를 사용하여 데이터를 읽고, 해석하고, 처리할 수 있습니다. 예를 들면 아래의 그림과 같이 Office Excel 2003과 Office Word 2003 모두 고양이 스키마와 비교하여 <고양이> 데이터의 유효성을 검사할 수 있습니다.

응용 프로그램은 스키마를 통해 XML 데이터를 공유합니다.

스키마는 복잡해질 수 있으며 스키마를 만드는 방법은 본 문서에서 다루지 않습니다. IT 부서를 통해 그 방법을 알 수도 있습니다. 그러나 스키마의 형태를 알면 도움이 될 것입니다. 아래의 스키마는 <고양이> ... </고양이> 태그 세트에 대한 규칙을 정의합니다.


<xsd:element name="고양이">  
  <xsd:complexType>  
    <xsd:sequence>
      <xsd:element name="이름" type="xsd:string"/>
      <xsd:element name="품종" type="xsd:string"/>
      <xsd:element name="나이" type="xsd:positiveInteger"/>
      <xsd:element name="중성화" type="xsd:boolean"/>
      <xsd:element name="발톱 제거" type="xsd:boolean"/>
      <xsd:element name="등록 번호" type="xsd:string"/>
      <xsd:element name="소유자" type="xsd:string"/>        
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

예제에 나와 있는 것을 모두 이해할 필요는 없습니다. 다음 사항에 대해서만 유의하십시오.

  • 예제 스키마에 나와 있는 직선 항목을 선언이라고 합니다. 동물에 대해 색상이나 표식 같은 추가 정보가 필요할 경우 IT 부서에서 스키마에 선언을 추가합니다. 업무 필요 사항이 발전함에 따라 XML 시스템을 변경할 수 있습니다.
  • 선언을 사용하면 데이터 구조를 훨씬 잘 제어할 수 있습니다. 예를 들어 <xsd:sequence> 선언은 <이름><품종> 같은 태그가 앞의 예제에 나와 있는 순서대로 와야 함을 의미합니다. 선언은 또한 사용자가 입력할 수 있는 데이터 종류도 제어할 수 있습니다. 예를 들어 앞에 나와 있는 스키마는 고양이의 나이에 대해 양수를 필요로 하고 ALTERED 태그와 DECLAWED 태그에 대해서는 부울(TRUE 또는 FALSE) 값을 필요로 합니다.
  • XML 파일의 데이터가 스키마에서 제공하는 규칙을 준수하면 그 데이터를 유효하다고 말합니다. XML 데이터 파일을 스키마와 비교하여 검사하는 프로세스를 유효성 검사라고 합니다. 스키마를 사용할 경우 장점은 데이터 손상을 막는 데 도움이 된다는 것입니다. 또한 문제가 발생하면 XML이 즉시 중지되기 때문에 손상된 데이터를 쉽게 찾을 수 있습니다.

변환에 대한 개요

앞에서 설명한 것처럼 XML은 데이터를 사용하거나 재사용하기 위한 강력한 방법도 제공합니다. 데이터 재사용 메커니즘을 XSLT(Extensible Stylesheet Language Transformation)라고 하거나 줄여서 변환(Transform)이라고 합니다. 실제로 변환 떄문에 XML에 흥미를 갖게 될 수도 있습니다. 예를 들어 스키마와 비교하여 데이터 파일의 유효성을 검사한 후 Word 2003에서 데이터를 마케팅 브로슈어로 만드는 변환을 적용하고 Excel 2003에서 다른 변환을 적용하여 영업 보고서를 만들 수 있습니다.

또한 사용자나 IT 부서에서도 변환을 사용하여 데이터베이스 같은 백 엔드 시스템 간에 데이터를 교환할 수 있습니다. 예를 들어 데이터베이스 A가 영업 부서에 적합한 표 구조로 영업 데이터를 저장한다고 생각해 보십시오. 데이터베이스 B는 회계 부서에 맞게 조정된 표 구조로 수익 및 비용 데이터를 저장합니다. 데이터베이스 B는 변환을 사용하여 A로부터 데이터를 받아서 올바른 표에 이 데이터를 기록합니다.

데이터 파일, 스키마 및 변환의 조합이 기본 XML 시스템을 구성합니다. 아래의 그림은 이러한 시스템의 일반적 작동 방식을 보여 줍니다. 데이터 파일은 스키마와 비교하여 유효성이 검사된 다음 변환에 의해 여러 가지 유용한 방법으로 렌더링됩니다. 이 경우 변환은 데이터를 웹 페이지의 표로 배포합니다.

스키마와 변환이 적용된 기본 XML 파일

아래의 코드 예제는 변환을 작성하는 한 가지 방법을 보여 줍니다. 또한 <고양이> 데이터를 웹 페이지의 표로 로드합니다. 그 밖에 예제의 요지는 변환을 작성하는 방법을 보여 주려는 것이 아니고 변환이 사용할 수 있는 한 가지 양식을 보여 주려는 것입니다.


<?xml version="1.0"?>
<xsl:stylesheet version="1.0"> 
<TABLE>
  <TR>
    <TH>이름</TH>
    <TH>품종</TH>
    <TH>나이</TH>
    <TH>중성화</TH>
    <TH>발톱 제거</TH>    
    <TH>등록 번호</TH>
    <TH>소유자</TH>
  </TR>
  <xsl:for-each select="고양이">
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD>
      <xsl:value-of select="이름"/>
    </TD>
    <TD>
      <xsl:value-of select="품종"/>
    </TD>
    <TD>
      <xsl:value-of select="나이"/>
    </TD>
    <TD>
      <xsl:value-of select="중성화"/>
    </TD>
    <TD>
      <xsl:value-of select="발톱 제거"/>
    </TD>
    <TD>
      <xsl:value-of select="등록 번호"/>
    </TD>
    <TD>
      <xsl:value-of select="소유자"/>
    </TD>
  </TR>
</xsl:for-each>
</TABLE>

이 예제는 한 종류의 변환이 코딩된 모습을 보여 주지만 일반 영어로 된 데이터에서 필요한 사항을 설명할 뿐입니다. 예를 들어 IT 부서로 가서 특정 지역에 대한 지난 2년 간의 영업 데이터를 인쇄해야 하는데 "이런 형태로 해주십시오"라고 말할 수 있습니다. 그러면 IT 부서에서는 그러한 작업을 수행하기 위한 변환을 작성(또는 변경)할 수 있습니다.

Microsoft와 숫자가 늘어나고 있는 기타 공급업체가 모든 종류의 작업에 대한 변환을 만들고 있기 때문에 더욱더 편리해지는 추세입니다. 앞으로는 사용자의 필요에 맞는 변환을 다운로드하거나 목적에 맞게 쉽게 조정할 수 있을 것입니다. 즉 시간이 지나면 더 저렴한 비용으로 XML을 사용할 수 있을 것입니다.

Office 2003의 XML 엿보기

Microsoft Office 2003의 전문가 버전은 XML을 광범위하게 지원합니다. 따라서 다음과 같은 점들을 기억하십시오.

  • Office 2003 프로그램마다 다른 도구 세트를 제공합니다. Word에서 수행하는 사용자 인터페이스와 프로세스는 Excel에서 사용하는 사용자 인터페이스 및 프로세스와 다릅니다. 왜 그럴까요? Word에 적용되는 것들이 반드시 Excel에도 적용되는 것은 아니기 때문입니다.
  • XML이 잘 구성되어 있는 한 Office 2003 프로그램이 다른 공급자의 스키마, 변환 및 데이터도 사용할 수 있습니다.
  • Office 2003 프로그램 중 일부는 백그라운드로 XML을 사용하고 OneNote™ 같은 프로그램은 XML을 전혀 지원하지 않습니다. Office 프로그램이 XML을 어떻게 지원하는지 확인하는 가장 좋은 방법은 해당 프로그램에 대한 온라인 도움말을 시작하고 XML을 검색하는 것입니다.

타사의 XML 스키마와 데이터에 대해 작업하려면 일반적으로 해당 스키마를 파일에 "연결"합니다. 예를 들면 Word에서는 서식 파일 및 추가 기능 대화 상자(도구 메뉴, 서식 파일 및 추가 기능 명령)를 사용하여 스키마를 연결합니다. Excel에서는 XML 원본 작업창(데이터 메뉴, XML 하위 메뉴, XML 원본 명령)을 사용합니다. Excel에서는 또한 워크시트의 셀을 스키마의 항목으로 링크하는 것을 의미하는 "매핑"이라는 단계도 추가로 수행합니다. 이 단계를 수행하면 필요한 경우 새 데이터를 가져와서 업데이트할 수 있는 파일이 생깁니다.

여기까지는 좋지만 스키마가 없는 XML 데이터가 있을 때는 어떻게 합니까? XML을 지원하는 Office 2003 프로그램은 그러한 데이터에 대해 작업할 때 돕기 위한 고유한 방법을 갖고 있습니다. 예를 들어 연결된 스키마가 없는 XML 파일을 Word에서 열면 해당 파일의 만든 이나 IT 부서에서 변환을 제공하는 경우 Word가 변환을 적용할 수 있도록 태그와 데이터를 표시합니다. 최소한 파일에 있는 태그와 데이터를 읽을 수는 있습니다.

반면 Excel에서는 스키마가 없는 XML 파일을 열면 스키마를 추정합니다. 그런 다음 이 데이터를 읽기 전용 파일로 로드할 것인지 아니면 이 데이터를 XML 목록이라고 하는 일종의 Excel 목록으로 매핑할 것인지 선택할 수 있습니다. 그러면 사용자가 XML 목록을 사용하여 데이터를 정렬하거나, 필터링하거나 데이터에 계산을 추가할 수 있습니다.

추가 정보

다음 섹션의 링크는 여러 가지 Office 2003 프로그램에서 XML을 사용하고 XML 코드를 작성하는 데 대한 정보를 제공합니다.

표시Office 2003에서 XML 사용

 참고   이 섹션에 나와 있는 링크 중 일부는 Microsoft Office Online 웹 사이트로 연결되고 일부는 MSDN(Microsoft Developer Network)으로 연결됩니다.

표시XML 코드 작성

표시XML 관련 도서


감사의 말    

이 문서의 내용 중 일부는 Wordsite Office Automation의 "XML in Office 2003" (영어) (Bill Coan 저)에서 발췌한 것입니다. Bill은 Word 전문가이자 Microsoft MVP로, XML 스키마와 변환이 우리가 Microsoft Office 2003을 사용하여 데이터를 보고, 편집하고, 공유하는 방법을 혁명적으로 바꿀 것이라고 믿고 있습니다. www.wordsite.com (영어) 에서 Bill을 만날 수 있으며 전자 메일 주소는 billcoan@wordsite.com입니다.

 
 
적용 대상:
Access 2003, Excel 2003, FrontPage 2003, InfoPath 2003, Word 2003