Colecciones vivas de hijos XFA

Los eventos JavaScript y FormCalc pueden inspeccionar los nodos hijos actuales de un nodo de formulario o de propiedades a través de su propiedad nodes de solo lectura

const field = xfa.resolveNode("row[1].amount");
const children = field.font.nodes;
const snapshot = children.clone();
field.font.fill.color.value = "192,48,96";
const fill = children.item(0);

Leer los hijos actuales

MiembroComportamiento
lengthNúmero actual de nodos hijos
item(index)Hijo actual en ese índice de base cero, o null para un índice negativo, no entero o fuera de rango
namedItem(name)Primer hijo actual con ese nombre literal, o null cuando ningún hijo empareja
nodes[index]El mismo nodo actual que item(index)
for...ofLee los nodos hijos en su orden actual
clone()Crea una lista de consultas independiente que referencia los hijos actuales

La colección resuelve a su propietario a través del grafo de eventos actual en cada lectura, incluida una colección retenida por un script object a través de eventos

Las colecciones existentes reflejan las adiciones y eliminaciones de instancias repetidas y la creación implícita de propiedades; las instancias repetidas separadas mantienen hijos de propiedades y valores separados

Una colección retenida cuyo propietario fue eliminado lanza un error en lugar de apuntar a una instancia superviviente o de reemplazo

Acceso desde FormCalc

FormCalc reconoce nodes como una propiedad de colección de hijos en nodos de formularios, propiedades y del Data DOM

if (xfa.record.nodes.length >= 2) then
  xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif

Las cadenas de miembros directas length, item(index), namedItem(name) y clone() usan los mismos nodos nativos actuales y límites de colecciones que JavaScript

Las colecciones de hijos de formularios, propiedades y del Data DOM soportan lecturas directas nodes[index] tanto en JavaScript como en FormCalc

Los índices de colecciones son de base cero; for...of sigue siendo sintaxis JavaScript

Las escrituras a través de una referencia de colección de FormCalc actualizan el valor de datos realmente enlazado y retienen el aislamiento de instancias repetidas; los valores confirmados sobreviven al guardado XDP, a la recarga del runtime y a la generación nativa de appearances PDF

Índices numéricos del Data DOM

const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";

Las claves de enteros no negativos canónicas como "0" y "1" resuelven el hijo actual del Data DOM y devuelven null fuera de la colección; las claves no canónicas como "01", "-0" y "1.0" no son alias de entradas numéricas

index in nodes de JavaScript comprueba el recuento actual de hijos, y la asignación directa, la eliminación o la redefinición de una entrada numérica canónica lanza TypeError

Las mismas restricciones de entradas numéricas se aplican dentro de una función de script object que retiene la colección en estado léxico, así como cuando otro evento lee una colección devuelta por esa función

Use los métodos estructurales existentes del Data DOM para reordenar o eliminar hijos; una colección retenida por un script object lee el grafo de eventos actual tras cada edición confirmada y tras el rollback

Clones independientes

Una lista de hijos clonada usa el almacenamiento independiente descrito en Colecciones de nodos de consultas XFA; sus métodos append, insert y remove cambian ese almacenamiento independiente

Escribir un nodo referenciado por cualquiera de las listas cambia el nodo nativo real, y los valores confirmados y las anulaciones de propiedades persisten a través del XDP guardado y de la generación nativa de appearances PDF

Las colecciones de hijos del Data DOM también proporcionan clone() con almacenamiento de entradas independiente; sus métodos estructurales existentes append, insert y remove siguen mutando el árbol de datos nativo

Transacciones y límites

Los objetos de colecciones vivas y los clones independientes comparten los límites de asignación de colecciones de eventos, las comprobaciones de operaciones y el plazo de la transacción

Un error de evento no capturado o un fallo de presupuesto restaura juntos los valores nativos, las instancias repetidas, el estado de scripts retenido, el almacenamiento de listas independientes y el estado del journal

Las colecciones vivas de formularios y propiedades son de solo lectura; la asignación directa, la eliminación, la redefinición de propiedades, los cambios de prototype y prevenir extensiones lanzan un error

Las colecciones del Data DOM rechazan la escritura, eliminación y redefinición de entradas numéricas canónicas mientras retienen sus métodos estructurales con nombre existentes y el comportamiento ordinario de propiedades no numéricas

Cobertura

Esta interfaz expone las colecciones vivas actuales de hijos de formularios y propiedades y los clones independientes de listas de hijos

La creación general de nodos de template/formularios, el clonado recursivo de nodos, la inserción y eliminación de árboles hijos y los enlaces adicionales de clases de nodos siguen siendo trabajo aparte

Estructura transaccional del Data DOM XFA · Runtime de widgets XFA