跳到正文

ADR-0043:XML 静态页面几何 ​

  • 状态:接受
  • 日期:2026-10-16
  • 关联:GAP-07、API

背景 ​

现有 XmlTemplate 直接使用 Java 提供的 PageSettings。修改纸张和页边距须离开 XML 修改调用代码,降低了模板独立维护的便利度。成熟模板产品已有页面几何声明;现有模型、布局及输出可以复用,不需要建立新的页面模型或 CSS 引擎。

决策 ​

主源根的首个可选空 page 声明静态 A4/LETTER、成对自定义宽高、方向及统一/逐边边距。未声明属性采用 Java 配置,逐边优先于统一边距;方向按短长边重排宽高但不转动边距。接受严格非负十进制裸数/pt/mm/cm/in,仅在编译时换算为模型 point。

展开前在原主源及实际引用的片段检查位置,所有分支与循环原型一并验证。片段不能携带根配置,空 include 也不能改变首位判断。编译器剥离页面节点后复用既有 DocumentTemplate;它计入两层 XML 预算,不生成 Block 或占用 ID。失败保留既有稳定脱敏错误,模型验证提供正正文区域约束。每次编译保持局部配置,支持共享编译器隔离复用。

后果 ​

XML 可以保存页面几何,同时 Java 继续控制资源、默认值和后端。旧模板行为保持;没有新增公共值类型、依赖、资源或隐式 I/O。原有字号、列宽等仍为 point,避免无依据扩大所有 XML 长度语法。

PDF/SVG 保留模型浮点尺寸;DOCX 使用标准整数 twip,验证其精确量化结果。此单元不引入分节、页区样式、XML 内主题定义、默认字体级联或任意 CSS;这些继续独立评估,GAP-04/GAP-07 不能整体关闭。