8.14. Support des documents XML
Le support du XML (Extensible
Markup Language) n'est pas une capacité, mais un ensemble de
fonctionnalités supporté par un SGBD. Ces fonctionnalités incluent le
stockage, l'import/export, la validation, l'indexation, l'efficacité
des modifications, la recherche, la transformation et la mise en
correspondance du XML vers
SQL. PostgreSQL™ supporte certaines de ces
fonctionnalités. Les prochaines versions de PostgreSQL™ continueront d'améliorer le
support du XML. Pour avoir un
aperçu de l'utilisation d'XML dans
les bases de données, consulter
http://www.rpbourret.com/xml/XMLAndDatabases.htm
.
-
Stockage
-
PostgreSQL ne dispose pas d'un type de données spécialisé pour
le XML. Les utilisateurs
peuvent stocker les documents XML dans des champs TEXT ordinaires. Si le document doit être scindé
en plusieurs parties correspondant aux éléments du document
XML, de façon à ce que chaque élément soit stocké séparément,
une solution tiers doit être utilisée. Une fois cela fait, les
données deviennent relationnelles et doivent être traitées en
conséquence.
-
Import/Export
-
Il n'y a pas de fonctionnalité permettant d'établir la
correspondance entre le XML
et les tables relationnelles. Un outil externe doit être
utilisé pour cela. Une façon simple d'exporter en
XML est d'utiliser
psql en mode HTML (\pset format
html), puis de convertir la sortie XHTML en XML avec l'aide d'un outil
externe.
-
Validation
-
/contrib/xml2 a une fonction appelée
xml_is_well_formed() qui peut être
utilisée dans une contrainte CHECK
pour s'assurer qu'un champ contient du XML bien formé. Elle n'assure pas la
validation au regard d'un schéma XML spécifique. Un langage côté serveur
disposant de fonctionnalités XML peut être utilisé pour les
vérifications au regard de schémas XML spécifiques.
-
Indexage
-
Les fonctions de /contrib/xml2
peuvent être utilisées dans des index d'expression pour indexer
des champs XML spécifiques.
Pour indexer le contenu complet des documents XML, l'outil d'indexage en texte complet
/contrib/tsearch2 peut être utilisé.
Les index Tsearch2 n'ont évidemment pas conscience du
XML ; des vérifications
supplémentaires avec /contrib/xml2
doivent donc être ajoutées aux requêtes.
-
Modification
-
Si un
UPDATE
ne
modifie pas un champ XML, la
donnée XML est partagée
entre anciennes et nouvelles lignes. Mais si l'
UPDATE
modifie un champ
XML, une copie entièrement
modifiée du champ XML doit
être créée en interne.
-
Recherche
-
Les recherches XPath sont implantées en utilisant /contrib/xml2. Cette contribution traite les
documents texte XML et
renvoient les résultats en fonction de la requête.
-
Transformation
-
/contrib/xml2 supporte
XSLT (Extensible Stylesheet
Language Transformation).
-
Mise en correspondance du XML vers SQL
-
Ceci implique la conversion de données XML vers ou à partir de structures
relationnelles. PostgreSQL™ n'offre pas de support
interne pour une telle mise en correspondance et se repose sur
des outils externes pour ces conversions.
-
Fonctionnalités manquantes
-
Les fonctionnalités manquantes incluent XQuery, la syntaxe
SQL/XML (ISO/IEC 9075-14) et un type de données XML optimisé pour le stockage
XML.
|