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