Index > DocBook + FrameMakerによるドキュメント制作、作業環境の構築
Sat, February 7, 2009

DocBook + FrameMakerによるドキュメント制作、作業環境の構築

DocBook,FrameMaker,XMLを使って作業をしていると、 XMLインスタンスからDTDを作成したり、XSLTで変換したり、 XMLを読みやすい形式でインデント付けたり・その逆(不要なスペースの削除)、 といったことを頻繁に行います。
これらをCygwin上で簡単に実行できるようにコマンド化します。

TOC

事前準備

$HOME/bin にパスを通しておく

.bashrc に以下の記述を追加

export PATH=$HOME/bin:$PATH

javaコマンドにパスを通しておく

JavaVMを通常の手順でインストールするとパスは通るので省略。

XMLインスタンスからDTDを作成するためのコマンド trang の作成

trang.jar を $HOME/bin/lib/tran.jar に配置した上で、以下のコマンドを $HOME/bin/trang に作成

#!/bin/bash
java -jar `cygpath -wp $HOME/bin/lib/trang.jar` $*



$ chmod 755 ~/bin/trang

例:trangを使ってXMLインスタンスからDTDを生成

$ trang -I xml -O dtd foo.xml foo.dtd

XSLTでXMLを変換(saxon)

sanxonのファイル一式を を $HOME/bin/lib/saxon/ に配置した上で、以下のコマンドを $HOME/bin/saxon に作成

#!/bin/bash
java -jar `cygpath -wp $HOME/bin/lib/saxon/saxon9.jar` $*



$ chmod 755 ~/bin/saxon

XMLにインデントを追加して読みやすくするコマンド pretty の作成

jdomを利用して、XMLインスタンスにのインデントを追加、 人間が読みやすい形式に変換します。

その上で、以下のコマンドを $HOME/bin/pretty に作成

#!/bin/bash
java -cp `cygpath -wp $HOME/bin/lib/jdom.jar:$HOME/bin/lib` PrettyXML $*



$ chmod 755 ~/bin/pretty

$ pretty foo.xml > foo-with-indent.xml

XMLのスペースを削除するコマンド unpretty の作成

prettyコマンドの逆の処理を行います。 インデントを削除および無駄なスペースの削除を行います。

その上で、以下のコマンドを $HOME/bin/unpretty に作成

#!/bin/bash
java -cp `cygpath -wp $HOME/bin/lib/jdom.jar:$HOME/bin/lib` UnPrettyXML $*



$ chmod 755 ~/bin/unpretty

$ unpretty foo.xml > foo-nospace.xml
 Twitter
follow me on Twitter
 Categories