Property DOM XFA nativo
La ejecución general con EnableJavaScript incluye los hijos de propiedades de los contenedores del 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 nombre en las rutas SOM; los nodos de propiedades usan su nombre de clase y conservan 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 un 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, salvo 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 correctas crean o actualizan nodos de propiedades bajo la ocurrencia del contenedor correspondiente en el paquete nativo de formularios; la plantilla y las demás ocurrencias repetidas conservan sus valores por defecto
La búsqueda 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 retenidos 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 eliminar su instancia aborta y restaura la transacción
El typeface y el tamaño de fuente participan en la medición y el reflow de texto growable por instancia; flatten lee la fuente, el color, el borde, el párrafo y los atributos de UI soportados efectivos para cada ocurrencia de campo
Los draws de rich text consumen los overrides efectivos de fuente, párrafo, CSS en línea y contenido escalar para cada 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 la plantilla en lugar de los overrides de otra ocurrencia
Los overrides de UI crean las elecciones de widgets soportadas y cambian el kind real por instancia del runtime y los flags nativos de campo tras un evento correcto
Presupuestos y bindings de nivel inferior
El recorrido 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 objetivo nativo de la propiedad
Cobertura
El árbol de eventos incluye los nodos de propiedades declaradas y sus atributos efectivos, con valores por defecto del schema para las clases de formato y widgets soportadas; la creación de propiedades ausentes ahora materializa las rutas de formato soportadas en el paquete nativo de formularios
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
Las clases de propiedades de schema adicionales, el borrado y reparentado genéricos, la mutación de atributos cualificados por namespace, los consumidores adicionales de propiedades de layout y más funciones de edición de rich text o widgets continúan como objetivos separados
APIs relacionadas
Live SOM Resolution, Native Data DOM, HPDFXFAResolveFormInstanceProperty y Interactive XFA Runtime