Определение данных с разделителями в FSD

Записи и поля могут отделяться спецификаторами-разделителями. Спецификатор отделяет запись или поле внутри данных. Если разделитель не указан, данные обрабатываются как данные фиксированной ширины с использованием атрибута «max-length» элемента «field».

Для приведенных в следующем примере полей и записей с разделителями:

<?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>

Генерируется следующая структура XML:

<parent>
		<child1/> 
		<child2/>
</parent>

Входные данные для этого определения схемы плоского файла (FSD):

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

Пример сгенерированных выходных данных:

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

В приведенном выше описании схемы плоского файла каждая запись заканчивается парой «возврат каретки — перевод строки» (которая является стандартным концом маркера строки в операционных системах Microsoft). В нем определено по два поля для каждой записи. Для первого поля в качестве разделителя используется запятая; второе поле является последним полем в записи, и поэтому для него используется разделитель, указанный как разделитель записи.