XML フォームオブジェクトモデルについて

DOM は、ドキュメントの内容、構造、スタイルにプログラムおよびスクリプトが直接アクセスして更新できるプラットフォームであり、言語に依存しないインターフェイスです。DOM は一般的に、XML で表記されたデータとともに使用されます。

XML フォームオブジェクトモデルで使用されるすべての DOM には、以下の共通の特性があります。

  • 厳密なツリー構造になっています。

  • ノードに必須の子が存在する場合があります。この場合、必須の子ノードは、親ノードの作成時に一緒に作成されます。

  • 各ノードの必須ではない子は、ツリー内で古い順に並べられます。つまり、DOM では、必須ではない子ノードが追加された順序が記録されます。

    フォームの処理の各手順に対して、その段階で必要となるデータ構造が格納されている DOM があります。スクリプトを使用すると、それぞれの DOM の検査と変更を実行できます。DOM には、内部の整合性を保つ役割がありますが、外部の整合性を保つことはできません。例えば、スクリプトでラジオボタンに対応するフィールドを割り当ててオンにすると、そのラジオボタンとセットになっている他のすべてのラジオボタンは、自動的にオフになります。これは内部の整合性の問題なので、フォーム DOM 自体によって管理されます。

    一方、データ DOM では、例えば 1 つのオブジェクトの 2 つのプロパティに対して同じ名前を付けるというような、スクリプトによる XML ルール違反を回避する操作は何も実行されません。これは外部の整合性の問題なので、DOM ではなく、スクリプトの作成者が管理する必要があります。

    フォームデザインにデータを組み込む場合は必ず、XML フォームオブジェクトモデルが使用され、テンプレートとデータを組み合わせて、その結果としてフォームが作成されます。この処理では、最初にフォームデザインの既存の XML DOM 表現と XML データを使用して、個別のモデルが作成されます。これらの個別のモデルには、オリジナルフォームデザインとオリジナル XML データの構造化表現が格納されます。テンプレート DOM はフォームデザインに対応し、データ DOM はユーザーが指定した XML データに対応します。

    テンプレートモデルとデータモデルが作成された後、3 つ目のモデルとして、マージされた情報を表すフォーム DOM が作成されます。フォーム DOM は、XML データの特定の値に、フォームデザインによって定義されている表記ルールを適用する役割を持ちます。

    インタラクティブフォームを作成する場合は、フォーム DOM が作成されるとフォームが完成し、ユーザーに配布する準備が整います。インタラクティブフォームデザインには、マージされるデータが関連付けられていることもありますが、ほとんどのインタラクティブフォームはユーザー入力データをサポートするようにデザインされています。

    フォーム DOM の作成を含む、ここまでの処理は、すべてのフォームで共通です。一方、インタラクティブフォーム以外のフォームには、フォームデザインとマージするデータのセットがあります。レイアウトが固定されているフォームの場合、データのマージによって、フォームに対応する表記ルールが左右されません。つまり、データは対応するフィールドに、フィールドプロパティが変更されることなくマージされます。これに対して、レイアウトが流動的なフォームの場合は、フィールドにマージされるデータの量に合わせて、フィールドが拡張または縮小されます。

    レイアウトが固定されているフォームとレイアウトが流動的なフォームのフォーム DOM の外観は非常に似ていて、ページに区切られていない 1 つの長いフォームです。これらの種類のフォームにデータと表記ルールを適用する場合、レイアウト情報に基づいてフォーマットを決める必要があります。フォーム DOM からレイアウト DOM が作成されます。レイアウト DOM は、フォームを各ページに分割し、ページ番号、ヘッダー、トレーラーなどのページベースのルールを適用します。次の図に、この処理を示します。

    レイアウトが固定されたフォームまたはレイアウトが流動的なフォームにレイアウトルールが適用されると、これらのフォームが完成します。

XML フォームオブジェクトモデル DOM

connectionSet モデル

connectionSet モデルは、特定のフォームで使用されるデータスキーマとデータソースを制御します。このモデルでは、XML スキーマ、サンプル XML データ、または Web サービスへの接続が定義されています。connectionSet モデルを使用すると、レポートに使用する目的で、参照されているスキーマまたは WSDL について、URL などの詳細情報を抽出できます。

connectionSet モデルは、以下のオブジェクトで構成されます。

データモデル

データモデルは、ユーザーデータのメモリ内表現です。データバインディング処理を使用してフォームデザインとデータをマージするときに、データモデルが最終的なフォームのフィールドの内容を提供します。

このモデルを使用すると、以下のデータソースのデータにアクセスして操作できます。

イベントモデル

イベントモデルは、アクションの実行前、実行中、実行後のフォームの変更を制御します。これらのアクションには、データとフォームデザインがマージされ、ページ区切りが適用される前の時点の動的なフォームイベントや、ユーザーがフィールドの値を更新する場合のインタラクティブなフォームイベントなどがあります。

イベントモデルは、以下のオブジェクトで構成されます。

フォームモデル

フォームモデルは、テンプレートモデルとデータモデルがマージされた状態のメモリ内表現です。このモデルを使用すると、フォームの外観の変更、フィールド値の調整、その他の変更を、完成したフォームをユーザーに対して表示する前、またはレイアウトモデルを使用してフォームを処理する前に実行できます。

スクリプトでは、デフォルトで、フォームモデルとの照合が実行されます。したがって、参照構文でフォームモデルを指定する必要はありません。

フォームモデルは、以下のオブジェクトで構成されます。

ホストモデル

ホストモデルは、アプリケーションレベルでの操作のためのプロパティとメソッドのセットを提供します。これらのプロパティとメソッドは、ホストするアプリケーションに関係なく、スクリプトで使用できます。

ホストモデルは、以下のオブジェクトで構成されます。

レイアウトモデル

レイアウトモデルは、フォームとデータがマージされた後のフォームのメモリ内表現です。これは、フォームの最終的なレイアウトを表します。

レイアウトモデルは、以下のオブジェクトで構成されます。

署名モデル

署名モデルは、W3C の XML-Signature 標準(http://www.w3.org/TR/xmldsig-core/)に準拠する XML デジタル署名を操作するためのメソッドのセットを提供します。これにより、署名の付加、消去、列挙、検証を実行するスクリプトコマンドを指定できます。

署名モデルは、以下のオブジェクトで構成されます。

sourceSet モデル

sourceSet モデルは、外部 OLEDB データベースとデータモデルとの間の接続を提供します。このモデルを使用すると、データソースへの接続を制御できるだけでなく、データソース内のレコードの管理も実行できます。

sourceSet モデルは、以下のオブジェクトで構成されます。

XFA モデル

XFA モデルは、Designer で XML フォームオブジェクトモデルを実装するために使用するアプリケーションモデルを定義します。アプリケーションモデルは、他のすべてのモデルの派生元になる基本モデルです。

XFA モデルは、以下のオブジェクトで構成されます。

packet

xfa