XML exData XFA natif
L'hôte d'événements général crée les propriétés de valeur exData absentes et importe de véritables enfants XML étrangers dans leurs occurrences de formulaire natives ; le contenu draw XHTML atteint le consommateur PDF de rich text après persistance et rechargement du XDP natif
Import et lecture du XML
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) accepte une chaîne de document XML bien formé et retourne undefined ; ignoreRoot ajoute les enfants de la racine agrégatrice, tandis que false ajoute la racine elle-même
L'overwrite remplace le contenu existant avant l'import ; sa valeur par défaut false ajoute le contenu dans l'ordre du document, en préservant les enfants précédemment importés
saveXML() retourne l'élément exData courant et son contenu comme une déclaration XML UTF-8 et une chaîne fragment ; le littéral optionnel pretty indente le contenu uniquement composé d'éléments tout en préservant le texte mixte et l'espacement CDATA
Les noms d'éléments importés, les déclarations d'espaces de noms, les attributs qualifiés par espace de noms, l'Unicode littéral, les références de caractères, le texte mixte et CDATA restent du XML natif ; le markup n'est pas stocké comme une simple chaîne rawValue
Création et valeurs par défaut
Les propriétés de valeur admettent un enfant exData unique, mutuellement exclusif avec les autres choix de valeur ; une valeur draw et un enfant exData manquants peuvent être créés et importés pendant le même événement
exData vaut par défaut maxLength=-1 et transferEncoding=none, avec les attributs contentType, href, id, name, rid, use et usehref vides
L'hôte d'événements n'expose pas d'accesseur de valeur scalaire sur exData ; utilisez loadXML et saveXML pour le contenu XML étranger
Lectures immédiates, identité et transactions
Une opération XML purement native valide et sérialise chaque requête avant que l'exécution du script ne continue ; un XML malformé lève une exception dans le script et peut être traité par try/catch sans modifier le contenu courant
Le replay déterministe de réponses partage la transaction de script existante et n'exécute aucun effet de bord d'UI, de fichiers, de réseau ou de transport
Les appels saveXML suivants voient les imports réussis antérieurs et les attributs exData courants pendant le même événement ; les références conservées résolvent l'identité du nœud courant dans les événements ultérieurs
Seule l'occurrence répétée ciblée reçoit le contenu natif, et une nouvelle occurrence s'initialise depuis le XML du template plutôt que de copier l'override importé d'une occurrence existante
Une racine importée vide avec overwrite=true efface le contenu réel et reste vide après persistance et rechargement ; elle ne revient pas au contenu du template
Les erreurs de script non traitées et les échecs de publication native restaurent les octets XDP natifs exacts, y compris les écritures de champs ordinaires antérieures et les mutations XML
Budgets et consommation enregistrée
Les limites du script bornent les octets d'entrée et de sortie XML, les nœuds d'éléments et de texte natifs, la profondeur, les opérations, le temps écoulé et les réponses de replay ; le MaxValueChars du widget borne aussi la valeur XML publiée
Le pont FPC préserve les octets UTF-8 à travers les réponses XML et les valeurs d'actions ordinaires, y compris les caractères accentués et l'Unicode supplémentaire
Le contenu draw XHTML enregistré utilise le comportement de police, de taille, de couleur et de CSS inline existant du consommateur de rich text ; des lecteurs PDF indépendants vérifient le texte de première instance, le style de remplacement, le contenu de nouvelle instance et l'effacement explicite
Cibles d'intégration XML restantes
Cette livraison implémente les opérations de contenu exData ; les autres méthodes loadXML/saveXML de nodeclass, l'import structurel du Data DOM et la mutation générale de nœuds étrangers restent des cibles séparées
Les déclarations DTD et les catalogues d'entités personnalisés restent non implémentés ; les entités prédéfinies et les références de caractères décimales ou hexadécimales sont prises en charge
Les commentaires et instructions de traitement dans l'élément restent natifs à travers l'import, les lectures immédiates, la sauvegarde, le rechargement et le rollback ; le markup au niveau document hors de la racine et les allers-retours lexicaux XML complets restent des cibles séparées
La résolution de href externes, les transferts exData encodés, l'application de maxLength, les consommateurs de médias étrangers et les apparences de widgets riches Unicode restent des cibles d'implémentation séparées
Références et APIs associées
Les sémantiques de racine d'import et de remplacement suivent l'API Element d'Adobe XFA ; les noms, références et espacements XML suivent XML 1.0
Voir TXFAEventBinding, TXFAEventActionKind, Propriétés de rich text et Runtime XFA interactif