Markup Language란, 문서의 내용에 추가적인 정보를 표시할 수 있는 언어를 뜻한다. 각 태그는 Markup이 되며, 태그에 포함된 내용들에 관한 추가적인 정보를 표현하는 역할을 한다.
Extensible에서 의미하는 바와 같이, XML은 필요에 따른 새로운 Markup Language를 생성할 수 있는 메타 언어이다. 메타 언어란, 다른언어를 기술하거나 분석하는데 쓰이는 언어라는 의미이다. 즉 XML을 이용해 문서를 작성한다라는 뜻은, XML로 제작된 언어로 문서를 작성한다는 의미로 보면 된다.
메타언어에는 SGML(Standard Generated Markup Language)이 대표적이다. SGML로 만들어진 언어는 HTML이 있으며, XML은 SGML을 보다 단순하고 사용하기 쉽도록 한 언어로 보면된다. 즉 XML은 SGML의 부분집합이다.
XML은 데이터 전달을 목적으로 많이 사용되는데, 예를 들어 특정 언어에서 다른 언어, 다른 시스템으로 데이터를 전송하는데 있어서 가장 보편적으로 사용되고 있다. 즉 특정분야의 필요에 맞게 XML을 이용하여 언어를 만들고, 그 언어 규격에 맞게 XML을 이용해 서로 데이터를 전송하고 관리할 수 있게 된다. 특정 프로그램에서 다른 프로그램, 출판 분야, 고객 정보 관리, 데이터베이스 관리, 백업 등 데이터를 다루는 거의 모든 분야에서 사용가능하며 사용되어지고 있다.
XML이 HTML을 대체할 수 있다고 생각하는 사람이 있는데, XML과 HTML은 서로 다른 분야로서, XML이 HTML이 하는 역할을 할 수 없고, HTML이 XML의 기능을 대신할 수 없다.
Well- Formed XML Document : W3C의 XML 1.0권고안의 문법을 잘 지켜서 작성된 문서를 말한다. XML은 HTML과 달리 문법을 잘 지켜서 작성해야하며 그렇지 않을 경우, XML문서로 취급되지 않으며 작동하지 않는다.
Valid/Invalid Document : XML로 만들어진 특정 Markup Language에 맞게 작성된 문서이다. 'XML 문서에 대해 유효성 검사를 한다'라는 것은 XML로 개발된 특정 언어의 규칙과 구조에 맞는지 검증한다는 의미이다.
XML 문서 구조
Prolog : XML선언 및 문서 유형 선언(DTD::=Document Type Definition), 프로세싱 지시자(Processing Instruction)가 이 영역에 포함될 수 있다.
Element : 하나의 루트 엘리먼트와 하위 엘리먼트로 구성된다.
Misc : 문서 마지막에 위치하며 보통 생략되는 부분으로서 주석이나 Processing Instruction 등이 위치하는 경우가 많다.
encoding부분은 생략될 수 있으며, default는 UTF-8이다. 실제로 문서의 인코딩 타입과 일치하지 않을 경우 에러를 출력한다.
standalone부분은 dtd부분이 xml문서에 포함되는건지, 외부 dtd를 참조하는건지에 따라 yes 또는 no를 설정하면 된다. 생략 가능한 부분으로 default값은 no로 작동된다. 이 부분을 생략하고 dtd부분을 xml문서에 포함 시켜도 아무 문제가 없으므로, 대부분의 경우 생략되는 부분이다.
기초문법
XML을 사용하기 위해 기본적으로 알야아하는 문법으로서 EBNF(Extended Backus-Naur Form)가 있다.
Symbol ::= Expression
CharA ::= [a-zA-Z0-9]은 CharA는 대소문자 a부터 z까지, 숫자 0부터 9까지 중 하나의 문자라는 의미이다.