Colecciones de hijos vivos XFA

Los eventos de JavaScript y FormCalc pueden inspeccionar los nodos hijos actuales de un nodo de formulario o de propiedad 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);

Lectura de hijos actuales

MiembroComportamiento
lengthNúmero actual de nodos hijos
item(index)Hijo actual en ese índice 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 coincide
nodes[index]El mismo nodo actual que item(index)
for...ofLee los nodos hijos en su orden actual
clone()Crea una lista de consulta independiente que referencia a 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 objeto de script a través de eventos

Las colecciones existentes reflejan adiciones y eliminaciones de instancias repetidas y creación implícita de propiedades; las instancias repetidas separadas mantienen hijos de propiedad 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 formulario, de propiedad 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 de length, item(index), namedItem(name) y clone() usan los mismos nodos nativos actuales y límites de colección que JavaScript

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

Los índices de colección son base cero; for...of sigue siendo sintaxis de JavaScript

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

Índices numéricos del Data DOM

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

Las claves enteras canónicas no negativas 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

El index in nodes de JavaScript verifica el conteo actual de hijos, y la asignación directa, eliminación o 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 objeto de script 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 objeto de script lee el grafo de eventos actual después de cada edición confirmada y después del rollback

Clones independientes

Una lista de hijos clonada usa el almacenamiento independiente descrito en Colecciones de nodos de consulta 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 la generación nativa de apariencias PDF

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

Transacciones y límites

Los objetos de colección vivos y los clones independientes comparten los límites de asignación de colecciones del evento, las verificaciones de operación y el plazo de la transacción

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

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 prototipo 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 colecciones de hijos actuales de formularios y propiedades y clones independientes de listas de hijos

La creación general de nodos de plantilla/formulario, la clonación recursiva de nodos, la inserción y eliminación de árboles de hijos, y bindings adicionales de clases de nodos siguen siendo trabajo separado

Estructura transaccional del Data DOM XFA · Runtime de widgets XFA