TXFAFormStructure
HPDFXFAFormStructure fornece preparação nativa e mapeamento de identidades para instâncias de formulários apoiadas por templates
A classe toma o TXFADocument dela emprestado, é dona do grafo estrutural dela e dos candidatos destacados dela, e nunca liberta o documento emprestado
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;
Âmbito de operações
Chame BeginOperation antes do trabalho estrutural e EndOperation num bloco finally
O callback fornecido é chamado ao longo da travessia delimitada, da cópia e do preflight do grafo, e pode levantar uma exceção para cancelar a operação
Graph.DetachedRoots expõe a coleção proprietária do grafo para observação e restauração coordenada de snapshots, e quem chama não deve libertar de forma independente nós ainda pertencentes a essa coleção
Preparação e adoção
PrepareMaterialization compõe um candidato destacado de formulários a partir de uma definição de template e uma instância existente opcional, devolvendo pares de fonte-para-candidato em TXFAFormStructureAliases
TXFAFormStructureAlias.Source e Target são referências emprestadas de nós para remapear identidades externas antes de libertar a instância anterior
ReplaceInstance adota o candidato preparado e devolve a instância anterior como um nó destacado próprio do grafo
Redirecione referências dependentes antes de chamar DiscardPrepared sobre a instância anterior devolvida
DiscardPrepared liberta um candidato destacado pertencente ao mesmo grafo e não remove uma instância viva anexada
Instâncias iniciais e esparsas
PrepareUnboundModel devolve um modelo destacado de formulários para uma fusão vazia, preservando o conteúdo escrito do template e expandindo ocorrências suportadas de subforms em nós nativos independentes
EnsureInstance devolve um nó vivo existente de formulários ou constrói o caminho exigido de instâncias esparsas para uma definição de template e o contexto vivo de dados dela
EnsureInstance pode mutar vários nós vivos, pelo que o rollback de operações compostas pertence à transação de documentos envolvente de quem chama
TXFAWidgetRuntime fornece essa transação para eventos públicos de scripts, incluindo restauração nativa de documentos e de identidades destacadas
Funções auxiliares
| Função | Propósito |
|---|---|
HPDFXFAEmptyMergeCount | Valida uma declaração de ocorrências e devolve a contagem de fusões vazias dela, usando o inicial explícito ou o mínimo |
HPDFXFAIsMaterializedFormNode | Verifica o marcador de materialização namespace-qualificado sob um orçamento explícito de travessias |
HPDFXFAResolveMaterializedDefinition | Resolve o nó efetivo de formulários para uma definição e um contexto de dados, reportando se o modelo materializado é autoritativo |
HPDFXFAResolveActualFormScope | Resolve o âmbito vivo de dados de uma instância real repetida de formulários sem repetir outra vez a declaração de template dela |
O marcador guardado usa urn:hotpdf:xfa:form-structure:1 com um prefixo seguro contra colisões, enquanto nós nativos de formulários usam o namespace de formulários XFA
Quem chama nativamente autónomo tem de reter o documento durante o tempo de vida da classe e fornecer rollback em torno de operações compostas de grafos quando cancelamento ou outra falha tiver de restaurar passos anteriores bem-sucedidos