DITAの変更履歴

お客様からスタイルシートの仕様をPDFでいただくのですが、元はDITAで作成しているそうです。プロジェクトが進むに従いQ&Aのやり取りを反映して、仕様書も改訂されてゆきます。それ自体はよい事なのですが、私の方では新しいPDFを受け取るたびにため息が出てしまいます。それは膨大な仕様書の中で、その前のバージョンからどこがどう直されたかがすぐにはわからないからです。仕様書を書く側でもこの点を考慮されて、修正箇所には「最新」などと注を入れていただける場合がありますが、かならずしもすべてではありません。

ではどのように差分をチェックするかと言うと、けっこう苦労しています。たぶん世の中ではPDFの比較ツールなんかをお使いの方もおられると思いますが、中小企業の身ではAcrobatの文書比較くらいしかツールがありません。でもAcrobatも会社のデスクトップには入っていますが、自分のノートPCにはReaderしか入っていないのでいざというとき使えませません。やむなくローテクで、新旧のPDFを開いてCTRL+Aで文書全体のテキストを選択してCTRL+Cでコピーしてテキストファイルに落とします。それをWinMergeで比較して差分を見ています。これは結構便利です。oXygenにもXML Diffという結構優れたツールが入っていますが、ソースレベルで差分を見てもいまいちピンと来ません。

こんなことをやっていると、Wordの方がよっぽど良いのではないかと思えてきます。Wordの差分の管理機能は10年来ずっと使っていて、これは私がお客様に仕様書を送る立場なのですが、毎回の修正箇所がすぐわかるように、

1.新しく仕様書を修正するときはそれまでの変更履歴を全部反映させます。
2.今回修正分から差分が見れるようにセキュリティを設定します。

とやっていました。

DITAの場合、もしCMSを使うような規模の管理ができる状態なら、CMSが変更履歴(リビジョン間の差分)を表示するようにしてくれる機能があります。例えばSDLのLive Contentsは優れていて、次のように複数のリビジョンをチェックアウトして比較し、結果をDITA-OTに処理させて、差分がわかるPDFとして出力する機能があります。例えば次の例のようにリビジョン間の差分を削除された箇所は赤で取り消し線、挿入された箇所は青で下線で表示できます。

イメージ 1



もちろんこのような出力はDITA-OTが標準で備えているものではなく、DITA⇒XSL-FOのスタイルシートの改造が必要です。

でも必ずしもDITAを使うすべてのお客様が高機能のCMSを使っているわけではありません。こういう時に使えるのがXMLエディタのChange Tracking機能です。例えばoXygen XML Editorは次のように変更を管理してくれます。見ていただくとわかりますが、oXygen特有の処理命令で変更を表してくれるのです。


[オーサリング画面]
イメージ 2


[コード画面]
イメージ 3


もしoXygenの出している処理命令をスタイルシートが解釈して処理できれば、上記のCMSのような出力を得ることもできるはずです。今度少し研究してみたいと思います。