De nos jours, les développeurs doivent faire cohabiter des données relationnelles avec des données XML dans leurs applications.
Nouveau type de colonne XML
Mais ces derniers choisissent le plus de souvent de stocker leurs données XML directement dans des colonnes de type VARCHAR (32 Ko) ou CLOB (2 Go) voire dans des documents sous forme de texte stockés dans l’IFS (Integrated File System) et de le traiter avec des opérations classiques comme sur n’importe quelle chaîne. Voir figure 1.
Désormais, il est possible de stocker des documents XML nativement. Son avantage sur un champ de type « texte » est qu’il vérifie que le document soit « bien formé » c’est-à-dire n’ayant pas d’erreurs de syntaxe et respectant toutes les règles qui régissent l’aspect d’un fichier XML. Ainsi, un crochet manquant fera qu’un fichier XML n’est pas bien formé et ne pourra être inséré dans la base de données sous peine d’une erreur SQ20398.
On entend par « document bien formé » le respect des contraintes ci-dessous :
- Le document doit posséder une racine
- Chaque balise ouvrante possède une balise fermante, la casse devant être respectée
- Chaque nœud XML est correctement emboîté.
- Chaque attribut XML est encadré de guillemets
La conversion d’une constante (considérée comme un VARCHAR) en format XML se fait automatiquement (voir figure 2) mais il aussi possible d’utiliser la fonction scalaire XMLPARSE pour réaliser ce « casting ». Cette dernière permet en option, d’ajouter le paramètre « STRIP WHITESPACE » (valeur par défaut) ou « PRESERVE WHITESPACE » qui permet de définir le comportement à adopter vis-à-vis des espaces blancs dans une valeur de chaîne de caractères. Le flux XML sera stocké en UTF-8 (1208) valeur par défaut indiquée dans le registre SQL_XML_DATA_CCSID de QAQQINI.
Bien évidemment on peut importer du contenu dans une colonne de type XML provenant d’un fichier de l’IFS (ou d’un fichier source) grâce à la fonction scalaire GET_XML_FILE ou GET_BLOB_FROM_FILE comme montré en figure 3.
Pourquoi une BD avec du XML ?
Si vos données sont très structurées, le modèle relationnel est sans doute le mieux adapté au stockage des données. En revanche, s’il s’agit de données semi-structurées voire non structurées, ou si la structure est inconnue voire variable dans le temps, mieux vaut envisager l’utilisation de XML.
Bien évidement comme toutes les nouveautés depuis de nombreuses années, ce nouveau type de champ n’est pas supporté dans les DDS.
Limites des types de données XML :
– les types de données XML ne peuvent pas être utilisés dans une instruction GROUP BY ou ORDER BY
– Ils ne sont pas permis avec les prédicats BETWEEN, DISTINCT, IN, LIKE
– ils ne peuvent faire l’objet de contraintes de clé (primaire, unique ou étrangère) ou de vérification.
– On ne peut pas créer un index sur une colonne XML, il faudra utiliser les « Index Text » du produit Omnifind Text Search for IBM i
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Nomios accélère sur la cybersécurité industrielle avec un SOC renforcé et une Factory OT immersive
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Reprendre le contrôle de son SI : la clé d’un numérique à la fois souverain et responsable
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
