テレもち
kyssロゴタイプ
2005年8月20日更新

InfoPath 2003 + XML

XMLスキーマを読み込んでフォームを作成する

先のサンプルではXMLファイルをデータソースとして使用しましたが,図35の「データソースセットアップウィザード」ダイアログを見るとわかるように,XMLスキーマファイルの指定も可能となっています.このサンプルでは,リスト8用に作成しておいたXMLスキーマファイル(リスト10)を読み込んで入力フォームを作成してみましょう.
【リスト10】リスト8用のXMLスキーマファイル(list10.xsd)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="商品情報">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="商品" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="日付" type="xsd:dateTime"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="商品">
<xsd:annotation>
<xsd:appinfo/>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="コピー" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="品名" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="品番" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="メーカ" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="価格" minOccurs="0" type="xsd:double"/>
<xsd:element name="説明" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="255"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
@図34〜図35の手順を踏み,[参照]ボタンで,スキーマファイル(list10.xsd)を指定します(図48).
【図48】スキーマファイルを指定する
スキーマファイルを指定する
A[完了]ボタンをクリックすると白紙のフォームの右横に[データソース]メニューが表示され,読み込まれたXMLスキーマの要素が表示されます(図49).XMLファイルをデータソースとして読み込ませた場合は,"日付"属性は指定していませんでしたが,このXMLスキーマには"日付"属性を追加しています.
【図49】読み込まれたXMLスキーマの要素と"日付"属性が表示されている
読み込まれたXMLスキーマの要素と「日付」属性が表示されている
B<商品情報>要素を空白のフォームの上にドラッグ&ドロップし,表示されるメニューの[コントロール付きセクション]を選択します(図50).
日付の項目に,なにか表のようなアイコンが表示されていることに注目してください.これはリスト10で
<xsd:attribute name="日付" type="xsd:dateTime"/>
と記述し,type属性に日付を表すdateTimeを値として指定しているからです.このファイルを「infoPath_form2.xml」というファイル名で保存して,フォームの入力を行ってみると,このアイコンの部分にカレンダーが表示されるのが分かります(図51).
図45〜47の手順に従ってデータを入力してみてください.
【図51】カレンダーが表示された
カレンダーが表示された
CInfoPath2003には数多くのテンプレートが用意されています.InfoPath2003の右側の[フォームの入力]メニューにある[その他のフォーム]を選択します.すると,図52のようにテンプレートの一覧が表示されます.
【図52】InfoPath2003のテンプレートの一覧
InfoPath2003のテンプレートの一覧
Dサンプルのテンプレートから一番先頭にある「タイムカード1」を読み込んでみました(図53).これ以外にもいろいろなパターンのテンプレートが用意されています.自分なりにカスタマイズすれば,即!実務に使えるのではないでしょうか.
【図53】タイムカード1のテンプレートを読み込んだ
タイムカード1のテンプレートを読み込んだ
このページでは触れていませんが,InfoPath2003には,スキーマでは定義できない「データの妥当性の検証」という機能が備わっています.検証のための各種条件と,条件に合致しなかった場合のエラーメッセージ等の指定が可能で,ANDやORの条件指定をすることができます. また,JScriptを使ってのプログラミングも可能になっています.
入力フォームといえば,これまでは,VBやVB.NETなどの言語での開発ツールに用意されているコントロールをフォーム上に配置していましたが,InfoPath2003では,XMLファイルまたはXML スキーマさえあれば,ユーザはプログラムを意識することなく,入力フォームを作成することができます.
実際に触ってみれば,さらにInfoPathの凄さを実感できることでしょう.
詳しくは、拙著を参照してください。
もどるもどる
メニューに戻るメニュー選択