TXFAFormStructure

HPDFXFAFormStructure は、テンプレートに裏付けられたフォームインスタンスの、ネイティブ準備と ID マッピングを提供します

このクラスは TXFADocument を借り受け、構造グラフと分離候補を所有し、借り受けたドキュメントを決して解放しません

constructor Create(Document: TXFADocument;
  const Limits: TXFADataStructureLimits;
  const OnTick: TXFADataStructureTick);
procedure BeginOperation(const OnTick: TXFADataStructureTick);
procedure EndOperation;
function PrepareUnboundModel: TXFANode;
function EnsureInstance(Definition, DataNode: TXFANode): TXFANode;
function PrepareMaterialization(Definition, Instance: TXFANode;
  out Aliases: TXFAFormStructureAliases): TXFANode;
function ReplaceInstance(Instance, Prepared: TXFANode): TXFANode;
procedure DiscardPrepared(Node: TXFANode);
property Graph: TXFADataStructure;

操作スコープ

構造作業の前に BeginOperation を、finally ブロックで EndOperation を呼んでください

供給されたコールバックは、上限付き走査、コピー、グラフプリフライト全体を通じて呼ばれ、操作をキャンセルするために例外を送出できます

Graph.DetachedRoots は、観察と調整されたスナップショット復元のために、グラフの所有コレクションを公開します。呼び出し側は、そのコレクションがまだ所有するノードを独立して解放してはなりません

準備と採用

PrepareMaterialization は、テンプレート定義とオプションの既存インスタンスから、分離フォーム候補を構成し、TXFAFormStructureAliases でソースから候補へのペアを返します

TXFAFormStructureAlias.Source と Target は、以前のインスタンスを解放する前に外部 ID を再マップするための、借り受けたノード参照です

ReplaceInstance は準備された候補を採用し、以前のインスタンスをグラフ所有の分離ノードとして返します

返された以前のインスタンスに DiscardPrepared を呼ぶ前に、依存する参照を付け直してください

DiscardPrepared は、同じグラフが所有する分離候補を解放します。取り付けられた生きているインスタンスは削除しません

初期インスタンスと疎なインスタンス

PrepareUnboundModel は、空マージのための分離フォームモデルを返し、記述されたテンプレートコンテンツを保持し、サポートされる subform 出現を独立したネイティブノードに展開します

EnsureInstance は、既存の生きているフォームノードを返すか、テンプレート定義とその生きたデータコンテキストのために、必要な疎なインスタンスパスを構築します

EnsureInstance は複数の生きているノードを変更し得るため、複合操作のロールバックは呼び出し側の周囲のドキュメントトランザクションに属します

TXFAWidgetRuntime は、公開スクリプトイベントのためにそのトランザクションを提供します。ネイティブドキュメントと分離 ID の復元を含みます

ヘルパ関数

関数目的
HPDFXFAEmptyMergeCount出現宣言を検証し、その空マージ数を返します。明示的な initial か最小値を使います
HPDFXFAIsMaterializedFormNode明示的な走査予算の下で、名前空間修飾の実体化マーカーを検査します
HPDFXFAResolveMaterializedDefinition定義とデータコンテキストに対する実効フォームノードを解決し、実体化されたモデルが権威あるかどうかを報告します
HPDFXFAResolveActualFormScope実際に繰り返されたフォームインスタンスの生きているデータスコープを、そのテンプレート宣言を再び繰り返すことなく解決します

保存されたマーカーは、衝突安全な接頭辞とともに urn:hotpdf:xfa:form-structure:1 を使います。ネイティブフォームノードは XFA フォーム名前空間を使います

スタンドアロンのネイティブ呼び出し側は、クラスの生存期間中ドキュメントを保持し、キャンセルやその他の失敗が以前の成功ステップを復元すべきときには、複合グラフ操作の周囲にロールバックを提供しなければなりません