原生 XFA XML 註解與處理指令

原生 exData 的 loadXML 與 saveXML 保留元素內的 XML 註解與 processing instructions,包括其順序、字面 payload 與指令目標

原生表示

節點保留 Name=#text,讓既有的元素、SOM、packet 與屬性綁定掃描繼續跳過非元素內容;XMLContentKind 區分文字、註解與指令節點

一般文字與 CDATA 持續計入父節點的彙總 Value;註解與指令不會變成 scalar 欄位值或可見 rich-text runs

Comment := Node.AddComment('retained metadata');
Instruction := Node.AddProcessingInstruction('audit', 'reviewed');

SetText 取代一般文字與 CDATA,同時保留註解與指令子節點;移除非文字子節點不影響文字彙總

持久化與交易

原生 XDP 解析器、寫入器與 packet 指紋在儲存與重新載入之間保留元素內註解與指令;payload 或目標變更會把所屬 packet 標記為已修改

立即的 script 序列化會看到匯入的非文字內容;引擎失敗與原生發布預算都會逐位元組還原原始內容

註解與指令節點消耗 XML 匯入與序列化的節點預算;其 payload 消耗位元組預算與原生 packet 文字限制

實際 PDF 消費

儲存的產生器在 THotPDF.ApplyXFAAsAcroForm 之前重新開啟其 XDP;獨立的 XML、pypdf 與 MuPDF 檢查確認實際原生 payload 仍被儲存,而其標記文字未出現在頁面文字中

既有 rich text、字型、大小與顏色保持可見,複製與清空的 occurrence 保留其既有記載行為

剩餘 XML 目標

此支援涵蓋文件元素內的 markup;根元素之外的文件層級註解與指令、完整的語彙空白保留、其他 node-class XML 方法、Data DOM 結構匯入與 DTD 實體目錄,仍是獨立實作目標

外部參照與完整的外部媒體消費端仍是獨立實作目標

原生 exData XML與XFA Packet DOM

TXFANode與原生 XML 內容