スマート タグ リストの開発

Download sample code サンプルのダウンロード (ODC_stXML.exe)

Paul Cornell
Microsoft Corporation

May 2001
日本語版最終更新日 2001 年 8 月 16 日

対象 :
   MicrosoftR Office XP

概要 : この記事は、eXtensible Markup Language (XML) を使って、 Microsoft Office XP 用のスマート タグ リストを作成、配置、および管理する方法 を説明します。

MSDN Online Downloads (英語) で ODC_stXML.exe をダウンロードしてください。

目次

はじめに
最初のスマート タグ リストの作成
スマート タグ XML 構文の調査
Visual Studio Installer を使ったスマート タグ リストの配置
スマート タグ リストの更新
まとめ

はじめに

スマート タグは、Microsoft Word Version 2002、Microsoft Excel Version 2002、Microsoft OutlookR Version 2002 (Word を電子メール エディタとして使用する場合)、および Microsoft Internet Explorer (コンピュータに Office XP または前述のスタ ンドアロン アプリケーションの 1 つがインストールされている場合) の新機能です。このス マート タグを使用して、ユーザーの入力中にテキストに文脈に応じたラベルを付けること ができます。たとえば、"Paul Cornell" には人名としてラベルを付けることができ、"MSFT" には株式銘柄コードとしてラベルを付けることができます。テキストにラベルが付けられた 後、ユーザーはそのテキストに適用される利用可能な操作の一覧から操作を選択で きます。たとえば、ユーザーは [氏名] フィールドに既に "Paul Cornell" が格納された 新しい連絡先レコードを Outlook に作成したい場合があります。また、ユーザーは MSNR の MoneyCentral Web サイトから "MSFT" の最新の株価を入 手したい場合もあります。スマート タグはこのような機能を容易にします。ユーザーは、 "Paul Cornell" にマウス ポインタを合わせ、[スマート タグ動作] ボタンをクリックして、 [連絡先に追加] を選択できます。同様に、ユーザーは "MSFT" にマウス ポインタを 合わせ、[スマート タグ動作] ボタンをクリックして、[MSN Money Central の株価相 場] を選択できます。スマート タグは拡張可能なので、独自に認識可能な文字列、 分類ラベルを作成でき、同時にそれらの分類に対してカスタマイズ可能な動作を作成 できます。

独自のスマート タグを作成するためのオプションがいくつかあります。動的な、対話 性の非常に高いスマート タグを作成する場合は、Microsoft Visual BasicR ま たは Microsoft Visual C++R などのコンポーネント オブジェクト モデル (COM) ベースのアプリケーション開発システムを使用できます。スマート タグ リストの場合は、 テキスト エディタまたは HTML エディタ (メモ帳や Microsoft FrontPageR) を 使用できます。この記事では、スマート タグ リストを中心に説明します。 Visual Basic を使用した、動的で、対話性の高いスマート タグの作成に関する詳細 については、以前の記事「スマート タグ DLL の開発」を出発 点として参照してください。

読者は、スマート タグ リスト スキーマ、つまり Microsoft が指定した構文に従って、 スマート タグ リストを作成できます。その結果、Microsoft Office XP は特定のテキス トを動作可能と認識でき、同時にこれらのテキスト文字列に対応する適切な動作を提 供できます。スマート タグ リスト スキーマは Extensible Markup Language (XML) 形式 で記述されます。XML について説明することはこの記事の目的ではないので、XML の 詳細については、MSDN Online XML Developer Center を参照してください。

スマート タグ リスト スキーマの記述が完了した後、エンド ユーザー コンピュータの 特定のパスに XML を含むファイル (以後 "XML リスト記述ファイル" と呼びます) に保存 します。Office XP はこのパスを使用して、動作可能なテキストとして配置され、ラベル が付けられている機能を検索します。Microsoft Visual StudioR Installer など の配置ツールは、XML リスト記述ファイルを自動的に配置します。

既に配置した XML リスト記述ファイルの利用可能なテキストや動作に対する更新 機能を提供する場合は、エンド ユーザーが更新を自動的にユーザーのコンピュータに取 り出せるように、単純な XML ファイルを (Microsoft Internet Information Services に 含まれるような) Web サーバーに追加できます。

以下のセクションでは、このような XML リスト記述ファイルの作成、保存、配置、テス トおよび管理について説明していくつもりです。

最初のスマート タグ リストの作成

最初の XML リスト記述ファイルを作成するには :

  1. スマート タグを認識するアプリケーション (Word Version 2002、Excel Version 2002、 Outlook Version 2002、および Internet Explorer) がすべてシャットダウンされていることを確認 します。

  2. メモ帳を開き、以下のテキストを入力します (または、ダウンロードしたサ ンプルの msdnodc.xml ファイルを表示します)。

    <FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list">
    <FL:name>MSDN Office Developer Center Related Terms</FL:name> 
    <FL:lcid>1033</FL:lcid>
    <FL:description>A list of MSDN Office Developer Center related terms for recognition,
        as well as a set of actions that work with them.</FL:description>
    <FL:moreinfourl>https://msdn.microsoft.com/office</FL:moreinfourl>
    <FL:smarttag type="urn:schemas-microsoft-com:smarttags#msdnterms">
        <FL:caption>MSDN Office Developer Center Related Terms</FL:caption>
        <FL:terms>
            <FL:termlist>access, developer, excel, msdn, office, 
              outlook, powerpoint, vba, visual, word, xp</FL:termlist>
        </FL:terms>
        <FL:actions>
            <FL:action id="ODCWebSite"> 
              <FL:caption>&amp;MSDN Office Developer Web site</FL:caption>
            <FL:url>https://msdn.microsoft.com/office</FL:url>
            </FL:action>
                <FL:action id="MSDNWebSite">
                <FL:caption>MSDN Main &amp;Web site</FL:caption>
                <FL:url>https://msdn.microsoft.com</FL:url>
            </FL:action>
                <FL:action id="OfficeWebSite">
                <FL:caption>Microsoft &amp;Office Web site</FL:caption>
                <FL:url>https://www.microsoft.com/office</FL:url>
            </FL:action>
        </FL:actions>
    </FL:smarttag>
    </FL:smarttaglist>
    
  3. ファイルに msdnodc.xml という名前を付けて、ディレクトリ C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists に保存します。

  4. Word Version 2002 を起動し、以下の単語を 1 つ以上スペースかキャリッジ リターン で区切って入力します。accessdeveloperexcelmsdnofficeoutlookpowerpointvbavisualword、または xp

  5. 手順 4 で入力した単語の下に、紫色の点線の下線が引かれていることに 気付くでしょう。これらの単語の 1 つにマウス ポインタを合わせ、[スマート タグ動作] ボタンをクリックし、[MSDN Office Developer Web site]、[MSDN Main Web site]、 または [Microsoft Office Web site] などのコンテキスト メニューの選択肢の 1 つを クリックします。

スマート タグ XML 構文の調査

上記の例の XML は、Microsoft がスマート タグに対して定義した特定の構文に 従っています。読者が独自の必要条件を満たすように XML をカスタマイズできるよう にするために、ここでこの構文について説明しましょう。

テキストの最初の行、<FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list"> は、スマー ト タグのルート エレメントと名前空間を定義します。読者が XML 名前空間に馴染み があれば、任意の文字列 "FL" がエイリアスであることをご存知で しょう。このエイリアスを使用することにより、各 XML の開始タグと終了タグの先頭に長 い "urn:schemas-microsoft-com:smarttags:list" という文字列 を記述する必要がなくなります。

各 XML リスト記述ファイルは、複数のスマート タグ用語を保持するリストを持つこ とができます。以下の表 1 は、さまざまな XML エレメントを説明し、シンプル スマート タ グ XML リスト記述ファイルでの使用例を示しています。以下に一覧した XML エレメン トで上記の例で実装されていないものが存在するのは、このスマート タグが更新可能 で設計されていないためであることに注意してください。更新可能なシンプル スマート タ グの作成方法については、この記事の後半で例を示すつもりです。

表 1. スマート タグ XML リスト記述エレメント (上記の例の出現 順です)

エレメント名 説明
smarttaglist スマート タグリスト定義のルート エレメント。
<FL:smarttaglist xmlns:FL="urn:schemas-microsoft-com:smarttags:list">
{numerous elements...}
<FL:smarttag>...</FL:smarttag>
<FL:/smarttaglist>
name スマート タグ レコグナイザのフレンドリ名。このエレメントは必須です。
<FL:name>MSDN Office Developer Center Terms</FL:name>
lcid スマート タグ リスト項目を認識するための "ロケール ID" または言語識別子のカンマ区 切りのリスト。このタグの値が *0、または指定されていない場合、リ ストがすべてのロケールで機能すると仮定します。場合によっては、ホスト アプリケーション (たとえば、Excel) が lcid を指定しないことがあります。その場合は、この値は無 視されます。Word では、自動言語検出機能がどの言語かを判断します。
<FL:lcid>1033</FL:lcid>
description スマート タグを説明する長い文字列。
<FL:description>A list of MSDN Office Developer Center 
related terms for recognition, as well as a
set of actions that work with them.</FL:description>
moreinfourl ユーザーがスマート タグ レコグナイザに関する詳細情報を取得する場所の Uniform Resource Locater (URL)。この詳細情報はスマート タグの開発者が提供します。
<FL:moreinfourl>https://msdn.microsoft.com/office</FL:moreinfourl>
updateable ブール値です。True の場合は、用語のリストは更新可能です。既定値は Falseです。
<FL:updateable>true</FL:updateable>
autoupdate ブール値です。True の場合は、レコグナイザが自動的に更新します。既定 値は False です。
<FL:autoupdate>true</FL:autoupdate>
lastcheckpoint 最後のスマート タグ リストの更新を示す ID。最終更新のバージョン番号として利用で きる整数値。 自動更新が実行されるとき、サーバーが lastcheckpoint ID よりも高いバージョン番号を持っている場合は、更新が発生します。更新操作が正 常終了すると、lastcheckpoint ID が更新されます。
<FL:lastcheckpoint>1</FL:lastcheckpoint> 
lastupdate 最後に更新が行われた時点を表す整数値。1970 年以降の経過時間を分単位で表 します。 それ以外に、更新プロセスでの機能的な役割はありません。通常、この 値は初期値 0 に設定されます。 更新プロセスが正しく機能するためには、このエ レメントと値が存在する必要があります。
<FL:lastupdate>0</FL:lastupdate> 
updateurl このスマート タグ リストに対する更新を調べるための URL。このエレメントが指定されて いない場合は、リストは更新可能で設計されていません。
<FL:updateurl>https://localhost/smarttags/update.xml</FL:updateurl>
updatefrequency リストの更新頻度を分単位で指定する整数値。このエレメントが指定されていない場 合、既定値は 10,080 (7 日ごと) に設定されます。
<FL:updatefrequency>1440</FL:updatefrequency>
smarttag スマート タグの種類の定義。スマート タグの種類は、namespaceURI#tagname で指定される重複しない名前空間によって定義されます。このエレメントは必須です。
<FL:smarttag type="urn:schemas-ms-com:msdn#terms">
{numerous elements...}
</FL:smarttag>
caption スマート タグのタイトル キャプション。任意の既存のキャプションを置き換えます。
<FL:caption>MSDN Office Developer Center related terms</FL:caption> 
terms スマート タグ用語のコレクション。
<terms>
<termfile>...</termfile>
<termlist>...</termlist>
</terms>
termfile (将来使用するために予約されています。) 用語を含むバイナリ ファイルへのリンク。  XML ファイルごとに termfile エレメントまたは termlist エレメントの いずれか 1 つだけを保持できます。 termfiletermlist の両 方が存在する場合は、termlist が使用されます。
<FL:filename>terms.dat</FL:filename>
termlist このエレメントのコンテンツは、認識される用語のカンマ区切りのリストです。このエレメン トは必須です。
<FL:termlist>access, developer, excel,
msdn, office, outlook, powerpoint, vba, 
visual, word, xp</FL:termlist>
actions 新しいアクション識別子または改訂されたアクション識別子を表すアクション エレメントのコレクション。
<FL:actions>
<FL:action>...</FL:action>
</FL:actions>
action 個別のアクション。このエレメントは id と呼ばれる属性を 1 つ持ちます。id は、特定のスマート タグの種類に適用するアクションを一意に識別する英数字の文字 列にする必要があります。
<FL:action id="...">
<FL:caption>...</FL:caption>
<FL:url>...</FL:url>
</FL:action>
url アクションをアクティブにする URL を指定します。
<FL:url>https://msdn.microsoft.com/office</FL:url>
caption アクションのキャプション。既存のキャプションを置き換えます。
<FL:caption>MSDN Main & Web site</FL:caption>

上記の url エレメントの特殊なケースとして、構文 {TEXT} を使用して、パラメータとして動作可能なテキストを渡すことができます。たとえば、Money Central での株式相場の場合、url エレメントのコンテンツは https://moneycentral.msn.com/redir/moneycentralredirect.asp?pageid=SmartTag_1&amp;Target=/scripts/webquote.dll?ipage=qd%26Symbol={TEXT} になります。ここで、 {TEXT} は現在 [スマート タグ動作] ボタンを表示している銘柄コード になります ("MSFT" など)。

Visual Studio Installer を使ったスマート タグ リストの配置

スマート タグ リストを配置するには、単純にエンド ユーザーに XML リスト記述 ファイルをユーザーの C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists フォルダにコピーさせることができます。しかし、このアプローチはエンド ユーザー の負荷を必要とします。もっと容易なソリューションは、Microsoft Visual Studio インス トーラなどの配置ツールを使用することです。Visual Studio 6.0 Professional または Enterprise Edition ツールのライセンスを所持しているユーザーは Visual Studio Web サイトから Visual Studio Installer を利用できます。Visual Studio Installer のダウン ロードとインストール方法の詳細については、 Visual Studio Web サイトを参照してください。

Visual Studio Installer を使って、スマート タグ リストを配置するには :

  1. [スタート] メニューから [プログラム]、[Microsoft Visual Studio 6.0]、 [Microsoft Visual Studio 6.0 Enterprise ツール] の順にポイントし、[Visual Studio Installer] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [新規作成] タブで [Visual Studio] フォルダを展開し、[Visual Studio Installer プロジェクト] フォルダを選択します。

  3. [空のインストーラ] アイコンを選択し、[名前] ボックスに新しいプロジェ クト名を入力し、[場所] ボックスに新しいプロジェクトのパスを入力します。その後、[開 く] をクリックします。

  4. [プロジェクト エクスプローラ] ウィンドウで、[ファイル システム] をダブル クリックします。[ターゲット マシン上のファイル システム] を右クリックして、[特別なフォル ダの追加] をポイントし、[プログラム ファイル フォルダ] をクリックします。

  5. [プログラム ファイル フォルダ] を右クリックし、[フォルダの追加] をクリック します。追加されたフォルダの名前を "Common Files" に変更します。

  6. [Common Files] を右クリックし、[フォルダの追加] をクリックします。追 加されたフォルダの名前を "Microsoft Shared" に変更します。

  7. [Microsoft Shared] を右クリックし、[フォルダの追加] をクリックします。 追加されたフォルダの名前を "SmartTag" に変更します。

  8. [SmartTag] を右クリックし、[フォルダの追加] をクリックします。追加さ れたフォルダの名前を "Lists" に変更します。

  9. [Lists] を右クリックし、[ファイルの追加] をクリックします。エンド ユー ザーのコンピュータにインストールするスマート タグ XML リスト記述ファイルを参照し、 [開く] をクリックします。

  10. [プロジェクト エクスプローラ] ウィンドウで、[ユーザー インターフェイス] を ダブルクリックします。[インストール フォルダの選択] を右クリックし、[削除] をクリックしま す。

メモ [インストール フォルダの選 択] ダイアログ ボックスを削除しない場合は、セットアップ ウィザードが XML ファイルを配 置する既定のフォルダとして、C:\Program Files\プロジェクト名 を提案します。 提案されるフォルダとは異なるフォルダにファイルを置きたいので、このダイアログ ボックスを 削除することにより、ファイルを確実にエンド ユーザーの C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists フォルダに配置できます。

  1. [ビルド] メニューの [ビルド] をクリックします。

  2. Windows エクスプローラを使って、上記の手順 3 で作成したパスを参 照します。そのパスに、[Output] という名前のサブフォルダがあります。[Output] サブフォ ルダを開くとさらに [DISK_1] という名前のサブフォルダがあります。このフォルダを開くと、 拡張子 .msi を持つファイルが存在します。これが、エンド ユーザーに配布する Visual Studio Installer ファイルです。XML ファイルを配置するには、エンド ユーザーが単純に この .msi ファイルをダブルクリックして、セットアップ ウィザードが提示する既定値を受け 入れる必要があります。

ここでは、Visual Studio Installer を使って、msdnodc.xml ファイルをダウンロードす る MSDNODCST.msi (ダウンロードしたサンプルに含まれています) という名前の .msi ファイルを作成しました。また、独自の Visual Studio Installer プロジェクトを作成する 場合の出発点として使用できるプロジェクト ファイルを含めてあります。

スマート タグ リストの更新

XML リスト記述ファイルをインターネットまたはイントラネット上で動的に更新できる ようにするには、XML リスト記述ファイルに 5 つのエレメント、updateableautoupdatelastcheckpointlastupdate、および updateurl を追加する必要があります。また、オプションで updatefrequency エレメントを含めることもあります。これらのエレメントの詳細は、上記の表 1 に含ま れています。

XML リスト記述ファイルに対する更新を提供するには、以下の構文を使用して、 Web サーバーにヘルパ XML ファイルを含める必要があります。

<FLUP:smarttaglistupdate xmlns:FLUP="urn:schemas-microsoft-com:smarttags:listupdate">
    <FLUP:checkpoint>400</FLUP:checkpoint>
    <FLUP:smarttaglistdefinition>msdnodc.xml</FLUP:smarttaglistdefinition>
</FLUP:smarttaglistupdate>

エンド ユーザーのコンピュータに更新を取り出すためには、XML リスト記述ファイルの checkpoint エレメントの値が lastcheckpoint の値よりも大きい必要 があります。smattaglistdefinition エレメントで示されている XML リスト記述 ファイルのコンテンツが、エンド ユーザーのコンピュータに取り出され、既存のファイルに上 書きされます。

読者のコンピュータでこの動作をテストするには、以下のことを行います。ただし、ロー カル Web サーバーを所持していることを前提としています。

  1. この記事の前半で説明したサンプルの XML リスト記述ファイル msdnodc.xml を使用して、moreinfourl エレメントと smarttag エレメントの間に以 下の XML を追加します (または、ダウンロードしたサンプルの msdnodcupdate.xml ファイ ルを表示します)。

    <FL:updateable>true</FL:updateable> 
    <FL:autoupdate>true</FL:autoupdate> 
    <FL:lastcheckpoint>1</FL:lastcheckpoint> 
    <FL:lastupdate>0</FL:lastupdate> 
    <FL:updateurl>https://localhost/smarttags/msdnupdate.xml</FL:updateurl> 
    <FL:updatefrequency>5</FL:updatefrequency>
    

    この例で、localhost は Web サーバーの名前です。新し く変更した XML リスト記述ファイルを読者のコンピュータの C:\Program Files\Common Files\Microsoft Shared\Smart Tag\Lists フォルダに格納します。

  2. ローカル Web サーバーに、smarttags という仮想ディレクトリを作成します。 smarttags 仮想ディレクトリに、上記の "FLUP" 名前空間の XML を持つ msdnupdate.xml という名前のファイルを作成します。

メモ smarttags 仮想ディレクト リに、読み取りフル アクセス許可を持ち、匿名アクセスが許可されている必要があります。

  1. 同じ smarttags ディレクトリに、上記の手順 1 で新しく修正した msdnodc.xml ファイル (または msdnodcupdate.xml ファイル) をコピーします。このとき、termlist エレメントが basic2002 の追加用語を持つようにします。

  2. Web サーバーに接続していると想定すると、5 分経過後にコンピュータ は、次の 2 つの作業を実行することにより、新しく用語 basic2002 を認識するようになります。まず、accessdeveloper、または excel などの用語を入力し、[スマート タグ動作] ボタンをクリックしたときに表示されるスマート タグ動作リストの動作を少なくとも 1 つ実行する必要があります。この結果、コンピュー タはローカルに登録されたスマート タグのすべてに対する更新を確認します。次に、スマー ト タグを認識するアプリケーションを再起動する必要があります。この結果、ローカルに 登録されたすべてのスマート タグが新しいスマート タグ値と動作に再初期化されます。その後、basic2002 を入力すると、accessdeveloper、および excel などのリスト内のほかの用語と同じように [スマート タグ オプション] ボタンが表示されるようになります。

まとめ

メモ帳などのテキスト エディタだけを使って、スマート タグ XML リスト記述 ファイルを作成できます。これらのスマート タグ リストは、Visual Studio Installer など の配置ツールを使って、Office XP のユーザーに配置できます。配置できるユーザー数 には制限はありません。この記事では、スマート タグ XML リスト記述スキー マに従った XML リスト記述ファイルの作成方法を学習しました。さらに、Visual Studio Installer を使った XML リスト記述ファイルの配置方法と、インターネットまたはイントラ ネット上の XML リスト記述ファイルのユーザーに更新を提供する方法についても学習 しました。