Natives XFA-exData-XML

Der allgemeine Ereignis-Host erzeugt fehlende exData-Value-Properties und importiert echte fremde XML-Kinder in ihre nativen Formularvorkommen; XHTML-Draw-Inhalt erreicht den Rich-Text-PDF-Consumer nach nativer XDP-Persistenz und Neuladen

XML importieren und lesen

const content = row.label.value.exData;
content.contentType = "text/html";
content.loadXML(
  '<body xmlns="http://www.w3.org/1999/xhtml">' +
  '<p><span style="font-size:18pt;color:#0000FF">Changed</span></p>' +
  '</body>',
  false,
  true
);
const currentXML = content.saveXML();
const readableXML = content.saveXML("pretty");

loadXML(source, ignoreRoot=true, overwrite=false) akzeptiert einen wohlgeformten XML-Dokumentstring und liefert undefined; ignoreRoot hängt die Kinder der aggregierenden Wurzel an, während false die Wurzel selbst anhängt

overwrite ersetzt bestehenden Inhalt vor dem Import; der Default false hängt Inhalt in Dokumentreihenfolge an und bewahrt zuvor importierte Kinder

saveXML() liefert das aktuelle exData-Element und seinen Inhalt als UTF-8-XML-Deklaration und Fragment-String; das optionale Literal pretty rückt reinen Elementinhalt ein und bewahrt gemischten Text- und CDATA-Whitespace

Importierte Elementnamen, Namespace-Deklarationen, namespace-qualifizierte Attribute, literales Unicode, Zeichenreferenzen, gemischter Text und CDATA bleiben natives XML; Markup wird nicht als schlichter rawValue-String gespeichert

Erzeugung und Defaults

Value-Properties erlauben ein exData-Kind, wechselseitig exklusiv zu den anderen Value-Optionen; ein fehlender draw-Wert und ein exData-Kind lassen sich im selben Ereignis erzeugen und importieren

exData hat die Defaults maxLength=-1 und transferEncoding=none mit leeren Attributen contentType, href, id, name, rid, use und usehref

Der Ereignis-Host legt keinen skalaren Value-Accessor auf exData offen; nutze loadXML und saveXML für Fremd-XML-Inhalt

Sofortige Lesezugriffe, Identität und Transaktionen

Eine rein native XML-Operation validiert und serialisiert jede Anforderung, bevor die Skriptausführung weiterläuft; fehlerhaftes XML wirft innerhalb des Skripts eine Ausnahme und lässt sich per try/catch behandeln, ohne den aktuellen Inhalt zu verändern

Das deterministische Antwort-Replay teilt sich die bestehende Skripttransaktion und führt keine UI-, Datei-, Netzwerk- oder Transport-Nebeneffekte aus

Nachfolgende saveXML-Aufrufe sehen frühere erfolgreiche Importe und aktuelle exData-Attribute im selben Ereignis; erhaltene Referenzen lösen die aktuelle Knotenidentität in späteren Ereignissen auf

Nur das anvisierte wiederholte Vorkommen erhält nativen Inhalt, und ein neues Vorkommen initialisiert aus dem Template-XML, statt den importierten Override eines bestehenden Vorkommens zu kopieren

Eine importierte leere Wurzel mit overwrite=true leert den tatsächlichen Inhalt und bleibt nach Persistenz und Neuladen leer; sie fällt nicht auf Template-Inhalt zurück

Unbehandelte Skriptfehler und native Veröffentlichungsfehler stellen exakte native XDP-Bytes wieder her, einschließlich früherer gewöhnlicher Feld-Schreibzugriffe und XML-Mutationen

Budgets und gespeicherter Verbrauch

Skript-Limits begrenzen XML-Ein- und -Ausgabebytes, native Element- und Textknoten, Tiefe, Operationen, Ablaufzeit und Replay-Antworten; MaxValueChars des Widgets begrenzt zusätzlich den veröffentlichten XML-Wert

Die FPC-Bridge bewahrt UTF-8-Bytes über XML-Antworten und gewöhnliche Action-Werte hinweg, einschließlich akzentuierter Zeichen und supplementären Unicode

Gespeicherter XHTML-Draw-Inhalt nutzt das Schrift-, Größen-, Farb- und Inline-CSS-Verhalten des bestehenden Rich-Text-Consumers; unabhängige PDF-Reader verifizieren Text der ersten Instanz, Ersetzungs-Styling, Inhalt neuer Instanzen und explizites Leeren

Verbleibende XML-Integrationsziele

Diese Auslieferung implementiert exData-Inhaltsoperationen; weitere nodeclass-loadXML/saveXML-Methoden, struktureller Data-DOM-Import und allgemeine Fremdknoten-Mutation bleiben separate Ziele

DTD-Deklarationen und eigene Entity-Kataloge bleiben unimplementiert; vordefinierte Entities sowie dezimale und hexadezimale Zeichenreferenzen werden unterstützt

Kommentare und Processing Instructions im Element bleiben durch Import, sofortige Lesezugriffe, Speichern, Neuladen und Rollback hindurch nativ; Markup auf Dokumentebene außerhalb der Wurzel und vollständige XML-lexikalische Roundtrips bleiben separate Ziele

Externe href-Auflösung, kodierte exData-Transfers, maxLength-Durchsetzung, fremde Media-Consumer und Unicode-Rich-Widget-Appearances bleiben separate Implementierungsziele

Referenzen und verwandte APIs

Import-Wurzel- und Ersetzungssemantik folgen der Adobe XFA Element API; XML-Namen, Referenzen und Whitespace folgen XML 1.0

Siehe TXFAEventBinding, TXFAEventActionKind, Rich-Text-Properties und Interaktive XFA-Runtime