Structure transactionnelle du Data DOM XFA
Les événements JavaScript peuvent créer, cloner, renommer, attacher, réordonner et détacher des éléments natifs du Data DOM, avec lectures script immédiates et persistance native à l'échelle de la transaction
const record = xfa.record;
const value = xfa.datasets.createNode("dataValue");
value.name = "amount";
value.value = "42";
record.nodes.append(value);
const retained = value.clone(false);
record.nodes.remove(value);
record.nodes.insert(value, record.nodes.item(0));
Opérations prises en charge
xfa.datasets.createNode(className, name = "", namespace = "") crée un dataGroup ou un dataValue non attaché ; les noms qualifiés exigent une URI d'espace de noms non vide
node.clone(recursive = true) crée une copie non attachée du Data DOM avec des identités fraîches ; false exclut les nœuds enfants tout en conservant les métadonnées et la valeur propres à l'élément
node.name est inscriptible pour les éléments du Data DOM et préserve l'espace de noms, l'ordre des frères, les descendants et les alias conservés ; une construction sans nom doit recevoir un nom local valide avant attachement
node.nodes.length, item(index) et namedItem(name) lisent les enfants éléments ordonnés à chaud ; item et namedItem renvoient null quand aucun enfant ne correspond
nodes.append(node) et nodes.insert(node, before) transfèrent le même objet dans les enfants du propriétaire ; insert(node, null) ajoute en fin
nodes.remove(node) détache un enfant direct tout en gardant son objet et son sous-arbre disponibles pour les alias conservés et un réattachement ultérieur
xfa.record renvoie le premier record courant sous la racine de données du Data DOM et se met à jour après les éditions structurelles
Identité, XML et bindings
Un objet script peut conserver un nœud, un descendant ou la collection enfant propriétaire entre les événements ; les alias à chaud résolvent les mêmes objets natifs après attachement, détachement, renommage et rollback
loadXML et saveXML fonctionnent sur les éléments nouvellement créés et déplacés, y compris les descendants importés puis déplacés dans le même événement
Des identités natives stables empêchent les alias de descendants importés de résoudre silencieusement un autre enfant après des changements de position
Les espaces de noms d'attributs hérités, les resets explicites vers un espace de noms par défaut vide, les commentaires, les instructions de traitement, le CDATA et les valeurs Unicode survivent au clonage, au déplacement, à la sauvegarde et au rechargement
Les bindings de formulaire se rafraîchissent après les changements structurels, et les valeurs écrites via des nœuds de données nouvellement attachés atteignent l'instance de formulaire répétée correspondante sans modifier une autre instance
Transactions et limites
Classes invalides, noms XML, références de frères, cycles et nœuds étrangers échouent avant que l'opération individuelle concernée ne modifie le graphe script à chaud
Une erreur script non interceptée, un échec d'apply natif, une annulation, un plafond d'opérations ou une limite de temps écoulé restaurent l'événement complet, nœuds attachés et détachés compris, ainsi que les valeurs de binding, les alias conservés, l'état lexical des objets script et l'état du journal ; la même runtime peut ensuite réessayer
Les nœuds structurels et les arbres détachés partagent des plafonds natifs de nœuds, de profondeur et d'octets UTF-8 ; l'échéance initiale de la transaction script s'applique conjointement aux changements JavaScript et natifs
Consommation PDF
Enregistrez la runtime en XDP et passez ces octets à HPDFXFAWriteHeadlessPDF pour créer de véritables champs et apparences PDF natifs à partir des bindings de données modifiés
TXFAHeadlessPDFOptions.Editable = False crée des champs natifs en lecture seule avec apparences ; ce réglage ne les aplatit pas
Couverture actuelle
Cette page décrit les éditions du Data DOM ; le scripting transactionnel de l'arbre de formulaire fournit la création de formulaires à chaud, le clonage, l'insertion et la suppression pris en charge, ainsi que la consommation PDF native
L'édition générale de template, le traitement complet des subform-sets de choix et le schéma complet des classes de nœuds XFA restent des capacités distinctes
Collections de nœuds de requête indépendantes · API de graphe structurel natif · Runtime de widgets XFA