Natives XFA Data DOM

Die allgemeine Ausführung mit EnableJavaScript legt den native-Datasets-Baum des Dokuments über xfa.datasets-, $data- und $record-Resolver-Pfade sowie FormCalc-Accessoren offen

Datenknoten nutzen stabile native Identitäten und denselben Live-SOM-Resolver wie Formularknoten; sie unterstützen Namen, Klassenselektoren, Vorkommensauswahl, Eltern-Traversierung, Prädikate und Knotenauflösung

Wurzeln und Klassen

Objekt oder PfadBedeutung
xfa.datasetsDer Datasets-Packet-Knoten, oder null wenn fehlend
xfa.datasets.data und $dataDie Datenwurzel unter dem Datasets-Packet
$recordDie erste Record-Wurzel unter data im aktuellen Non-Record-Verarbeitungsmodell
dataGroupEin Datenelement mit Kindelementen, einschließlich einer explizit deklarierten leeren Gruppe
dataValueEin Datenelement mit einem Wert
formNode.dataNodeDer an das Formularfeld oder Subformular gebundene Knoten, oder null wenn keine Data-Bindung vorliegt

Das dataNode-Attribut im XFA-Data-Namespace kann die Klasse einer Gruppe oder eines Werts explizit wählen; Namespace-Präfixe werden aufgelöst, statt eine bestimmte Präfixschreibweise zu verlangen

Lese- und Schreibzugriffe

Ein dataValue legt value als schreibbaren Alias von rawValue offen; beide Accessoren aktualisieren dieselbe gebundene Datenzelle und denselben nativen Datenknoten

const value = xfa.resolveNode("$record.row[1].cell");
value.rawValue = "25";
target.rawValue = xfa.resolveNode("main.row[1].cell").rawValue;

$record.row[1].cell = 25
target = row[1].cell
var p = Ref($record.row[1].cell)
p = 30

Schreibzugriffe auf gebundene Felder aktualisieren den entsprechenden Datenwert sofort, und Datenwert-Schreibzugriffe aktualisieren gebundene Feld-Lesezugriffe noch im selben Skript; die native Veröffentlichung schreibt den tatsächlichen Datenknoten

Materialisierte Scalar-Value-Properties synchronisieren ihren nativen Formularinhalt nach Feld- oder Daten-Schreibzugriffen, einschließlich Shared-Data-Aliases und neuer Datenveröffentlichung wiederholter Instanzen

Datenelemente ohne gebundenes Formularfeld bleiben zugreifbar und beschreibbar; erfolgreiche Transaktionen bewahren ihre Änderungen im gespeicherten XDP

Formularfelder mit bind match=none behalten Template-Defaults und speichern Änderungen im Form-DOM-Wert ihres eigenen Vorkommens; sie legen keinen synthetischen Datenknoten offen und verändern keine Geschwister-Vorkommen

Datenwerte teilen sich Unicode-, Wertgrößen- und Ausführungsbudgets mit dem Formular-Ereignis-Host; Gruppenknoten bieten strukturellen Zugriff statt eines schreibbaren Raw-Werts

Wiederholte Instanzen und erhaltene Referenzen

Einfügen, Verschieben und Entfernen von Formularinstanzen aktualisiert das entsprechende Live-Data-DOM noch im selben Skript; neue implizit gebundene Zeilen legen Template-Defaults über ihre Datenknoten offen, bevor die Veröffentlichung erfolgt

Ein Prototyp ohne Vorkommen kann seine erste Datengruppe und Werte erzeugen; die native Veröffentlichung liefert echte Identitäten für die neuen Knoten, sodass Skriptobjekte Daten-Handles über nachfolgende Ereignisse hinweg behalten können

Erhaltene Datenreferenzen folgen Verschiebungen über die Identität; die Verwendung einer Referenz nach dem Entfernen ihrer Gruppe lässt das Ereignis fehlschlagen, und der Runtime-Rollback stellt native Vorkommensreihenfolge, Werte und Skriptobjekt-Zähler wieder her

Von Skriptobjekten gehaltene Instance Manager lösen den aktuellen Bereich auf, einschließlich Managern, deren anfängliche Vorkommenszahl null war

Nativer XML-Inhalt

datasets-, dataGroup- und dataValue-Knoten legen loadXML und saveXML mit nativem Parsing, Graph-Aktualisierungen im selben Skript und transaktionaler Veröffentlichung offen

XML-Importe bewahren Kommentare, Processing Instructions, CDATA, expandierte Namespaces und Unicode-Namen und halten Nichttext-Knoten dennoch aus der gewöhnlichen Data-DOM-Kindauswahl und sichtbaren Feldwerten heraus

Importierte Werte synchronisieren gebundene Feld-Lesezugriffe sofort, einschließlich Felder, deren bestehende dataRef ein anderes Suffix wählt oder deren zuvor unaufgelöstes Ziel jetzt verfügbar ist

Transaktionen und Aufrufer auf niedrigerer Ebene

TXFAWidgetRuntime baut Data-Domain-Bindings, verknüpft Formularfelder mit nativen Datenwerten, wendet Daten-Schreibzugriffe und neue Identitäts-Bindings an und stellt den exakten XDP-Zustand nach Engine- oder nativen Veröffentlichungsfehlern wieder her

Ereignis-Aufrufer auf niedrigerer Ebene verwenden TXFAEventBindingDomain sowie die Felder DataIdentity und DataBindingEnabled von TXFAEventBinding, um äquivalente Objektbeziehungen bereitzustellen

Die xeakBindDataIdentity-Aktion bindet ein neues virtuelles Daten-Handle an seine veröffentlichte native Datenidentität; Anwendungen auf niedrigerer Ebene müssen zurückgegebene Datenmutationen und Identitäts-Bindings transaktional anwenden

Verbleibende Object-Model-Abdeckung

Record-Window-Navigation, eigenständige Datenknoten-Erzeugung und Reparenting, beliebige Datenattribute und vollständige Template-Property-Knoten-Bearbeitung bleiben separate Integrationsziele

Die Instanzspiegelung folgt dem bestehenden Verhalten des impliziten Data-Binding-Instance-Managers; zusätzliche Instanzmutationen mit expliziten Bindings erfordern weitere Binding-Integration

Verwandte APIs

Live-SOM-Pfade, FormCalc-Referenzen, HPDFXFAExecuteJavaScriptEvent und Interaktive XFA-Runtime