XFA Live Child Collections

JavaScript- en FormCalc-events kunnen de huidige kindnodes van een formulier-node of property-node inspecteren via diens read-only nodes-property

const field = xfa.resolveNode("row[1].amount");
const children = field.font.nodes;
const snapshot = children.clone();
field.font.fill.color.value = "192,48,96";
const fill = children.item(0);

Huidige kinderen lezen

LidGedrag
lengthHuidig aantal kindnodes
item(index)Huidig kind op die zero-based index, of null voor een negatieve, niet-integer of out-of-range index
namedItem(name)Eerste huidig kind met die letterlijke naam, of null wanneer geen kind matcht
nodes[index]Dezelfde huidige node als item(index)
for...ofLeest kindnodes in diens huidige volgorde
clone()Creëert een onafhankelijke query-lijst die naar de huidige kinderen verwijst

De collectie resolvt diens eigenaar bij elke read via de huidige event-graaf, inclusief een collectie vastgehouden door een script-object over events heen

Bestaande collecties weerspiegelen herhaalde-instance-toevoegingen en -verwijderingen en impliciete property-creatie; aparte herhaalde instances houden aparte property-kinderen en -waarden vast

Een vastgehouden collectie waarvan de eigenaar is verwijderd, raiset een fout in plaats van een overlevende of vervangende instance te targeten

FormCalc-toegang

FormCalc herkent nodes als een kind-collectie-property op formulier-, property- en Data DOM-nodes

if (xfa.record.nodes.length >= 2) then
  xfa.record.nodes.item(1).nodes.namedItem("amount").rawValue = "Updated"
endif

Directe length-, item(index)-, namedItem(name)- en clone()-member-ketens gebruiken dezelfde huidige native nodes en collectielimieten als JavaScript

Formulier-, property- en Data DOM-kind-collecties ondersteunen directe nodes[index]-reads in zowel JavaScript als FormCalc

Collectie-indices zijn zero-based; for...of blijft JavaScript-syntax

Writes via een FormCalc-collectie-referentie werken de echt gebonden datawaarde bij en behouden herhaalde-instance-isolatie; gecommitte waarden overleven XDP-opslag, runtime-herladen en native PDF-appearance-generatie

Data DOM-numerieke indices

const rows = xfa.record.nodes;
rows[1].nodes[0].rawValue = "Updated";

Canonicke niet-negatieve integer-keys zoals "0" en "1" resolven het huidige Data DOM-kind en geven null terug buiten de collectie; niet-canonicke keys zoals "01", "-0" en "1.0" aliasen geen numerieke entries

JavaScript index in nodes checkt het huidige kindaantal, en directe toewijzing, verwijdering of herdefinitie van een canonicke numerieke entry raiset TypeError

Dezelfde numerieke-entry-beperkingen gelden binnen een script-object-functie die de collectie in lexicale status vasthoudt, evenals wanneer een ander event een collectie leest die door die functie wordt teruggegeven

Gebruik de bestaande Data DOM-structurele methodes om kinderen te herordenen of te verwijderen; een collectie vastgehouden door een script-object leest de huidige event-graaf na elke gecommitte bewerking en na rollback

Onafhankelijke klonen

Een gekloonde kindlijst gebruikt de onafhankelijke opslag die XFA Query Node Collections beschrijft; diens append-, insert- en remove-methodes wijzigen die onafhankelijke opslag

Een node waarnaar door een van beide lijsten wordt verwezen, wegschrijven wijzigt de echte native node, en gecommitte waarden en property-overrides persisteren door opgeslagen XDP en native PDF-appearance-generatie heen

Data DOM-kind-collecties leveren ook clone() met onafhankelijke entry-opslag; diens bestaande structurele append-, insert- en remove-methodes blijven de native databoom muteren

Transacties en limieten

Live collectie-objecten en onafhankelijke klonen delen de event collectie-allocatie-limieten, operation-checks en transactie-deadline

Een niet-gevangen eventfout of budgetfalen herstelt native waarden, herhaalde instances, vastgehouden scriptstatus, onafhankelijke lijstopslag en journal-status samen

Formulier- en property-live-collecties zijn read-only; directe toewijzing, verwijdering, property-herdefinitie, prototype-wijzigingen en het verhinderen van extensies raisen een fout

Data DOM-collecties verwerpen writes, verwijdering en herdefinitie van canonicke numerieke entries terwijl diens bestaande benoemde structurele methodes en gewone niet-numerieke property-gedrag behouden blijven

Dekking

Deze interface legt huidige formulier- en property-kind-collecties en onafhankelijke kindlijst-klonen bloot

Algemene template-/formulier-node-creatie, recursief node-klonen, kind-boom-insertie en -verwijdering en extra node-klassa-bindingen blijven apart werk

Transactional XFA Data DOM Structure · XFA widget runtime