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