Coleções vivas de filhos XFA

Eventos JavaScript e FormCalc podem inspecionar os nós filhos atuais de um nó de formulários ou de propriedades através da propriedade só de leitura nodes dele

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);

Ler filhos atuais

MembroComportamento
lengthContagem atual de nós filhos
item(index)Filho atual nesse índice com base zero, ou null para um índice negativo, não inteiro ou fora do intervalo
namedItem(name)Primeiro filho atual com esse nome literal, ou null quando nenhum filho corresponde
nodes[index]O mesmo nó atual que item(index)
for...ofLê nós filhos pela ordem atual deles
clone()Cria uma lista independente de consultas referindo os filhos atuais

A coleção resolve o proprietário dela através do grafo atual de eventos a cada leitura, incluindo uma coleção retida por um objeto de scripts através de eventos

Coleções existentes refletem acrescentos e remoções de instâncias repetidas e criação implícita de propriedades; instâncias repetidas separadas mantêm filhos e valores separados de propriedades

Uma coleção retida cujo proprietário foi removido levanta um erro em vez de visar uma instância sobrevivente ou de substituição

Acesso FormCalc

FormCalc reconhece nodes como uma propriedade de coleções de filhos em nós de formulários, de propriedades e do Data DOM

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

Cadeias diretas de membros de length, item(index), namedItem(name) e clone() usam os mesmos nós nativos atuais e limites de coleções que o JavaScript

Coleções de filhos de formulários, de propriedades e do Data DOM suportam leituras diretas de nodes[index] tanto em JavaScript como em FormCalc

Índices de coleções têm base zero; for...of permanece sintaxe JavaScript

Escritas através de uma referência de coleções FormCalc atualizam o valor real vinculado de dados e mantêm o isolamento de instâncias repetidas; valores confirmados sobrevivem a gravação de XDP, recarregamento de runtimes e geração nativa de aparências PDF

Índices numéricos do Data DOM

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

Chaves canónicas de inteiros não negativos como "0" e "1" resolvem o filho atual do Data DOM e devolvem null fora da coleção; chaves não canónicas como "01", "-0" e "1.0" não servem de alias a entradas numéricas

index in nodes de JavaScript verifica a contagem atual de filhos, e atribuição, eliminação ou redefinição direta de uma entrada numérica canónica levanta TypeError

As mesmas restrições de entradas numéricas aplicam-se dentro de uma função de objetos de scripts que retenha a coleção em estado lexical, bem como quando outro evento lê uma coleção devolvida por essa função

Use os métodos estruturais existentes do Data DOM para reordenar ou remover filhos; uma coleção retida por um objeto de scripts lê o grafo atual de eventos após cada edição confirmada e após rollback

Clones independentes

Uma lista clonada de filhos usa o armazenamento independente descrito nas coleções de nós de consultas XFA; os métodos append, insert e remove dela alteram esse armazenamento independente

Escrever num nó referenciado por qualquer uma das listas altera o nó nativo real, e valores confirmados e overrides de propriedades persistem através de XDP guardado e de geração nativa de aparências PDF

Coleções de filhos do Data DOM também fornecem clone() com armazenamento independente de entradas; os métodos estruturais existentes delas de append, insert e remove continuam a mutar a árvore nativa de dados

Transações e limites

Objetos vivos de coleções e clones independentes partilham os limites de alocações de coleções de eventos, verificações de operações e prazo da transação

Um erro de eventos não apanhado ou falha de orçamentos restaura em conjunto valores nativos, instâncias repetidas, estado retido de scripts, armazenamento independente de listas e estado do journal

Coleções vivas de formulários e de propriedades são só de leitura; atribuição direta, eliminação, redefinição de propriedades, alterações de prototypes e impedir extensões levantam um erro

Coleções do Data DOM rejeitam escritas, eliminação e redefinição de entradas numéricas canónicas mantendo os métodos estruturais nomeados existentes delas e o comportamento ordinário delas de propriedades não numéricas

Cobertura

Esta interface expõe coleções atuais de filhos de formulários e de propriedades e clones independentes de listas de filhos

Criação geral de nós de templates/formulários, clonagem recursiva de nós, inserção e remoção de árvores de filhos e bindings adicionais de classes de nós continuam a ser trabalho separado

Estrutura transacional do Data DOM XFA · Runtime de widgets XFA