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