Transactional XFA Data DOM Structure

Zdarzenia JavaScript mogą tworzyć, klonować, zmieniać nazwy, dołączać, przestawiać i odłączać natywne elementy Data DOM, z natychmiastowymi odczytami skryptowymi i natywną trwałością całej transakcji

const record = xfa.record;
const value = xfa.datasets.createNode("dataValue");
value.name = "amount";
value.value = "42";
record.nodes.append(value);
const retained = value.clone(false);
record.nodes.remove(value);
record.nodes.insert(value, record.nodes.item(0));

Supported operations

xfa.datasets.createNode(className, name = "", namespace = "") tworzy niedołączony dataGroup albo dataValue; nazwy kwalifikowane wymagają niepustego URI przestrzeni nazw

node.clone(recursive = true) tworzy niedołączoną kopię Data DOM ze świeżymi tożsamościami; false wyklucza węzły potomne, zachowując własne metadane i wartość elementu

node.name jest zapisywalne dla elementów Data DOM i zachowuje przestrzeń nazw, kolejność rodzeństwa, potomków i zachowane aliasy; konstrukcja bez nazwy musi dostać poprawną nazwę lokalną przed dołączeniem

node.nodes.length, item(index) i namedItem(name) czytają żywe uporządkowane dzieci-elementy; item i namedItem zwracają null, gdy żadne dziecko nie pasuje

nodes.append(node) i nodes.insert(node, before) przenoszą ten sam obiekt do dzieci właściciela; insert(node, null) dokleja

nodes.remove(node) odłącza bezpośredniego potomka, zachowując jego obiekt i poddrzewo dostępne dla zachowanych aliasów i późniejszego ponownego dołączenia

xfa.record zwraca bieżący pierwszy rekord pod korzeniem danych Data DOM i aktualizuje się po strukturalnych edycjach

Identity, XML, and bindings

Obiekt skryptowy może zachować węzeł, potomka albo posiadającą kolekcję potomków między zdarzeniami; żywe aliasy rozpoznają te same natywne obiekty po dołączeniu, odłączeniu, zmianie nazwy i rollbacku

loadXML i saveXML działają na nowo utworzonych i przeniesionych elementach, łącznie z potomkami zaimportowanymi i potem przeniesionymi w tym samym zdarzeniu

Stabilne natywne tożsamości uniemożliwiają zaimportowanym potomkom aliasów ciche rozpoznawanie innego dziecka po zmianach pozycji

Dziedziczone przestrzenie nazw atrybutów, jawne puste resety domyślnej przestrzeni nazw, komentarze, instrukcje przetwarzania, CDATA i wartości Unicode przetrwają klonowanie, przenoszenie, zapis i przeładowanie

Powiązania formularza odświeżają się po strukturalnych zmianach, a wartości zapisane przez nowo dołączone węzły danych docierają do odpowiadającego powtarzalnego wystąpienia formularza bez zmieniania innego wystąpienia

Transactions and limits

Niepoprawne klasy, nazwy XML, referencje rodzeństwa, cykle i obce węzły zawodzą przed tym, jak ta pojedyncza operacja zmieni żywy graf skryptowy

Nieprzechwycony błąd skryptu, natywna awaria zastosowania, anulowanie, limit operacji albo limit upływu czasu przywraca kompletne zdarzenie, łącznie z dołączonymi i odłączonymi węzłami, wartościami powiązań, zachowanymi aliasami, stanem leksykalnym obiektów skryptowych i stanem dziennika; ten sam runtime może potem ponowić

Węzły strukturalne i odłączone drzewa dzielą natywne limity węzłów, głębokości i bajtów UTF-8; oryginalny deadline transakcji skryptowej dotyczy JavaScript i natywnych zmian razem

PDF consumption

Zapisz runtime do XDP i przekaż te bajty do HPDFXFAWriteHeadlessPDF, aby utworzyć rzeczywiste natywne pola PDF i wyglądy ze zmienionych powiązań danych

TXFAHeadlessPDFOptions.Editable = False tworzy natywne pola read-only z wyglądami; to ustawienie ich nie spłaszcza

Current coverage

Ta strona opisuje edycje Data DOM; transakcyjne skryptowanie drzewa formularzy dostarcza obsługiwane żywe tworzenie formularzy, klonowanie, wstawianie, usuwanie i natywną konsumpcję PDF

Ogólna edycja szablonu, kompletne przetwarzanie choice subform-set i pełny schemat klas węzłów XFA pozostają odrębnymi zdolnościami

Niezależne kolekcje węzłów zapytań · Natywne API grafu strukturalnego · Runtime widgetów XFA