FSD 中的非分隔数据

如果数据文件中没有分隔符且字段是固定宽度,则被认为是“真实的平面结构”。这种情况下,字段元素上的 max-length 属性用于指定每个字段的长度。

在固定长度数据中,填充数据值总是很有必要的,这样可确保字段会从正确位置处起始。FSD 使用 trailing-chars 属性对此进行处理。该属性设置了字符,这些字符会出现在实际数据后,并且在编写至 XML 之前,这些字符会自动从数据中去除。另外,当数据从 XML 转回至平面结构时,FSD 处理器使用 trailing-chars 属性确定适当的填充字符。

下面是一个 FSD 范例,该 FSD 使用的是固定长度字段:

<?xml encoding='UTF8' version='1.0' ?>
<schema xmlns='http://www.systemsunion.com/2001/TD/SSTransform/fsd/' version='1.0'>
		<sequence output='no'>
				<record max-occur='0' name='parent'>
						<field name='child1' max-length='20' trailing-chars=' '/>
						<field name='child2' max-length='20' trailing-chars=' '/>
				</record>
		</sequence>
</schema>

下面是该 FSD 的一个输入数据范例:

Child Data 1        Child Data 2         Child Data 3          Child Data 4

该 FSD 的输出数据是:

<parent>
		<child1>Child 1 Data</child1>
		<child2>Child 2 Data</child2>
</parent>
<parent>
		<child1>Child 3 Data</child1>
		<child2>Child 4 Data</child2>
</parent>