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