Native XFA Data DOM

EnableJavaScript ile genel yürütme, belgenin native datasets ağacını xfa.datasets, $data ve $record resolver path'leri ve FormCalc accessor'ları üzerinden açığa çıkarır

Data node'ları, kararlı native identity'ler ve form node'larıyla aynı canlı SOM resolver'ı kullanır; adlar, class selector'ları, occurrence seçimi, ebeveyn traversal'ı, predicate'ler ve node-düzeyi resolution destekler

Root'lar ve class'lar

Object veya pathAnlam
xfa.datasetsDatasets packet node'u, yoksa null
xfa.datasets.data ve $dataDatasets packet'i altındaki data root'u
$recordMevcut non-record processing modelinde data altındaki ilk record root'u
dataGroupChild element'ler içeren bir data element — açıkça bildirilmiş boş bir grup dâhil
dataValueValue taşıyan bir data element
formNode.dataNodeForm field'ına veya subform'a bağlı node, data binding yoksa null

XFA data namespace'indeki dataNode attribute, bir grubun veya value'nun class'ını açıkça seçebilir; namespace prefix'leri, belirli bir prefix yazımı gerektirmek yerine çözümlenir

Okumalar ve yazmalar

dataValue, value'yı rawValue'nun yazılabilir bir alias'ı olarak açığa çıkarır; her iki accessor da aynı bağlı data hücresini ve native data node'unu günceller

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

Bağlı field yazmaları karşılık gelen data value'sunu hemen günceller ve data value yazmaları, aynı script içinde bağlı field okumalarını hemen günceller; native yayımlama, gerçek data node'u yazar

Gerçekleştirilmiş scalar value özellikleri, field veya data yazmalarından sonra native form içeriğini eşzamanlar — paylaşılan-data alias'ları ve yeni tekrar-instance data yayımı dâhil

Bağlı form field'ı olmayan data element'leri erişilebilir ve yazılabilir kalır; başarılı transaction'lar değişikliklerini kayıtlı XDP'de korur

bind match=none'lı form field'ları, template default'larını tutar ve edit'leri kendi occurrence'ının Form DOM value'suna saklar; sentetik data node açığa çıkarmaz ve sibling occurrence'ları değiştirmez

Data value'ları, form event host'ıyla Unicode, value-boyutu ve yürütme bütçelerini paylaşır; grup node'ları, yazılabilir bir ham value yerine structural erişim sağlar

Tekrar-instance'lar ve tutulan referanslar

Form instance ekleme, taşıma ve kaldırma, aynı script sırasında karşılık gelen canlı Data DOM'u günceller; yeni örtük-bağlı row'lar, yayımdan önce template default'larını data node'ları üzerinden açığa çıkarır

Zero-occurrence bir prototype, ilk data grubunu ve value'larını oluşturabilir; native yayımlama, yeni node'lar için gerçek identity'ler sağlar — böylece script object'ler sonraki event'ler boyunca data handle'ları tutabilir

Tutulan data referansları, hareketi identity ile izler; grubu kaldırıldıktan sonra bir referans kullanmak event'i başarısız kılar ve runtime rollback, native occurrence sırasını, value'ları ve script-object sayaçlarını geri alır

Script object'ler tarafından tutulan instance manager'lar mevcut scope'u çözümler — başlangıç occurrence sayısı sıfır olan manager'lar dâhil

Native XML içeriği

datasets, dataGroup ve dataValue node'ları, native parsing, aynı-script graf güncellemeleri ve transactional yayımla loadXML ve saveXML açığa çıkarır

XML import'ları, comment'leri, processing instruction'ları, CDATA'yı, expanded namespace'leri ve Unicode adları korurken, metin-olmayan node'ları sıradan Data DOM child seçiminin ve görünür field value'larının dışında tutar

Import edilen value'lar, bağlı field okumalarını hemen eşzamanlar — mevcut dataRef'i farklı bir sonek seçen veya önceden çözümlenmemiş hedefi artık erişilebilir olan field'lar dâhil

Transaction'lar ve alt-düzey çağıranlar

TXFAWidgetRuntime, data-domain binding'leri kurar, form field'larını native data value'larına bağlar, data yazmalarını ve yeni identity binding'leri uygular ve engine veya native yayım başarısızlığından sonra kesin XDP state'ini geri alır

Alt-düzey event çağıranları, eşdeğer object ilişkileri sağlamak için TXFAEventBindingDomain'i ve TXFAEventBinding'in DataIdentity ve DataBindingEnabled alanlarını kullanır

xeakBindDataIdentity action, yeni bir sanal data handle'ını yayımlanmış native data identity'sine bağlar; alt-düzey uygulamalar, döndürülen data mutation'larını ve identity binding'lerini transactionally uygulamalıdır

Kalan object-model kapsamı

Record-window navigation, bağımsız data-node oluşturma ve yeniden-ebeveynleme, keyfi data attribute'ları ve tam template property-node editing ayrı entegrasyon hedefleri olarak kalır

Instance aynalama, mevcut örtük data-binding instance manager davranışını izler; ek açık-binding instance mutation'ları daha fazla binding entegrasyonu gerektirir

İlgili API'ler

Canlı SOM Path'leri, FormCalc References, HPDFXFAExecuteJavaScriptEvent ve Interactive XFA Runtime