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