Native Data DOM XML

Unit: HPDFXFARuntime

Methods

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

Te metody skryptowe są dostępne na węzłach datasets, dataGroup i dataValue w zdarzeniach TXFAWidgetRuntime

saveXML zwraca XML UTF-8 z deklaracją i wybranym węzłem jako elementem dokumentu; opcjonalny argument pretty dodaje wcięcia do zawartości wyłącznie elementowej

loadXML akceptuje jeden poprawnie sformułowany dokument XML; ignoreRoot importuje jego dzieci do wybranego węzła, a False importuje element dokumentu źródła jako dziecko

overwrite usuwa istniejącą zawartość celu przed importem; jego default False dokleja zawartość i zachowuje istniejące tożsamości potomków

Wybrany węzeł zachowuje swoją tożsamość i atrybuty; atrybuty importowanych potomków i ich mapowania przestrzeni nazw są zachowywane

Immediate graph and 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");

Udany natywny parse natychmiast instaluje zaimportowanych potomków w bieżącym grafie skryptowym; zwykłe właściwości i selektory SOM rozpoznają te świeże węzły przed publikacją zdarzenia

Komórki danych synchronizują się z związanymi aliasami pól w obu kierunkach, łącznie z ukrytymi polami, nowo dostarczonymi celami powiązań i istniejącymi selektorami dataRef potomków, dzikich kart, klas i indeksów numerycznych

Import skalarne-do-grupy aktualizuje klasę danych celu i odsłania jego zaimportowanych potomków-elementy; opróżnione dataValue ma pustą wartość ciągu

Import nowego elementu danych nie alokuje niepowiązanych dwuznacznych liści danych dla nierozpoznanych powiązań

Identity and repeated scopes

Overwrite unieważnia stare handle potomków i publikuje świeże tożsamości potomków; obiekt skryptowy może zachować świeży zaimportowany handle danych i użyć go w kolejnych zdarzeniach

Doklejanie zachowuje istniejące handle; importowanie wewnątrz powtarzalnego rzędu zmienia natywny scope danych tego rzędu i związane pola

Importy XML działają też wewnątrz wystąpienia utworzonego przez addInstance w tym samym zdarzeniu

Zastąpienie zawartości datasets aktualizuje $data i $record do nowych natywnych korzeni i przepina przeżywające tożsamości formularzy i obiektów skryptowych, więc leksykalny stan modułu pozostaje przypięty do swojego scope formularza

Content and persistence

Natywne importy i zapisany XDP zachowują zwykły tekst, CDATA, komentarze i instrukcje przetwarzania w kolejności

Komentarze i instrukcje przetwarzania pozostają poza zwykłym wyborem elementów Data DOM i nie stają się widocznym tekstem pól

Importowane węzły zachowują swój URI przestrzeni nazw nawet pod innym domyślnym przodkiem przestrzeni nazw, łącznie z jawnie pustą domyślną przestrzenią nazw dla elementów bez przestrzeni nazw

Obce atrybuty z prefiksem zachowują rozszerzone nazwy, a lokalne nazwy Unicode, tekst akcentowany i znaki uzupełniające przetrwają natywny zapis i przeładowanie

Read-only saveXML nie materializuje właściwości formularza i nie zmienia zapisanych bajtów XDP

Validation and rollback

Natywny parser XML sprawdza poprawność formy, poprawność przestrzeni nazw i atrybutów, znaki XML, umiejscowienie deklaracji i składnię encji przed mutacją grafu

Wadliwe wejście można przechwycić w JavaScript; poprzedni graf natywny i skryptowy pozostaje dostępny, a późniejsza poprawna mutacja nadal może się zacommitować

Nieudane zdarzenie przywraca bajty dokumentu, wartości widgetów, zaimportowany graf, tożsamości i leksykalny stan obiektów skryptowych, łącznie z awariami po już zastosowanym natywnym imporcie XML

Każda natywna sesja JavaScript zachowuje swój rzeczywisty moduł DLL podczas przebudowywania silników dla replay odpowiedzi; silniki, konteksty i dzienniki pozostają niezależne, a referencja modułu jest zwalniana po finalnym demontażu ostatniego natywnego silnika

Parsowanie i serializacja XML wymuszają budżety operacji, głębokości, węzłów, bajtów i upływu czasu razem z oryginalnym deadline'em zdarzeń runtime i limitami znaków wartości

Importy nie rozpoznają zewnętrznych encji i nie wykonują akcji plikowych, sieciowych ani UI; deklaracje DTD są odrzucane przez ten parser

Current scope

Ta integracja runtime zdarzeń obecnie celuje w Windows Win32 i Win64; przenośna integracja runtime Linuksa pozostaje w toku

Ta integracja dostarcza natywny import i serializację XML plus bieżącą ponowną ewaluację powiązań; samodzielne createNode, mutacja dowolnych atrybutów danych, przepinanie rodziców, nawigacja okien rekordów, predykaty powiązań i polityka powiązań globalnych pozostają odrębnymi celami modelu obiektów

Related APIs

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