| 
 特集 InfoPathの衝撃 吉松史彰  | 
![]()  | 
| 
 | 
|
衝撃 2: “100% Pure XML”のアウトプット
フォームへの入力が終わったら、これをXML 1.0形式で保管することができる。単純に[ファイル]メニューから[上書き保存]を選択して、ファイル名を付ければよい。保存する時点で入力エラーがある場合は、それを確認するメッセージも表示される。
こうして作成されたファイルは、「100% Pure XMLデータ」である。従来のExcel 2002でも、ファイルをXML形式で保管することはできたが、それはあくまでExcelの構造を保管するためのXMLであり、データだけを再利用可能な形式で保管できたわけではない。だが、上記の手順でフォームに入力し、InfoPathで保存されたファイルは、次のようなXML文書になる。
  | 
|
| 交通費入力フォームで入力し、保存した場合に作成される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サービスとの連携 | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える 
 
  | 
 |











