Non-delimited data in FSD
When there are no delimiters in a data file and the fields are fixed
width, it is considered as being 'truly flat'. In this case the
max-length
attribute on the field element is used to
specify the length of each field.
In fixed length data it is often necessary to pad the data values in
order to guarantee that the fields begin in the correct position. The FSD
handles this using the
trailing-chars
attribute. This attribute defines the
characters that may appear after the actual data and which will automatically
be stripped from the data before it is written to XML. In addition, the FSD
processor uses the
trailing-chars
attribute to determine a suitable filler
character when the data is being converted from XML back to flat format.
Below is an example of an FSD that uses fixed length fields:
<?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>
Below is an example of some input data for this FSD:
Child Data 1 Child Data 2 Child Data 3 Child Data 4
and output data for this 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>