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