Front Page 2003による RSS配信用 XMLデータの自動生成について

弊社テクノベインズのWebでは、主にFrontPage 2003を使用してWebページの編集作業を行っています。
今回その環境で、XMLによるRSS配信に対応いたしました。
参考用の技術情報として以下を記します。

 

RSS用XML生成プログラムについて

FrontPage2003でのRSS用XML作成についての情報は、以下のMicroSoftのWebから見ることができます。
ここで用いられている説明やプログラムでは、英文しか対応できないため、文字コードについてのいくつかの変更が必要となります。

上記からRSSTOOL.EXEをダウンロードできます。
RSSTOOL.EXEとありますが、これ自体が実行形式のEXEプログラムというわけではなく、FrontPage2003用のVBAやXSLなどが収録された圧縮EXEです。

 

RSS配信の際に考慮したい部分

以前から、更新情報についてRSS配信を行いたいと考えていたところ、MicroSoftのWebにてVBAを用いてRSSを生成する方法が紹介されていましたので、その参考をベースに弊社Web用にプログラムを修正しました。

特に、以下の点を考慮する必用がありました。

  • Webデータとして、すでに10年以上の蓄積があり、それらは基本的な文字コードとしてShift-JISで作成している。
  • FrontPage2003管理下のすべてのフォルダを自動的にチェックし、1つのRSSとして配信したい。
  • 配信したくないフォルダは、自動的に除きたい。
  • 更新後、希望するタイミングで、簡単にRSSを更新したい。(マニュアル操作で)
  • 変更データの収集期間は、Blogではないので、1週間程度ではなく、もっと長めにしたい。(自由に設定したい)
  • すべてのページからRSS変更情報にアクセスしたい。

テクノベインズWeb自体、実際にはFrontPageだけでなく、同じサーバー上でショッピングカート(自社製)やCMSなど、他のシステムも同時に動いていますが、この辺はWebサーバーであるApacheの機能にて、フォルダを分離していますので、今回はあくまでFrontPage管理下のWeb情報のみでかまわないと考えています。

 

プログラムの修正

FrontPage2003は、言語としてVBA(Microsoft Office FrontPage 2003 Visual Basic for Applications )を内蔵しており、これによりいくつかの機能を拡張させることができます。

上記のマイクロソフト社のRSSTOOLSはVBAのプログラム(インタープリタソース)ですので、ここに直接修正を加えることで、いろいろな機能に対応させることがきます。
RSSTOOLのソース自体をここには転載はできませんので、同様の作業を検討されていらっしゃる場合、以下の情報を参考に修正されると良いと思います。

 

まず、RSSデータの文字コードについてですが、Tool自体はテキスト文字列としてXMLファイルを構成していきます。
ShiftJISへの対応は、ヘッダー生成文字列のエンコード指定を行うことで、対応できます。
RSSデータであるXMLファイルのヘッダーを出力する際に、encoding="Shift_JIS"を出力するようにすればOKです。

<?xml version="1.0" encoding="Shift_JIS"?>

最初、XMLでのRSS配信において、文字コードはUnicodeに限られるのかと思っていたのですが、文字コードをきちんと指定すればShift-JISでもOKであることがわかり安心しました。(XMLについては、まったくの初心者なので...)

シフトJISで生成したXMLデータを、いくつかの公開RSSチェッカーなどで確認したのですが、特に問題はないようです。
実際使われているRSSデータを公開チェッカーによりチェックすると、日付のフォーマットが引っかかることが多いようです。
今回はプログラム的にXMLを生成するのですから、要求仕様に合わせることは簡単でした。

Tue, 14 Nov 2006 15:46:02 +0900

RSS2.0の仕様では、日付形式は上記の形式のようなので、VBAでは以下のように指定することで作成できます。

Format(intPubDate, "ddd, dd mmm yyyy hh:nn:ss") & " +0900"

※intPubDateには、ファイルの最終変更日時プロパティ(vti_timelastmodified)から得られた日時データ(int形式)が入っています。
※最後の+0900は日本標準時間(JST)が世界標準時間(GMT)から9時間進んでいることを示します。

 

RSSのチェックがおこなわれる際に、前回と同じRSSデータと認識されるためには、<title>、<link>、<description>についてはチェックされているようなので、ここはダイアログからの自由入力にするのではなく、初期値を入れるか、プログラム的に固定したほうがよさそうです。
簡単な方法としては、テキストボックスの初期値として設定してしまいます。

 

WebFilesオブジェクトを使用すると、FrontPageで作成中のWeb中のファイル情報をプログラム的に利用できるようです。
WebFilesをFor eachによりチェックすることで、Web中のすべてのファイルをチェックできます。

ファイル名の拡張子のHTML,HTMなど、RSS対象としたい拡張子を持ったすべてのファイルのプロパティの最終更新日付(vti_timelastmodified)と、現在の日付とを比較することで、最近更新が行われたファイルを見つけることができます。

また、ループ内でフォルダの位置やファイル名をチェックすることで、RSSに配信したくないフォルダやファイルを排除することができます。
xx以下のフォルダは配信対象に含めないや_で始めるファイルは含めないということも簡単にできます。

VBAで記述されたプログラムを、FromtPageのツールバーにボタンとして登録することで、自分の都合の良いタイミングで、1クリックでRSSを生成できるようになります。

また、FrontPageの共有枠にRSSを配置することで、すべてのページから最新のRSSを使用することができます。

余談となりますが、TOOLに含まれるrss.xslはスタイルシートなので、特に内容を変更する必要はありませんが、あわせて配置する必要があります。
最初これに気がつかず、ファイルをアップしなかったとところ、ブラウザで見るとエラーがでてRSS.XMLを見ることができませんでした。
エラーチェックは問題なく通るところまでいったのですが、いろいろプログラム的に変更しても表示されずかなりの期間悩みました。

近年CMSによるWeb作成が主流となってきたせいか、FrontPageによるWeb作成は情報が少ないようです。
ある程度までの規模のWebを、Windows上でHTMLベースでページを記述するためのツールとしては、Frontpageはよくできたソフトウェアであると思います。あとは、MDBからスタティックなページ生成が直接行えるとうれしいのですが、VBAを使用するとうまく行くかもしれません。
今回のFrontPageからRSSデータの配信については、以前から何回か作りたかったのですが、なかなか参考になるものがなく、苦労しました。どのくらいFrontPage2003のユーザーがいらっしゃるのかはわかりませんが、同様のことをお考えの方に多少なりとも参考になればと思い、このページを作成しました。
 

前述のMSの参考ページについては、日本語化されたページ(FrontPage Web サイト用の RSS フィードを作成する)が存在した(自動翻訳ではなく)のですが、現在は削除されてしまったようです。
日本語版とWeb中に書かれていたのですが、Web内容が日本語版であって、実際のプログラムや解説は英語にしか対応していなかったので(MSにクレームでも入った?のかもしれませんが)、是非残しておいてほしかったです。

 

Last Update : 2011/09/09


戻る トップページへ ご注文方法について 更新情報 
 テクノベインズ株式会社 〒113-0034 東京都文京区湯島3丁目31-4 ツナシマ第1ビル2階 電話:03-3832-7460 (平日:09:00-17:30) FAX:03-3832-7430
Techno Veins Co.,Ltd. Tsunashima Daiichi Bldg 2F, 31-4, Yushima 3, Bunkyou, Tokyo, 1130034, JAPAN. Tel:+81 3-3832-7460 FAX:+81 3-3832-7430  sales@technoveins.co.jp (弊社地図)
©Copyright Techno Veins Co.,Ltd. 1987-2011. All rights Reserved.