CALS表格模型是美国国防部提出的基于XML/SGML的语义化表格规范,强调逻辑结构而非外观,核心元素包括table、tgroup、colspec、thead、tbody、row和entry,支持跨行跨列标记与强校验。

CALS表格模型是一种标准化的、基于XML(或SGML)的表格描述方式,最初由美国国防部提出,全称是“Computer-Aided Acquisition and Logistic Support”表格模型。它不是视觉排版工具,而是语义化、结构清晰、可交换、可校验的表格数据表示规范,广泛用于技术文档、航空手册、军工标准等对数据一致性要求高的领域。
它强调表格的逻辑结构(如标题行、数据行、列定义),而不是外观样式,因此非常适合在XML中持久化和跨系统传输。
CALS表格在XML中的基本结构
一个典型的CALS表格用XML元素逐层组织,核心元素包括:
:整个表格的根容器,常带
id、frame等属性:表格标题(可选但推荐):表格主体组,必须包含cols属性声明列数:定义每一列的属性,如colname(列标识符)、colwidth(宽度):表头区域,包含一行或多行:表格主体数据区:表示一行,可含valign、align等属性:单元格内容,支持morerows、morecols实现跨行/跨列(但注意:纯CALS不直接支持“合并单元格”的渲染语义,而是用morerows/morecols标记逻辑跨度)示例(简化版):
@@######@@
关键特点说明
-
列数必须严格一致:
中的数字要和实际数量、每行数量匹配,否则Oxygen等编辑器会报错(比如“列数不一致”)。 - 不依赖CSS或样式控制显示:CALS本身不定义颜色、边框、字体,这些由XSLT或CSS后处理添加。
-
支持嵌套与复杂结构:可通过
内嵌、甚至子,适合技术文档中的多层表格。
- 可验证性强:有配套DTD或XML Schema(如
calstbl.xsd),能用工具做结构校验。
和普通HTML表格的区别
维度 HTML表格 CALS表格 目的 页面展示 数据结构化与长期归档 合并单元格 rowspan/colspan属性morerows="1"/morecols="2"(语义化标记,非渲染指令)列定义 无显式列声明 必须有 明确列名和宽度比例标准性 W3C标准,通用浏览器支持 OASIS/ISO标准,需专用解析器或XSLT转换
基本上就这些。用CALS写表格,重点是把“谁是标题”“一共几列”“每列代表什么”说清楚,而不是怎么好看——结构稳了,样式和转换才好跟上。
客户信息表 编号 姓名 城市 001 张三 北京 002 李四 上海 - 可验证性强:有配套DTD或XML Schema(如










