Native Data DOM XML
Unit: HPDFXFARuntime
Methodes
dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");
Deze script-methodes zijn beschikbaar op datasets-, dataGroup- en dataValue-nodes in TXFAWidgetRuntime-events
saveXML geeft UTF-8 XML terug met een declaratie en de gekozen node als documentelement; het optionele pretty-argument voegt inspringing toe aan element-only-content
loadXML accepteert één welgevormd XML-document; ignoreRoot importeert diens kinderen in de gekozen node, terwijl False het brondocument-element als kind importeert
overwrite verwijdert bestaande target-content vóór import; diens default False plakt content aan en behoudt bestaande kind-identiteiten
De gekozen node behoudt diens identiteit en attributes; geïmporteerde kind-attributes en diens namespace-mappings worden behouden
Directe graaf en bindings
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");
Een geslaagde native parse installeert de geïmporteerde kinderen direct in de huidige script-graaf; gewone properties en SOM-selectors resolven die verse nodes vóór event-publicatie
Datacellen synchroniseren in beide richtingen met gebonden veld-aliassen, inclusief verborgen velden, nieuw aangeleverde binding-targets en bestaande descendant-, wildcard-, klasse- en numeriek-index-dataRef-selectors
Scalar-naar-groep-imports werken de data-klasse van de target bij en leggen diens geïmporteerde kind-elementen bloot; een geledigde dataValue heeft een lege stringwaarde
Een nieuw data-element importeren alloceert geen ongerelateerde ambigue data-bladeren voor onopgeloste bindingen
Identiteit en herhaalde scopes
Overwrite invalideert oude kind-handles en publiceert verse kind-identiteiten; een script-object kan een vers geïmporteerd data-handle vasthouden en in daaropvolgende events gebruiken
Append behoudt bestaande handles; importeren binnen een herhaalde rij wijzigt de native data-scope en gebonden velden van die rij
XML-imports werken ook binnen een occurrence die door addInstance tijdens hetzelfde event werd aangemaakt
De datasets-content vervangen werkt $data en $record bij naar de nieuwe native wortels en rebaset overlevende formulier- en script-object-identiteiten zodat lexicale module-status aan diens formulier-scope blijft verbonden
Content en persistentie
Native imports en opgeslagen XDP behouden gewone tekst, CDATA, comments en processing instructions in volgorde
Comments en processing instructions blijven buiten gewone Data DOM-elementselectie en worden geen zichtbare veldtekst
Geïmporteerde nodes behouden diens namespace-URI zelfs onder een andere default-namespace van een voorouder, inclusief de expliciete lege default namespace voor elementen zonder namespace
Foreign geprefixeerde attributes behouden uitgeklapte namen, en Unicode lokale namen, tekst met accenten en supplementary characters overleven native save en reload
Read-only saveXML materialiseert geen formulier-properties en wijzigt opgeslagen XDP-bytes niet
Validatie en rollback
De native XML-parser checkt welgevormdheid, namespace- en attribute-geldigheid, XML-tekens, declaratieplaatsing en entity-syntax vóór graafmutatie
Misvormde invoer kan in JavaScript worden gevangen; de vorige native en script-graaf blijft beschikbaar, en een latere geldige mutatie kan nog steeds committen
Een gefaald event herstelt documentbytes, widgetwaarden, geïmporteerde graaf, identiteiten en script-object-lexicale status, inclusief fouten nadat de native XML-import al was toegepast
Elke native JavaScript-session houdt diens echte DLL-module vast terwijl engines worden herbouwd voor response-replay; engines, contexten en journals blijven onafhankelijk, en de module-referentie wordt vrijgegeven na de finale native engine-teardown
XML-parsing en -serialisatie handhaven operation-, diepte-, node-, byte- en elapsed-time-budgetten samen met de originele event-deadline en waarde-teken-limieten van de runtime
Imports resolven geen externe entities en voeren geen bestands-, netwerk- of UI-acties uit; DTD-declaraties worden door deze parser geweigerd
Huidig bereik
Deze event-runtime-integratie mikt momenteel op Windows Win32 en Win64; portable Linux runtime-integratie blijft pending
Deze integratie levert native XML-import en -serialisatie plus huidige binding-her-evaluatie; standalone createNode, willekeurige data-attribute-mutatie, her-oudering, record-venster-navigatie, binding-predicates en global-binding-beleid blijven aparte objectmodel-doelen
Related APIs
Native Data DOM, Native Bind SOM, TXFAEventBinding, TXFAEventAction en Interactive XFA Runtime