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