docbook
DocbookをHTMLに変換するには
Docbookで書かれたXMLをHTMLに変換するのは簡単です。
なぜなら、
DocBook-XSL
というDocbookをいろいろな形式に変換するためのスタイルシート集があるからです。
DocBook XML documents into other DocBookOutputFormats, such as HTML, PDF, Microsoft HTML Help, and man pages.
ただし、デフォルトで生成される出力はかなり素朴なものなので、 多くの場合、 商用で使うには、スタイルシートをカスタマイズする必要があるのではないでしょうか。
DocBook-XSLのスタイルシート集は結構巨大なので、どこからどうカスタマイズに手をつけたらいいか、わからないのですが、 DocBook XSL:The Complete Guide というすばらしいドキュメントがあるので、これを読んでいけば、DocBook-XSL が想定しているカスタマイズ範囲ならば かなり短期間でカスタマイズ対応ができそうです。
今回は、 デフォルトで生成される List of Tables を消す、というカスタマイズをやってみたのでメモとして残します。
Ant で XMLを処理 ... XMLの整形(インデントと改行位置の調整)
Docbook v4.4のXMLを使ってドキュメントをつくり、FrameMakerでフォーマット、 そのXML文書を多言語展開して、FrameMakerでフォーマット、という仕事をしていると、 diff とか diff3 を使ってXML文書を比較する機会が結構ある。
- 異なるリビジョンのドキュメントで変更点をチェック
- 多言語展開済み(=翻訳済み)XMLに対して再翻訳が発生した場合にdiff3を使って変更マージ
などの場合。
そのときに diff, diff3 を使って差を調べるのだが、XMLとして内容が同じでも 改行位置やインデント量が異なると diff, diff3 は内容が異なっていると判断してしまう。 これは意図したことではないため、対策として diff,diff3処理する前に、XML文書を整形して、改行位置とインデント量を整える(normalize 正規化) 作業を行う必要がある。
これをAntで処理する方法。
Ant で XMLを処理 ... DOCTYPE 宣言の削除
jdom などでXMLを変換するときに、DOCTYPE宣言がついていると(ネットワークに情報を取得していくのか) 処理がとても遅くなることがある。 そこで、DOCTYPE宣言を削除してからXMLを変換するのだが、その削除作業をAntで行う方法。
このエントリでは、処理するXML文書はDocBook v4.4で記述されていることとする。
DocBook4.4 のDTDを rng へ変換
DocBook4.4 で記述されたXML文書を
jing.jar で妥当性検証したかったのだが、
- http://www.oasis-open.org/docbook/xml/ DocBookの各バージョンのスキーマ一覧
上記サイトでは、 DocBook4.4 の rng ファイルは提供されていなかった。
調べてみると、trang.jar を使えば、DTD を rng に変換できることがわかったので、試してみた。 問題なさそう。
DocBook V5.0 を書いて妥当性検証する方法
DocbookのXMLから目次情報を抽出する toc.xsl の作成(改良版→番号の追加)
前回 Docbook で記述されたXML文書から目次情報の抽出をしましたが、 章番号やセクション番号がない状態だったので、今回はそれを追加します。
DocbookのXMLから目次情報を抽出する toc.xsl の作成
今回は、Docbookで記述されたXML文書から目次情報だけを抽出してみます。
テストで処理対象としたXML文書は、 こちら(Apache Velocity DocBook Framework ) から入手できる DBFUserGuide.xml を使用します。これは、Docbook4.5を使って記述されています。
Twitter