L’utilisation par défaut du caractère End Of Line et du Byte Order Mark dans les fichiers texte a été modifiée dans 4D v19 R2. Avec 4D v19 R3, 4D étend ce comportement aux fichiers XML. Voyons comment.
Ce précédent billet de blog était consacré à la modification de l’utilisation par défaut du caractère End Of Line (EOL) et du Byte Order Mark (BOM) dans les fichiers texte.
En suivant les meilleures pratiques qui y sont décrites, 4D étend maintenant le comportement des fichiers texte aux fichiers XML écrits à l’aide des commandes DOM et SAX.
NOUVEAUX COMPORTEMENTS
Sur macOS, les fichiers XML étaient écrits par défaut avec CR comme EOL lors de l’utilisation des commandes DOM, et les deux caractères CRLF lors de l’utilisation des commandes SAX. Avec le nouveau comportement, les fichiers XML sont écrits avec LF comme EOL, en utilisant les commandes DOM et SAX. Cela permettra de standardiser le comportement entre DOM et SAX, et d’améliorer la compatibilité avec les systèmes de contrôle de version comme Git, qui doivent utiliser LF comme caractère EOL.
Il n’y a pas de changement sur Windows pour le caractère EOL puisque CRLF est correctement géré par les systèmes de contrôle de version comme Git.
Sur toutes les plateformes, les fichiers XML sont maintenant écrits sans BOM, en utilisant les commandes DOM et SAX. Comme UTF-8 est presque devenu le format de fichier texte standard, la BOM est de moins en moins utilisée. Ainsi, 4D suit toujours les meilleures pratiques actuelles.
PARAMÈTRES DE COMPATIBILITÉ
Aucun changement n’apparaîtra lors de la migration d’un projet ou d’une base de données existants vers 4D v19 R3.
Si votre projet ou votre base de données a été créé avec une version antérieure à 4D v19 R2, les paramètres de compatibilité suivants apparaîtront pour activer les nouveaux comportements :
⚠️ Lorsqu’ils sont ouverts dans 4D v19 R3, les projets ou bases de données créés avec 4D v19 R2 se comportent différemment en ce qui concerne le caractère EOL par défaut et la gestion des nomenclatures dans les documents XML uniquement. Même si le nouveau comportement est actif et que les options de compatibilité sont disponibles depuis 4D v19 R2 pour les fichiers texte, ce nouveau comportement n’est disponible que depuis 4D V19 R3 pour les fichiers XML.
GARDER LE CONTRÔLE
Si vous voulez définir vous-même le caractère EOL à utiliser lorsque vous écrivez un fichier XML en utilisant les commandes DOM ou SAX, la commande XML SET OPTIONS admet maintenant le nouveau sélecteur XML line ending, qui peut prendre les valeurs suivantes : XML default, XML CR, XML LF ou XML CRLF.
De la même manière, vous pouvez définir vous-même si une nomenclature est insérée dans le fichier XML à l’aide de commandes DOM ou SAX en définissant le nouveau sélecteur XML BOM dans la commande XML SET OPTIONS . Ce sélecteur admet trois valeurs : XML default, XML enabled ou XML disabled.
Bien entendu, vous pouvez utiliser ces deux nouveaux sélecteurs avec la commande XML GET OPTIONS pour savoir quel comportement est actuellement utilisé.
⚠️ Comme les lignes du fichier SAX sont écrites directement à chaque instruction, si vous devez définir les options BOM et/ou EOL, vous devez appeler la commande XML SET OPTIONS avant la première commande d’écriture SAX.