Native Data DOM XML

Unit: HPDFXFARuntime

Metoder

dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");

Disse scriptmetoder er tilgængelige på datasets-, dataGroup- og dataValue-noder i TXFAWidgetRuntime-events

saveXML returnerer UTF-8 XML med en deklaration og den valgte node som sit dokumentelement; det valgfrie pretty-argument tilføjer indrykning til element-kun-indhold

loadXML accepterer ét velformet XML-dokument; ignoreRoot importerer dets børn i den valgte node, mens False importerer kildedokumentets element som barn

overwrite fjerner eksisterende målindhold inden import; dens standard False tilføjer indhold og bevarer eksisterende barn-identiteter

Den valgte node beholder sin identitet og attributter; importerede barn-attributter og deres namespace-mappings bevares

Øjeblikkelig graf og bindinger

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");

En succesfuld native parse installerer straks de importerede børn i den aktuelle script-graf; almindelige properties og SOM-selektorer opløser de friske noder inden event-publicering

Dataceller synkroniserer med bundne felt-aliasser i begge retninger, inklusive skjulte felter, nyligt leverede bindingsmål og eksisterende efterkommer-, wildcard-, klasse- og numerisk indeks-dataRef-selektorer

Scalar-til-gruppe-importer opdaterer målets dataklasse og udstiller dets importerede bornelementer; en tømt dataValue har en tom strengværdi

Import af et nyt data-element allokerer ikke urelaterede tvetydige datablade til uopløste bindinger

Identitet og gentagne scopes

Overwrite invaliderer gamle barn-handles og publicerer friske barn-identiteter; et script-objekt kan beholde et friskt importeret data-handle og bruge det i senere events

Appending bevarer eksisterende handles; import inde i en gentaget række ændrer den rækkes native data-scope og bundne felter

XML-importer virker også inde i en occurrence oprettet af addInstance under samme event

At erstatte datasets-indholdet opdaterer $data og $record til de nye native rødder og rebaser overlevende formular- og script-object-identiteter, så leksikalsk modultilstand forbliver knyttet til sit formular-scope

Indhold og persistens

Native importer og gemt XDP bevarer almindelig tekst, CDATA, kommentarer og processing instructions i rækkefølge

Kommentarer og processing instructions forbliver uden for almindeligt Data DOM element-udvalg og bliver ikke synlig felttekst

Importerede noder bevarer deres namespace-URI, også under en anden forfaders default namespace, inklusive den eksplicitte tomme default namespace til elementer uden namespace

Fremmede præfiksede attributter beholder udvidede navne, og Unicode lokale navne, accenttegnstekst og supplementary tegn overlever native gemning og genindlæsning

Skrivebeskyttet saveXML materialiserer ikke formular-properties og ændrer ikke gemte XDP-bytes

Validering og rollback

Den native XML-parser tjekker velformethed, namespace- og attributgyldighed, XML-tegn, deklarationsplacering og entitetssyntaks inden grafmutation

Misdannet input kan fanges i JavaScript; den tidligere native og script-graf forbliver tilgængelig, og en senere gyldig mutation kan stadig committere

En mislykket event gendanner dokumentbytes, widgetværdier, importeret graf, identiteter og script-object leksikalsk tilstand, inklusive fejl efter at den native XML-import allerede er anvendt

Hver native JavaScript-session beholder sit faktiske DLL-modul under genopbygning af motorer til respons-replay; motorer, kontekster og journaler forbliver uafhængige, og modulreferencen frigives efter den endelige native motor-nedrivning

XML-parsing og -serialisering håndhæver operations-, dybde-, node-, byte- og forløbet-tidsbudgetter sammen med runtime'ens originale event-frist og værditegn-grænser

Importere opløser ikke eksterne entiteter eller udfører fil-, netværks- eller UI-handlinger; DTD-deklarationer afvises af denne parser

Aktuelt omfang

Denne event-runtime-integration målretter i øjeblikket Windows Win32 og Win64; portabel Linux runtime-integration forbliver verserende

Denne integration leverer native XML-import og -serialisering plus aktuel binding-gen evaluering; selvstændig createNode, vilkårlig data attributmutation, reparenting, record-vindues-navigation, bindingsprædikater og global bindingspolitik forbliver separate objektmodel-mål

Relaterede API'er

Native Data DOM, Native Bind SOM, TXFAEventBinding, TXFAEventAction og Interactive XFA Runtime