XML 문서는 문서형 정의를 갖지 않는 문서와 문서형 정의를 갖는 문서로 나눠진다.
<?xml version="1.0" encoding="UTF-8"?> <진료기록>
<환자 성별="남" 연령="29" 보험증번호="12345">
<성>홍</성>
<이름>길동</이름>
</환자>
<진료일시 년="1998" 월="8" 일="15"/>
<치료>
<투약>비타민B1</투약>
<주사>페니실린</주사>
</치료>
</진료기록>
1. XML 선언
XML 문서의 선두 행을 XML 선언이라 한다. XML 문서의 선두에 반드시 와야 한다. 이는 XML 문서가 XML 사양 제 1.0버전
에 따르고 UTF-8로 부호화되는 것을 나타낸다.
2. 시작 태그와 종료 태그
시작 태그는 HTML과 같이 "<" 와 ">"로 둘러싼 문자열로 표시된다. 위 예에서는 아래 7개의 시작 태그가 있다.
<진료 기록>, <환자 성명="남" 연령"29" 보험증번호="12345">, <성>, <이름>, <치약>, <투약>, <주사>
또한 종료 태그는 "</" 와 ">"로 둘러싼 문자열이다. 이것도 HTML과 동일하다. 위 예는
</성>, </이름>, </환자>, </투약>, </주사>, </치료>, </진료 기록>
3. 엘리먼트와 내용
시작 태그와 종료 태그는 원칙적으로 1대 1 대응한다. 대응하는 시작 태그에는 종료 태그까지를 '엘리먼트'라 한다. 시작 태그
와 종료 태그에 둘러싼 부분을 '엘리먼트의 내용'이라 한다.
XML에는 종료 태그가 필수이지만 HTML에서는 종료 태그를 생략할 수 있다.
4. 공 엘리먼트 태그
XML에서는 시작 태그와 종료 태그이외에도 HTML에 없는 특별한 태그가 있다. 이것은 "<" 와 "/>"로 둘러싼 문자열이다. 위의 예에서는
<진료일시 년="1998" 월="5" 일="15"/>
이 그 예이다. 이와 같은 태그를 공(empty) 엘리먼트 태그라 한다. 단독으로 1개 엘리먼트를 표시한다. 이 엘리먼트는 내용을
유지하지 않는다.
5. 논리 구조
엘리먼트는 다른 엘리먼트를 포함한다. 예를 들면 <환자 성명="남" 연령="29" 보험증번호="12345">에서 </환자>까지의 테
스트에 의해 표현되는 엘리먼트는
- <성>에서 </성>까지 텍스트에 의해서 표현되는 엘리먼트
- <이름>에서 </이름>까지 텟스트에 의해 표현되는 엘리먼트
의 2가지를 포함한다. <치료>에서 </치료>가지 텍스트에 의해 표현되는 엘리먼트도 마찬가지이다.
XML 문서에는 루트(root) 엘리먼트로서 최상위 엘리먼트가 반드시 하나 존재한다. 위 예에서는 <진료기록>에서 </진
료기록>까지의 텍스트에 의해서 표현되는 엘리먼트가 이것이다. XML 문서를 구성하는 모든 엘리먼트는 루트 엘리
먼트에 직접적 혹은 간접적으로 포함된다. 즉, XML 문서는 엘리먼트의 계층 구조로 구성된다. 이 계층구조를 '논리
구조'라 말한다.
어느 엘리먼트가 직접적으로 포함하는 엘리먼트를 이의 자식 엘리먼트라 하고, 이 엘리먼트가 직접 혹은 간접으로 포
함하는 엘리먼트를 자손 엘리먼트라 한다. 역으로 임의 엘리먼트를 직접적으로 포함하는 엘리먼트를 부모 엘리먼트
라 하고 간접적으로 포함하는 엘리먼트를 조상 엘리먼트라 한다.
6. 속 성
엘리먼트의 부가적인 성질을 표현하기 위한 것이 속성이다.
속성은 이름과 값에 대하여 시작 태그와 공 엘리먼트 태그의 일부로 표현된다.
위 예에서는 시작 태그 <환자 성별="남" 연령="29" 보험증번호="12345">와 공 엘리먼트 태그 <진료일시 년="1998" 월="5" 일="18"/>이 속성을 갖는다.
이름 '성별'과 값 '남'이 속성이다. 이름 '월'과 값 '5'의 속성, 이름 '일'과 값 '18'이 속성이다.

