Estrutura transacional do Data DOM XFA

Eventos JavaScript podem criar, clonar, renomear, anexar, reordenar e destacar elementos nativos do Data DOM, com leituras imediatas de scripts e persistência nativa de toda a transação

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

Operações suportadas

xfa.datasets.createNode(className, name = "", namespace = "") cria um dataGroup ou dataValue não anexado; nomes qualificados exigem um URI de namespace não vazio

node.clone(recursive = true) cria uma cópia não anexada do Data DOM com identidades frescas; false exclui nós filhos mantendo os metadados e o valor do próprio elemento

node.name é gravável para elementos do Data DOM e preserva namespace, ordem de irmãos, descendentes e aliases retidos; uma construção sem nome tem de receber um nome local válido antes da anexação

node.nodes.length, item(index) e namedItem(name) leem os filhos vivos ordenados de elementos; item e namedItem devolvem null quando nenhum filho corresponde

nodes.append(node) e nodes.insert(node, before) transferem o mesmo objeto para os filhos do proprietário; insert(node, null) acrescenta

nodes.remove(node) destaca um filho direto mantendo o objeto dele e a subárvore dele disponíveis para aliases retidos e reanexação posterior

xfa.record devolve o primeiro registo atual sob a raiz de dados do Data DOM e atualiza-se após edições estruturais

Identidades, XML e bindings

Um objeto de script pode reter um nó, um descendente ou a coleção proprietária de filhos através de eventos; aliases vivos resolvem os mesmos objetos nativos após anexação, destaque, renomeação e rollback

loadXML e saveXML funcionam em elementos recém-criados e movidos, incluindo descendentes importados e depois movidos durante o mesmo evento

Identidades nativas estáveis impedem que aliases importados de descendentes resolvam silenciosamente um filho diferente após alterações posicionais

Namespaces herdados de atributos, resets explícitos de namespaces default vazios, comentários, processing instructions, CDATA e valores Unicode sobrevivem a clone, movimento, gravação e recarregamento

Bindings de formulários atualizam-se após alterações estruturais, e valores escritos através de nós de dados recém-anexados chegam à instância repetida correspondente de formulários sem alterar outra instância

Transações e limites

Classes inválidas, XML names, referências de irmãos, ciclos e nós estrangeiros falham antes de essa operação individual alterar o grafo vivo de scripts

Um erro de scripts não apanhado, falha nativa de aplicações, cancelamento, teto de operações ou limite de tempo decorrido restaura o evento completo, incluindo nós anexados e destacados, valores de bindings, aliases retidos, estado lexical de objetos de scripts e estado do journal; o mesmo runtime pode então repetir

Nós estruturais e árvores destacadas partilham tetos nativos de nós, profundidade e bytes UTF-8; o prazo original da transação de scripts aplica-se a JavaScript e a alterações nativas em conjunto

Consumo de PDFs

Grave o runtime em XDP e passe esses bytes a HPDFXFAWriteHeadlessPDF para criar campos e aparências nativas reais de PDFs a partir dos bindings alterados de dados

TXFAHeadlessPDFOptions.Editable = False cria campos nativos só de leitura com aparências; essa definição não os achata

Cobertura atual

Esta página descreve edições do Data DOM; o scripting transacional de árvores de formulários fornece criação viva suportada de formulários, clonagem, inserção, remoção e consumo nativo de PDFs

Edição geral de templates, processamento completo de subform-sets de escolhas e o schema completo de classes de nós XFA continuam a ser capacidades separadas

Coleções independentes de nós de consultas · API nativa de grafos estruturais · Runtime de widgets XFA