Natives Data-DOM-XML

Unit: HPDFXFARuntime

Methoden

dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");

Diese Skriptmethoden stehen in TXFAWidgetRuntime-Ereignissen auf datasets-, dataGroup- und dataValue-Knoten zur Verfügung

saveXML liefert UTF-8-XML mit einer Deklaration und dem ausgewählten Knoten als Dokumentelement; das optionale pretty-Argument fügt reinem Elementinhalt Einrückung hinzu

loadXML akzeptiert ein wohlgeformtes XML-Dokument; ignoreRoot importiert seine Kinder in den ausgewählten Knoten, während False das Quelldokumentelement als Kind importiert

overwrite entfernt bestehenden Zielinhalt vor dem Import; der Default False hängt Inhalt an und bewahrt bestehende Kind-Identitäten

Der ausgewählte Knoten behält seine Identität und Attribute; importierte Kind-Attribute und ihre Namespace-Mappings bleiben erhalten

Sofortiger Graph und Bindings

const record = xfa.datasets.data.main;
record.loadXML("<main><amount>42</amount></main>", true, true);
const amount = record.amount;
amount.value = "43";
if (this.parent.amount.rawValue !== "43") throw new Error("Missing binding update");

Ein erfolgreiches natives Parsing installiert die importierten Kinder sofort im aktuellen Skriptgraphen; gewöhnliche Properties und SOM-Selektoren lösen diese frischen Knoten vor der Ereignisveröffentlichung auf

Datenzellen synchronisieren sich in beide Richtungen mit gebundenen Feld-Aliases, einschließlich versteckter Felder, neu gelieferter Binding-Ziele und bestehender Nachfahren-, Wildcard-, Klassen- und numerischer Index-dataRef-Selektoren

Scalar-zu-Gruppe-Importe aktualisieren die Datenklasse des Ziels und legen seine importierten Kindelemente offen; ein geleerter dataValue hat einen leeren String-Wert

Der Import eines neuen Datenelements allokiert keine unabhängigen mehrdeutigen Datenblätter für unaufgelöste Bindings

Identität und wiederholte Scopes

Overwrite invalidiert alte Kind-Handles und veröffentlicht frische Kind-Identitäten; ein Skriptobjekt kann ein frisch importiertes Daten-Handle behalten und in nachfolgenden Ereignissen verwenden

Anhängen bewahrt bestehende Handles; der Import innerhalb einer wiederholten Zeile ändert den nativen Datenbereich dieser Zeile und ihre gebundenen Felder

XML-Importe funktionieren auch innerhalb eines Vorkommens, das addInstance im selben Ereignis erzeugt hat

Das Ersetzen des Datasets-Inhalts aktualisiert $data und $record auf die neuen nativen Wurzeln und basiert überlebende Formular- und Skriptobjekt-Identitäten neu, sodass lexikalischer Modulzustand an seinem Formular-Scope verankert bleibt

Inhalt und Persistenz

Native Importe und gespeichertes XDP bewahren gewöhnlichen Text, CDATA, Kommentare und Processing Instructions in Reihenfolge

Kommentare und Processing Instructions bleiben außerhalb der gewöhnlichen Data-DOM-Elementauswahl und werden nicht zu sichtbarem Feldtext

Importierte Knoten bewahren ihre Namespace-URI auch unter einem anderen Vorfahren-Default-Namespace, einschließlich des explizit leeren Default-Namespace für Elemente ohne Namespace

Fremde Attribute mit Präfix behalten expandierte Namen, und Unicode-Lokalnamen, akzentuierter Text und supplementäre Zeichen überleben natives Speichern und Neuladen

Das schreibgeschützte saveXML materialisiert keine Formular-Properties und ändert keine gespeicherten XDP-Bytes

Validierung und Rollback

Der native XML-Parser prüft Wohlgeformtheit, Namespace- und Attributgültigkeit, XML-Zeichen, Deklarationsplatzierung und Entity-Syntax, bevor der Graph verändert wird

Fehlerhafte Eingaben lassen sich in JavaScript abfangen; der vorherige native und Skriptgraph bleibt verfügbar, und eine spätere gültige Mutation kann weiterhin committen

Ein fehlgeschlagenes Ereignis stellt Dokumentbytes, Widget-Werte, importierten Graphen, Identitäten und den lexikalischen Skriptobjekt-Zustand wieder her, einschließlich Fehlern, nachdem der native XML-Import bereits angewendet wurde

Jede native JavaScript-Session behält ihr tatsächliches DLL-Modul, während Engines für das Antwort-Replay neu aufgebaut werden; Engines, Kontexte und Journals bleiben unabhängig, und die Modulreferenz wird nach dem endgültigen Abbau der nativen Engine freigegeben

XML-Parsing und -Serialisierung erzwingen Operations-, Tiefe-, Knoten-, Byte- und Ablaufzeit-Budgets zusammen mit der ursprünglichen Ereignis-Deadline der Runtime und den Wertzeichen-Limits

Importe lösen keine externen Entities auf und führen keine Datei-, Netzwerk- oder UI-Aktionen aus; DTD-Deklarationen werden von diesem Parser abgelehnt

Aktueller Umfang

Diese Ereignis-Runtime-Integration zielt derzeit auf Windows Win32 und Win64; die portable Linux-Runtime-Integration bleibt ausstehend

Diese Integration liefert nativen XML-Import und -Serialisierung plus aktuelle Binding-Neubewertung; eigenständiges createNode, beliebige Datenattribut-Mutation, Reparenting, Record-Window-Navigation, Binding-Prädikate und Global-Binding-Policy bleiben separate Object-Model-Ziele

Verwandte APIs

Natives Data DOM, Natives Bind SOM, TXFAEventBinding, TXFAEventAction und Interaktive XFA-Runtime