Native Data DOM XML
Birim: HPDFXFARuntime
Method'lar
dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");
Bu script method'ları, TXFAWidgetRuntime event'lerinde datasets, dataGroup ve dataValue node'larında kullanılabilir
saveXML, declaration'ı ve seçili node'u document element olarak içeren UTF-8 XML döndürür; opsiyonel pretty argümanı, element-only içeriğe girinti ekler
loadXML, well-formed bir XML document kabul eder; ignoreRoot, child'larını seçili node'a import eder, False ise kaynak document element'ini child olarak import eder
Overwrite, import'tan önce mevcut hedef içeriği kaldırır; default'u False, içerik ekler ve mevcut child identity'lerini korur
Seçili node identity'sini ve attribute'larını tutar; import edilen child attribute'ları ve onların namespace eşlemeleri korunur
Anlık graf ve binding'ler
const record = xfa.datasets.data.main;
record.loadXML("<main><amount>42</amount></main>", true, true);
const amount = record.amount;
amount.value = "43";
if (this.parent.amount.rawValue !== "43") throw new Error("Missing binding update");
Başarılı bir native parse, import edilen child'ları hemen mevcut script grafiğine yerleştirir; sıradan özellikler ve SOM selector'lar, event yayımlanmadan önce o taze node'ları çözümler
Data hücreleri, bağlı field alias'larıyla iki yönlü eşzamanlanır; hidden field'lar, yeni sağlanan binding hedefleri ve mevcut descendant, wildcard, class ve sayısal-indeks dataRef selector'ları dâhil
Scalar-to-group import'ları, hedefin data class'ını günceller ve import edilen child element'lerini açığa çıkarır; boşaltılmış bir dataValue, boş string value'ya sahiptir
Yeni bir data element import etmek, çözümlenmemiş binding'ler için ilgisiz belirsiz data leaf'leri tahsis etmez
Identity ve tekrarlanan scope'lar
Overwrite, eski child handle'ları geçersiz kılar ve taze child identity'leri yayımlar; bir script object, taze bir imported data handle tutabilir ve sonraki event'lerde kullanabilir
Append etmek mevcut handle'ları korur; tekrarlanan bir row içinde import etmek, o row'un native data scope'unu ve bağlı field'larını değiştirir
XML import'ları, aynı event sırasında addInstance tarafından oluşturulan bir occurrence içinde de çalışır
Datasets içeriğini değiştirmek, $data'yı ve $record'u yeni native root'lara günceller ve kalan form ile script-object identity'lerini rebase eder — böylece lexical module state form scope'una bağlı kalır
İçerik ve persistence
Native import'lar ve kayıtlı XDP, sıradan metni, CDATA'yı, comment'leri ve processing instruction'ları sırasıyla korur
Comment'ler ve processing instruction'lar, sıradan Data DOM element seçiminin dışında kalır ve görünür field metni olmaz
Import edilen node'lar, farklı bir ancestor default namespace'inin altında bile kendi namespace URI'lerini korur; namespace'siz element'ler için açık boş default namespace dâhil
Yabancı prefix'li attribute'lar expanded adlarını korur ve Unicode yerel adlar, aksanlı metin ve supplementary character'lar native save ve reload boyunca hayatta kalır
Read-only saveXML, form özellikleri gerçekleştirmez veya kayıtlı XDP baytlarını değiştirmez
Doğrulama ve rollback
Native XML parser, graf mutation'ından önce well-formedness'ı, namespace ve attribute geçerliliğini, XML character'ları, declaration yerleşimini ve entity sözdizimini denetler
Bozuk girdi JavaScript'te yakalanabilir; önceki native ve script grafiği kullanılabilir kalır ve sonraki geçerli bir mutation yine de commit edebilir
Başarısız bir event, native XML import'ı zaten uygulanmış olsa bile, belge baytlarını, widget value'larını, imported grafiği, identity'leri ve script-object lexical state'ini geri alır
Her native JavaScript session'ı, response replay için engine'leri yeniden kurarken kendi gerçek DLL module'ünü tutar; engine'ler, context'ler ve journal'lar bağımsız kalır ve module referansı, son native engine teardown'ından sonra serbest bırakılır
XML parsing ve serialize etme, operation, depth, node, byte ve geçen-süre bütçelerini, runtime'ın orijinal event deadline'ı ve value-character limitleriyle birlikte uygular
Import'lar harici entity'leri çözümlemez veya dosya, ağ veya UI action'ı gerçekleştirmez; DTD bildirimleri bu parser tarafından reddedilir
Mevcut kapsam
Bu event-runtime entegrasyonu şu anda Windows Win32 ve Win64'ü hedefler; taşınabilir Linux runtime entegrasyonu beklemeye devam eder
Bu entegrasyon, native XML import ve serialize etme ve mevcut binding yeniden değerlendirmesi sağlar; bağımsız createNode, keyfi data attribute mutation'ı, yeniden-ebeveynleme, record-window navigation'ı, binding predicate'leri ve global-binding politikası ayrı object-model hedefleri olarak kalır
İlgili API'ler
Native Data DOM, Native Bind SOM, TXFAEventBinding, TXFAEventAction ve Interactive XFA Runtime