XML nativo do Data DOM
Unidade: HPDFXFARuntime
Métodos
dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");
Estes métodos de scripts estão disponíveis em nós de datasets, dataGroup e dataValue em eventos TXFAWidgetRuntime
saveXML devolve XML UTF-8 com uma declaração e o nó selecionado como elemento de documento dele; o argumento opcional pretty acrescenta indentação a conteúdo apenas de elementos
loadXML aceita um documento XML bem formado; ignoreRoot importa os filhos dele para o nó selecionado, enquanto False importa o elemento de documento da fonte como filho
overwrite remove o conteúdo existente do alvo antes de importar; o default False dele acrescenta conteúdo e preserva identidades existentes de filhos
O nó selecionado mantém a identidade e os atributos dele; atributos de filhos importados e os mapeamentos de namespaces deles são preservados
Grafo e bindings imediatos
const record = xfa.datasets.data.main;
record.loadXML("<main><amount>42</amount></main>", true, true);
const amount = record.amount;
amount.value = "43";
if (this.parent.amount.rawValue !== "43") throw new Error("Missing binding update");
Um parsing nativo bem-sucedido instala imediatamente os filhos importados no grafo atual de scripts; propriedades ordinárias e seletores SOM resolvem esses nós frescos antes da publicação de eventos
Células de dados sincronizam com aliases vinculados de campos em ambas as direções, incluindo campos ocultos, alvos de bindings recém-fornecidos e seletores existentes de dataRef de descendentes, wildcards, classes e índices numéricos
Importações de escalares para grupos atualizam a classe de dados do alvo e expõem os elementos filhos importados dele; um dataValue esvaziado tem um valor de string vazio
Importar um elemento de dados novo não aloca folhas ambíguas alheias de dados para bindings não resolvidos
Identidades e âmbitos repetidos
Overwrite invalida handles antigos de filhos e publica identidades frescas de filhos; um objeto de script pode reter um handle fresco de dados importados e usá-lo em eventos subsequentes
Appending preserva handles existentes; importar dentro de uma linha repetida altera o âmbito nativo de dados dessa linha e os campos vinculados dela
Importações XML também funcionam dentro de uma ocorrência criada por addInstance durante o mesmo evento
Substituir o conteúdo de datasets atualiza $data e $record para as raízes nativas novas e reancora identidades sobreviventes de formulários e de objetos de scripts, para que o estado lexical de módulos permaneça anexado ao âmbito de formulários dele
Conteúdo e persistência
Importações nativas e XDP guardado preservam texto ordinário, CDATA, comentários e processing instructions pela ordem deles
Comentários e processing instructions permanecem fora da seleção ordinária de elementos do Data DOM e não se tornam texto visível de campos
Nós importados preservam o URI de namespace deles mesmo sob um namespace default ancestral diferente, incluindo o namespace default explicitamente vazio para elementos sem namespace
Atributos estrangeiros com prefixo mantêm nomes expandidos, e nomes locais Unicode, texto acentuado e carateres suplementares sobrevivem a gravação e recarregamento nativos
saveXML só de leitura não materializa propriedades de formulários nem altera bytes XDP guardados
Validação e rollback
O parser nativo XML verifica boa formação, validade de namespaces e de atributos, carateres XML, posicionamento de declarações e sintaxe de entidades antes da mutação do grafo
Entrada malformada pode ser apanhada em JavaScript; o grafo nativo e de scripts anterior permanece disponível, e uma mutação válida posterior ainda pode confirmar
Um evento falhado restaura bytes do documento, valores de widgets, o grafo importado, identidades e estado lexical de objetos de scripts, incluindo falhas depois de a importação nativa de XML já ter sido aplicada
Cada sessão nativa de JavaScript retém o módulo DLL real dela enquanto reconstrói motores para replay de respostas; motores, contextos e journals permanecem independentes, e a referência do módulo é libertada após o teardown final do motor nativo
Parsing e serialização XML impõem orçamentos de operações, profundidade, nós, bytes e tempo decorrido juntamente com o prazo original de eventos do runtime e os limites dele de carateres de valores
Importações não resolvem entidades externas nem realizam ações de ficheiros, de rede nem de UI; declarações DTD são rejeitadas por este parser
Âmbito atual
Esta integração de runtime de eventos visa atualmente Windows Win32 e Win64; a integração portátil do runtime de Linux permanece pendente
Esta integração fornece importação e serialização nativas de XML mais reavaliação atual de bindings; createNode autónomo, mutação arbitrária de atributos de dados, reparenting, navegação de janelas de registos, predicados de bindings e políticas globais de bindings continuam a ser alvos separados do modelo de objetos
APIs relacionadas
Data DOM nativo, Bind SOM nativo, TXFAEventBinding, TXFAEventAction e Runtime XFA interativo