DOM nativo de propriedades XFA
A execução geral com EnableJavaScript inclui filhos de propriedades de containers de formulários na tree viva de eventos, incluindo nós de value, valor tipado, font, fill, color, ui, border e edge
Containers nomeados usam o nome deles em paths SOM; nós de propriedades usam o nome da classe deles e preservam o atributo name real deles, que normalmente está vazio
Valores tipados e atributos
const field = xfa.resolveNode("main.row[1].cell");
field.value.text.value = "25";
field.font.size = "18pt";
field.font.fill.color.value = "0,128,255";
field.ui.textEdit.multiLine = "1";
field.resolveNode("border.edge[1]").thickness = "3pt";
field.font.setAttribute("saved", "custom");
const saved = field.font.getAttribute("custom");
row[1].cell.value.text.value = 25
row[1].cell.font.size = "18pt"
Um filho tipado sob o nó value de um campo compartilha o rawValue vivo do campo; leituras e escritas através de value.text.value, field.rawValue e do dataNode vinculado observam umas às outras imediatamente
Para nós de propriedades com atributo value, como color, a propriedade value lê e escreve aquele atributo; para nós de conteúdo escalar, ela lê e escreve o conteúdo de texto
Atributos presentes no binding efetivo de propriedades são expostos como propriedades diretas, exceto membros reservados de nós e do engine; getAttribute(name) lê um atributo arbitrário, e setAttribute(value, name) escreve um e expõe imediatamente um nome novo seguro
O FormCalc resolve paths de propriedades e atribui atributos escalares pela mesma tree de eventos; irmãos de propriedades suportam índices de ocorrências e selectors de classes
Persistência e rendering nativos
Escritas bem-sucedidas criam ou atualizam nós de propriedades sob a ocorrência correspondente do container no packet nativo de formulários; o template e as demais ocorrências repetidas retêm seus defaults
O lookup de propriedades segue a classe e a ocorrência local sob o container nomeado, em vez de pular nós sem nome; mudar o atributo name de uma propriedade preserva sua identidade, e o XDP salvo recarrega os overrides efetivos
Handles retidos de propriedades seguem as identidades publicadas dos donos deles através de inserção e movimentação de instâncias; escrever num handle depois que sua instância foi removida aborta e restaura a transação
Typeface e tamanho da fonte participam da medição e do reflow por instância de texto growable; o flatten lê os atributos efetivos de fontes, cores, bordas, parágrafos e UI suportadas para cada ocorrência de campo
Draws de rich text consomem overrides efetivos de fontes, parágrafos, CSS inline e conteúdo escalar para cada ocorrência, incluindo a medição e o placement de runs deles
A criação de instâncias retém todos os defaults de irmãos de propriedades, incluindo múltiplos nós de edges, e usa os valores de atributos do template, em vez dos overrides de outra ocorrência
Overrides de UI criam escolhas suportadas de widgets e mudam o kind real por instância do runtime e as flags nativas de campos após um evento bem-sucedido
Orçamentos e bindings de nível mais baixo
O traversal de propriedades compartilha os orçamentos de nós, profundidade, operações e bytes do evento; escritas nativas de texto e atributos obedecem MaxValueChars, e escritas com falha restauram valores nativos de campos, overrides de propriedades, estado de scripts e ordem de instâncias
Chamadores diretos usam xebdProperty e fornecem Attributes e DefaultAttributes; os últimos inicializam nós recém-clonados
Uma action de atributo de propriedades contém o nome do atributo, um separador NUL e o valor em TXFAEventAction.Value; TXFAWidgetRuntime valida e aplica ao alvo nativo de propriedades
Cobertura
A tree de eventos inclui os nós declarados de propriedades e os atributos efetivos deles, com defaults de schema para classes suportadas de formatação e widgets; a criação de propriedades ausentes agora materializa paths suportados de formatação no packet nativo de formulários
Declarações de event, calculate e validate permanecem metadados de execução; scripts variables permanecem objetos de script, e a edição geral de propriedades não ativa scripts de metadados
Classes adicionais de propriedades de schema, remoção e reparenting genéricos, mutação de atributos qualificados por namespace, consumers adicionais de propriedades de layout e mais features de edição de rich text ou widgets continuam como alvos separados
APIs relacionadas
Resolução SOM viva, Data DOM nativo, HPDFXFAResolveFormInstanceProperty e Runtime XFA interativo