TXFAFormStructure

HPDFXFAFormStructure liefert native Vorbereitung und Identitätsmapping für template-basierte Form-Instanzen

Die Klasse leiht ihr TXFADocument, besitzt ihren strukturellen Graphen und ihre abgetrennten Kandidaten und gibt das geliehene Dokument niemals frei

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;

Operations-Scope

BeginOperation vor strukturellen Arbeiten und EndOperation in einem finally-Block aufrufen

Der gelieferte Callback wird während der begrenzten Traversierung, des Kopierens und des Graph-Preflights durchgehend aufgerufen und darf eine Exception werfen, um die Operation abzubrechen

Graph.DetachedRoots exponiert die besitzende Collection des Graphen zur Beobachtung und koordinierten Snapshot-Wiederherstellung, und Aufrufer dürfen Knoten, die noch von dieser Collection besessen werden, nicht eigenständig freigeben

Vorbereitung und Übernahme

PrepareMaterialization komponiert einen abgetrennten Form-Kandidaten aus einer Template-Definition und einer optionalen bestehenden Instanz und liefert Quelle-zu-Kandidat-Paare in TXFAFormStructureAliases

TXFAFormStructureAlias.Source und Target sind geliehene Knotenreferenzen für das Remapping externer Identitäten, bevor die vorherige Instanz freigegeben wird

ReplaceInstance übernimmt den vorbereiteten Kandidaten und liefert die vorherige Instanz als abgetrennten, graph-besessenen Knoten

Abhängige Referenzen umzielen, bevor DiscardPrepared auf der zurückgegebenen vorherigen Instanz aufgerufen wird

DiscardPrepared gibt einen abgetrennten Kandidaten frei, der derselbe Graph besitzt, und entfernt keine angehängte live Instanz

Initiale und spärliche Instanzen

PrepareUnboundModel liefert ein abgetrenntes Form-Modell für einen leeren Merge, bewahrt authored Template-Inhalte und expandiert unterstützte Subform-Vorkommen in unabhängige native Knoten

EnsureInstance liefert einen bestehenden live Form-Knoten oder konstruiert den erforderlichen spärlichen Instanzpfad für eine Template-Definition und ihren live Datenkontext

EnsureInstance kann mehrere live Knoten mutieren, daher gehört das Rollback von Compound-Operationen zur umgebenden Dokumenttransaktion des Aufrufers

TXFAWidgetRuntime stellt diese Transaktion für öffentliche Script-Events bereit, einschließlich nativer Dokument- und abgetrennter Identitäts-Wiederherstellung

Hilfsfunktionen

FunktionZweck
HPDFXFAEmptyMergeCountValidiert eine Vorkommensdeklaration und liefert ihre Empty-Merge-Anzahl, mit explizitem Initial oder dem Minimum
HPDFXFAIsMaterializedFormNodePrüft das namespace-qualifizierte Materialisierungs-Marker unter einem expliziten Traversierungs-Budget
HPDFXFAResolveMaterializedDefinitionLöst den effektiven Form-Knoten für eine Definition und einen Datenkontext auf und meldet, ob das materialisierte Modell autoritativ ist
HPDFXFAResolveActualFormScopeLöst den live Datenscope einer tatsächlichen wiederholten Form-Instanz auf, ohne ihre Template-Deklaration erneut zu wiederholen

Der gespeicherte Marker nutzt urn:hotpdf:xfa:form-structure:1 mit einem kollisionssicheren Präfix, während native Form-Knoten den XFA-Form-Namespace verwenden

Eigenständige native Aufrufer müssen das Dokument für die Klass Lebensdauer zurückhalten und Rollback um Compound-Graph-Operationen legen, wenn Abbruch oder ein anderer Fehler frühere erfolgreiche Schritte wiederherstellen muss