Data DOM XFA nativo

La ejecución general con EnableJavaScript expone el árbol de datasets nativos del documento a través de las rutas de resolvedor xfa.datasets, $data y $record y de los accesores 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, recorrido de padres, predicados y resolución a nivel de nodo

Raíces y clases

Objeto o rutaSignificado
xfa.datasetsEl nodo del paquete datasets, o null cuando no existe
xfa.datasets.data y $dataLa raíz de datos bajo el paquete datasets
$recordLa primera raíz de registro 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 data binding presente

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

Lecturas y escrituras

Un dataValue expone value como un alias escribible de rawValue; ambos accesores 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 al instante las lecturas de los campos enlazados dentro del mismo script; la publicación nativa escribe el nodo de datos real

Las propiedades de valores escalares materializadas sincronizan su contenido nativo de formulario tras escrituras de campo o de datos, incluidos los alias con 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 correctas conservan sus cambios en el XDP guardado

Los campos de formulario con bind match=none retienen 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 las ocurrencias hermanas

Los valores de datos comparten los presupuestos de Unicode, tamaño de valor y ejecución con el host de eventos del formulario; 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 sus valores; la publicación nativa aporta identidades reales para los nodos nuevos, permitiendo que los script objects retengan handles de datos entre eventos posteriores

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

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

Contenido XML nativo

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

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

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

Transacciones y llamadores de nivel inferior

TXFAWidgetRuntime construye los bindings del dominio de datos, enlaza los campos del formulario a valores de datos nativos, aplica las escrituras de datos y los bindings de identidad nuevos, y restaura el estado exacto del 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 de datos virtual a su identidad de datos nativa publicada; las aplicaciones de nivel inferior deben aplicar las mutaciones de datos y los bindings de identidad devueltos de forma transaccional

Cobertura restante del modelo de objetos

La navegación por ventanas de registros, la creación y el reparentado 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; las mutaciones de instancias adicionales con binding explícito requieren más integración de binding

APIs relacionadas

Live SOM Paths, FormCalc References, HPDFXFAExecuteJavaScriptEvent y Interactive XFA Runtime