Upload
trinhduong
View
220
Download
0
Embed Size (px)
Citation preview
XMLorigine - concept - techniques
Tuyêt Trâm DANG NGOC
Laboratoire LICPUniversité de Cergy-Pontoise
Cours 2/2
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 2jeudi 4 novembre 2004
Plan
Résumé du cours précédentqu'est-ce XML ?syntaxe XMLstandards connexes à XML
XML et les bases de donnéesXML et les serveurs WebPourquoi XML ? Quand utiliser XML ?Quand ne pas utiliser XML ?XML par rapport à l'existant
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 3jeudi 4 novembre 2004
XML (1/3)
un standard défini par l'organisme de normalisation W3C (World Wide Web Consortium)
dérivé des standards HTML et SGML
séparation du fond et de la forme (du contenu et de la présentation)
semi-structuréarborescent
structure plus ou moins définie
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 4jeudi 4 novembre 2004
XML (2/3)
un langage balisé
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE biblio SYSTEM "bibliot_1.dtd">
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<bibliotheque>
<livre isbn="2-212-08932-5">
<titre>Programmation Linux 2.0</titre>
<prix devise="EUR">28.88</prix>
</livre>
</bibliotheque>
Déclaration format XML
Déclaration schéma associé
Déclaration feuille de style
Elements
Balise ouvrante
Attribut
Contenu
Balise fermante
Nom d'attribut
Valeur d'attribut
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 5jeudi 4 novembre 2004
XML (3/3)
Plus strict que HTML, moins que SGML
Un document XML DOIT être bien formé :une seule racine
balises correctement imbriquées
attributs correctement spécifiés
caractères XML valides
un document XML PEUT être valide :structure et les contenus du document conformes à des
règles spécifiées par un "vocabulaire (DTD ou XML-Schéma)
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 6jeudi 4 novembre 2004
Standards connexes à XML - résumé
Décrire la structure d'un document XML DTD : anciennementXML-Schema : intègre typage et contraintes
Présenter un document XML XSL/XSLT Transformation d'un document XML en un autre
document XML ou un document dans un autre format (HTML, PDF)
Se repérer dans un document XMLXPath Navigation dans un document XML à l'aide d'expressions et
de prédicats simples
Différencier les documents XML XML Namespace Distinction de vocabulaires différents
XML et les bases de données
Pourquoi les SGBD-R ?
Pourquoi XML ?
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 8jeudi 4 novembre 2004
XML et bases de données relationnelles
Pourquoi les bases de données relationnelles ?La plupart des données sont stockées dans des SGBD-RPeu d'évolution prévue dans un avenir prochedimensionnable, sûr, performant, beaucoup d'outils existants
⇒ Besoin de moyen efficace pour publier des données relationnelles comme des documents XML
Pourquoi XML ?Modèle élégant complexe, arborescent, structurébalises spécifiques descriptivesStandardisé !⇒ Standard dominant d'échange sur le web.
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 9jeudi 4 novembre 2004
Inconvénients des modèles de données classiques
Café, Thé, Chocolat, Margarita, Gin Tonic
0148871222,
0148874942ParisNULLNULLL'Appar
ement Café
NULL0143407071NULLNULL25, Cour Saint Emilion, Paris
Le Frog's
Maple Kiss, Gin Tonic
NULLParisLaCépède
NULLL'Envol
boissontelephone
villerueadressenombar
Valeurs nullesAttributs multi-valuésDifficultés d'extensions
Exportation de données complexe
XML et les bases de données
Pourquoi les SGBD-R ?
Pourquoi XML ?
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 11jeudi 4 novembre 2004
XML et bases de données relationnelles
Pourquoi les bases de données relationnelles ?La plupart des données sont stockées dans des SGBD-RPeu d'évolution prévue dans un avenir prochedimensionnable, sûr, performant, beaucoup d'outils existants
⇒ Besoin de moyen efficace pour publier des données relationnelles comme des documents XML
Pourquoi XML ?Modèle élégant complexe, arborescent, structurébalises spécifiques descriptivesStandardisé !⇒ Standard dominant d'échange sur le web.
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 12jeudi 4 novembre 2004
Inconvénients des modèles de données classiques
Café, Thé, Chocolat, Margarita, Gin Tonic
0148871222,
0148874942ParisNULLNULLL'Appar
ement Café
NULL0143407071NULLNULL25, Cour Saint Emilion, Paris
Le Frog's
Maple Kiss, Gin Tonic
NULLParisLaCépède
NULLL'Envol
boissontelephone
villerueadressenombar
Valeurs nullesAttributs multi-valuésDifficultés d'extensions
Exportation de données complexe
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 13jeudi 4 novembre 2004
Données XML
Structure arborescente
Structure irrégulièredonnées multi-valuées
données manquantes
données de types différents
Structure implicitedéfinie dans les données
elles-mêmes
ReprésentationXML
<bar><nom> L’Envol </nom><adresse>
<rue> Lacépegrave;de </rue><ville> Paris </ville>
</adresse><boisson> Maple Kiss </boisson><boisson> Gin Tonic </boisson>
</bar>
<bar><nom> Le Frog’s </nom><telephone> 01 43 40 70 71</telephone><adresse> 25, cour Saint-Emilion Paris,</adresse>
</bar>
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 14jeudi 4 novembre 2004
Oracle XSU (XML-SQL Utility)
XSU est packagé avec Oracle8i (8.1.7 et plus) et Oracle9iXSU permet de transformer des données
récupérées de tables ou vues relationnelles-objets en XMLXSU peut extraire des données d'un document
XML et en utilisant un mapping générique, insérer, supprimer, mettre à jour des données dans les colonnes associées d'une table
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 15jeudi 4 novembre 2004
XML et les bases de données
1. extension BD avec XML
2. adaptateur XML
3. middleware XML
4. XML natif
XMLXMLXML
1XQuery SQL
Tuples XML
2
SQL/Tuple
Opérations diverses
XML
3
4
Déploiement d'un site web avec XML
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 17jeudi 4 novembre 2004
Scénario courant
Base de données existante relationnelle(postgres, oracle, sybase, ...)
Navigateur
Serveur Web public Script1
(CGI-BIN, MS
ASP, Servlet,...)
HTML"public"
Serveur Web interne
Navigateur
Script2
HTML"interne"
Script3
PDFpublic
Script4
PDFinterne
HTTP (GET, POST)
SQL(ODBC, PLSQL...) TUPLES
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 18jeudi 4 novembre 2004
Scénario avec XML
Base de données existante relationnelle(postgres, oracle, sybase, ...)
Navigateur
Serveur Web public
Serveur Web interne
Navigateur
HTTP (GET, POST)
SQL TUPLES
Programme d'interrogation et récupération XML
PDFpublic
XSL
PDFinterne
XSL
XML
HTML"interne"
XSL
Processeur XML
XSL
HTML"public"
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 19jeudi 4 novembre 2004
Pages web dynamiques
JSP, ASP et PHP : des portions de code de programmation sont incluses dans le document HTML
Servlets ou CGI : le document HTML est construit et renvoyé dans un flux HTTP
Cocoon : le processus de production d'un document Web peut se décomposer en 3 logiques particulières
Rédacteur
Programmeur
Web designer.
I. Document (statique, requête SQL)
II. Traitements (filtrage, ajout, ...)
II. Présentation (HTML, PDF, WML)
ActeursLogiques
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 20jeudi 4 novembre 2004
Cocoon
Permet de séparer le contenu et la présentationde sites WebAccepte de nombreuses sources de données.
fichiers, SGBD, LDAP, et des bases de données XML natives.
Nombreux formats de sortie : HTML, WML, PDF, RTF, etc.
Doit être installé au sein d'un moteur de Servlets pour fonctionner (ex : Jakarta Tomcat).
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 21jeudi 4 novembre 2004
Cocoon (caractéristiques)
Aucune ligne de code Java n'est nécessaireSouplesse et réutilisabilité grâce à la séparation totale
entre contenu du document et sa présentationImplémentation de XSL pour le format PDF Gestion des documents dynamiques et les outils
disponiblesSolutions simples aux incompatibilités entre browsersAuthentificationAdministration du portail par une interface webOpen-source, maintenu et de plus en plus utilisé
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 22jeudi 4 novembre 2004
Environnement classique/cocoon : statique
<XML/><XML/><XML/>
<XSLT><XSLT><XSL>
<HTML>Transform.
XSL
<HTML/><HTML/><HTML/> <HTML>
IDocuments
IITraitement
IIIPrésentation
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 23jeudi 4 novembre 2004
Environnement classique/cocoon : dynamique
<XML/><XML/><XML/>
<XSLT><XSLT><XSL>
<HTML>Transform.
XSL
<HTML/><HTML/><HTML/> <HTML>
IDocuments
IITraitement
IIIPrésentation
ProcesseurXSP
XSP tagsJava
Processeur
PerlShell
Tcl
Pourquoi XML ?
Quand l'utiliser ?
Quand ne pas l'utiliser ?
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 25jeudi 4 novembre 2004
Applications de XML
1. Serveur Web
2. Base de données
3. Documentation
4. Echange d'information
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 26jeudi 4 novembre 2004
1. Serveur Web
MySQL ou PostgreSQL + PHP
PHP : HTML (+ CSS) + balises de script PHP
Simple à écrire
Rapide
Très répandu sur le web
MySQL Postgres
<html><? script php?></html>
<html>texte html</html>
Serveur Webfichier.php
Internet
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 27jeudi 4 novembre 2004
<html><h1> Base cliente</h1><body bgcolor="#ffffff" fgcolor="#00ff00">Contenu de la base <b>"clients"</b> :<?// connection a la base$connect = mysql_connect ("localhost","dntt","MotDePasse");// selection de la basemysql_select_db ("mysql", $connect);// la requete.$sql = mysql_query ("SELECT * FROM clients");// on compte le nombre de résultats$result = mysql_num_rows ($sql);echo "Il y a ",$result," client(s) dans la base :<ul>";// récupération et affichage des donnéeswhile ($donnee = mysql_fetch_array ($sql, MYSQL_ASSOC)){ echo "<li>",$donnee['nom']," : ",$donnee['prenom'],"</li>";}echo "</ul>"?></body></html>
HTML + PHP<html><h1> Bienvenue </h1><body>Contenu de la base <b>"clients"</b> :Il y a 3 client(s) dans la base :<ul><li>Doeuf : John</li><li>Cover : Harry</li><li>Breille : Jean</li></ul></body></html>
HTML résultant (calculé sur serveur)
Bienvenue Contenu de la base "clients" : Il y a 3 client(s) dans la base :•Doeuf : John•Cover : Harry•Breille : Jean
Affichage HTML sur navigateur client
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 28jeudi 4 novembre 2004
2. Bases de données
Base de données relationnellesfiable
performant
simple
répandu (majorité des logiciels fonctionne dessus)
Base de données objetsmoins répandu
Accès uniforme avec ODBC/JDBC
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 29jeudi 4 novembre 2004
XML et les bases de données
Représentation du monde réel semi-structurévaleur manquante, multivaluée, type mal connuarborescent avec dépendance directeM. SELERE, Alesi, Jacques, a 20 ans il habite 12 rue Prévert à Paris
(on ne connaît pas son numéro de téléphone), il a une voiture verte d'immatriculation 123ABC75 dont l'assureur est SURSUR au siège 3 bd des Champs à Versailles et une voiture rouge.
NomSelere
PrénomAlesi
PrénomJacques
age20
ruePrévert
no_rue12
voiture
couleurverte
couleurrougeimmatriculation
123ABC75assureur
nomSURSUR no_rue
2rueChamps
villeParis
personne
voiture
villeVersailles
adresse
adresse
BD
Semi-structuré
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 30jeudi 4 novembre 2004
3. Documentation
Documentation sous format spécifiqueWord, PDF, LaTeX, SGML, troff/groff, PS
Recherche textuelle, indexation
Description de contenu
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 31jeudi 4 novembre 2004
Documentation
Nombreux filtres de conversion avec risque de perte d'informationStandard type PDF
HTML
latex2html
dvips
ps2pdfpdf2word
Enregistrer sous HTML
TXTEnregistrer sous ASCII
ps2ascii
tex2ascii
MathematicaExporter PSDVI
latex
Enregistrer sous RTF
pdftex
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 32jeudi 4 novembre 2004
XML et la documentation
Taille d'un document XML (avec les balises, verbeux donc gros).Texte pur donc bonne
compressiondescription de contenu
(RDF)Recherche efficace
"Dans quelle scène de l'acte 4 de la pièce retrouve-t-on le mot 'duel' ?"
HTML
TXT
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 33jeudi 4 novembre 2004
4. Echange d'information
Programmation par socket (bibliothèque pour échange réseau)Protocole d'applications propriétaires.
Optimisé, mais peu standardsAppel de servicesRPC, Corba, RMI
Représentation des données spécifiques à chaque application.
Trop de standards pas standard !
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 34jeudi 4 novembre 2004
Echange d'information
Représentation XML :simple, lisible
standardisé
Web services pour les applicationsau dessus des protocoles d'applications existants
(HTTP, SMTP)
indépendants des protocoles d'applications qui lui servent juste de "transports"
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 35jeudi 4 novembre 2004
XML pourquoi faire ?
Ecriture ou génération une seule fois d'un document XMLPeut ensuite s'utiliser pourBDdocumentationéchange d'informationWeb
… ceci avec un minimum de travail (composants déjà existants, plus c'est répandu, plus les outils se développent).
Outils XML
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 37jeudi 4 novembre 2004
Outils d'édition XML
XML Spy L'éditeur XML le plus complet. Gère les fichiers XML, les DTD, XSL, XMLSchéma (.xsd). Version
d'évaluation de 30 jours.http://www.xmlspy.com/download.html
Microsoft XML NotepadEditeur simple de documents XML-based data. Freeware.http://msdn.microsoft.com/xml/notepad/download.asp
XML ProEditeur XML assez complet. Sharewarehttp://www.vervet.com/demo.html
XML Rad
XMetal
FrameMaker
Conclusion
Qu'est ce que XML ?
Quand est-ce que ça sert ?
Quand est-ce que ça ne sert pas ?
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 39jeudi 4 novembre 2004
Résumé : Qu'est que XML ?
XML est une méthode pour mettre des données structurées dans un fichier texteXML N'EST PAS HTMLXML est textuel, mais n'est pas fait pour être lu tel
quelXML est une collection de technologiesXML est verbeux, mais ce n'est pas le problèmeXML est nouveau, mais pas tant que çaXML est license-free, indépendant de toute plateforme
et bien supporté
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 40jeudi 4 novembre 2004
Quand utiliser XML ?
Quand on veut échanger des informations à travers des applications très différentes
Si on a un site web qui va évoluer très souvent dans son fond et sa forme et qu'on prévoit plusieurs canaux de diffusion (papiers, web, …)
Si on crée un nouvel outil et une nouvelle application
Si on veut combiner des technologies multimédia + texte + formules + BD + impression + web… de manière portable et sans tout réécrire.
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 41jeudi 4 novembre 2004
Quand NE PAS utiliser XML ?
Si l'on n'en n'a pas besoin...
Si les logiciels qu'on utilise pour l'instant fonctionnent correctement et qu'on n'envisage pas d'évolution
Si c'est juste pour frimer
Références XML
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 43jeudi 4 novembre 2004
XML
La page web de référence du W3C (documentations, spécifications et références) http://www.w3.org/
Les implémentations d'Apache sur la technologie XML (open-source) http://xml.apache.org
Les travaux d'Apache sur COCOON (open-source) : http://cocoon.apache.org/2.0/
Articles et travaux d'IBM sur XML (logiciels souvent en Open-Source) http://www-106.ibm.com/developerworks/xml/
Documentation XML en francais (article et actualité + traductions de certains documents de référence du W3C) http://xmlfr.org/
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 44jeudi 4 novembre 2004
XML et les bases de données
Document sur XML et les bases de données : http://www.rpbourret.com/xml/XMLAndDatabases.htm
Document répertoriant tous les produits sur XML et les bases de données, et en particulier dans la section "middleware" tous les produits se "greffant" sur une BD classique et permettant de récupérer du XML. http://www.rpbourret.com/xml/XMLDatabaseProds.htm
Tuyêt Trâm DANG NGOC - Université de Cergy-Pontoise 45jeudi 4 novembre 2004
XQuery
W3C XQueryhttp://www.w3.org/TR/xquery.html W3C XML Query Use Cases
http://www.w3.org/TR/xmlquery-use-cases.html
W3C XML Query Requirements http://www.w3.org/TR/xmlquery-req.html
W3C XML Query Data Modelhttp://www.w3.org/TR/query-datamodel.html
W3C XML Query Algebrahttp://www.w3.org/TR/query-algebra.html