XML 기초· ·
XML은 HTML을 대체하기 위한 언어가 아니다
우선 이것부터 분명히 하고 넘어가야 합니다.
XML은 결코 HTML을 대체하는 언어가 아닙니다.
XML은 EXtensible Markup Language의 약자로 '확장 가능한' 마크업 언어입니다. 즉 기존의 마크업 언어에 비해 확장성이 강해 필요한 태그를 알아서 정의할 수 있다는 뜻입니다.
이에 비해 HTML은 HTML 규격에 따른 표준 태그만 사용합니다.
이 말만 들으면 HTML이 XML에 비해 단순히 한 수 아래 언어라고 오해하기 쉽습니다.
그러나 HTML과 XML은 그 목적이 다른 언어입니다.
먼저 HTML은 데이터를 어떻게 표현할 것인가(how data looks)를 염두에 두고 고안한 언어입니다.
반면 XML은 데이터가 무엇인지(what data is)에 초점을 맞춰 데이터를 기술하기 위해 고안된 것입니다.
한마디로 HTML은 정보를 표시하기 위한 언어이고, XML은 정보를 기술(describing)하기 위한 언어입니다.
예를 들어 다음과 같은 내용의 텍스트 파일을 만든 다음 각각 test.htm과 test.xml로 저장하여 실행해 보세요.

test.htm

test.xml
위의 예에서 알 수 있듯이 HTML 파일에서 사용된 <FONT> 태그는 글자의 색이나 모양을 바꾸기 위해서 누구나 사용해야 하는 약속된 태그입니다.
반면 XML 파일의 <SONG> <TITLE> <ARTIST> 등의 태그는 임의로 만든 태그입니다.(여기서 <TITLE>은 HTML의 <TITLE>과는 다릅니다.)
그리고 HTML 파이에서 태그는 모두 글자의 색상, 크기, 글꼴 또는 문서의 배경색을 바꾸거나 테이블을 그릴 때 또는 이미지를 삽입하기 위해 사용됩니다. 한마디로 문서의 모양을 꾸미는 것이 주된 목적인 것입니다.
반면 위의 XML 파일을 보면 노래, 가수, 작곡가 등과 같이 어떤 정보의 요소를 지정하고 그 정보를 기술하는 것이 초점이 맞춰져 있습니다. 마치 데이터베이스와 같은 역할을 합니다. 나중에 아시겠지만 이렇게 만들어진 XML 데이터를 가지고 가수, 노래 또는 작곡가 등 여러 기준으로 정렬해서 표시할 수도 있습니다. 즉 데이터는 하나이지만 여러 방식으로 표현 가능합니다. HTML로 이런 여러 가지 방식으로 정렬하기 위해서는 여러 가지 방식으로 정렬된 각각의 HTML 문서를 별도로 작성해야만 합니다.
자, 이제 정리하겠습니다.
이상 동주 아빠 손병목이었습니다.

XML은 결코 HTML을 대체하는 언어가 아닙니다.
XML은 EXtensible Markup Language의 약자로 '확장 가능한' 마크업 언어입니다. 즉 기존의 마크업 언어에 비해 확장성이 강해 필요한 태그를 알아서 정의할 수 있다는 뜻입니다.
이에 비해 HTML은 HTML 규격에 따른 표준 태그만 사용합니다.
이 말만 들으면 HTML이 XML에 비해 단순히 한 수 아래 언어라고 오해하기 쉽습니다.
그러나 HTML과 XML은 그 목적이 다른 언어입니다.
먼저 HTML은 데이터를 어떻게 표현할 것인가(how data looks)를 염두에 두고 고안한 언어입니다.
반면 XML은 데이터가 무엇인지(what data is)에 초점을 맞춰 데이터를 기술하기 위해 고안된 것입니다.
한마디로 HTML은 정보를 표시하기 위한 언어이고, XML은 정보를 기술(describing)하기 위한 언어입니다.
예를 들어 다음과 같은 내용의 텍스트 파일을 만든 다음 각각 test.htm과 test.xml로 저장하여 실행해 보세요.

test.htm

test.xml
위의 예에서 알 수 있듯이 HTML 파일에서 사용된 <FONT> 태그는 글자의 색이나 모양을 바꾸기 위해서 누구나 사용해야 하는 약속된 태그입니다.
반면 XML 파일의 <SONG> <TITLE> <ARTIST> 등의 태그는 임의로 만든 태그입니다.(여기서 <TITLE>은 HTML의 <TITLE>과는 다릅니다.)
그리고 HTML 파이에서 태그는 모두 글자의 색상, 크기, 글꼴 또는 문서의 배경색을 바꾸거나 테이블을 그릴 때 또는 이미지를 삽입하기 위해 사용됩니다. 한마디로 문서의 모양을 꾸미는 것이 주된 목적인 것입니다.
반면 위의 XML 파일을 보면 노래, 가수, 작곡가 등과 같이 어떤 정보의 요소를 지정하고 그 정보를 기술하는 것이 초점이 맞춰져 있습니다. 마치 데이터베이스와 같은 역할을 합니다. 나중에 아시겠지만 이렇게 만들어진 XML 데이터를 가지고 가수, 노래 또는 작곡가 등 여러 기준으로 정렬해서 표시할 수도 있습니다. 즉 데이터는 하나이지만 여러 방식으로 표현 가능합니다. HTML로 이런 여러 가지 방식으로 정렬하기 위해서는 여러 가지 방식으로 정렬된 각각의 HTML 문서를 별도로 작성해야만 합니다.
자, 이제 정리하겠습니다.
- XML은 HTML과 매우 흡사한 markup language입니다.
- XML은 데이터를 기술하기 위해 고안되었습니다.
- XML의 태그는 미리 정의되어 있는 것이 아니라 필요한 태그를 본인이 직접 정의해서 사용합니다.(이러한 태그를 메타 태그라고 합니다.)
- 나중에 다루겠지만 XML은 DTD(Document Type Definition)라는 것을 사용하여 여러 요소를 정의하여 문서의 구조를 만듭니다.
- 역시 나중에 다루겠지만 XML은 HTML의 스타일시트와 같은 역할을 하는 XSL을 사용하여 XML 데이터를 표시합니다.(XSL을 제대로 표현하려면 인터넷 익스플로러 5.5 이상이 있어야 합니다.)
이상 동주 아빠 손병목이었습니다.
