Technologies internet
Introduction à XML (1)
Voir liens.
- Standard pour l'échange de données sur le web (1998)
- XML est un langage pour représenter des données textuelles de telle manière
qu'elles puissent être lues et traitées par n'importe quel programme ou
outil.
- Il décrit la syntaxe, pas le formattage.
La généalogie XML
HTML
- Application SGML spécialisée pour la présentation de documents sur le web.
- S'intéresse à la fois à la structure et à la présentation.
- La syntaxe (DTD) est « câblée » dans les applications.
- Impose certaines des simplifications autorisées par SGML.
- Très permissif : les navigateurs sont codés pour afficher à tout prix.
- Empoisonné par la course aux extensions entre navigateurs.
Caractéristiques:
XML est un format textuel très flexible dérivé de SGML. Initialement conçu
pour relever les défis de l'édition électronique de grande puissance, XML
joue également un rôle de plus en plus important dans l'échange d'une
grande variété de données, que ce soit sur le Web ou pour n'importe quel
échange inter-applicatif.
- XML permettra, comme le souligne le W3C: l'édition électronique
internationalisée, de façon indépendante des logiciels et des
systèmes
- aux industries de définir des protocoles, indépendants des logiciels
et des systèmes, pour l'échange des données (particulièrement les
données du commerce électronique)
- de fournir de l'information aux agents utilisateurs sous une forme
qui permettra un traitement automatique après réception, par exemple
pour toutes les applications de téléphonie mobile
- de faciliter le développement logiciel dès lors qu'il s'agit de
manipuler l'information spécialisée et répartie
- de faciliter les traitements de données avec des logiciels peu
coûteux ; à ce titre, l'avenir d'XML et d'un certain nombre de
ses recommandations associées (XSLT, XPath, Infoset, etc.) est
de devenir partie intégrante des couches hautes des systèmes
d'exploitation
- aux utilisateurs du Web d'afficher l'information reçue avec la
feuille de styles qu'ils souhaitent
- de faciliter la fourniture de Métadonnées (données descriptives de
documents) qui aide à trouver de l'information.
Exemple :
Code HTML
<DL>
<DT>Mambo
<DD>by Enrique Garcia
</DL>
<UL>
<LI>Producer: Enrique Garcia
<LI>Publisher: Sony Music Entertainment
<LI>Length: 3:46
<LI>Written: 1991
<LI>Artist: Azucar Moreno
</UL>
Code XML
<SONG>
<TITLE>Mambo</TITLE>
<COMPOSER>Enrique Garcia</COMPOSER>
<PRODUCER>Enrique Garcia</PRODUCER>
<PUBLISHER>Sony Music Entertainment</PUBLISHER>
<LENGTH>3:46</LENGTH>
<YEAR>1991</YEAR>
<ARTIST>Azucar Moreno</ARTIST>
</SONG>
Un autre exemple: données structurées
<?xml version="1.0"?>
<SCHOOL>
<CLASS type="seminar">
<CLASS_TITLE>XML In The Real World</CLASS_TITLE>
<CLASS_NUMBER>6.031</CLASS_NUMBER>
<SUBJECT>XML</SUBJECT>
<START_DATE>6/1/2002</START_DATE>
<STUDENTS>
<STUDENT status="attending">
<FIRST_NAME>Edward</FIRST_NAME>
<LAST_NAME>Samson</LAST_NAME>
</STUDENT>
<STUDENT status="withdrawn">
<FIRST_NAME>Ernestine</FIRST_NAME>
<LAST_NAME>Johnson</LAST_NAME>
</STUDENT>
</STUDENTS>
</CLASS>
</SCHOOL>
Et encore un autre exemple :
<?xml version="1.0" encoding="iso-8859-1"?>
<book xmlns="http://www.biblio.org/books"
xmlns:isbn="urn:ISBN:0-395-36341-6" pages="123">
<isbn:number>1568491379</isbn:number>
<title xml:lang="en">
Being a Dog Is a Full-Time Job
</title>
<author>Charles M. Schulz</author>
</book>
XML et le Web
Validation
- un document valide se conforme soit à une DTD soit à un XML
Schema
- les DTD constituent une approche traditionnelle de la validation
- les schémas XML sont leurs successeurs logiques et
offrent des possibilités de validation plus sophistiquées
Analyse syntaxique (parsing)
Il est essentiel pour le receveur d'un document XML de pouvoir extraire
les données du document. Cette opération est possible à l'aide d'un outil
appelé analyseur ou parseur.
Le parseur permet :
- d'extraire les données d'un document XML
- de vérifier éventuellement la validité du document.
Il existe deux catégories de parsers :
- analyseurs basés sur un mode événementiel permettent de réagir à des
événements (comme le début d'un élément, la fin d'un élément) et de renvoyer
le résultat à l'application utilisant cette API.
SAX (Simple API for XML) est la principale interface utilisant cette approche.
- analyseurs utilisant une approche hiérarchique : ils construisent une
structure hiérarchique contenant des objets représentant les éléments du
document, et dont les méthodes permettent d'accèder aux propriétés.
La principale API utilisant cette approche est DOM (Document Object
Model)
Java et XML
- il existe plusieurs API Java pour supporter le traitement de
documents XML en Java: SAX, DOM, JDOM
- les analyseurs syntaxiques XML Java peuvent lire du XML à partir
- d'un fichier texte
- d'un InputStream
- d'une URL
- si une DTD ou schéma est spécifié, les analyseurs s'assureront
de la validité du XML pendant le processus d'analyse
SAX (Simple API for XML)
- SAX est aujourd'hui la méthode d'analyse syntaxique la plus utilisée.
- SAX est uniquement responsable du parcours du début à la fin des données
XML et de l'envoi d'événements de notification lorsque du texte
ou d'autres éléments sont rencontrés;
il est alors la responsabilité du récepteur de ces événements de
traiter les données
- les analyseurs syntaxiques SAX Java sont écrits à l'aide d'une série
d'interfaces. La plus importante est
org.xml.sax.ContentHandler
- ce mode d'interprétation des documents XML utilise donc moins de mémoire que DOM;
notons que tout retour en arrière dans le document nécessite de recommencer
l'interprétation.
- le site officiel de SAX
DOM
Voir cette section.
XSLT
Une transformation XSLT sur le client :
- permet un traitement au niveau du navigateur
- la version 2.0 pas encore supporté par tous les éditeurs
- processeurs XLST Java:
- JAXP de Sun
- Xalan d'Apache
- XT (gratuit)
- SAXON
- un processeur Java peut être exécuté depuis la ligne de commande ou
depuis une servlet
- processeur XML-SPY (altova)
Avantages
- facilite le développement de langages maison
- données décrivent elles-mêmes
- données et balises emmagazinées en format texte
- pas nécessaire de stocker des données simples dans de grands fichiers
- plusieurs "initiatives" basées sur XML; exemples :
- XACML : un langage pour les politiques de contrôle d'accès
- XPDL : un standard de la Workflow Management Coalition qui permet de définir un processus métier ou processus d'affaires à l'aide du langage XML
- SOAP : un protocole de RPC orienté objet bâti sur XML
- WSDL (Web Services Description
Language) : une interface publique d'accès à un Service Web (dans le cadre d'architectures de type SOA)
- BPEL (Business Process Execution Language): un langage de description des procédures d'entreprise, une extension de WSDL
- Programmes et outils peuvent générer des documents XML qui ensuite peuvent
être lus ou traités par d'autres programmes et outils.
Par exemple, une application J2EE peut utiliser XML pour produire des
rapports, et de différentes entreprises qui recoivent ces rapports
peuvent traiter les données selon leurs besoins.
- entreprise A pourrait traduire les données XML au code HTML pour
publier ces rapports sur le Web,
- entreprise B pourrait passer les données XML par un outil pour créer
une présentation marketing,
- entreprise C pourrait lire les données XML dans son application J2EE
pour un traitement.