Definição de dados delimitados em FSD
Registros e campos podem ter um especificador separador. Esse especificador delimita o registro ou campo nos dados. Quando um delimitador não é especificado, os dados são tratados como largura fixa, usando o atributo de comprimento máximo do elemento "field".
O exemplo abaixo mostra campos e registros com separadores:
<?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' record-sep='\r\n'> <field name='child1' field-sep=','/> <field name='child2'/> </record> </sequence> </schema>
e irá gerar a seguinte estrutura XML:
<parent> <child1/> <child2/> </parent>
A entrada de exemplo para esse FSD é:
Child 1 Data,Child 2 Data Child 3 Data,Child 4 Data
e a saída de exemplo gerada:
<parent> <child1> Child 1 Data</child1> <child2> Child 2 Data</child2> </parent> <parent> <child1> Child 3 Data</child1> <child2> Child 4 Data</child2> </parent>
O FSD acima marca cada registro como finalizado com um par de alimentadores de linha de retorno de carro (que é o marcador padrão de final de linha dos sistemas operacionais da Microsoft). Isso define dois campos para cada registro. O primeiro usa a vírgula como delimitador; o segundo é o último campo no registro e, portanto, usa o delimitador especificado para o registro como seu.