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