Data DOM XFA nativo

La ejecución general con EnableJavaScript expone el árbol de datasets nativos del documento mediante xfa.datasets, las rutas de resolvedor $data y $record, y los accessors de FormCalc

Los nodos de datos usan identidades nativas estables y el mismo resolvedor SOM en vivo que los nodos de formulario; soportan nombres, selectores de clase, selección de ocurrencias, traversal de padres, predicados y resolución a nivel de nodo

Raíces y clases

Objeto o rutaSignificado
xfa.datasetsEl nodo del packet datasets, o null cuando está ausente
xfa.datasets.data y $dataLa raíz de datos bajo el packet datasets
$recordLa primera raíz de record bajo data en el modelo de procesamiento no-record actual
dataGroupUn elemento de datos que contiene elementos hijos, incluido un grupo vacío declarado explícitamente
dataValueUn elemento de datos que porta un valor
formNode.dataNodeEl nodo enlazado al campo o subform del formulario, o null cuando no hay binding de datos presente

El atributo dataNode en el namespace de datos XFA puede seleccionar explícitamente la clase de un grupo o valor; los prefijos de namespace se resuelven en lugar de exigir una ortografía de prefijo particular

Lecturas y escrituras

Un dataValue expone value como un alias escribible de rawValue; ambos accessors actualizan la misma celda de datos enlazada y el mismo nodo de datos nativo

const value = xfa.resolveNode("$record.row[1].cell");
value.rawValue = "25";
target.rawValue = xfa.resolveNode("main.row[1].cell").rawValue;

$record.row[1].cell = 25
target = row[1].cell
var p = Ref($record.row[1].cell)
p = 30

Las escrituras en campos enlazados actualizan de inmediato el valor de datos correspondiente, y las escrituras en valores de datos actualizan de inmediato las lecturas de campos enlazados dentro del mismo script; la publicación nativa escribe el nodo de datos real

Las propiedades de valor escalar materializadas sincronizan su contenido nativo de formulario después de escrituras de campo o de datos, incluidos los alias de datos compartidos y la publicación de datos de nuevas instancias repetidas

Los elementos de datos sin campo de formulario enlazado siguen siendo accesibles y escribibles; las transacciones exitosas conservan sus cambios en el XDP guardado

Los campos de formulario con bind match=none conservan los valores por defecto de la plantilla y almacenan las ediciones en el valor del Form DOM de su propia ocurrencia; no exponen ningún nodo de datos sintético y no modifican ocurrencias hermanas

Los valores de datos comparten con el host de eventos de formulario los presupuestos de Unicode, tamaño de valor y ejecución; los nodos de grupo ofrecen acceso estructural en lugar de un valor crudo escribible

Instancias repetidas y referencias retenidas

La inserción, el movimiento y la eliminación de instancias de formulario actualizan el Data DOM en vivo correspondiente durante el mismo script; las nuevas filas con binding implícito exponen los valores por defecto de la plantilla a través de sus nodos de datos antes de la publicación

Un prototipo de ocurrencia cero puede crear su primer grupo de datos y valores; la publicación nativa suministra identidades reales para los nodos nuevos, permitiendo que los script objects retengan handles de datos a través de eventos posteriores

Las referencias de datos retenidas siguen el movimiento por identidad; usar una referencia después de que su grupo fue eliminado hace fallar el evento, y el rollback del runtime restaura el orden nativo de ocurrencias, los valores y los contadores de script objects

Los instance managers retenidos por script objects resuelven el ámbito actual, incluidos los managers cuyo conteo inicial de ocurrencias era cero

Contenido XML nativo

Los nodos datasets, dataGroup y dataValue exponen loadXML y saveXML con parsing nativo, actualizaciones de grafo en el mismo script y publicación transaccional

Las importaciones XML preservan comentarios, processing instructions, CDATA, namespaces expandidos y nombres Unicode, manteniendo los nodos de no texto fuera de la selección ordinaria de hijos del Data DOM y de los valores visibles de campos

Los valores importados sincronizan de inmediato las lecturas de campos enlazados, incluidos los campos cuyo dataRef existente selecciona un sufijo distinto o cuyo destino previamente sin resolver ahora está disponible

Transacciones y llamadores de nivel inferior

TXFAWidgetRuntime construye los bindings del dominio de datos, enlaza campos de formulario a valores de datos nativos, aplica escrituras de datos y nuevos bindings de identidad, y restaura el estado exacto de XDP tras un fallo del engine o de la publicación nativa

Los llamadores de eventos de nivel inferior usan TXFAEventBindingDomain y los campos DataIdentity y DataBindingEnabled de TXFAEventBinding para suministrar relaciones de objetos equivalentes

La acción xeakBindDataIdentity enlaza un nuevo handle virtual de datos a su identidad de datos nativa publicada; las aplicaciones de nivel inferior deben aplicar las mutaciones de datos devueltas y los bindings de identidad de forma transaccional

Cobertura restante del modelo de objetos

La navegación de ventana de records, la creación y reubicación independiente de nodos de datos, los atributos de datos arbitrarios y la edición completa de nodos de propiedades de plantilla siguen siendo objetivos de integración separados

El espejo de instancias sigue el comportamiento existente del instance manager de binding implícito de datos; las mutaciones adicionales de instancias con binding explícito requieren más integración de bindings

APIs relacionadas

Rutas SOM en vivo, Referencias de FormCalc, HPDFXFAExecuteJavaScriptEvent y Runtime XFA interactivo