2.2. 마크업 언어의 기본 익히기

마크업 언어는 기초요소(element), 속성(attribute), 실체요소(entity)로 구성됩니다.

2.2.1. 기초요소

기초요소는 글의 전체 구조와 세부적인 특성들을 묘사합니다. 대부분의 기초요소들은 그 해당 영역을 열고 닫는 한 쌍의 태그를 필요로 합니다.

       <para>
         그리고 "우리는 ...을 안다(we know ...)"란 말을 함부로
         하여서는 안된다. 왜냐하면, 당연히 우리는 모르기 때문이다.
         그러나 우리는 아는 것처럼 행동해야 하는 것이다.
       </para>
위의 예는 한 문단의 시작과 끝을 나타내는 기초요소 para의 사용법을 보여줍니다. 여는 태그인 <para>과, 닫는 태그인 </para>가 서로 한 쌍을 이루는 것을 알 수 있습니다.

그러나 기초요소들 중에는 여는 태그만 사용하는 것도 있습니다. 참조를 위해 사용되는 xref 같은 경우가 이에 해당됩니다.

       <para>
         이렇기 때문에, 컴퓨터를 끄기 전엔 반드시 적절한 
         셧다운 절차를 밟아야만 하는 것이고(
         <xref linkend="boots-and-shutdowns">
         참조 ), 마운트한 플로피를 빼기 전엔 꼭 언마운트를 
         해야하는 것이다.
       </para>
위의 예에서 참조할 글의 위치를 나타내는 기초요소 xref는 단지 여는 태그인 <xref linkend="boots-and-shutdowns">만 사용하고 있습니다.

2.2.2. 속성

기초요소들은 속성을 가질 수 있습니다. 예를 들어, 기초요소 xreflinkend라는 속성을 가집니다. 위의 예에서는 이 값이 boots-and-shutdowns로 지정되어 있습니다.

       <chapter id="boots-and-shutdowns">
       <title>부팅과 셧다운</title>
         <para>
           여기서는 리눅스 시스템이 시작될 때와 멈춰질 때 어떤 일이
           진행되는지를 설명할 것이며, 또한 그것이 제대로 진행되려면 어찌
           해야하는지에 대해서도 알아볼 것이다. 만일, 이 때 적절한 과정이 
           수행되지 못한다면, 파일들이 손상을 입거나 지워질 수도 있다.
         </para>
       </chapter>
모든 기초요소들은 id라는 속성을 가질 수 있습니다. 위의 예에서는 기초요소 chapterid 속성 값이 boots-and-shutdowns로 지정되어 있습니다. 따라서 바로 이 부분이 <xref linkend="boots-and-shutdowns">가 가리키는 참조 글의 위치입니다.

2.2.3. 실체요소

실체요소는 어떤 특정한 데이터 덩어리에 이름을 붙여주기 위해 사용됩니다. 실체요소는 내부 실체요소와 외부 실체요소로 나눌 수 있습니다.[1]

내부 실체요소는 다음과 같이 선언합니다.

       <!ENTITY ora "O'Reilly &amp; Associates">
이렇게 내부 실체요소를 선언하고 나서, 문서에 &ora;라고 써넣게 되면 이 부분은 O'Reilly & Associates라는 문자열로 치환되게 됩니다. 이와 같이 &는 특수한 의미를 가진 문자이므로, 이 문자를 그대로 문서에 표시하기 위해서는 &amp;라고 써주어야 합니다.

외부 실체요소는 다음과 같이 선언합니다.

       <!ENTITY ch01 SYSTEM "ch01.sgm">
이렇게 실체요소를 선언하고 나서, 문서에 &ch01;이라고 써넣게 되면 그 곳에 ch01.sgm 파일의 내용 전체가 삽입됩니다. 이 방법은 문서를 여러 파일에 나누어서 작성할 때 유용합니다. 위의 예에서 SYSTEM은 큰 따옴표 사이의 내용을 시스템 식별이름[2]으로 해석하라는 지시어입니다.

또한 외부 실체요소에는 특수 문자를 위한 실체요소가 있습니다. 방금 위에서 사용된 &amp;가 바로 특수 문자 실체요소입니다. 이 밖에도 무척 많은 수의 특수 문자 실체요소들이 정의되어 있으므로 DocBook: The Definitive GuideDocBook Character Entity Reference를 꼭 살펴보시기 바랍니다.

2.2.4. 주의할 점

DocBook의 기초요소와 속성은 대소문자를 가리지 않습니다. 따라서 <para><pArA>는 같은 것으로 간주됩니다. 그러나 실체요소는 대소문자를 가리므로 주의하여야 합니다.

그러나 XML과의 호환성을 고려한다면, 모든 기초요소와 속성들을 소문자로 일관되도록 하는 것이 좋습니다. 또한 닫는 태그를 사용할 때 생략형을 사용하지 않도록 하고[3] 속성은 꼭 큰 따옴표로 묶도록 합니다.

참고: 이 내용은 DocBook: The Definitive Guide의 'Elements and Attributes'를 많이 참고하였습니다.

주석

[1]

이 밖에 매개변수 실체요소라는 것이 있습니다. 이에 대해서는 예 C-2에서 간략히 설명합니다.

[2]

이에 대해서는 B.1절에서 자세히 설명합니다.

[3]

<para>...</> - 이런 생략은 SGML에선 가능하지만 XML에선 허용되지 않습니다.