XFA Query Node Collections

JavaScript- en FormCalc-events kunnen in-scope node-occurrences inspecteren en onafhankelijke query-lijsten over runtime-events heen vasthouden

const siblings = xfa.record.amount.all;
const retained = siblings.clone();
retained.remove(retained.item(0));
retained.insert(siblings.item(0), null);
retained.item(0).rawValue = "42";

Occurrence-properties

node.all geeft een verse geordende query-lijst terug van in-scope nodes met dezelfde letterlijke naam; een naamloze node gebruikt diens klassa-naam

node.classAll geeft een verse geordende query-lijst terug van in-scope nodes met dezelfde klasse, inclusief nodes met andere namen

node.index en node.classIndex geven de zero-based occurrence binnen die respectievelijke scopes terug

Naamloze niet-property-containers zijn transparant voor benoemde scope-opzoek, inclusief positieve en negatieve relatieve SOM-occurrences; property-containers behouden diens eigen scope

Letterlijke namen zoals #field, * en Unicode-namen worden door deze properties als authored namen gematcht

Onafhankelijke lijstoperaties

LidGedrag
lengthHuidig aantal lijstentries
item(index)Gereferenced node, of null voor een negatieve, niet-integer of out-of-range index
namedItem(name)Eerste gereferenced node met die letterlijke naam, of null wanneer geen node matcht
clone()Nieuwe onafhankelijke entry-opslag die naar dezelfde nodes verwijst
append(node)Voegt dezelfde live node-referentie achteraan toe, inclusief een dubbele referentie
insert(node, before)Voegt een live node-referentie in vóór de eerste matchende referentie; null plakt aan
remove(node)Verwijdert de eerste matchende referentie; een afwezige referentie raiset een fout

Lijsten teruggegeven door resolveNodes, all en classAll gebruiken onafhankelijke entry-opslag; die opslag wijzigen laat de formulier- en databomen op hun plek, terwijl een gereferenced node wegschrijven de echte node wijzigt

Formulier- en property-node.nodes-collecties leggen live kind-weergaven bloot; diens clone()-methodes geven onafhankelijke query-lijsten terug, zoals beschreven in XFA Live Child Collections

Data DOM node.nodes levert ook een onafhankelijke clone(); diens bestaande append-, insert- en remove-methodes behouden diens native structurele gedrag, zoals beschreven in Transactional XFA Data DOM Structure

Array-iteratie, geïndexeerde reads en enumeratie leggen gereferenced nodes bloot; directe toewijzing, verwijdering, property-herdefinitie, prototype-wijzigingen en het verhinderen van extensies raisen fouten voordat de query-lijst wordt gewijzigd

Persistentie en stabiele identiteiten

Script-objecten kunnen een query-lijst of kloon over events heen vasthouden; elke operatie gebruikt de huidige event-resolver en transactielimieten

Opgevraagde instance-manager-handles routeren operaties naar de huidige event-graaf wanneer vastgehouden of gekloond over events heen

Een overlevende node hernoemen of herordenen behoudt diens vastgehouden lijst-identiteit; een herhaald formulier-instance verwijderen laat reads en writes via die verwijderde referentie falen in plaats van een vervangende instance te kiezen

Een onafhankelijke lijst kan diens opgeslagen referenties klonen en een eerder vastgehouden verwijderde-node-referentie verwijderen zonder die node te dereferencen

Query-lijstopslag is runtime-scriptstatus; het opslaan van XDP persisteert de native node-waarden en -structuur, terwijl een nieuwe runtime een nieuwe script-object-session start

Transacties en limieten

Ongeldige nodes en lidmaatschapsreferenties falen voordat die lijstoperatie opslag muteert; een gevangen fout laat eerdere geldige operaties in hetzelfde event beschikbaar

Een niet-gevangen eventfout, operation-budget of elapsed-time-falen herstelt query-lijst-mutaties, native waarden, herhaalde instances, vastgehouden script-object-status en journal-status samen, zodat dezelfde runtime kan retryen

TXFAFormScriptLimits.MaxArrayItems klemt elke vastgehouden lijstlengte af en klemt apart cumulatieve lijstobjecten en nieuw toegewezen entries tijdens één event af; diens nul-instelling gebruikt de event-context-default van 65.536

Lege klonen verbruiken het objectbudget, niet-lege klonen verbruiken ook het entry-budget, en vastgehouden lijsten blijven begrensd over aparte geslaagde events heen

FormCalc- en PDF-consumptie

output = Concat(Sum(xfa.datasets.data.main.amount.all), ":",
  xfa.datasets.data.main.amount.all.length, ":",
  xfa.datasets.data.main.amount[1].classIndex)

FormCalc-occurrence-selectie op letterlijke xfa.form-, xfa.datasets- en xfa.record-paden gebruikt native SOM-resolutie; lijst-indexering na een collectie-property indexeert die collectie

Sla runtime-bytes op naar XDP en geef die door aan HPDFXFAWriteHeadlessPDF om echte native velden en appearances te genereren vanuit de gecommitte waarden, inclusief bewerkingen via vastgehouden overlevende herhaalde-instance-referenties

TXFAHeadlessPDFOptions.Editable = False creëert read-only native velden met appearances, in plaats van ze te flattenen

Dekking

Deze interface levert onafhankelijke query-lijsten en occurrence-metadata; algemene template-/formulier-node-creatie en -klonen, extra node-klassa-scripting, schemavalidatie en externe media blijven apart werk

XFA widget runtime · Native Data DOM