TXFAFormStructure

HPDFXFAFormStructure tillhandahåller nativ förberedelse och identitetsmappning för template-baserade formulärinstanser

Klassen lånar sitt TXFADocument, äger sin strukturella graf och sina fristående kandidater och frigör aldrig det lånade dokumentet

constructor Create(Document: TXFADocument;
  const Limits: TXFADataStructureLimits;
  const OnTick: TXFADataStructureTick);
procedure BeginOperation(const OnTick: TXFADataStructureTick);
procedure EndOperation;
function PrepareUnboundModel: TXFANode;
function EnsureInstance(Definition, DataNode: TXFANode): TXFANode;
function PrepareMaterialization(Definition, Instance: TXFANode;
  out Aliases: TXFAFormStructureAliases): TXFANode;
function ReplaceInstance(Instance, Prepared: TXFANode): TXFANode;
procedure DiscardPrepared(Node: TXFANode);
property Graph: TXFADataStructure;

Operationsomfång

Anropa BeginOperation före strukturellt arbete och EndOperation i ett finally-block

Den tillhandahållna callbacken anropas genomgående under avgränsad genomgång, kopiering och grafförkontroll, och kan kasta ett undantag för att avbryta operationen

Graph.DetachedRoots exponerar grafens ägarsamling för observation och samordnad snapshot-återställning, och anropare får inte frigöra noder som fortfarande ägs av den samlingen på egen hand

Förberedelse och adoption

PrepareMaterialization komponerar en fristående formulärkandidat från en templatedefinition och en valfri befintlig instans och returnerar källa-till-kandidat-par i TXFAFormStructureAliases

TXFAFormStructureAlias.Source och Target är lånade nodreferenser för att mappa om externa identiteter innan föregående instans frigörs

ReplaceInstance adopterar den förberedda kandidaten och returnerar föregående instans som en grafägd fristående nod

Omdirigera beroende referenser innan DiscardPrepared anropas på den returnerade föregående instansen

DiscardPrepared frigör en fristående kandidat som ägs av samma graf och tar inte bort en bifogad live-instans

Initiala och glesa instanser

PrepareUnboundModel returnerar en fristående formulärmodell för en tom sammanslagning, bevarar skrivet template-innehåll och expanderar stödda subform-occurrences till oberoende nativa noder

EnsureInstance returnerar en befintlig live-formulärnod eller konstruerar den krävda glesa instansvägen för en templatedefinition och dess live-datakontext

EnsureInstance kan mutera flera live-noder, så rollback av sammansatta operationer hör till anroparens omgivande dokumenttransaktion

TXFAWidgetRuntime tillhandahåller den transaktionen för publika skripthändelser, inklusive nativ dokument- och fristående identitetsåterställning

Hjälpfunktioner

FunktionSyfte
HPDFXFAEmptyMergeCountValiderar en occurrence-deklaration och returnerar dess antal för tom sammanslagning, med uttrycklig initial eller minimivärdet
HPDFXFAIsMaterializedFormNodeKontrollerar den namespace-kvalificerade materialiseringsmarkören inom en uttrycklig genomgångsbudget
HPDFXFAResolveMaterializedDefinitionLöser den effektiva formulärnoden för en definition och datakontext och redogör för om den materialiserade modellen är auktoritativ
HPDFXFAResolveActualFormScopeLöser live-dataomfånget för en faktisk upprepad formulärinstans utan att upprepa dess template-deklaration igen

Den sparade markören använder urn:hotpdf:xfa:form-structure:1 med ett kollisionssäkert prefix, medan nativa formulärnoder använder XFA-formulärnamnrymden

Fristående nativa anropare måste behålla dokumentet under klassens livstid och tillhandahålla rollback kring sammansatta grafoperationer när en annullering eller annat fel ska återställa tidigare lyckade steg