Académique Documents
Professionnel Documents
Culture Documents
CoursXML
CoursXML
Hypertexte: Bush
Article As We May Think de Vannevar Bush dans lAtlantic Monthly de juillet 1945 Memex : machine permettant de lier des informations entre elles
Hypertexte : Nelson
Ted Nelson (Oxford) Inventeur du terme hypertexte Systme Xanadu (1960) Le Web doit beaucoup Xanadu Ted Nelson naime pas le Web
HTML is precisely what we were trying to PREVENT-- ever-breaking links, links going outward only, quotes you can't follow to their origins, no version management, no rights management. --- Ted Nelson
Hypertexte: Engelbart
Douglas Engelbart (Stanford Research Institute) Dveloppement du On-Line System (NLS) Prcurseur des crans bitmap, GUI, fentres, souris, hypertexte (annes 70)
Hypertexte : Atkinson
Bill Atkinson (Apple) cre Hypercard, permettant de naviguer avec des liens entre des cartes Logiciel trs populaire
Markup Languages
Markup: historiquement, ce qui permet au typographe de composer un texte pour limpression Markup codes: passage lre lectronique Problme universel: codage permettant de rendre explicite linterprtation dun texte o est-ce que les choses commencent, nissent, et comment elles se structurent Livre, chapitres, pages, paragraphes, phrases, mots...
Markup: GML
IBM Generalized Markup Language (annes 70)
:h1.Chapter 1: Introduction :p.GML supported hierarchical containers, such as :ol :li.Ordered lists (like this one), :li.Unordered lists, and :li.Definition lists :eol. as well as simple structures. :p.Markup minimization (later generalized and formalized in SGML), allowed the end-tags to be omitted for the "h1" and "p" elements.
Markup: SGML
Standard Generalized Markup Language (SGML) Norme ISO 8879 (annes 80) SGML est un mtalangage, un moyen de dcrire formellement un langage, dans ce cas un langage de marquage (ou de balisage) Grammaire dun langage dcrite avec le formalisme DTD (Document Type Denition)
Exemple SGML
<title>SGML example</title> <h1>Chapter 1: Introduction</h1> <p>SGML supported hierarchical containers, such as</p> <ol> <li>Ordered lists (like this one)</li> <li>Unordered lists, and</li> <li>Definition lists</li> </ol> <p>as well as simple structures.</p>
Linvention du Web
1989: Tim Berners-Lee travaille au CERN et invente le Web 1994: Premier navigateur Web diffus: NCSA Mosaic 200x: HTML 4.01, CSS 2.0, JavaScript, AJAX Etat de lart des technologies Web: Google Maps
Tim Berners-Lee
Le pre du WWW Inventeur des deux protocoles fondateurs du World Wide Web en 1989, HTTP et HTML Directeur du W3C depuis 1994
HTML
Cration dun nouveau langage pour reprsenter des documents: HTML (HyperText Markup Language) Inspiration: SGML Rcupration de certaines balises de SGML (<h1>, <h2>, <p>, <ol>, etc...) Rajout de balises originales
<a href=http://www.w3.org>World Wide Web Consortium</a>
HTTP
HyperText Transfer Protocol (HTTP) Protocole trs simple permettant de retrouver des documents sur le rseau par des liens hypertexte Pourquoi un nouveau protocole ? Pour la simplicit et pour tirer parti des spcicits de lhypertexte Nommage des serveurs HTTP en www.nom.nom
HTTP+HTML
GET / HTTP/1.0 Client Navigateur Web (ex: Firefox) Serveur Serveur HTTP (ex: Apache) donnes HTML
HTTP/1.1 200 OK Date: ... Server: Apache ... Content-Length: 7714 Connection: close Content-Type: text/html <HTML> <HEAD> ... </HTML>
Dmonstration
En 1991: mailing-list
Cration de la mailing-list WWW-talk Volont de discuter des diffrents choix de manire ouverte (naturel pour un chercheur) Cration de HTML+ par Dave Raggett (HP), pour amliorer la richesse de lafchage
1994: W3C
Formation du W3C en 1994 Prsident: Tim Berners-Lee Dvelopper et promouvoir des standards ouverts pour le Web
1994-200x
HTML 1.0, 2.0, 3.0, 4.0, 4.1 CSS (Cascading Style Sheets) 1.0, 2.0 JavaScript Volont du W3C depuis 1996 de promouvoir un meilleur HTML Cration de XML en 1998 (1.0) XHTML 1.0 (HTML 4.01 XMLis)
XML
La norme XML
XML : eXtensible Markup Langage Langage de balisage extensible Norme du W3C depuis 1998 Version 1.0 (fvrier 1998) Version 1.1 (fvrier 2004)
ligne
lignesAdresse
ligne
adresse
codePostal
77305
ligne
coordonnees
ville
FONTAINEBLEAU Cedex
http://www.cri.ensmp.fr
url
f="fixe" tel
01 64 69 47 08
f="fax" tel
01 64 69 48 47
Documents XML
Composs dunits de stockage appeles entits, contenant des donnes analyses syntaxiquement (parses) ou non. Ces donnes sont des caractres qui sont soit des donnes simples soit des donnes concourant au marquage (balisage).
Entits, etc...
<?xml version="1.0" encoding="iso-8859-1"?> <coordonnees> balise ouvrante <adresse> <lignesAdresse> <ligne>Centre de Recherche en Informatique</ligne> <ligne>Ecole des mines de Paris</ligne> <ligne>35, rue Saint-Honor</ligne> </lignesAdresse> lment <codePostal>77305</codePostal> <ville>FONTAINEBLEAU Cedex</ville> lment </adresse> donnes simples <url>http://www.cri.ensmp.fr</url> <tel t=fixe>01 64 69 47 08</tel> <tel t=fax>01 64 69 48 47</tel> balise fermante </coordonnees> attribut
Documents XML
Le balisage dcrit les structures logiques et de stockage du document Un document XML est BIEN FORME il respecte les rgles de XML XML fournit un mcanisme pour contraindre ces structures, les DTD (Dnition de Type de Document) Un document XML peut tre VALIDE par rapport une ou plusieurs DTD
Exemple de DTD
<!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ELEMENT <!ATTLIST coordonnees (adresse, url?, tel*)> adresse (lignesAdresse, codePostal, ville)> lignesAdresse (ligne+)> ligne (#PCDATA)> codePostal (#PCDATA)> ville (#PCDATA)> url (#PCDATA)> tel (#PCDATA)> tel t (fixe|fax|mob) fixe>
Processeur XML
Un module logiciel appel processeur XML est utilis pour lire les documents XML et fournir un accs son contenu (avec validation ventuelle). Un processeur XML effectue le travail pour un autre module, lapplication.
chier XML Processeur XML (parseur) Validation ventuelle DTD
Application
Normes associes
Unicode et ISO/CEI 10646 pour les caractres (95000 caractres possibles) La RFC Internet 1766 pour les noms de langue La norme ISO 3166 pour les noms de pays
Format ouvert
Pas de droits payer pour lutilisation de XML La spcication de XML peut tre distribue librement, condition que tout le texte et les notices juridiques demeurent intacts
Outils ddition
Voir du XML
Editeur de texte (Emacs, notepad, ...) Navigateur Web (Firefox, Explorer, ...)
Edition de XML
Un document XML est du texte, donc nimporte quel diteur de texte peut tre utilis pour crer et diter un document XML GNU emacs (www.thaiopensource.com/nxml-mode) Il existe nanmoins des diteurs XML graphiques pour aider ldition Xerlin (www.xerlin.org), open source, crit en Java
Xerlin
XHTML et CSS
XHTML et HTML
XHTML est une rcriture de HTML 4.01 sous la forme dune grammaire XML (DTD)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > ... </html>
CSS
CSS (Cascading Style Sheets) Contrle de la prsentation visuelle des pages Web Support de XML et de HTML Selon le W3C donnes: XHTML 1.1 (strict) prsentation: CSS
Langage XSLT
XSLT (XML Stylesheet Language Transformations) Langage permettant de transformer des documents XML en dautres documents XML Peut-tre vu comme un langage de feuilles de style volu Un document XSLT est lui-mme en XML
Principe de XSLT
Lecture du document XML source en mmoire Lecture du document XSLT en mmoire Application des rgles XSLT sur le document source Obtention dun rsultat
Chane de traitement
donnes document XML rsultat Processeur XML programme document XSLT Application XSLT document XML
Applications XSLT
Il existe de nombreuses implmentations de XSLT, sous la forme de bibliothques ou doutils Bibliothques/outils libxslt2 (xmlsoft.org/XSLT), outil xsltproc xalan (xml.apache.org/xalan-j) saxon (saxon.sourceforge.net) Navigateurs Web modernes
Utilisation de XSLT
Statiquement, sur le serveur, pour les traitements lourds de documents XML (xsltproc, saxon) Dynamiquement, sur le serveur pour le XML gnr dynamiquement (xalan) Dynamiquement, sur le navigateur client, avec une instruction de mise en page rajoute dans le XML
<?xml-stylesheet href="style.xsl" type="text/xsl"?>
XSL-FO
Hypothse: on veut obtenir plusieurs types de documents afchables depuis un document XML (HTML, WML, PDF, texte, RTF, ...) Plutt que dcrire une transformation XSLT par type de document afchable que lon veut obtenir, il suft dcrire une transformation XSLT qui gnre du XSL-FO Il existe ensuite des transformations XSLT toutes faites pour convertir le XSL-FO vers dautres formats
DOM
Document Object Model Hritage de HTML Permet de construire un arbre en mmoire depuis un document XML Mthodes daccs et de modication de cet arbre http://www.w3.org/DOM
SAX
Simple API for XML Lecture squentielle du document, pas de cration darbre en mmoire Association dactions (fonctions utilisateur) la lecture des lments XML, dclenches au fur et mesure de la lecture du document http://www.saxproject.org
Implmentation
Il existe une implmentation de SAX et de DOM dans tous les langages courants En standard dans JavaEE et dans .NET
Schmas XML
XML Schema
Norme du W3C Permet de reprsenter une grammaire en XML Typage des lments Contrle du contenu des lments et des attributs http://www.cri.ensmp.fr/people/silber/xml/adresse.xsd
Relax NG
Norme indpendante du W3C Permet de reprsenter une grammaire en XML Contrle du contenu des lments et des attributs Plus simple que les schmas XML http://www.cri.ensmp.fr/people/silber/xml/adresse.rng http://www.cri.ensmp.fr/people/silber/xml/adresse.rnc
Stockage du XML
Systme de chiers SGBD Relationnel XML Natif
Systme de chiers
Fichiers stocks directement sur le systme de chiers Fichiers stocks dans un SGBD sour la forme de Blobs (Binary large objects) ou de Clogs (Character large objects) Support de XPath dans certains SGBD comme MySQL Avantages: implmentation aise, utile pour un petit volume de donnes Inconvnients: laccs et la mise jour sont difciles
SGBDR
Format de stockage: tables Avantages: passage lchelle, abilit et implmentation facile Inconvnients: requiert beaucoup de jointures cause de lclatement des documents, ncessit de crer des cls articielles
SGBDR et polmiques
Jean-Jacques Thomasson dans lInformatique Professionnelle de mars 2005 L voit ainsi apparatre des livres blancs [...] dans on lesquels transpirents les vellits des directions qui souhaitent montrer leur modernisme, tout en protgeant leur fond de commerce, savoir : le march des bases et entrepts de donnes, tas dor sur lequel ces socits sont assises.
SGBDR et Polmiques 2
Ce nest pas de la science, mais de la protection dintrts nanciers. L et lautre sont respectables, un mais noyer lun dans lautre est dtestable. Ces consultants ramnent le rle de XML celui de format dchange des donnes, alors que sa vraie nature est dtre un modle de structuration de linformation. Le modle relationnel est intrinsquement inapte rsoudre la question du systme dinformation, parce quon ne rduit pas la complexit de linformation la simplicit de tableaux.
XML Natif
Base de donnes supportant de XML natif Utilisation de modles de donnes XML (Schmas) Avantages: exibilit, amlioration des performances daccs Inconvnients: moins mature que les SGBD classiques
Web Services
Dnition en 5 points
Service disponible sur Internet (ou sur un {ex,in}tranet) Utilise un systme de messages XML standardis Nest li aucun systme dexploitation/matriel Sauto-dcrit grce une grammaire XML Peut-tre dcouvert grce un mcanisme de recherche
Technologies
Technologies internet (TCP/IP, HTTP, SMTP, FTP) pour le service disponible sur Internet Messagerie XML: XML-RPC, SOAP Description du service: WSDL Recherche du service: UDDI
Messagerie
XML-RPC (www.xmlrpc.com) Protocole simple, types de donnes simples, pas un standard W3C SOAP (Simple Object Access Protocol) Norme du W3C, sparation enveloppe/donnes, types de donnes complexes
Description
WSDL (Web Service Description Language) Langage XML de description de Web Service Standard du W3C utilisant SOAP et les Schmas XML
UDDI
UDDI (www.uddi.org) Universal Description, Discovery and Integration Service permettant de rechercher des services et de rcuprer automatiquement leur description (par exemple en WSDL)
Exemples
Google http://api.google.com NEOS Server for optimization http://www-neos.mcs.anl.gov/neos Amazon http://www.amazon.com/gp/aws/landing.html
Bibliographie