XML이란 무엇인가?

  • XML은 EXtensible Markup Language의 약자이다.
  • XML은 HTML과 매우 흡사한 markup language이다.
  • XML은 데이터를 기술하기 위해 고안되었다.
  • XML 태그들은 XML에서 미리 정의되어 있지 않다. 필요한 태그는 본인이 정의를 해야만 한다.
  • XML은 자기기술적(self describing) 특성을 갖고 있다.
  • XML은 데이터를 기술하기 위해 공식적으로 DTD(Document Type Definition)를 사용磯?

 

XML과 HTML의 주요 차이점

 

XML은 HTML의 대치물이 절대 아니다.
XML과 HTML은 서로 다른 목표를 가지고 고안되었다:

XML은 데이터가 무엇인지(what data is)에 초점을 맞춰 데이터를 기술하기 위해 고안되었다.
HTML은 데이터가 어떻게 보일지(how data looks)에 초점을 맞춰 데이터를 표시하기 위해 고안되었다.

HTML은 정보를 표시하기 위한 언어이고, XML은 정보를 기술(describing)하기 위한 언어이다.

 

 

XML의 확장성

 

HTML 문서를 만들기 위한 태그나 HTML 문서의 구조는 이미 정의되어 있다. HTML 문서를 만드는 사람은 HTML 표준에서 정의된 태그들만 사용할 수 있다.

XML은 자신의 문서 구조자신의 태그를 정의할 수 있도록 해준다.

 

 

XML의 용도

 

XML은 HTML과 별도로 데이터를 보관할 수 있다

HTML 페이지는 데이터를 표시하기 위해 사용된다. 데이터는 종종 HTML 페이지 내부에 저장된다. XML에서는 이 데이터를 별도의 XML 파일에 저장할 수 있다. 이렇게 함으로써 HTML로 하여금 데이터를 표시하고 꾸미는 것에 집중할 수 있도록 해준다. 또한 이렇게 함으로써 기본이 되는 데이터가 바뀌더라도 HTML은 전혀 수정할 필요가 없어지게 된다.

 

XML은 HTML 문서 내부에 데이터를 저장할 수도 있다

XML 데이터는 HTML 페이지 내부에도 데이터를 격리시켜 저장할 수 있다. 여전히 HTML은 데이터를 표시하는 것에 집중시킬 수 있다.

 

XML은 정보 교환의 한 방식으로 사용될 수 있다

대부분의 시스템, 데이터베이스는 서로 호환되지 않는 데이터 포맷을 포함하고 있다. 대부분의 개발자들은 인터넷 상에서 서로 호환되지 않는 데이터를 주고 받기 위해 많은 시간을 낭비하고 있다. 만일에 정보 교환할 데이터를 XML로 바꿔준다면 많은 시간을 절약할 수 있으며 서로 다른 애플리케이션 사이에서도 데이터 교환이 가능해진다.

 

XML은 파일 또는 데이터베이스에 데이터를 저장할 수 있다

XML은 해당 데이터를 파일이나 데이터베이스에도 저장할 수 있다. 이런 데이터를 저장하고 읽어 들이기 위해 별도의 애플리케이션을 개발할 수 있다. 물론 이런 데이터를 표시하기 위한 애플리케이션을 만들기도 한다.

 

 

XML 문서의 구성 요소


XML 문서는 다음과 같은 구성 요소를 가지고 있다:

요소(Elements), 태그(Tags), 속성(Attributes), 엔터티(Entities), PCDATA 및 CDATA


요소(Elements)
요소(Elements)는 XML 문서나 HTML 문서 모두에 있어 핵심 구성 요소이다.

요소(Elements)를 쉽게 이해하려면 HTML 문서의 요소를 살펴보면 된다. HTML 문서에서 "body", "table" 태그가 요소의 한 예이다. 지금까지 살펴 본 XML 문서 예제에서 "note", "to" 등도 요소이다. 요소는 텍스트, 또 다른 요소를 포함할 수 있으며 비어 있을 수도 있다.  비어있는 HTML 요소의 예로 "hr", "br", "img" 등을 들 수 있다.


태그(Tags)
태그는 요소를 구성하기 위해 사용된다. <요소이름>과 같은 시작 태그가 요소의 시작을 나타내고, </요소이름> 같은 마침 태그가 요소의 마지막을 나타낸다.


[예제]

body 요소 : <body>시작 태그와 마침 태그 사이에 들어갈 텍스트</body>
message 요소 : <message>시작 태그와 마침 태그 사이에 들어갈 어떤 메시지 내용</message>


속성(Attributes)
속성은 요소(element)에 대한 부가적인 정보를 제공한다.

속성은 요소의 시작 태그 안에 위치한다. 속성은 name/value 쌍으로 나타난다. 다음 예는 img 요소에 소스 파일에 대한 부가 정보를 제공하는 속성에 대한 것이다:

<img src="computer.gif" />
 

요소의 이름은 img이다. 속성의 이름(name)은 src이다. 속성의 값(value)은 computer.gif이다. 이 요소는 빈 요소(empty element)이기 때문에 /로 끝 마친다.


PCDATA
PCDATA는 parsed character data를 의미한다.

캐릭터 데이터(character data)는 XML 요소의 시작 태그와 마침 태그 사이에 위치한 텍스트라고 보면 된다.

PCDATA는 파서(해석기, parser)에 의해 해석이 될 텍스트이다. 텍스트 안에 있는 태그는 마크업(markup)으로 취급될 것이며 엔터티(entity)는 확장될 것이다. 이 말을 쉽게 풀어 쓰면, <, >같은 태그를 XML 파서가 해석할 것이며 엔터티도 XML 파서가 해석하여 엔터티가 가리키는 값으로 참조시킬 것이라는 뜻이다.


CDATA
CDATA는 character data를 의미한다.

CDATA는 파서(해석기, parser)에 의해 해석이 되지 않을 텍스트이다. 사실 XML 문서에 있는 모든 텍스트들은 XML 파서에 의해 해석 과정을 거치게 되지만 CDATA 만큼은 해석되지 않고 있는 모습 그대로 출력된다. 텍스트 안에 있는 태그는 마크업(markup)으로 취급되지 않을 것이며 엔터티(entity)는 확장되지 않을 것이다. 이 말을 쉽게 풀어 쓰면, <, >같은 태그 및 엔터티를 XML 파서가 해석하지 않을 것이므로 <, > 같은 문자와 엔터티 자체가 그대로 출력될 것임을 의미한다.


엔터티(Entities)
XML에서 엔터티는 변수와 비슷한 개념으로 생각할 수 있다. 엔터티는 문서 내에서 참조 될 수 있는 문자 집합의 단위를 말한다. 예를 들어 반복해서 사용하는 어구가 있다면 엔터티를 사용해 쉽게 표현할 수 있다. 엔터티에는 일반 엔터티, 파라미터(매개변수) 엔터티가 있다. 정의되어 있는 엔터티를 참조하는 것을 엔터티 참조(Entity Reference)라고 한다.


HTML 문서에서 " "가 어떤 역할을 하는지 잘 알고 있을 것이다.  는 엔터티 참조의 한 예로 HTML 문서에서 빈 공간을 만들 때 사용한다. 이 문서가 XML 파서에 의해 해석될 때 이 엔터티는 빈 공간으로 대치될 것이다.

출처: http://blog.naver.com/tear230/100004177530

+ Recent posts