Native XFA Property DOM
Obecné provedení s EnableJavaScript zahrnuje property potomky form kontejnerů do živého stromu událostí, tedy uzly value, typované hodnoty, font, fill, color, ui, border i edge
Pojmenované kontejnery použijí ve SOM cestách svůj název; property uzly použijí název své třídy a zachovají svůj skutečný atribut name, který bývá prázdný
Typované hodnoty a atributy
const field = xfa.resolveNode("main.row[1].cell");
field.value.text.value = "25";
field.font.size = "18pt";
field.font.fill.color.value = "0,128,255";
field.ui.textEdit.multiLine = "1";
field.resolveNode("border.edge[1]").thickness = "3pt";
field.font.setAttribute("saved", "custom");
const saved = field.font.getAttribute("custom");
row[1].cell.value.text.value = 25
row[1].cell.font.size = "18pt"
Typovaný potomek pod value uzlem pole sdílí živé rawValue pole; čtení a zápisy přes value.text.value, field.rawValue i navázaný dataNode se navzájem okamžitě sledují
U property uzlů s atributem value, jako color, vlastnost value čte a zapisuje ten atribut; u uzlů skalárního obsahu čte a zapisuje textový obsah
Atributy přítomné v efektivním property bindingu se vystavují jako přímé vlastnosti, vyjma rezervovaných členů uzlů i engine; getAttribute(name) přečte libovolný atribut a setAttribute(value, name) ho zapíše a hned vystaví bezpečný nový název
FormCalc rozřeší property cesty a přiřazuje skalární atributy přes tentýž strom události; property sourozenci podporují indexy výskytů i selektory tříd
Nativní perzistence a rendering
Úspěšné zápisy vytvoří či aktualizují property uzly pod odpovídajícím kontejnerovým výskytem v nativním form packetu; šablona i ostatní opakované výskyty si uchovají své defaulty
Vyhledávání vlastností řídí třída a lokální výskyt pod pojmenovaným kontejnerem, místo aby přeskakovalo nepojmenované uzly; změna atributu name vlastnosti zachová její identitu a uložený reload XDP obnoví efektivní override
Držené property handly sledují identity svých publikovaných vlastníků přes vložení i přesun instance; zápis handla poté, co se jeho instance odstraní, přeruší a obnoví transakci
Typeface i velikost písma se účastní per-instance měření rostoucího textu i reflow; flatten čte efektivní atributy fontu, barvy, ohraničení, odstavce i podporovaného UI pro každý výskyt pole
Rich text draw konzumují efektivní override fontu, odstavce, inline CSS i skalárního obsahu pro každý výskyt, tedy i jejich měření i umísťování runů
Tvorba instance zachová všechny defaulty property sourozenců, tedy i vícenásobné uzly edge, a použije šablonové hodnoty atributů, nikoli override jiného výskytu
UI override vytvoří podporované volby widgetů a po úspěšné události změní skutečný per-instance runtime druh i nativní příznaky pole
Rozpočty a nížeúrovňové bindingy
Property traversal sdílí rozpočty uzlů, hloubky, operací i bajtů události; nativní zápisy textu i atributů respektují MaxValueChars a neúspěšné zápisy obnoví nativní hodnoty polí, property override, skriptový stav i pořadí instancí
Přímí volající použijí xebdProperty a dodají Attributes a DefaultAttributes; ty druhé inicializují nově klonované uzly
Akce atributu vlastnosti obsahuje v TXFAEventAction.Value název atributu, oddělovač NUL a hodnotu; TXFAWidgetRuntime ji validuje a aplikuje na nativní property cíl
Pokrytí
Strom událostí zahrnuje deklarované property uzly a jejich efektivní atributy, s schema defaulty pro podporované formátovací i widget třídy; tvorba chybějících vlastností teď materializuje podporované formátovací cesty v nativním form packetu
Deklarace event, calculate a validate zůstávají prováděcími metadaty; variables skripty zůstávají skriptovými objekty a obecná editace vlastností neaktivuje metadatové skripty
Dodatečné property třídy schema, obecné odebírání a přesouvání, mutace namespace kvalifikovaných atributů, další konzumenté layout vlastností i další funkce editace rich textu či widgetů pokračují jako samostatné cíle
Související API
Živé SOM rozřešení, Native Data DOM, HPDFXFAResolveFormInstanceProperty a Interactive XFA Runtime