메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

DocBook XML 을 이용한 문서 작성하기(1)

한빛미디어

|

2001-05-23

|

by HANBIT

6,439

by 한빛리포터 1기, 신명수 DocBook DTD(Document Type Definition)은 기술적인 분야(컴퓨터 하드웨어나 소프트웨어)에서 문서를 작성하는 데 사용되며 문서에서 요구하는 일련의 규칙이다.특히 LDP(www.linuxdoc.org)와 KLDP(kldp.org)에서 문서화에 쓰이는 것으로 유명하다. 이 글에서는 DocBook DTD XML을 이용하여 문서를 작성하는 방법을 알아 볼 것이다. 배경지식 XML(eXtensible Markup Language) XML(eXtensible Markup Language)은 1996년 W3C(World Wide Web Consortium)에서 처음 제안한 것으로서, 웹에서 구조화된 문서를 활용할 수 있도록 설계된 표준화된 텍스트 형식이다. 1998년 2월에 W3C에서 표준으로 확정된 상태이며, 많은 곳에서 XML을 기반으로 활발한 개발이 이루어 지고 있으며, 관련 기술들이 소개되고 있다. DTD(Document Type Definition) DTD(Document Type Definition)는 태그를 위한 일련의 구문규칙이다. 문서 안에서 어떤 태그를 쓸 수 있고, 태그가 문서 안에서 어떤 순서로 나타나야 하며, 다른 문서(other ones)들 속에서 어떤 태그가 나타날 수 있는지, 어떤 태그가 속성(attributes)을 갖는지 등을 말해준다. DTD는 원래 SGML에서 사용하기 위해 개발한 것으로 XML에서는 약간 다르다. XML은 언어 그 자체가 아니라 언어를 정의하는 체계(system)이기 때문에, HTML과 같은 보편적인 DTD를 갖지 않는다. 대신 데이터 교환을 위해 XML을 사용하고자 하는 기업이나 단체는 독자적인 DTD들을 정의할 수 있다. XSL(Extensible Style Language) XSL은 DTD에서 정의한 엘리먼트(element)의 포맷팅 정보를 지정해 주기 위한 XML 스타일 시트 언어이다. XSL는 XSLT(변환용)과 XSL-TO(포맷용)의 두 가지로 구분된다. XSLT를 이용하여 XML문서를 다른 XML문서나 HTML문서 등으로 바꿀 수 있다. DocBook XML에 관하여 DocBook을 이해하기 위해서는 XML과 XSL에 대한 이해가 필요하다.물론 SGML에 대한 이해가 있다면 더 좋다! 여기에서는 데이터-중심(Data-Centric) XML문서가 아닌 문서-중심(Document-Centric) XML문서을 이야기한다. 문서의 구성요소에는 크게 세 가지로 나눌 수 있다.우선 문서의 내용(문서에서 의미를 나타내는 글자),문서의 구조(문맥적으로 문서의 구조를 나타내는 요소. 머리말,장,문단..등), 그리고 문서의 표현(글자 크기,글의 나열방법)이 있을 수 있다. HTML의 경우에는 이 세 가지 요소 중 구조와 표현에 해당하는 요소가 혼합되어 있다.즉 글의 구조적인 요소와 표현적인 요소가 분리되어 있지 않다. 하지만 XML 애플리케이션인 DocBook은 문서의 구조와 표현을 분리함으로써 서로 간의 변화에 영향을 받지 않는다.Tex/LaTex과의 비교가 어떨지는 모르겠지만,개인적으로는 XML-기반의 문서 작성과 비슷한 면이 있다고 생각한다. 즉 문서의 구조에 대한 정보를 나타내는 요소와 문서의 표현을 나타내는 요소를 분리함으로써 문서의 구조의 변화에 혹은 문서의 표현의 변화에 서로 연관성이 없어진다.이의 이점은 다양한 문서 포맷(html,pdf,text 등)의 변환이 용이하다는 점과 문서 작성시 문서의 구조적인 면에만 치중할수 있다는 점이다. 또한 XML의 메타 언어적인 특성으로 문서의 구조를 정의 내릴 수 있으며 그 정의를 공유 할수 있다. 이러한 문서의 구조를 정의한 것이 DocBook DTD(Document Type Definition)이다. DTD(Document Type Definition)란 문서에서 필요하고 승인된 요소나 속성을 구분하여 일련의 규칙을 작성하는 법칙이다.예를 들어 PhyML(physical Law Markup Language:물리 법칙의 마크업 언어)에서는-이런 마크업 언어가 있다면:-) - 물리법칙의 여러 요소-힘,질량,중력 등의 요소가 있을 것이다. 이와 비슷하게 DocBook DTD은 우리가 문서를 구조적으로 작성할 때 명시하는 일련의 규칙을 정의한 것이라고 할수 있다. 준비 DocBook DTD XML DocBook DTD XML은 기술적인 문서 작성을 위한 문서 포맷이라고 할수 있다.문서의 전체적인 구성과 그 부분적인 특성을 나타내기 위한 마크업(markup)으로 이루어져 있다. DocBook은 SGML 버전과 XML버전으로 나누어 있다.하지만 5.0 버전부터는 XML로 전향한다고 한다.여기에서는 보통 쓰이는 SGML 버전 보다는 XML 버전을 이야기할 것이다.최신 버전은 공식 홈페이지에서 구할 수 있다. DocBook XSL Stylesheet DocBook을 다른 형식으로 변환하기 위해서는 그에 따르는 스타일 시트가 필요하다. Norman Walsh의 DocBook XSL Stylesheet가 있다. html로의 변환에서 EUC-KR인코딩으로 하기 위해서는 위의 스타일 시트를 바꾸어 주어야 한다. 기본적으로 ISO-8859-1으로 변환된다. 예 1. 스타일 시트에 euc-kr 설정:docbook_euc-kr.xsl





XLST processor:Xalan-J 아파치-XML 프로젝트의 XSLT 프로세서인 Xalan-J 2을 사용한다. xalan-J는 자바 실행 환경이 있는 곳이면 어디에서나 실행되며 EUC-KR인코딩이 가능하다.EUC-KR를 지원하지 않는 파서도 있다.그리고 xalan-j 2에는 Xerces가 포함되어 있다. 다음과 같이 사용한다.
java -jar foo/bar/xalan.jar -IN input.xml -XSL foo/bar/docbook.xsl -OUT output.html
etc... 편집기로는 utf-8를 지원하는 편집기를 사용하거나 전용 편집기를 사용하면 된다. 기존의 완성형 환경(EUC-KR)을 사용한다면 xml문서에 명시를 해주면 된다. 요소 시작하기 DocBook XML버전은 SGML버전과 호환되며,이 때 xml을 선언을 추가해 주면 된다. 예 2. xml문서에 대한 선언


한글 xml 문서는 euc-kr이나 utf-8인코딩으로 지정한다.utf-8인코딩으로 설정한다면 편집기가 이를 지원해야 한다. 만일 DocBook DTD가 시스템 안에 있다면 다음과 같은 방식도 가능하다. 예 3. 내부의 dtd 사용


이 선언에서 은 이 문서가 시작되는 최상위 기초요소(root element)를 뜻합니다.즉 이 문서는 book부터 시작되는 요소를 사용한다는 것을 말한다. 최상위 기초요소 자주 쓰이는 최상위 기초요소들: set,book,chapter,article... book처럼 최상위 기초요소(root element)로 자주 쓰이는 몇 가지 요소가 있다.우선 set이 있는데,set은 여러 book을 가질수 있다.간단히 말해 다음과 같다. 예 4. set,book관계





....

가시적으로 book의 집합이 set이라는 것을 알 수 있다. 그리고 book 안에는 많은 chapter가 있다. chapter에는 많은 section이 들어 있다. 하나의 section에는 많은 para가 있으며,이 para가 바로 문단이다. 즉 문서의 종류에 따라 최상위 기초요소(root element)가 결정된다. 책, 논문, 안내문 등의 종류 말이다. 보통 chapter,article,book 정도를 많이 사용한다.chapter는 간단한 안내문에서,article은 chapter와 같은 위치에 있지만 chapter를 좀 더 독립된 수준의 문서로 만들 때 따로 정의해서 사용한다.book은 독립된 책이므로 preface,appendix 등이 포함된다. †† 자주 쓰이는 요소 이 부분은 DocBook으로 글쓰기의 4장. 더욱 다채로운 기능들 을 참고 하자. 그리고 더 자세한 자료는 DocBook:The Definitive Guide 에서 볼 수 있다. 변환 HTML로의 변환 html로의 변환은 앞에서 본 것과 동일하다.
java -jar foo/bar/xalan.jar -IN input.xml -XSL foo/bar/docbook.xsl -OUT output.html

참조
  • VISUAL QUICKSTART XML
  • DocBook으로 글쓰기
  • DocBook:The Definitive Guide
  • DocBook XSL Stylesheet Documentation
  • xml-apache
    현재 DocBook은 version 5.0 alpha1까지 나와 있다. †† DocBook으로 글쓰기를 참고했다. 세부적인 요소는 DocBook:The Definitive Guide의 Reference을 참고하자. DocBook:The Definitive Guide 는 온라인과 오라일리 책으로 출판되어 있다.

    to be continue...


    신명수님은 한빛 리포터 1기로 활동 중이며, 자바와 리눅스에 관심이 많습니다. 올해엔 애인을 구하는 것이 목표라고 합니다.
  • TAG :
    댓글 입력
    자료실