Transaktionale XFA-Data-DOM-Struktur

JavaScript-Ereignisse können native Data-DOM-Elemente anlegen, klonen, umbenennen, anhängen, umordnen und abhängen, mit sofortigen Script-Lesezugriffen und transaktionsweiter nativer Persistenz

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));

Unterstützte Operationen

xfa.datasets.createNode(className, name = "", namespace = "") erzeugt ein nicht angehängtes dataGroup oder dataValue; qualifizierte Namen erfordern eine nichtleere Namespace-URI

node.clone(recursive = true) erzeugt eine nicht angehängte Data-DOM-Kopie mit frischen Identitäten; false schließt Kindknoten aus, behält aber die eigenen Metadaten und den Wert des Elements

node.name ist für Data-DOM-Elemente schreibbar und bewahrt Namespace, Geschwisterreihenfolge, Nachkommen und zurückbehaltene Aliasse; ein unbenanntes Konstrukt braucht vor dem Anhängen einen gültigen lokalen Namen

node.nodes.length, item(index) und namedItem(name) lesen die live geordneten Elementkinder; item und namedItem geben null zurück, wenn kein Kind passt

nodes.append(node) und nodes.insert(node, before) überführen dasselbe Objekt in die Kinder des Owners; insert(node, null) hängt an

nodes.remove(node) hängt ein direktes Kind ab, hält aber sein Objekt und seinen Teilbaum für zurückbehaltene Aliasse und späteres Wiederanhängen verfügbar

xfa.record liefert den aktuellen ersten Record unter der Data-DOM-Datenwurzel und aktualisiert sich nach strukturellen Änderungen

Identität, XML und Bindings

Ein Script-Objekt kann einen Knoten, Nachkommen oder die besitzende Kindcollection über Ereignisse hinweg zurückhalten; live Aliasse lösen nach Anhängen, Abhängen, Umbenennen und Rollback dieselben nativen Objekte auf

loadXML und saveXML funktionieren an neu erzeugten und verschobenen Elementen, einschließlich Nachkommen, die im selben Ereignis importiert und dann verschoben wurden

Stabile native Identitäten verhindern, dass importierte Nachkommen-Aliasse nach Positionsänderungen stillschweigend ein anderes Kind auflösen

Erbene Attribut-Namespaces, explizite Resets auf einen leeren Default-Namespace, Kommentare, Processing Instructions, CDATA und Unicode-Werte überleben Klonen, Verschieben, Speichern und Neuladen

Form-Bindings aktualisieren sich nach strukturellen Änderungen, und über neu angehängte Datenknoten geschriebene Werte erreichen die entsprechende wiederholte Form-Instanz, ohne eine andere Instanz zu verändern

Transaktionen und Limits

Ungültige Klassen, XML-Namen, Geschwisterreferenzen, Zyklen und fremde Knoten schlagen fehl, bevor die jeweilige Einzeloperation den live Script-Graphen verändert

Ein nicht abgefangener Script-Fehler, ein fehlgeschlagener nativer Apply, Abbruch, ein Operations-Cap oder ein Zeitlimit stellt das komplette Ereignis wieder her, einschließlich angehängter und abgehängter Knoten, Binding-Werten, zurückbehaltenen Aliasen, lexikalischem Script-Objektzustand und Journalzustand; dieselbe Runtime kann es danach erneut versuchen

Strukturknoten und abgehängte Bäume teilen sich native Caps für Knoten, Tiefe und UTF-8-Bytes; die ursprüngliche Script-Transaktionsfrist gilt für JavaScript- und native Änderungen gemeinsam

Übernahme ins PDF

Speichern Sie die Runtime als XDP und übergeben Sie diese Bytes an HPDFXFAWriteHeadlessPDF, um aus den geänderten Data-Bindings echte native PDF-Felder und Appearances zu erzeugen

TXFAHeadlessPDFOptions.Editable = False erzeugt schreibgeschützte native Felder mit Appearances; diese Einstellung flacht sie nicht ab

Aktueller Umfang

Diese Seite beschreibt Data-DOM-Editierungen; transaktionales Form-Tree-Scripting bietet unterstützte live Formularerzeugung, Klonen, Einfügen, Entfernen und native PDF-Übernahme

Allgemeines Template-Editing, vollständige Choice-Subform-Set-Verarbeitung und das komplette XFA-Knotenklassenschema bleiben separate Fähigkeiten

Unabhängige Query-Knoten-Collections · Native strukturelle Graph-API · XFA-Widget-Runtime