..

Search

5) XML 문법

XML 문법


XML 선언

XML 문서는 맨 첫 줄에 <xml>태그를 사용하여 XML 문서임을 명시해야 합니다.

이것을 XML 프롤로그(prolog)라고 하며, 이때 사용되는 <xml>태그의 이름은 소문자 xml로만 사용해야 합니다.

 

XML 프롤로그의 문법은 다음과 같습니다.

문법

<?xml version="XML문서버전" encoding="문자셋" standalone="yes|no"?>

 

version 속성에는 XML 문서에 사용된 XML의 버전을 명시합니다.

encoding 속성에는 XML 문서의 문자셋(character set)을 명시하며, 기본값은 UTF-8로 설정됩니다.

standalone 속성은 XML 문서가 외부 DTD(Document Type Definition)와 같은 외부 소스의 데이터에 의존하고 있는 문서인지 아닌지를 XML 파서(parser)에 알려주는 역할을 합니다.

이 속성의 기본값은 no이며, yes로 설정하면 이 문서를 파싱(parsing)할 때 참조해야 할 외부 소스가 없다는 것을 의미합니다.


XML 문법

XML 문서는 매우 규칙적이고 예측할 수 있는 구조로 되어 있습니다.

따라서 XML 문법은 배우기도 쉬우며, 사용하기도 쉽습니다.

 

1. 모든 XML 요소는 종료 태그를 가져야 합니다.

HTML에서는 종료 태그를 생략하거나, 빈 태그를 사용해도 대부분의 경우 문제없이 동작합니다.

하지만 XML에서는 XHTML과 마찬가지로 종료 태그가 생략되면 오류가 발생합니다.

또한, 빈 태그도 반드시 슬래시(/)를 사용한 self-closing를 해야만 오류가 발생하지 않습니다.

예제

HTML : <h1>XML

       <hr>

XML  : <h1>XML</h1>

       <hr />

 

2. XML 태그는 대소문자를 구분합니다.

HTML에서는 태그 이름에 대소문자를 구분하지 않습니다.

하지만 XML에서는 태그 이름에 대소문자를 구분하므로, 대소문자가 다르면 다른 요소로 인식합니다.

예제

<lecture>이 요소는 lecture 요소입니다.</lecture>

<Lecture>이 요소는 Lecture 요소입니다.</Lecture>

 

3. XML에서는 시작 태그와 종료 태그가 모두 대소문자까지 같아야 합니다.

XML에서는 태그 이름에 대소문자를 구분하므로, 시작 태그와 종료 태그의 대소문자가 모두 같아야 합니다.

예제

<lecture>이 요소는 lecture 요소입니다.</lecture>

<Lecture>이 구문은 오류를 발생합니다.</lecture>

 

4. XML 태그의 여닫는 순서는 반드시 지켜져야 합니다.

여닫는 순서가 지켜진다는 것은 먼저 열린 태그는 그 안의 모든 태그가 닫힌 후에야 닫힐 수 있다는 뜻입니다.

예제

<p><strong>이 구문은 오류를 발생합니다.</p></strong>

<p><strong>이 구문이 정확한 순서입니다.</strong></p>

 

5. XML에서 속성값은 반드시 따옴표로 감싸야 합니다.

HTML에서는 속성값을 따옴표로 감싸지 않아도 큰 문제 없이 동작합니다.

하지만 XML에서는 속성값을 따옴표로 감싸지 않으면 오류가 발생합니다.

예제

<student name=홍길동>   // 오류가 발생함.

<student name="이순신"> // 정상적으로 동작함.

 

6. XML에서는 띄어쓰기를 인식합니다.

HTML에서는 띄어쓰기를 따로 인식하지 않습니다.

하지만 XML에서는 여러 번의 띄어쓰기를 그대로 인식합니다.

예제

코드 : <p>띄   어 쓰    기</p>

HTML : 띄어쓰기

XML  : 띄   어 쓰    기


XML 엔티티(Entity)

XML에서는 예약되어 있는 다섯 개의 특별한 기호가 있습니다.

이렇게 예약되어 있는 기호를 XML 문서에서 사용하면 XML 파서(해석하는 기계)는 그것을 전혀 다른 의미로 해석합니다.

따라서 이렇게 예약된 기호를 기존에 사용하던 의미 그대로 사용하기 위해서 만든 문자셋을 엔티티(entity)라고 합니다.

 

HTML에서는 수많은 문자와 기호를 엔티티로 미리 정의해 놓고 사용하고 있습니다.

하지만 XML에서 제공하는 엔티티는 다섯 개뿐입니다.

 

다음 표는 XML에서 예약되어 있는 기호와 그에 따른 엔티티를 보여줍니다.

기호 엔티티 이름 16진수 엔티티 설명
< &lt; &#60; 보다 작은
> &gt; &#62; 보다 큰
& &amp; &#38; and 기호
" &quot; &#34; 큰따옴표
' &apos; &#39; 작은따옴표

연습문제