Données non délimitées dans FSD
Lorsqu'un fichier de données ne comporte aucun séparateur et que ses champs ont une largeur fixe, on considère que ce fichier
est réellement "plat". Dans ce cas, c'est l'attribut de champ max-length
qui permet de définir la longueur de chaque champ.
Dans les données à longueur fixe, il est souvent nécessaire de remplir les positions inutilisées des valeurs de données afin
que les champs commencent à l'endroit approprié. FSD y remédie à l'aide de l'attribut trailing-chars
. Cet attribut définit les caractères qui peuvent apparaître après les données réelles et qui seront automatiquement supprimés
de ces données avant que celles-ci soient converties en XML. De plus, le processeur FSD utilisera l'attribut trailing-chars
pour déterminer un caractère de remplissage approprié au moment de reconvertir les données XML en format plat.
Voici un exemple de FSD utilisant des champs de longueur fixe :
<?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>
Voici un exemple de données d'entrée pour ce FSD :
Child Data 1 Child Data 2 Child Data 3 Child Data 4
et de données de sortie pour ce 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>