Formcoordinatorでのデータ処理の流れと、処理に使用されるデータについて説明します。
■ 処理の流れ
電子フォームのデータが、WebブラウザとWebアプリケーションとの間でどのような形で送受信されるのかを次に示します。
◆ Webブラウザで電子フォームを表示するとき
電子フォームは、そのままではWebブラウザでは表示できない形式であるため、WebアプリケーションでHTMLデータに変換します。変換した電子フォームのHTMLデータをWebブラウザに送信することでWebブラウザに電子フォームが表示されます。

電子フォームをWebブラウザに表示するときに、初期値が入力された状態で表示する場合は、Webアプリケーションで電子フォームから雛形となるXMLデータを取得して編集します。初期値のXMLデータをWebアプリケーションで取り込んで、HTMLデータに変換します。

また、電子フォームをWebブラウザに表示するときに、電子フォームに設定された項目の書式をWeb アプリケーションで動的に変更できます。Webアプリケーションで変更できる項目の設定情報を「項目制御情報」と呼びます。Webアプリケーションで項目制御情報を変更することで、1つの電子フォームを使用して、表示の異なる複数のHTMLデータを作成できます。
電子フォームをWebブラウザに表示するときに項目の書式を変更するには、Webアプリケーションで電子フォームの項目制御情報を編集します。編集した項目制御情報をWebアプリケーションで取り込んで、HTMLデータに変換します。

◆ WebブラウザからWebアプリケーションにデータを送信するとき
Webブラウザで入力されたデータは、XMLデータとしてWebアプリケーションに送信されます。

WebブラウザにFormcoordinator デザイナの電子フォームデザイナで作成した電子フォームのデータを送信します。
Webブラウザに送信するデータは、Formcoordinator デザイナの電子フォームデザイナのデータリストで確認できます。確認方法については、マニュアル「Formcoordinator デザイナ ユーザーズガイド」の「2.1.3 電子フォームで設計できるデータ構造」を参照してください。
例:
<通勤手当申請書>・・・・・・・・・・・データルートのタグ名
<申請者情報>・・・・・・・・・・・・集団項目のタグ名
<日></日> ・・・・・・・・・・・・項目のタグ名
<所属></所属>
<従業員番号></従業員番号>
<氏名></氏名>
<性別>
<男></男>
<女></女>
</性別>
<年齢></年齢>
<理由></理由>
<通勤方法>
<電車></電車>
<バス></バス>
<自動車></自動車>
<自動二輪></自動二輪>
<原付></原付>
<自転車></自転車>
<徒歩></徒歩>
</通勤方法>
</申請者情報>
・
・
・
</通勤手当申請書>
WebアプリケーションでXMLデータの雛形を編集して初期値を設定すると、次に示す形式になります。
例:
データルートのタグ名「通勤手当申請書」で、項目のタグ名「日」の初期値として「20010801」を設定した場合
<通勤手当申請書>・・・・・・・・・・データルートのタグ名
<申請者情報>・・・・・・・・・・・集団項目のタグ名
<日>20010801</日> ・・・・・・・項目のタグ名
<所属></所属>
<従業員番号></従業員番号>
<氏名></氏名>
<性別>
<男></男>
<女></女>
</性別>
<年齢></年齢>
<理由></理由>
<通勤方法>
<電車></電車>
<バス></バス>
<自動車></自動車>
<自動二輪></自動二輪>
<原付></原付>
<自転車></自転車>
<徒歩></徒歩>
</通勤方法>
</申請者情報>
・
・
・
</通勤手当申請書>
WebブラウザからWebアプリケーションには、電子フォームに入力されたデータが送信されます。電子フォームに入力されたデータは、XMLデータとしてWebアプリケーションに送信されます。
例:
<通勤手当申請書>・・・・・・・・・・・データルートのタグ名
<申請者情報>・・・・・・・・・・・・集団項目のタグ名
<日>20010801</日> ・・・・・・・・項目のタグ名
<所属>第三開発部</所属>
<従業員番号>123456</従業員番号>
<氏名>富士 太郎</氏名>
<性別>
<男>male</男>
<女></女>
</性別>
<年齢>30</年齢>
<理由>勤務地変更のため</理由>
<通勤方法>
<電車>railway</電車>
<バス></バス>
<自動車></自動車>
<自動二輪></自動二輪>
<原付></原付>
<自転車></自転車>
<徒歩></徒歩>
</通勤方法>
</申請者情報>
・
・
・
</通勤手当申請書>
なお、電子フォームに入力されたデータを送信する/しない、必ずタグを送信する/しないを設定できます。上記の例で、項目のタグ名「年齢」で電子フォームに入力されたデータを送信しないように設定すると、次に示すように項目のタグ名「年齢」は送信されません。
例:
データルートのタグ名「通勤手当申請書」で、項目のタグ名「年齢」にデータを送信しないように設定した場合
<通勤手当申請書>・・・・・・・・・・・データルートのタグ名
<申請者情報>・・・・・・・・・・・・集団項目のタグ名
<日>20010801</日> ・・・・・・・・項目のタグ名
<所属>第三開発部</所属>
<従業員番号>123456</従業員番号>
<氏名>富士 太郎</氏名>
<性別>
<男>male</男>
<女></女>
</性別>
<理由>勤務地変更のため</理由>
<通勤方法>
<電車>railway</電車>
<バス></バス>
<自動車></自動車>
<自動二輪></自動二輪>
<原付></原付>
<自転車></自転車>
<徒歩></徒歩>
</通勤方法>
</申請者情報>
・
・
・
</通勤手当申請書>
電子フォームに入力されたデータを送信する/しない、必ずタグを送信する/しないの設定については、マニュアル「Formcoordinator デザイナ ユーザーズガイド」の「5.3.1 データ/タグを送信する/しないを設定するには」を参照してください。
項目制御情報は、Java APIを使用するWebアプリケーションではXMLの属性として扱われます。
電子フォームに設定された項目の書式をWebアプリケーションで動的に変更したいときに設定します。
例:
データルートのタグ名「通勤手当申請書」の項目「申請日」を斜体、緑色にして、項目「申請理由」を赤色に設定した場合
<通勤手当申請書 version="2.0"> <Item name="申請日" font-style="italic" color="green" /> <Item name="申請理由" color="red" /> </通勤手当申請書>
項目制御情報として設定できる情報については、「付録F 電子フォームの項目制御情報」を参照してください。
■ XMLデータおよび項目制御情報の編集
電子フォームから取得したXMLデータの雛形や項目制御情報を編集するには、Java APIのXmlDataAccessクラスおよびItemAttributeAccessクラスを使用します。これらのクラスを使用すると、XMLデータの構造を意識しないで簡単にデータの設定と取得、項目制御情報の設定を行うことができます。XmlDataAccessクラスおよびItemAttributeAccessクラスについては、「C.1 Java API」を参照してください。
■ XMLデータを送受信するときの留意点
WebアプリケーションでXMLデータを送受信するときには、次に示す点に留意してください。
Webブラウザに送信するXMLデータのエンティティ参照は、展開されている必要があります。展開されていない場合、エンティティ名が表示されます。
送信データにDTDを付与していても、XMLデータの妥当性は検証されません。
送信データに名前空間が定義されている場合、タグ名が接頭辞付きになります。そのため、各項目に設定されているデータは電子フォームを表示した結果には反映されません。
同じ電子フォームであっても、送信データと受信データとでは次に示す点でデータ構造が異なる場合があります。
データ/タグを送信する/しないの設定によって、Webブラウザから送信されるデータ構造が異なります。
DTDやコメント、属性などを送信データに付与していても、受信データには付与されません。
■ 電子フォームに入力したデータをクライアントコンピュータに保存して利用
電子フォームに入力したデータをクライアントコンピュータに保存したファイルは、XMLデータ形式で保存されます。文字コードはUTF-8です。保存したファイルは、XMLデータ形式を読み込めるアプリケーションでファイルを取り込んで利用できます。
電子フォームに入力したデータの保存方法については、「9.2 電子フォームに入力したデータをファイルで管理する(読み込み/保存ボタンを使用する場合)」または「9.3 電子フォームに入力したデータをファイルで管理する(ポップアップメニューを使用する場合)」を参照してください。
保存するXMLデータ形式は、電子フォームデザイナで定義した構造で保存されます。入力データがない場合は、空要素が作成されます。保存したファイルのXMLデータ形式を次に示します。
なお、実際のデータでは、インデントおよび改行は存在しません。
例:
<通勤手当申請書>・・・・・・・・・・・データルートのタグ名
<申請者情報>・・・・・・・・・・・・集団項目のタグ名
<日>20010801</日> ・・・・・・・・項目のタグ名
<所属>第三開発部</所属>
<従業員番号>123456</従業員番号>
<氏名>富士 太郎</氏名>
<性別>
<男>male</男>
<女></女>
</性別>
<年齢>30</年齢>
<理由>勤務地変更のため</理由>
<通勤方法>
<電車>railway</電車>
<バス></バス>
<自動車></自動車>
<自動二輪></自動二輪>
<原付></原付>
<自転車></自転車>
<徒歩></徒歩>
</通勤方法>
</申請者情報>
<申請内容>
<明細>
<利用機関>JR</利用機関>
<居住地>YYYY</居住地>
<勤務地>ZZZZ</勤務地>
<定期>
<要>1</要>
<不要></不要>
</定期>
<支給期間>
<開始日>20010801</開始日>
<終了日>20011001</終了日>
</支給期間>
<金額>30000</金額>
</明細>
・
・
・
<通勤開始日>20010801</通勤開始日>
<合計>30000</合計>
</申請内容>
</通勤手当申請書>