XFA 查詢節點集合

JavaScript 與 FormCalc 事件可以檢視作用域內的節點 occurrence,並跨執行期事件保留獨立的查詢清單

const siblings = xfa.record.amount.all;
const retained = siblings.clone();
retained.remove(retained.item(0));
retained.insert(siblings.item(0), null);
retained.item(0).rawValue = "42";

Occurrence 屬性

node.all 回傳新的有序查詢清單,包含作用域內同字面名稱的節點;未命名節點改用其類別名稱

node.classAll 回傳新的有序查詢清單,包含作用域內同類別的節點,其他名稱的節點也包含

node.index 與 node.classIndex 回傳各自作用域內從零開始的 occurrence 序號

未命名的非屬性容器對具名作用域查找是透明的,包含正負相對 SOM occurrence;屬性容器保留自己的作用域

#field、* 與 Unicode 名稱這類字面名稱按撰寫名稱被這些屬性比對

獨立清單操作

成員行為
length目前清單條目數
item(index)被參照節點,負數、非整數或越界索引回傳 null
namedItem(name)第一個該字面名稱的被參照節點,無相符時為 null
clone()新的獨立條目儲存,參照同樣的節點
append(node)在結尾加入同一存活節點參照,重複參照也可以
insert(node, before)在第一個相符參照之前插入存活節點參照;null 等價於附加
remove(node)移除第一個相符參照;參照不存在時拋出錯誤

resolveNodes、all 與 classAll 回傳的清單使用獨立條目儲存;更動該儲存不動表單與資料樹,而寫被參照的節點改的是真實節點

表單與屬性的 node.nodes 集合暴露存活子檢視;其 clone() 方法回傳獨立查詢清單,見XFA 存續子集合

Data DOM 的 node.nodes 也提供獨立的 clone();其既有的 append、insert、remove 方法保留原生結構行為,見交易化 XFA Data DOM 結構

陣列迭代、索引讀取與列舉暴露被參照節點;直接指派、刪除、屬性重定義、原型變更與阻止擴充都會在更動查詢清單之前拋出錯誤

持久化與穩定身分

腳本物件可以跨事件保留查詢清單或副本;每個操作使用目前事件解析器與交易限制

查詢到的 instance manager 控制代碼在跨事件保留或複製時把操作路由到目前事件圖

重新命名或重排存活節點會保留其留存清單身分;移除重複表單 instance 後,經該被移除參照的讀寫會失敗,而不是改選替換 instance

獨立清單可以複製其儲存的參照,並移除先前留存的已移除節點參照,而無需解參照該節點

查詢清單儲存屬於執行期腳本狀態;儲存 XDP 持久化原生節點值與結構,新的執行期開啟新的腳本物件工作階段

交易與限制

非法節點與成員參照在該清單操作更動儲存之前失敗;被捕捉的錯誤讓同一事件中先前合法的操作保持可用

未捕捉的事件錯誤、操作預算或逾時失敗會一併還原查詢清單變更、原生值、重複 instance、留存腳本物件狀態與 journal 狀態,同一執行期可以重試

TXFAFormScriptLimits.MaxArrayItems 約束每個留存清單長度,並單獨約束一次事件內累計的清單物件與新建條目;設為零時使用事件上下文預設值 65,536

空副本消耗物件預算,非空副本還消耗條目預算,留存清單在多次獨立成功事件間保持有界

FormCalc 與 PDF 消費

output = Concat(Sum(xfa.datasets.data.main.amount.all), ":",
  xfa.datasets.data.main.amount.all.length, ":",
  xfa.datasets.data.main.amount[1].classIndex)

FormCalc 對字面 xfa.form、xfa.datasets 與 xfa.record 路徑的 occurrence 選擇使用原生 SOM 解析;集合屬性之後的清單索引對該集合索引

把執行期位元組儲存為 XDP 並交給 HPDFXFAWriteHeadlessPDF,即可從提交的值產生真實的原生欄位與外觀,包含經留存的存活重複 instance 參照做出的編輯

TXFAHeadlessPDFOptions.Editable = False 建立帶外觀的唯讀原生欄位,而不是壓平它們

涵蓋範圍

本介面提供獨立查詢清單與 occurrence 詮釋資料;通用 template/表單節點建立與複製、更多節點類別腳本、schema 驗證與外部媒體仍是獨立工作

XFA widget 執行期 · 原生 Data DOM