Spécification de positions de champ dans les enregistrements positionnels
Pour définir un enregistrement positionnel, vous devez fournir des informations concernant les positions et les longueurs des champs au sein de l’enregistrement. Si l'enregistrement contient des sous-enregistrements, les positions et longueurs des champs du sous-enregistrement sont cumulées pour alimenter les informations sur l'enregistrement qui les contient.
La somme des valeurs que vous spécifiez pour les propriétés Décalage positionnel et Longueur positionnelle d’un nœud Field Element ou Field Attribute spécifique détermine le nombre de caractères dédiés au champ correspondant. L’ensemble des sommes pour tous les champs de l’enregistrement et de tous ses sous-enregistrements détermine les limites des champs dans les enregistrements.
Notes
Lorsque la propriété Count Positions In Bytes du nœud Schéma a la valeur Oui, les propriétés Longueur positionnelle et Décalage de position spécifient des octets plutôt que des caractères.
Pour plus d’informations sur ces propriétés, consultez les instructions de l’interface utilisateur et les informations de référence sur l’espace de noms d’API des développeurs.
Propriété Décalage de position
Lorsque le désassembleur de fichiers plats convertit un fichier plat instance message en message xml instance équivalent, la valeur que vous spécifiez pour la propriété Décalage positionnel définit un nombre de caractères (ou octets) ignorés et ignorés à cette position dans le message instance. En d’autres termes, toutes les informations qui se produisent à cette position de départ et à cette longueur (cette dernière comme spécifié par la propriété Décalage positionnel) dans le fichier plat instance message ne seront pas copiées dans la version XML du message.
Lorsque l’assembleur de fichiers plats convertit un message XML instance en un fichier plat équivalent instance message, la valeur que vous spécifiez pour la propriété Décalage positionnel définit un nombre de caractères (ou octets) remplis d’espace à cette position de départ dans le fichier plat instance message en cours de création. Les positions de décalage sont toujours remplies par des espaces ; le caractère utilisé n'est pas configurable.
La propriété Décalage positionnel offre une flexibilité pour l’interprétation du contenu des enregistrements positionnels. Cette propriété vous permet essentiellement d'ignorer toutes les données de longueur fixe précédant le champ pour lequel elle a une valeur différente de zéro. Ces données de longueur fixe peuvent correspondre à un ou plusieurs champs de données entiers ou à certains types de données constantes, tels qu'une balise associée à un champ, qui ne doivent pas nécessairement être inclus dans l'équivalent XML de ce message d'instance de fichier plat. Pour plus d'informations, reportez-vous à l'exemple suivant.
Propriété Longueur positionnelle
Lorsque le désassembleur de fichiers plats convertit un fichier plat instance message en un message XML instance équivalent, la valeur que vous spécifiez pour la propriété Longueur positionnelle définit le nombre de caractères (ou octets) associés au champ à cette position dans le message instance. Les informations qui se produisent à cette position de départ et à cette longueur dans le fichier plat instance message constituent les données du champ, sous réserve des informations supplémentaires fournies par les propriétés Justification et Caractère de pad associées. Pour plus d’informations conceptuelles sur la justification et le remplissage de champs, consultez Justification des champs et Remplissage de champ.
Lorsque l’assembleur de fichiers plats convertit un message XML instance en un fichier plat équivalent instance message, la valeur que vous spécifiez pour la propriété Longueur positionnelle définit un nombre de caractères (ou octets) disponibles pour écrire les données associées à ce champ. Si le nombre de caractères de données est inférieur à la longueur spécifiée pour le champ, le caractère de remplissage correspondant est utilisé pour combler la différence. S’il y a plus de caractères de données que la longueur spécifiée du champ, le début ou la fin des données est tronqué en fonction du paramètre de la propriété Justification et n’est pas inclus dans le fichier plat instance message en cours de construction.
Notes
La fin des données alignées à gauche est tronquée et supprimée. Le début des données alignées à droite est tronqué et supprimé.
Exemple
Considérez les définitions de champ suivantes pour un enregistrement.
Nom de nœud de champ | Offset | Longueur | Caractère de pavé | Justification |
---|---|---|---|---|
Field1 | 0 | 6 | Par défault (espace) | Gauche |
Field2 | 0 | 4 | * | Right |
Field3 | 2 | 6 | * | Gauche |
Field4 | 4 | 6 | Par défault (espace) | Right |
Le flux suivant de caractères figure au point de début d'un enregistrement associé à ces définitions de champ (la première ligne sert à compter les positions des caractères).
123456789012345678901234567890123456789012345678901234567890
abc **12345678**skip here
Lorsque ces définitions de champ sont appliquées à cet exemple de données d’enregistrement, le désassembleur de fichier plat produit le code XML équivalent suivant (les données étant affichées en gras).
<Field1>abc</Field1>
<Field2>12</Field2>
<Field3>5678</Field3>
<Field4>here</Field4>
Les observations suivantes concernent la façon dont les données sont analysées :
Les caractères associés à Field1 (longueur 6 sans décalage) sont « »,
abc
mais les espaces ne sont pas inclus dans le xml, car le caractère d’espace est le caractère de pavé (par défaut) pour Field1 et Field1 est défini comme aligné à gauche.Les caractères associés à Field2 (longueur 4 sans décalage) sont «
**12
», mais les astérisque ne sont pas inclus dans le code XML, car l’astérisque est le caractère de pad défini pour Field2 et Field2 est défini comme aligné à droite.Les caractères associés à Field3 (longueur 6 plus décalage de 2) sont «
345678**
», mais les 3 et 4 ne sont pas inclus dans le code XML en raison du décalage. Les astérisques ne sont pas non plus inclus dans XML parce que le caractère astérisque correspond au caractère de remplissage défini pour Field2 et que Field2 est défini avec un alignement à gauche.Les caractères associés à Field4 (longueur 6 plus décalage de 4) sont «
skip here
», mais la séquence de caractères «skip
» n’est pas incluse dans le code XML en raison du décalage. Les deux caractères d’espacement ne sont pas non plus inclus dans XML parce que le caractère d'espacement est le caractère de remplissage (par défaut) pour Field4 et que Field4 est défini avec un alignement à droite.Si le code XML produit par le désassembleur de fichiers plats dans cet exemple est transmis à l’assembleur de fichiers plats à l’aide des mêmes définitions de champ, les mêmes données de fichier plat sont générées, à deux exceptions près : les séquences de décalage ignorées 34 et skip sont remplies d’espace (indiqué avec le
^
caractère dans la ligne qui suit les données).
123456789012345678901234567890123456789012345678901234567890
abc **12 5678** here
^^ ^^^^
Voir aussi
- Considérations relatives aux champs
- Justification des champs
- Remplissage des champs
- Pour plus d’informations sur les propriétés suivantes, consultez les instructions de l’interface utilisateur et les informations de référence sur l’espace de noms d’API des développeurs :
- Compter les positions en octets (propriété de nœud des schémas de fichier plat)
- Justification (propriété node des schémas de fichier plat)
- Caractère pad (propriété node des schémas de fichier plat)
- Décalage positionnel (propriété de nœud des schémas de fichier plat)
- Longueur positionnelle (propriété de nœud des schémas de fichier plat)