トランザクション的な XFA Data DOM 構造
JavaScript イベントは、ネイティブ Data DOM 要素の作成、クローン、名前変更、取り付け、並べ替え、分離を行えます。スクリプトからの即時読み取りと、トランザクション全体にわたるネイティブ永続化が伴います
const record = xfa.record;
const value = xfa.datasets.createNode("dataValue");
value.name = "amount";
value.value = "42";
record.nodes.append(value);
const retained = value.clone(false);
record.nodes.remove(value);
record.nodes.insert(value, record.nodes.item(0));
サポートされる操作
xfa.datasets.createNode(className, name = "", namespace = "") は、取り付けられていない dataGroup か dataValue を作成します。修飾名には空でない名前空間 URI が必要です
node.clone(recursive = true) は、新しい ID を持つ、取り付けられていない Data DOM コピーを作成します。false は、要素自身のメタデータと値を保持しつつ子ノードを除外します
node.name は Data DOM 要素に対して書き込み可能で、名前空間、兄弟順、子孫、保持されたエイリアスを保持します。名前なしで構築されたものは、取り付けの前に有効なローカル名を受け取らなければなりません
node.nodes.length、item(index)、namedItem(name) は、生きている順序付き要素子を読みます。一致する子がないとき item と namedItem は null を返します
nodes.append(node) と nodes.insert(node, before) は、同じオブジェクトを所有者の子供へ移します。insert(node, null) は末尾へ追加します
nodes.remove(node) は、そのオブジェクトとサブツリーを、保持されたエイリアスと後の再取り付けに利用可能なまま、直接の子を分離します
xfa.record は、Data DOM データルート下の現在の最初のレコードを返し、構造編集の後に更新されます
ID、XML、バインディング
スクリプトオブジェクトは、ノード、子孫、所有する子コレクションをイベントをまたいで保持できます。生きているエイリアスは、取り付け、分離、名前変更、ロールバックの後に、同じネイティブオブジェクトを解決します
loadXML と saveXML は、新しく作成された、および移動された要素に対して動作します。同じイベント中にインポートされてから移動された子孫も含みます
安定したネイティブ ID により、インポートされた子孫エイリアスが、位置変更の後に黙って別の子を解決することはありません
継承された属性名前空間、明示的な空デフォルト名前空間リセット、コメント、処理命令、CDATA、Unicode 値は、クローン、移動、保存、再ロードを生き延びます
フォームバインディングは構造変更の後に更新され、新しく取り付けられたデータノードを通じて書かれた値は、別のインスタンスを変えずに、対応する繰り返しフォームインスタンスに届きます
トランザクションと上限
無効なクラス、XML 名、兄弟参照、サイクル、外部ノードは、その個々の操作が生きているスクリプトグラフを変更する前に失敗します
捕捉されないスクリプトエラー、ネイティブ適用の失敗、キャンセル、操作上限、経過時間上限は、取り付け・分離されたノード、バインドされた値、保持されたエイリアス、スクリプトオブジェクトの字句状態、ジャーナル状態を含め、完全なイベントを復元します。同じランタイムがその後再試行できます
構造ノードと分離ツリーは、ネイティブのノード・深さ・UTF-8 バイト上限を共有します。元のスクリプトトランザクションの期限は、JavaScript とネイティブの変更に一緒に適用されます
PDF 消費
ランタイムを XDP に保存し、そのバイトを HPDFXFAWriteHeadlessPDF に渡すと、変更されたデータバインディングから、実際のネイティブ PDF フィールドと外観が作成されます
TXFAHeadlessPDFOptions.Editable = False は、外観付きの読み取り専用ネイティブフィールドを作成します。その設定はフラット化しません
現在のカバレッジ
このページは Data DOM 編集を記述します。トランザクション的なフォームツリースクリプティングは、サポートされる生フォームの作成、クローン、挿入、削除、ネイティブ PDF 消費を提供します
一般的なテンプレート編集、完全な選択サブフォームセット処理、完全な XFA ノードクラススキーマは別の機能です