やってはいけないDITA(その2)

やってはいけないDITAの2つ目です.

PDFを埋め込んじゃう

以前ビックリしたことがあったのですがbookmap/frontmatterにいきなり次のようなtopicrefが登場していました.

<topicref href="hajimeni.pdf" format="pdf"/>

これは何を意図しているかというと、PDFの表紙や目次の前に、hajimeni.pdfで1ページを作って、読み手に最初の注意事項を読ませるものです.内容は「製品使用上の注意」とか簡単に言えば使用者が事故などを起さないようあらかじめ注意点をまとめて述べるような内容です.

しかしさすがにtopicrefでPDFを指しているのはそれまで初めてだったので驚きました.ただプラグインXSLTスタイルシートの実装は簡単で、このtopicrefに対してfo:page-sequenceを生成して、fo:external-graphicでこのPDFのパスを指定してやるだけです.

このようなbookmapのオーサリングは大きな問題を抱えています.PDFなので、プラグインXSLTスタイルシートは内容には一切タッチできません.なおかつ問題なのは、お客さんはせっかくCMSを導入したのにこのPDFの内容をCMSでは管理できない、つまり多言語展開もできないし、ましてや再利用もできないということです.

こんなことをするのは一にも二にも普通のトピックとは一風変わった内容を出力するこの部分のXSLTスタイルシートの開発費を投資するのがもったいないからと推測します.最近はMicrosoft Wordでいとも簡単にPDFができますから、お客さんはささっと「製品使用上の注意」の文書をWordで作って、CMSには画像として登録し、マップにtopicrefで書けばそれで済んでしまう方法を見つけてしまった訳です.

こういう例外的な方法を取りだすと、永久にコンテンツをCMSで一元管理することができなくなります.その時々では短期的にはXSLTスタイルシートに対する投資を削れても、DITAのマップとトピックとはかけ離れたところでPDFのコンテンツ(元のWord文書)を管理しなければならないので、その手間は永久に続きます.もしこのWord文書を各国語展開することになったら、CMSのコンテンツとは別のルートを通して、なおかつ各国語の翻訳版をバージョン管理して保管しておかねばなりません.

短期的な経費削減を考えて、長期的には損をする典型的な手法です.

本気でCMSでコンテンツを管理しようとする組織は、CMSのコンテンツをチェックアウトしてパブリッシュしてという当たり前の流れから外れる作業を極端に嫌います.たまたま便利に見えても、それは自分たちがやってきた努力を根底から崩してゆくものとわかっているからです.

まあお客さんはいろいろです.本気でやろうとしている方、この例のように昔の時代の郷愁にとらわれて、中途半端なところをうろうろしている方.XSLTスタイルシートを作る側からみれば、そういうお客さんの本気度が一発で見えてしまうので、あまりその気になっていないお客さんの仕事をやるのは気乗りがしません.終局的にはお客さんの利益にならないことがあきらかだからです.