Format conversion of elementary data
Les éléments de données élémentaires sont convertis au format de caractères en fonction du type de l'élément de données:
- Les éléments de données de la catégorie alphabétique, alphanumérique, alphanumérique éditée, DBCS, à virgule flottante externe, nationale et numérique éditée ne sont pas convertis.
- Les éléments de données numériques à point fixe autres que les éléments de données COMP-5 ou les éléments de données binaires compilés à l'aide de l'option de compilation NOSTDTRUNC sont convertis comme s'ils avaient été déplacés vers un élément numérique ayant:
- Autant de positions entières que l'élément numérique, mais avec au moins une position entière
- Un séparateur décimal explicite, si l'élément numérique comporte au moins une position décimale
- Nombre de positions décimales identique à celui de l'élément numérique
- Symbole d'image'-'de début si l'élément de données est signé (a un S dans sa clause PICTURE)
- Les éléments de données COMP-5 et les éléments de données binaires compilés avec l'option de compilation NOSTDTRUNC sont convertis de la même manière que les autres éléments numériques à point fixe, à l'exception du nombre de positions entières. Le nombre de positions entières est calculé en fonction du nombre de symboles'9'dans la chaîne de caractères de l'image, comme suit:
- 5 moins le nombre de décimales, si la donnée comporte de 1 à 4 symboles d'image'9'
- 10 moins le nombre de décimales, si la donnée comporte de 5 à 9 symboles d'image'9'
- 20 moins le nombre de décimales, si la donnée comporte de 10 à 18 symboles d'image'9'
- Les éléments de données en virgule flottante internes sont convertis comme s'ils avaient été déplacés vers un élément de données comme suit:
- Pour COMP-1: un élément de données à virgule flottante externe avec PICTURE -9.9(8)E+99
- Pour COMP-2: un élément de données à virgule flottante externe avec PICTURE -9.9(17)E+99 (non autorisé en raison du nombre de positions de chiffres)
- Les éléments de données d'index sont convertis comme s'ils avaient été déclarés USAGE BINARY PICTURE S9(9).
Après toute conversion au format de caractères, les espaces de début et de fin et les zéros de début sont éliminés, comme décrit dans Découpage des données XML générées.
Si un élément de données après une conversion contient des caractères non autorisés dans le contenu XML, comme indiqué dans la spécification XML appropriée, la valeur de données d'origine (c'est-à-dire la valeur de l'élément de données avant toute conversion ou compression) est représentée en hexadécimal, et un nom de balise d'élément avec le préfixe'hex.' est remplacé par le nom de balise standard. Par exemple, si l'élément de données Customer-Name est trouvé lors de l'exécution pour contenir LOW-VALUES, le nom de balise d'élément XML'hex.Customer-Name'est utilisé à la place de l'élément'Customer-Name'normal, et le contenu est représenté sous la forme d'une chaîne de paires de zéro chiffre.
Toutes les instances restantes des cinq caractères & (perluète),' (apostrophe), > (signe supérieur à), < (signe inférieur à) et " (guillemets) sont convertis en références XML équivalentes'&','& ???','>','<'et'"', respectivement.
Ensuite, si identifier-1 est un élément de données de catégorie nationale, toutes les valeurs non nationales sont converties au format national.