wiki:DocBookXML

Version 6 (modified by yasumichi, 15 years ago) (diff)

--

DocBook XMLに関するメモ

オンラインマニュアルの作成にDocBook XMLを使用しています。

DocBook XMLの記述例

<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="example-book">
  <title>DocBookの例</title>
  <chapter id="example-chapter">
    <title>章の例</title>
    <para>段落の例です。</para>
    <sect1 id="example-sect1">
      <title>節の例</title>
      <para>chapterを分割するsect1の例です。</para>
    </sect1>
    <sect1>(中略)</sect1>
  </chapter>
  <chapter>(中略)</chapter>
  <appendix id="example-appendix">
    <title>付録の例</title>
    <para>(中略)</para>
  </appendix>
</book>

DocBook XMLを別の形式に変換する

!DocBookに限った話ではないのですが、XMLファイルを別の形式に変換する場合、xsltprocコマンドを利用します。その基本構文は次の通りです。

$ xsltproc オプション XSLスタイルシート XMLファイル

!DocBook用のXSLスタイルシートは、/usr/share/sgml/docbook/xsl-stylesheets以下に用意されています。以下、HTMLファイルに変換する例を記述します。

単一のHTMLファイルに出力する

$ xsltproc /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl source.xml > dest.html

XSLスタイルシートに/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xslを使用した場合、標準出力にHTMLを吐き出しますのでリダイレクトしています。

複数のHTMLファイルに分割する

$ xsltproc /usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl source.xml

ファイル名は、分割される単位の章(chapter)や節(sect)に指定したidを元にします。idが指定されていない場合、自動でファイル名が決定されます。

XSLスタイルシートパラメータを使用する

xsltprocのオプション --stringparam を使うとXSLスタイルシートパラメータを指定する事ができます。

出力エンコーディングをeuc-jpにする

--stringparam chunker.output.encoding euc-jp

出力を整形する

--stringparam chunker.output.indent yes

外部リンク