Nativ Data DOM XML

Enhet: HPDFXFARuntime

Metoder

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

Dessa skriptmetoder finns på noderna datasets, dataGroup och dataValue i TXFAWidgetRuntime-händelser

saveXML returnerar UTF-8 XML med en deklaration och den valda noden som dokumentelement; det valfria argumentet pretty lägger till indrag för innehåll som enbart består av element

loadXML accepterar ett välformat XML-dokument; ignoreRoot importerar dess barn till den valda noden, medan False importerar källans dokumentelement som barn

overwrite tar bort befintligt målinnehåll före importen; standardvärdet False lägger till innehåll och bevarar befintliga barnidentiteter

Den valda noden behåller sin identitet och sina attribut; importerade barnattribut och deras namespace-mappningar bevaras

Omedelbar graf och bindningar

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 lyckad nativ parsning installerar de importerade barnen omedelbart i det aktuella skriptgraf; vanliga egenskaper och SOM-väljare löser de nya noderna före händelsepublicering

Dataceller synkroniseras med bundna fältalias i båda riktningarna, inklusive dolda fält, nyligen levererade bindningsmål och befintliga dataRef-väljare för ättlingar, jokertecken, klass och numeriskt index

Import av skalär till grupp uppdaterar målets dataklass och exponerar dess importerade barnelement; en tömd dataValue har ett tomt strängvärde

Att importera ett nytt dataelement allokerar inte orelaterade tvetydiga datalöv för olösta bindningar

Identitet och upprepade scopar

Overwrite ogiltigförklarar gamla barnhandtag och publicerar nya barnidentiteter; ett skriptobjekt kan behålla ett nytt importerat datahandtag och använda det i efterföljande händelser

Tillägg bevarar befintliga handtag; import inuti en upprepad rad ändrar den radens nativa datascope och bundna fält

XML-importer fungerar även inuti en förekomst som skapats med addInstance under samma händelse

Ersättning av innehållet i datasets uppdaterar $data och $record till de nya nativa rötterna och ombasar överlevande formulär- och skriptobjektidentiteter så att det lexikala modultillståndet förblir kopplat till sitt formulärscope

Innehåll och persistens

Nativa importer och sparad XDP bevarar vanlig text, CDATA, kommentarer och processinstruktioner i ordning

Kommentarer och processinstruktioner förblir utanför vanligt elementval i Data DOM och blir inte synlig fälttext

Importerade noder bevarar sin namespace-URI även under en annan förfaders standard-namespace, inklusive det explicita tomma standard-namespacet för element utan namespace

Främmande attribut med prefix behåller expanderade namn, och Unicode-lokala namn, accentuerad text och kompletterande tecken överlever nativ sparning och omläsning

Skrivskyddad saveXML materialiserar inte formuläregenskaper och ändrar inte sparade XDP-bytes

Validering och rollback

Den nativa XML-parsaren kontrollerar välformatering, giltighet för namespace och attribut, XML-tecken, deklarationsplacering och entitetssyntax före grafmutation

Felaktig inmatning kan fångas i JavaScript; den tidigare nativa grafen och skriptgrafen förblir tillgänglig och en senare giltig mutation kan fortfarande committas

En misslyckad händelse återställer dokumentbytes, widgetvärden, importerad graf, identiteter och skriptobjektens lexikala tillstånd, även fel som inträffar efter att den nativa XML-importen redan tillämpats

Varje nativ JavaScript-session behåller sitt faktiska DLL-modul medan motorer byggs om för svars-replay; motorer, kontexter och journaler förblir oberoende, och modulreferensen frigörs efter den slutliga nativa motornedrivningen

XML-parsning och serialisering tillämpar budgetar för operationer, djup, noder, bytes och förfluten tid tillsammans med runtimens ursprungliga händelsefrist och gränser för värdekaraktärer

Importer löser inte externa entiteter och utför inga fil-, nätverks- eller UI-åtgärder; DTD-deklarationer avvisas av denna parser

Aktuell omfattning

Denna integrering av händelseruntimen riktar sig för närvarande mot Windows Win32 och Win64; portabel Linux-integrering av runtimen återstår

Integreringen tillhandahåller nativ XML-import och serialisering samt aktuell bindningsomvärdering; fristående createNode, godtycklig mutation av dataattribut, omflyttning, navigering i postfönster, bindningspredikat och policy för globala bindningar är separata objektmodellsmål

Relaterade API:er

Nativ Data DOM, Native Bind SOM, TXFAEventBinding, TXFAEventAction och Interaktiv XFA-runtime