TXFAFormStructure

HPDFXFAFormStructure levert native voorbereiding en identity-mapping voor template-gebaseerde formulier-instances

De klasse leent diens TXFADocument, is eigenaar van diens structurele graaf en gedetachte candidates, en geeft het geleende document nooit vrij

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;

Operation-scope

Raad BeginOperation aan vóór structureel werk en EndOperation in een finally-blok

De meegeleverde callback wordt aangeroepen gedurende begrensde traversal, kopiëren en graaf-preflight, en mag een exception raisen om de operatie te annuleren

Graph.DetachedRoots legt de owning-collectie van de graaf bloot voor observatie en gecoördineerd snapshot-herstel, en aanroepers mogen nodes die nog door die collectie worden vastgehouden niet zelfstandig vrijgeven

Preparatie en adoptie

PrepareMaterialization stelt een gedetachte formulier-candidate samen vanuit een template-definitie en een optionele bestaande instance, en geeft bron-naar-candidate-paren terug in TXFAFormStructureAliases

TXFAFormStructureAlias.Source en Target zijn geleende node-referenties voor het remappen van externe identiteiten vóór het vrijgeven van de vorige instance

ReplaceInstance adopteert de voorbereide candidate en geeft de vorige instance terug als een gedetachte graaf-owned node

Herricht afhankelijke referenties vóór het aanroepen van DiscardPrepared op de teruggegeven vorige instance

DiscardPrepared geeft een gedetachte candidate vrij die door dezelfde graaf wordt vastgehouden en verwijdert geen gekoppelde live instance

Initiële en sparse instances

PrepareUnboundModel geeft een gedetacht formulier-model terug voor een lege merge, met behoud van authored template-content en uitklapping van ondersteunde subform-occurrences naar onafhankelijke native nodes

EnsureInstance geeft een bestaande live formulier-node terug of construeert het vereiste sparse-instance-pad voor een template-definitie en diens live data-context

EnsureInstance kan meerdere live nodes muteren, dus rollback van samengestelde operaties hoort bij de omvattende documenttransactie van de aanroeper

TXFAWidgetRuntime levert die transactie voor publieke script-events, inclusief native document- en gedetachte identity-herstel

Helper-functies

FunctieDoel
HPDFXFAEmptyMergeCountValideert een occur-declaratie en geeft diens empty-merge-aantal terug, met expliciete initial of het minimum
HPDFXFAIsMaterializedFormNodeCheckt de namespace-gekwalificeerde materialisatie-marker onder een expliciet traversal-budget
HPDFXFAResolveMaterializedDefinitionLost het effectieve formulier-node op voor een definitie en data-context, en rapporteert of het gematerialiseerde model autoritatief is
HPDFXFAResolveActualFormScopeLost de live data-scope van een echte herhaalde formulier-instance op zonder de template-declaratie opnieuw te herhalen

De opgeslagen marker gebruikt urn:hotpdf:xfa:form-structure:1 met een collision-veilig prefix, terwijl native formulier-nodes de XFA-form-namespace gebruiken

Standalone native aanroepers moeten het document vasthouden voor de klassa-levensduur en rollback bieden rond samengestelde graafoperaties wanneer annulering of een andere fout eerdere geslaagde stappen moet herstellen