Un autre langage à balise : XML
Le langage continue de connaître un développement très important.
Le but est de séparer la forme du contenu : un même document XML
pourra être mis en forme de différentes façons : document HTML, document PDF. XML => eXtensible Markup Language.
Les spécifications XML ont été émises par le W3C en 1996. A propos d'XML, on parle de langage de données semi-structurées.
Les données sont structurées quand elles sont stockées dans des bases de données.
Les données structurées permettent un traitement automatique : XML est un compromis entre la possibilité
de traitements automatiques et la disponibilité de l'information pour produire des documents finis où
l'information n'est pas distinguée de la mise en forme de cette information (PDF, HTML etc.).
Quel(s) intérêt(s) de ce langage ?
- Echange d'information
- Traitement automatique de l'information
XML et le système d'information d'une entreprise :
Un premier exemple
Soit le document exemple inventaire.xml,
comme tout document XML, l'écriture du fichier est équivalente à une représentation sous forme d'arbre :
Document bien formé
Un document doit respecter certaines règles de syntaxe, d'enchainement des balises, si il les respecte,
on dit qu'il est bien formé. La vérification se fait par un parseur avant affichage du document.
Les règles pour qu'un document XML soit bien formé :
- Declaration de version <?xml version="1.0"?> qui intervient comme première instruction du document
- Contrainte sur les noms d'élements : tous les noms ne sont pas autorisés.
- Un document XML ne peut contenir plus d'un seul élément racine. Tous
les autres éléments doivent être fils ou descendants de cet unique
élément racine.
- A chaque élément XML doit correspondre une balise de fermeture
(comme <A>...</A>) à moins que la balise soit autofermante (comme
<A/>)
- Les éléments XML ne peuvent pas se chevaucher. Par exemple cette
écriture est interdite : <A><B>...</A></B>.
- Il est interdit d'utiliser les caractères <, > et & à l'intérieur du texte d'un
document. Il faut faire appel aux entités prédéfinies <, > et &.
Documents valides
Tout un chacun peut définir un standard particulier pour des documents XML.
Un standard définit des règles dans l'enchainement des balises : il s'agit d'un document DTD (définition de type de document).
Cela peut correspondre à certaines contraintes sur la réalité à laquelle correspondent les données. On dit qu'un document
qui respecte une DTD est valide au sens de cette DTD =>
Définir un standard permet par suite le traitement automatique des documents. En formulant une DTD on définit un
ensemble d'arbres qui seront corrects au sens de cette DTD. Un document XML réference la DTD dont il se sert (il
peut ne pas en réferencer) et le logiciel qui affiche le document vérifiera que le document est valide.
Un exemple de DTD : Piece.dtd
Initialisation à la syntaxe des DTDs
- <!ELEMENT NomElt (NomElt1,NomElt2,NomElt3)>:
Cela signifie qu'un élément NomElt devra avoir comme
noeuds fils : NomElt1, NomElt2, NomElt3. Chacun des
trois élements devra être présent et dans l'ordre
spécifié.
- &li;!ELEMENT NomElt (NomElt1 | NomElt2 | NomElt3)>
Ceci signifie qu'un élement NomElt devra avoir comme
noeud fils : un élément NomElt1 ou un élement
NomElt2 ou un élement NomElt3, mais un seul des
trois
- Quelques exemple de spécifications via les DTD :
<!ELEMENT Livre (AUTEUR,TITRE,RESUME)>
Un noeud livre devra avoir un noeud fils auteur,
un noeud fils titre et un noeud fils resumé.
-
<!ELEMENT Film (#PCDATA | (REALISATEUR,
TITRE, DUREE))>
Un film a soit un noeud PCDATA, soit 3 noeuds :
un noeud réalisateur, un noeud titre et un
noeud durée.
- Les symboles : * => 1 ou plusieurs occurences de l'objet, + =>
aucune une ou plusieurs occurences de l'objet, ? => 0 ou 1 occurence de l'objet
-
<!ELEMENT LIVRE(AUTEUR,TITRE,CHAPITRE+)>
Ici, on sépecifie qu'un Livre devra avoir un auteur, un titre ou
un ou plusieurs chapitres
-
<:!ELEMENT LIVRE(#PCDATA,(CHAPITRE+ | RESUME?))>
Ici on spécifie qu'un livre devra avoir un noeud fils qui
contient un ensemble de caractère et soit une liste de
chapitre (avec au minimum un chapitre, soit un resume)
- Pour rattacher un document XML à sa DTD, la première solution consiste à intégrer la DTD dans le document :
<?xml version="1.0"?>
<!DOCTYPE listDoc [
<!ELEMENT listDoc (doc*)>
<!ELEMENT doc (ref, tit, auteur*, resume)>
<!ELEMENT tit (#PCDATA)>
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT resume (#PCDATA)>
]>
<listDoc>
<doc>...</doc>
<ref>...</ref>
...
</listDoc>
- Rattacher un document à sa DTD, la deuxième solution consiste à
faire réference au document .dtd dans lequel on a mis les instructions.
Dans ce cas plusieurs documemnts peuvent faire réference à une DTD.
Mise en forme de XML
Exemples d'utilisation : quelques généralités
- Echange de données
- Définitions de services Web
- Définitions de standard traitables
automatiquement
- Interfaçage avec les bases de données : il est
très facile de concevoir table -> document xml.
- Un exemple particulier : les flux RSS :
http://www.01net.com/rss/actus.xml
Exercices de base
Quelques exercices sur la notion de documents biens formés et la notion de documents valides :
TDXML
Un exemple d'utilisation : Les Webs Services
HTML et XML peuvent intervenir au niveau de la couche applicative pour différentes formes d'applications.
Par exemple Intranet, Extranet reposent sur HTML etc. XML sert à fonder d'autres applications dont les Webs services.
Les services Web assurent l'interaction, à travers le réseau Internet, entre les
applications, les ordinateurs et les processus métier via les protocoles internet et
XML en permettant d'accéder de manière uniforme, à partir d'un seul site web à plusieurs services applicaifs distants.
Ce nouveau modèle de programmation et de déploiement d'applications assure l'interconnexion de
services logiciels en se basant sur les standards suivant facilitant le transport, l'invocation, la description et
la recherche des services web. Les standards sont issus du W3c.
- Le protocole HTTP
- Le protocole SOAP (Simple Object Access Protocol) qui repose sur HTTP. SOAP définit
une enveloppe dans laquelle sont placées les données. C'est un protocole de communication
interapplicatif comportant un ensemble de règles commues pour structurer les messages
XML et invoquer un service web. Le message SOAP tranistant sur Internet est lui même codé
en XML. Il transporte à la fois les données méters échangées enre les deux objets distants
et les données techniques nécessairs à la bonne exécution de l'appel : nom de la méthode appelée,
type des données métiers transportées, etc...
- WSDL (Web Services Description Language). Langage basé sur XML, décrit les fonctionalités
constituant l'interface d'un service web Les outils de développements doivent être capables de générer
et de consommer automatiqueemnt ces documents WSDL pour faciliter le développement et l'utilisation
des services. Le fichiers WSDL résultant expose les méthods de l'objet COM, Java, C++ ou tout
autre application, de manière à ce que n'importe quel aure Web service puisse comprendre cette interface.
- UDDI (Universal Description, Discovery and Integration) est le standard qui définit un système d'annuaire permettant
d'automatisre la découverte dynamique des services web existants. Ce protocole, égalements au format XML permet
de répertorier de façon homogène l'ensemble de services dans un annuaire XML accessible sur Internet.
Il existe des méthodes de communication interapplicatives sur des DCOM (Windows), RMI (Java), IIOP. La solution
des webs services garantit l'interopérabilité en reposant sur des technologies plus légères. La communication
peut être intra-entreprise ou inter-entreprises.
Etape d'exécution des services Web
Les principales étapes d'exécution d'un service Web sont :
- Découverte du service, le demandeur de service récupère de l'annuaire UDDI la description de ce service au format WSDL
- Récupération des informations de description du service. Le demandeur de service récupère de l'annuaire UDDI la description
de ce service au format WSDL
- Connexion au service Web. La communication entre le composant demandeur du service et le fournisseur du service est
assuré via des wrappers SOAP. Le composant demandeur envoie une requête SOAP au composant fournisseur du service.
- Le service Web renvoie sa réponse. La réponse est envoyé sous la forme d'un document XML via SOAP
Etapes de développement des services Webs :
Le développement d'un service Web consiste rendre disponible des fonctions applicatives selon un schéma XML normalisé.
Les étapes du développement sont les suivantes :
- Création du fichier de description d'un composant logiciel. Le fichier de description est au format WSDL
- Génération des modules permettant d'émettre des requêtes SOAP et de réagir aux requêtes SOAP recçues.
Un Standard dérivé : kml
KML pour Keyhole Markup Language. Standard pour la visualisation de cartes en 2D ou 3D. Création par Keyhole,
société rachetée par Google en 2004, Keyhole fait reférence aux satellites de reconnaissance. Utilisation du standard dans Google earth,
Microsoft Virtual Earth, Google Maps etc...
Il est possible de faire un lien vers des cartes sur des sites Web en utilisant "Liens" sur Google maps, à partir du fichier suivant http://rdorat.free.fr/Enseignement/XML/UnivPII.kml
Un lien vers le site principal de Paris 2
Il est possible d'intégrer directement un cadre contenant le contenu là aussi en utilisant lien, à partir du fichier http://rdorat.free.fr/Enseignement/XML/Valencia.kml :
Agrandir le plan