Property DOM XFA nativo

La ejecución general con EnableJavaScript incluye los hijos de propiedades de los contenedores de formulario en el árbol de eventos en vivo, incluidos los nodos value, typed value, font, fill, color, ui, border y edge

Los contenedores con nombre usan su name en las rutas SOM; los nodos de propiedades usan su nombre de clase y preservan su atributo name real, que normalmente está vacío

Valores tipados y 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"

Un hijo tipado bajo el nodo value de un campo comparte el rawValue en vivo del campo; las lecturas y escrituras a través de value.text.value, field.rawValue y el dataNode enlazado se observan mutuamente de inmediato

Para los nodos de propiedades con atributo value, como color, la propiedad value lee y escribe ese atributo; para los nodos de contenido escalar lee y escribe el contenido de texto

Los atributos presentes en el binding efectivo de propiedades se exponen como propiedades directas, excepto los miembros reservados de nodos y engine; getAttribute(name) lee un atributo arbitrario y setAttribute(value, name) escribe uno y expone de inmediato un nombre nuevo seguro

FormCalc resuelve las rutas de propiedades y asigna atributos escalares a través del mismo árbol de eventos; los hermanos de propiedades soportan índices de ocurrencia y selectores de clase

Persistencia y rendering nativos

Las escrituras exitosas crean o actualizan nodos de propiedades bajo la ocurrencia del contenedor correspondiente en el form packet nativo; la plantilla y las demás ocurrencias repetidas retienen sus valores por defecto

El lookup de propiedades sigue la clase y la ocurrencia local bajo el contenedor con nombre en lugar de saltarse los nodos sin nombre; cambiar el atributo name de una propiedad preserva su identidad, y el XDP guardado recarga los overrides efectivos

Los handles de propiedades retenidas siguen las identidades publicadas de sus propietarios a través de la inserción y el movimiento de instancias; escribir en un handle después de que su instancia fue eliminada aborta y restaura la transacción

El typeface y el size de la fuente participan en la medición y el reflow de texto growable por instancia; el flatten lee la fuente efectiva, el color, el borde, el párrafo y los atributos de UI soportados de cada ocurrencia de campo

Los draws de rich text consumen los overrides efectivos de fuente, párrafo, CSS inline y contenido escalar por ocurrencia, incluidas su medición y colocación de runs

La creación de instancias retiene todos los valores por defecto de los hermanos de propiedades, incluidos los múltiples nodos edge, y usa los valores de atributos de plantilla en lugar de los overrides de otra ocurrencia

Los overrides de UI crean las opciones de widgets soportadas y cambian el kind real por instancia del runtime y los flags nativos de campo después de un evento exitoso

Presupuestos y bindings de nivel inferior

El traversal de propiedades comparte los presupuestos de nodos, profundidad, operaciones y bytes del evento; las escrituras nativas de texto y atributos obedecen MaxValueChars, y las escrituras fallidas restauran los valores nativos de campos, los overrides de propiedades, el estado de scripts y el orden de instancias

Los llamadores directos usan xebdProperty y suministran Attributes y DefaultAttributes; los segundos inicializan los nodos recién clonados

Una acción de atributo de propiedad contiene el nombre del atributo, un separador NUL y el valor en TXFAEventAction.Value; TXFAWidgetRuntime la valida y la aplica al destino nativo de la propiedad

Cobertura

El árbol de eventos incluye los nodos de propiedades declarados y sus atributos efectivos, con valores por defecto de schema para las clases de formato y widgets soportadas; la creación de propiedades ausentes ahora materializa las rutas de formato soportadas en el form packet nativo

Las declaraciones event, calculate y validate siguen siendo metadatos de ejecución; los scripts de variables siguen siendo script objects, y la edición general de propiedades no activa los scripts de metadatos

Clases de propiedades de schema adicionales, la eliminación y reubicación genéricas, la mutación de atributos calificados por namespace, consumidores adicionales de propiedades de layout y más funciones de rich text o edición de widgets continúan como objetivos separados

APIs relacionadas

Resolución SOM en vivo, Data DOM nativo, HPDFXFAResolveFormInstanceProperty y Runtime XFA interactivo