特集 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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|