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
| Funktion | Zweck |
|---|---|
HPDFXFAEmptyMergeCount | Validiert eine Vorkommensdeklaration und liefert ihre Empty-Merge-Anzahl, mit explizitem Initial oder dem Minimum |
HPDFXFAIsMaterializedFormNode | Prüft das namespace-qualifizierte Materialisierungs-Marker unter einem expliziten Traversierungs-Budget |
HPDFXFAResolveMaterializedDefinition | Löst den effektiven Form-Knoten für eine Definition und einen Datenkontext auf und meldet, ob das materialisierte Modell autoritativ ist |
HPDFXFAResolveActualFormScope | Lö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