特集

InfoPathの衝撃
- マイクロソフトの新しい戦略Officeスイート「InfoPath」によって、XML技術は新時代を迎える -

吉松史彰
2003/03/26


衝撃 2: “100% Pure XML”のアウトプット

 フォームへの入力が終わったら、これをXML 1.0形式で保管することができる。単純に[ファイル]メニューから[上書き保存]を選択して、ファイル名を付ければよい。保存する時点で入力エラーがある場合は、それを確認するメッセージも表示される。

 こうして作成されたファイルは、「100% Pure XMLデータ」である。従来のExcel 2002でも、ファイルをXML形式で保管することはできたが、それはあくまでExcelの構造を保管するためのXMLであり、データだけを再利用可能な形式で保管できたわけではない。だが、上記の手順でフォームに入力し、InfoPathで保存されたファイルは、次のようなXML文書になる。

<?xml version="1.0" encoding="UTF-8"?>
<?mso-infoPathSolution solutionVersion="1.0.0.2" productVersion="11.0.4920" PIVersion="0.9.0.0" href="file:///C:\temp\交通費入力.xsn" language="ja" ?>
<?mso-application progid="InfoPath.Document"?>
<tns:交通費清算 xmlns:tns="http://example.org/expense">
  <tns:交通費>
    <tns:利用日付>2003-03-11</tns:利用日付>
    <tns:目的>打ち合わせ</tns:目的>
    <tns:その他目的></tns:その他目的>
    <tns:金額>1200</tns:金額>
  </tns:交通費>
  <tns:交通費>
    <tns:利用日付>2003-03-12</tns:利用日付>
    <tns:目的>その他</tns:目的>
    <tns:その他目的></tns:その他目的>
    <tns:金額>1500</tns:金額>
  </tns:交通費>
</tns:交通費清算>
交通費入力フォームで入力し、保存した場合に作成されるXML文書
InfoPath固有の設定はすべてXML 1.0の処理命令として記述されている。それ以外は、ほかのXML処理プログラムから純粋なXMLデータとして処理可能だ。

 InfoPathで再び利用するための特殊な設定は、すべてXML 1.0の処理命令(<? 〜 ?>)として記述されている。処理命令はアプリケーションに対する指令であって、XMLパーサーはこれを無視できる。つまり、InfoPath以外のほかのXML処理プログラムから、このデータを純粋にXMLとして処理できるのだ。

■スキーマで定義できない妥当性検査

 上記のXMLでは、スキーマでは記述しづらかった妥当性検査が省略されている。例えば、[目的]が「その他」のときは、[その他目的]欄の入力を必須にするという検査項目が考えられる。これは、テンプレートで追加の妥当性検査を設定することで実現できる。もう1度デザイン・モードでフォームを開きなおし、[その他目的]欄のテキスト・ボックスを右クリックして[テキストボックスのプロパティ]を選択する。

妥当性検査の追加(1/5)
項目に妥当性の検査を追加するには、再度デザイン・モードでフォームを開き、まずテキスト・ボックスのプロパティを表示させる。

 テキスト・ボックスのプロパティ画面が表示されるので、[データの妥当性の検証]をクリックする。

妥当性検査の追加(2/5)
テキスト・ボックスのプロパティで[データの妥当性の検証]をクリックする。

 さらに次の画面で[追加]をクリックすると、データの妥当性の検証を設定する次の画面が表示される。

妥当性検査の追加(3/5)
ここで妥当性を検証するときの条件を入力することができる。

 ここで、「[目的]がその他で、かつ[その他目的]が空欄だったらエラーにする」という設定を行えばよい。

妥当性検査の追加(4/5)
[目的]が「その他」のときに[その他目的]欄の入力を必須とするためには、ここで「目的が『その他』で、かつ『その他目的』が空欄だったらエラーにする」という設定にすればよい。

 これによって、[目的]が「その他」で、[その他目的]が空欄のときだけ、エラーの赤線が表示されるようになる。

妥当性検査の追加(5/5)
妥当性検査の追加により、[目的]が「その他」の場合には、[その他目的]が空欄のままだとエラーの赤線が表示されるようになる。

■テンプレート・ファイルの中身

 テンプレートを保存したとき、拡張子はxsnだった。このファイルは実はCabinet形式の圧縮ファイルで、中にはXML、XSD、XSL、スクリプト・ファイルなどが含まれる。

InfoPathのテンプレート・ファイルを構成するファイル群
テンプレートを保存したときにできる.xsnファイル(この場合は「交通費入力.xsn」)は、実際にはCabinet形式の圧縮ファイルであり、XML、XSD、XSL、スクリプト・ファイルなどを含んでいる。これらはほぼすべてXML文書だ。

 これらのファイルは、InfoPathでテンプレート・ファイルを開き、[ファイル]メニューの[フォーム構成ファイルの取り出し]を選択して、ファイルとして取り出すことができる。.xsdファイルには、最初に設定したスキーマの内容がそのまま含まれている。.xslファイルは、スキーマの内容をHTMLで画面に表示するためのXSLTスタイルシートになっている。ほかにもサンプル・データのXMLファイルやスクリプトなどが含まれる場合がある。このように、InfoPathのドキュメントの構成要素はほぼすべてXMLなのである。


 INDEX
  [特集]InfoPathの衝撃
     1.衝撃 1: スキーマ・ベースの簡単なフォーム作成(1)
     2.衝撃 1: スキーマ・ベースの簡単なフォーム作成(2)
   3.衝撃 2: “100% Pure XML”のアウトプット
     4.衝撃 3: XML Webサービスとの連携
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間