jeyseni's diary

「ジェイセニ」と呼んでください。批判ではなく提案をするのが生き甲斐です。

ファイルメーカーのXML処理に挑戦--XLTSスタイルファイルの設計がもはや時代遅れという指摘で断念

インターネット黎明期に,初めてHTMLのタグ処理に触れたときは衝撃的な印象を受けた。たとえば文字を<B></B>で挟めば,その文字を太字にしてブラウザで表示させられる。文字のサイズの変更,書体の変更,色の変更,そして画像を表示させたり,表形式で表示させたりと,さまざまなタグが用意されていた。

 しかし,もともと文章を書くことが仕事の筆者は,文字の修飾処理にはほとんど関心がなかった。それはレイアウトデザイナーの仕事であると割り切っていた。したがって,専用の日本語ワープロ時代からパソコンに移って,Wordなどの文章作成ソフトを使っても,ただテキストをベタ打ちする使い方しかしてこなかった。もちろんCO2などの下付き数字などは修飾を加えていたが,その程度だった。少し凝ったチラシを作るような場合でも,配置の自由度のないワープロソフトよりも,PowerPointなどのプレゼンソフトの方を主に使った。

 HTMLでホームページを作ることにも挑戦したが,たとえば「画面を縦に3分割にする」といったタグを書くのが面倒だった。WYSIWYGと呼ばれる画面レイアウトを作れる作成ソフトも使ってみたが,思ったとおりのホームページを作る才能はなかった。そのうち,HTMLをいじることもなくなった。現在は,Webサーバーも提供している「JIMDO」のテンプレートを使ってホームページ作りをしている。中がどういうHTMLで書かれているのかすら見ることもない。

 一方,仕事でアンケートを取ることになった。現在はgoogle formを使って,オンラインで直接情報を収集することが中心になっているが,その前段階として,PDFのフォーム機能で空欄に書き込んでもらってメールで送り返してもらう,という仕組みを作った。それ以前は,先方に回答用紙を郵送し,手書きで記入して返送,あるいはFAXで返送してもらうというスタイルだった。しかし,FAXでは文字を読み取るのが難しかったし,郵送されても結局はこちらでタイピングして文字を起こさなければならなかった。PDFフォームならコピーペーストで情報を収集することができる。

 しかし,項目数が多くなると,コピペの回数が多くなり,面倒になってくるし,間違いも起こりやすい。そこで,PDFフォームから回答情報をテキストファイルやCSVファイルで取り出し,これをまとめて処理することで合理化を図っている。

 PDFフォームからの情報の取り出し方法として,上記のほかに「XMLファイル」への書き出しが提供されている。一方,筆者愛用のファイルメーカーには,かなり初期からXMLファイルでのデータの書き出し,読み込みが提供されていた。なんでも一発で処理できることが好きな筆者は,XMLのタグを使ってデータを一気に取り込むことができることが理想的な方法だとずっと思ってきた。

 しかし,XMLファイルの読み込みには,どのタグをどのフィールドに割り当てるか,という変換テーブルを提供する「XSLスタイルシート」が必要と書かれている。この作成方法についてほとんど情報がなく,適当に操作するとエラーとなり,どうしても読み込むことができなかった。

 今回,意を決してこのXSLスタイルシート作りを試してみることにした。claris社のヘルプページを皮切りに,web上での情報を検索し,できないときのMBS頼みもしてみたのだが,簡単にXSLスタイルシートを作る方法が見つからない。ファイルメーカーのユーザーグループによるブログに当たってみたところ,「XMLは応用範囲が狭い」とか「無駄なタグばかり」とか「いまはJSON」といった具合に散々なコメントが見つかった。「単に情報を取り出すだけなら,テキスト情報からposition関数で取り出せばいい」というコメントまであった。これはこれまで筆者も実現していた方法である。

 たしかに,XSLスタイルシート上の文法は,ほとんど理解できなかったので,あきらめることにした。ただせっかくなので,XMLファイルの中のタグ情報を使った処理を新たに作り込んだ。これまではテキストファイルのカンマ区切りの何番目,という取り出し方をしていたので,情報が1つでもずれるとすべてやり直しになっていたが,XMLのタグ単位でテキストを取り出せば間違いなく取り出せた。またこれまでは項目ごとに取り出しのスクリプト行を書いていたが,ループ処理で数行でスクリプトを作ることができた。

 逆に,現在はファイルメーカーのデータを使って,ホームページ用のHTMLファイルを出力する使い方をしている。フィールド単位で計算式に組み込む際,その前後にタグを埋め込むという方法で,実に安定した運用ができている。テキスト処理が安定的に実現できるのが,ファイルメーカーの良さの1つであると,改めて認識している。