原生 XFA Bind SOM
交互式运行时针对真实的原生数据集节点解析 bind dataRef 路径;直接编辑、脚本 rawValue 赋值与已物化的隐藏表单值消费的都是同一个选定数据值
选择器
| 表达式 | 选中内容 |
|---|---|
$data..Detail.Price[1] | 匹配的后代 Detail 下面的第二个 Price |
$data.main.*.Detail[1].Price[1] | 通过请求的后缀细化通配符分支 |
$data.main.*[1].Detail.Price[1] | 把通配符限制到其显式的第二个兄弟匹配 |
$data.main.#dataGroup[1].Detail.Price[1] | 在兄弟索引之前使用原生 Data DOM 分组分类 |
$data..Detail[*].Price[1] | 允许每个匹配的 Detail 实例参与后缀查找 |
$data.main.Price\.Tax | 选中字面名称为 Price.Tax 的 XML 元素 |
存在时,带命名空间限定的 xfa:dataNode 属性控制 dataGroup 与 dataValue 的分类;否则由实际的元素子节点区分 group 与 value
注释、处理指令和普通文本节点不作为数据元素参与
隐式字段名绑定把点号视为 XML 名称的一部分;显式选择器路径用反斜杠转义选择器中的字面字符
事务与原生持久化
编辑成功会更新选定的数据集叶节点和既有别名,包括 value 属性已物化的隐藏字段;未选中的兄弟节点和重复出现实例保留原值
校验失败、操作额度耗尽或截止时间到期都会按字节精确还原原生数据集与表单包;运行时配置的单调时钟同样约束绑定遍历
SaveToBytes 持久化真实的原生 XML,而不是仅事件视图;重新打开保存的 XDP 会再次消费选定数据值
创建与剩余覆盖范围
确定性的命名路径可以创建缺失的 index-zero 元素;后缀解析失败或遍历中断会移除该查找已做的分配
通配符、后代、class 与 [*] 路径只选择既有节点,不会分配有歧义的缺失分支
XFA dataRef 规范使用完全限定的 Data DOM 路径;既有的相对绑定路径仍作为兼容特性保留,在提供的实例上下文内解析
相对路径在给定实例中未命中时不会搜索其他记录;未解析的间接绑定可以改用该实例独立的原生表单值,而不会分配有歧义的数据集路径
相对 [+n] 和 [-n] 下标属于非限定脚本引用,不会被当作完全限定的绑定下标接受
属性选择器、通用谓词、全部节点类结构 XML 操作、全局绑定分配策略以及基于 picture 的规范化值校验仍是独立的覆盖目标