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 path | Anlam |
|---|---|
xfa.datasets | Datasets packet node'u, yoksa null |
xfa.datasets.data ve $data | Datasets packet'i altındaki data root'u |
$record | Mevcut non-record processing modelinde data altındaki ilk record root'u |
dataGroup | Child element'ler içeren bir data element — açıkça bildirilmiş boş bir grup dâhil |
dataValue | Value taşıyan bir data element |
formNode.dataNode | Form 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