原生 XFA 純量值屬性

事件宿主透過 property 存取或 getElement 建立實際的原生表單值容器與純量葉節點;欄位值屬性、繫結資料值與 widget 讀取共用同一個目前值

純量建立

受支援的純量子節點為 boolean、date、dateTime、decimal、float、integer、text 與 time,從一個所選值類別中取一個出現個體

const field = xfa.form.resolveNode("main.row[1].input");
const leaf = field.value.getElement("text", 0);
leaf.value = "updated";
field.dataNode.value = "from-data";
if (leaf.value !== "from-data") throw new Error("Value synchronization failed");

讀取缺少的純量屬性會實體化其原生表單節點,並以欄位目前的生效值初始化內容;重複存取回傳同一個即時 property 物件

value 預設具備常見原型屬性、override=0 與空的 relevant 屬性;受支援的純量類別公開常見原型屬性與空名稱

單選檢查涵蓋所有標準值選項,因此不能在既有 image、exData 或圖形值選項旁建立純量

立即與原生同步

純量葉節點的 value 與 rawValue 存取子代理擁有它的欄位;繫結 dataValue.value 是其 rawValue 存取子的可寫別名

欄位、純量與資料寫入會在同一腳本內互相反映讀取,包括共用同一繫結資料值的其他欄位

原生發布會更新資料集值與既有實體化的純量表單葉節點;互動 widget 的提交與計算結果也會為繫結欄位同步實體化的 value 屬性,包括隱藏與 invisible 別名

型別化純量內容按提供的文字保留,包括標準的日期、時間與數字字串;這個階段不引入自動數值轉型或新的 picture 格式化

隱藏別名同步遵循實際的重複資料範圍,並保留未實體化的屬性

執行個體、識別與交易

在一個重複出現個體中建立與編輯 value 屬性,不影響其他出現個體;script object 可以保留純量屬性參考,供之後的事件使用

新的重複執行個體取得獨立的原生 value 節點;對新建立執行個體的資料寫入,會在交易儲存前更新其實際實體化的純量葉節點

引擎錯誤、原生值預算失敗與衝突的值選項,會還原精確的原生 XDP 位元組,包括欄位資料、實體化 value 葉節點與共用別名

原生同步掃描計入事件操作與經過時間預算;過量的工作會拒絕交易並還原其快照

已儲存的 PDF 輸出

XFA AcroForm 轉換會消耗持久化的純量值,作為原生欄位值與產生的外觀;重複的第一執行個體值維持不變

聚焦的已儲存產生器會在轉換前重新開啟原生 XDP,獨立的 pypdf 與 MuPDF 檢查會檢視型別化表單葉節點、資料集值、原生欄位與實際可見的外觀文字

其餘整合目標

原生 exData XML支援不存在值建立、真實外部 XML 匯入、立即腳本序列化與持久化的 rich draw 消費

draw 與 caption 純量消費端支援建立的每執行個體值與明確的空覆寫

影像與圖形值建立支援原生 image、arc、line 與 rectangle 子節點,並帶實際的 draw 消費端

完整的純量格式檢核、rich widget 外觀與 Unicode 外觀內嵌,仍是另外的實作目標

相關 API

原生 Data DOM、原生欄位預設值、不存在 Property 的建立與互動式 XFA 執行環境