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