Ceci est une ancienne révision du document !


TP Génération de XML via SQL

Ce TP peut être réalisé dans les salles TP du Nautibus en démarrant la machine sous Linux, ou sur toute machine personnelle sur laquelle on aura installé un serveur PostgreSQL ainsi qu'un client type pgAdminIII.

Modalités de rendu

Ce TP est à réaliser seul ou en binôme (trinômes interdits). On téléchargera le fichier de réponses reponses-tp-xml-sql.txt. On complétera le fichier et on le renommera en Groupe_Nom1_Prenom1_Nom2_Prenom2_reponses-tp-xml-sql.txt. Groupe est le numéro groupe de TD de M1, Nom1_Prenom1 est le nom et le prénom du premier membre du binôme, Nom2_Prenom2 est le nom et le prénom du second membre du binôme1). On déposera ce fichier sur Spiral le dimanche 14 octobre 2012 au plus tard.

Le non-respect de ces consignes pourra être sanctionné dans la note de ce TP.

Introduction

L'objectif de ce TP est de pratiquer la création de (fragments de) documents XML directement à partir de données relationnelles en SQL. Le TP consiste dans un premier temps à lire et comprendre le TP “Générer du XML dans Oracle”. Dans un deuxième temps, on créera un ensemble de relation dans une base PostgreSQL et on utilisera les fonctions SQL/XML du dans le TP cité ci-dessus 2) pour générer du XML à partir des données relationnelles.

Mise en place

Bien lire le TP Générer du XML dans Oracle“ afin de comprendre le fonctionnement des fonctions XMLElement, XMLAttributes, XMLForest et XMLAgg.

Utiliser pgAdminIII pour se connecter à la base postgres en utilisant les login/mot de passe etudiant/etudiant.

Exécuter le script tp-xml-sql-2012-data.sql afin de créer les tables et d'ajouter des données.

Écrire des requêtes SQL afin de générer du XML en réponse aux requêtes en français ci-dessous. Ce XML se situera toujours dans une colonne vxml dans le résultat de la requête. Il sera toujours conforme à la DTD indiquée dans la question.

Exemple: “Donner le titre de chaque film, un film étant identifié par son id.”, DTD:

<!DOCTYPE titre [
<!ELEMENT titre (#PCDATA)>
]>

Réponse:

SELECT XMLElement(name "titre", titre) AS vxml, id FROM film

Questions

1)
le cas échéant
2)
les fonctions de génération SQL d'Oracle du TP sont utilisables également dans PostgreSQL, à l'exception des fonctions pour manipuler XQuery