TXFAFormStructure
HPDFXFAFormStructure는 템플릿 기반 폼 인스턴스에 대한 네이티브 준비와 identity 매핑을 제공합니다
이 클래스는 TXFADocument를 빌리고, 자기 구조 그래프와 분리된 후보를 소유하며, 빌린 문서를 절대 해제하지 않습니다
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;
연산 범위
구조 작업 전에 BeginOperation을, finally 블록에서 EndOperation을 호출하세요
공급된 콜백은 유계 순회, 복사, 그래프 사전 점검 전반에서 호출되며, 연산을 취소하려고 예외를 일으킬 수 있습니다
Graph.DetachedRoots는 관찰과 조율된 스냅샷 복원을 위해 그래프의 소유 컬렉션을 노출하며, 호출자는 그 컬렉션이 여전히 소유하는 노드를 독자적으로 해제해서는 안 됩니다
준비와 채택
PrepareMaterialization은 템플릿 정의와 선택적 기존 인스턴스에서 분리된 폼 후보를 구성하고, TXFAFormStructureAliases로 소스-대상-후보 쌍을 반환합니다
TXFAFormStructureAlias.Source와 Target은 이전 인스턴스를 해제하기 전에 외부 identity를 재매핑하기 위한 빌린 노드 참조입니다
ReplaceInstance는 준비된 후보를 채택하고 이전 인스턴스를 그래프 소유 분리 노드로 반환합니다
반환된 이전 인스턴스에 DiscardPrepared를 호출하기 전에 의존 참조를 재지정하세요
DiscardPrepared는 같은 그래프가 소유한 분리 후보를 해제하며, 붙어 있는 라이브 인스턴스는 제거하지 않습니다
초기 및 희소 인스턴스
PrepareUnboundModel은 빈 병합을 위한 분리 폼 모델을 반환하며, 작성된 템플릿 내용을 보존하고 지원되는 subform 발생을 독립 네이티브 노드로 확장합니다
EnsureInstance는 기존 라이브 폼 노드를 반환하거나 템플릿 정의와 그 라이브 데이터 컨텍스트에 필요한 희소 인스턴스 경로를 구성합니다
EnsureInstance는 여러 라이브 노드를 바꿀 수 있으므로, 복합 연산 롤백은 호출자 주변 문서 트랜잭션에 속합니다
TXFAWidgetRuntime은 네이티브 문서와 분리 identity 복원을 포함해 공개 스크립트 이벤트에 그 트랜잭션을 제공합니다
도우미 함수
| 함수 | 목적 |
|---|---|
HPDFXFAEmptyMergeCount | 발생 선언을 검증하고 명시적 initial이나 최솟값으로 빈 병합 개수를 반환합니다 |
HPDFXFAIsMaterializedFormNode | 명시적 순회 예산 아래에서 네임스페이스 한정 materialization 마커를 검사합니다 |
HPDFXFAResolveMaterializedDefinition | 정의와 데이터 컨텍스트에 대한 유효 폼 노드를 해석하고 materialized 모델이 권위 있는지 보고합니다 |
HPDFXFAResolveActualFormScope | 실제 반복 폼 인스턴스의 라이브 데이터 스코프를 템플릿 선언을 다시 반복하지 않고 해석합니다 |
저장된 마커는 충돌 안전 접두사와 함께 urn:hotpdf:xfa:form-structure:1을 쓰고, 네이티브 폼 노드는 XFA 폼 네임스페이스를 씁니다
독립 네이티브 호출자는 클래스 수명 동안 문서를 유지하고, 취소나 다른 실패가 이전 성공 단계를 복원해야 할 때 복합 그래프 연산 주변에 롤백을 제공해야 합니다