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>