Data DOM nativo XFA

A execução geral com EnableJavaScript expõe a árvore nativa de datasets do documento através de caminhos de resolver xfa.datasets, $data e $record e acessores FormCalc

Nós de dados usam identidades nativas estáveis e o mesmo resolver vivo SOM que nós de formulários; eles suportam nomes, seletores de classes, seleção de ocorrências, travessia de pais, predicados e resolução ao nível de nós

Raízes e classes

Objeto ou caminhoSignificado
xfa.datasetsO nó do pacote de datasets, ou null quando ausente
xfa.datasets.data e $dataA raiz de dados sob o pacote de datasets
$recordA primeira raiz de registos sob data no modelo atual de processamento não record
dataGroupUm elemento de dados contendo elementos filhos, incluindo um grupo explicitamente declarado vazio
dataValueUm elemento de dados transportando um valor
formNode.dataNodeO nó vinculado ao campo ou subform de formulários, ou null quando não há binding de dados presente

O atributo dataNode no namespace de dados XFA pode selecionar explicitamente a classe de um grupo ou de um valor; prefixos de namespaces são resolvidos em vez de exigir uma grafia particular de prefixos

Leituras e escritas

Um dataValue expõe value como um alias gravável de rawValue; ambos os acessores atualizam a mesma célula vinculada de dados e o nó nativo de dados

const value = xfa.resolveNode("$record.row[1].cell");
value.rawValue = "25";
target.rawValue = xfa.resolveNode("main.row[1].cell").rawValue;

$record.row[1].cell = 25
target = row[1].cell
var p = Ref($record.row[1].cell)
p = 30

Escritas vinculadas de campos atualizam imediatamente o valor de dados correspondente, e escritas de valores de dados atualizam imediatamente leituras de campos vinculados dentro do mesmo script; a publicação nativa escreve o nó real de dados

Propriedades materializadas de valores escalares sincronizam o conteúdo nativo de formulários delas após escritas de campos ou de dados, incluindo aliases de dados partilhados e publicação nova de dados de instâncias repetidas

Elementos de dados sem campo de formulários vinculado permanecem acessíveis e graváveis; transações bem-sucedidas preservam as alterações deles no XDP guardado

Campos de formulários com bind match=none mantêm defaults de templates e guardam edições no valor do Form DOM da ocorrência própria deles; eles não expõem nó sintético de dados nenhum e não alteram ocorrências irmãs

Valores de dados partilham orçamentos de Unicode, de tamanhos de valores e de execução com o host de eventos de formulários; nós de grupos fornecem acesso estrutural em vez de um valor bruto gravável

Instâncias repetidas e referências retidas

Inserção, movimento e remoção de instâncias de formulários atualizam o Data DOM vivo correspondente durante o mesmo script; linhas novas implicitamente vinculadas expõem defaults de templates através dos nós de dados delas antes da publicação

Um protótipo de ocorrência zero pode criar o primeiro grupo e valores de dados dele; a publicação nativa fornece identidades reais para os nós novos, permitindo que objetos de scripts retenham handles de dados através de eventos subsequentes

Referências retidas de dados seguem movimentos por identidade; usar uma referência depois de o grupo dela ser removido faz falhar o evento, e o rollback do runtime restaura a ordem nativa de ocorrências, valores e contadores de objetos de scripts

Gestores de instâncias retidos por objetos de scripts resolvem o âmbito atual, incluindo gestores cuja contagem inicial de ocorrências era zero

Conteúdo XML nativo

Nós de datasets, dataGroup e dataValue expõem loadXML e saveXML com parsing nativo, atualizações de grafos no mesmo script e publicação transacional

Importações XML preservam comentários, processing instructions, CDATA, namespaces expandidos e nomes Unicode enquanto mantêm nós que não são de texto fora da seleção ordinária de filhos do Data DOM e dos valores visíveis de campos

Valores importados sincronizam imediatamente leituras de campos vinculados, incluindo campos cujo dataRef existente seleciona um sufixo diferente ou cujo alvo previamente não resolvido agora está disponível

Transações e quem chama a nível inferior

TXFAWidgetRuntime constrói bindings de domínios de dados, liga campos de formulários a valores nativos de dados, aplica escritas de dados e bindings novos de identidades, e restaura o estado exato de XDP após falha do motor ou da publicação nativa

Quem chama a eventos a um nível inferior usa TXFAEventBindingDomain e os campos DataIdentity e DataBindingEnabled de TXFAEventBinding para fornecer relações equivalentes de objetos

A ação xeakBindDataIdentity vincula um handle novo virtual de dados à identidade nativa de dados publicada dele; aplicações de nível inferior têm de aplicar mutações devolvidas de dados e bindings de identidades transacionalmente

Cobertura restante do modelo de objetos

Navegação de janelas de registos, criação autónoma e reparenting de nós de dados, atributos arbitrários de dados e edição completa de nós de propriedades de templates continuam a ser alvos separados de integração

O espelhamento de instâncias segue o comportamento existente de gestores de instâncias de bindings implícitos de dados; mutações adicionais de instâncias de bindings explícitos exigem mais integração de bindings

APIs relacionadas

Caminhos SOM vivos, Referências FormCalc, HPDFXFAExecuteJavaScriptEvent e Runtime XFA interativo