| 1. KELFをどう使うか
具体例(1)のNetNew記事のエクスポートは、既存の文書をそのままXML化したものでした。
2. タイトルをタグ名にする
具体例(2)のFAQ集の作成は、文法を作り、XML化を意識して文書を書き、ブラウザで表示できるようにしました。 これらは、通常の文書を簡単にXML化できる、という点において大きな意義があるものと自負しています。 しかし、凝ったデータ構造や凝った表示をしようとすると、KELFのセクション構造の制約から、種々の無理が生じてくるのも事実です。 そこで、この項では、KELFをXMLエディタ風に使うことにより、自由にXML文書を作成する方法を示します。 ただ、この方法を採用した場合、スタイルシートはすべて自分で書かなければなりません。どんな形式の文書が作成されるか、まったく予想できないので、それに見合ったCSSやXSLを自動生成することができないからです。 ですから、この手法を使い、ブラウザで表示するための文書を作成するには、XSLの知識が必須になります。ブラウザでの表示を考えず、データ貯蔵用としてのXMLを作りたいだけなら、XSLは無関係で、この項を読んでいただくだけで、だれもが作成できると思います。 (XSLそのものはきわめて簡単な言語です。アプリケーションマクロを使うような感覚で使うことができます。 ただ、XSLはXMLの上になりたっています。望みのデザインを生成するためには、前提としてHTMLの知識も必要でしょう。そうした基礎になる知識が乏しいと、XSLをむずかしく感じさせるかもしれません。) 「KELFをXMLエディタ風に使う」を具体的に言えば、セクションタイトル、またはその一部をXMLの要素名にする方法です。
3. 具体的な例
例をあげて説明します。 次のような構造の住所録XMLを作成したいと仮定します。 <個人> <名前></名前> <姓></姓> <ふりがな></ふりがな> <メールアドレス></メールアドレス> <携帯電話></携帯電話> <電話></電話> <FAX></FAX> <住所></住所> <勤務先> <会社名></会社名> <電話></電話> </勤務先> <誕生日></誕生日> </個人> KELF流に言えば、階層0が個人、階層1に名前、姓、ふりがな、携帯電話、電話、FAX,住所、勤務先、誕生日があり、階層2に会社名と電話があります。 こうした構造をもつXMLを作成する場合、新たに文法を作ります。 文法の肝心なところはタイトル行の設定です。 たとえば、つぎのような3パターン設定します。 (パターン1)^#0− (パターン2)^#1− (パターン3)^#2− 「タイトルの種類で階層構造を作る」をチェックしておきます。 このパターンをXMLの構造に対応させるのです。そのため、上のパターンを^#[0-9]−と書かないで、3つにわけているわけです。 具体的には次のように文書を書いていきます。おそらく全セクション表示モードが使いやすいでしょう。 #0−個人 #1−名前 太郎 #1−姓 山田 #1−メールアドレス yamada@foo.co.jp #1−携帯電話 090-xxxx-xxxxx #1−住所 東京都xxxxx #0−個人 #1−名前 花子 #1−姓 鈴木 #1−メールアドレス suzuki@some.co.jp #1−住所 東京都xxxxx #1−勤務先 #2−会社名 A電気産業 #2−電話 03-7xxx-xxxx #0−個人 #1−名前 一郎 #1−姓 斉藤 #1−メールアドレス saito@some.co.jp #1−住所 北海道xxxxx #1−勤務先 #2−会社名 SSS株式会社 #1−誕生日 1972/1/1 そしてある程度入力したら、「文書全体の再解析」コマンドでセクション構造を構築します。セクション構造を構築したら、あとはエクスポートの実行です。 最初のページに「セクションタイトルを要素名にする」といチェックボックスがあります。ここをチェックします。チェックすると「一部分を抽出して要素名にする」がチェック可能になりますので、ここもチェックします。 そしてこの場合なら、「抽出用の正規表現」として、 ^#[0-9]ー(.+)$ と指定し、マッチさせる部分として1、すなわち(.+)の部分を指定します。 あとはデフォルトのままでOKです。 「最後のページ」へ飛び、XMLを出力させます。 最初に意図したXML構造が出力されるはずです。このあと、これをどう使うかはあなた自身が考えなければなりません。 Kazusoftのホームページはほとんど上記の手法で作成しています。
ポイントは上記で尽きているのですが、次項ではKazuoftホームページから素材を取り、実践的な例を示します。 |