Académique Documents
Professionnel Documents
Culture Documents
XML - 1
Sommaire
Fondements de la technologie XML Modlisation et validation de documents XML Prsentation des documents XML Programmation en utilisant XML
XML - 2
XML - 3
Modles de document
Structure logique
Dcrit le contenu dun document (information) Par exemple: Chapitre, section, paragraphes, figures, notes
Structure physique
Dcrit la forme et le support du document (formatage) Par exemple: tomes, pages, cadres, pavs, fentres
XML - 5
Paragraphe
Section
XML - 6
XML - 8
SGML: prsentation
Une norme internationale :
Standard Generalized Markup Language ISO 8879 - 1989
SGML : objectifs
Sparation du fond et de la forme
possibilit de multiples prsentations un seul document en SGML plusieurs formats : Postcript, HTML, etc.
Support de traitements sur le contenu des documents sans prise en compte de la forme Proposition dun cadre dfini pour lexpression des modles documentaires (validit, contrle) Format de stockage et dchange normalis
SGML
Tarak CHAARI - Dpt Tlcommunications XML - 12
SGML : critiques
Trs lourd et complexe pour la mise en uvre de documents respectant ce format Une grande rigueur est demande l'entre des documents Standard complexe et complet pour le traitement des documents Liens hypertextes possibles mais complexes
SGML
Tarak CHAARI - Dpt Tlcommunications XML - 13
HTML : prsentation
Propos par le W3C comme format de documents sur le Web Langage simple avec des balises standardises permettant la mise en forme dun texte. Standard reconnu par tous les navigateurs. Langage trs populaire sur le Web
<HTML> <HEAD> <TITLE> Exemple </TITLE> </HEAD> <BODY> <H1>Contenu du document</H1> <A HREF = "http://www.server.fr/Info /dir/test.html"> une rfrence externe</A> </BODY> </HTML>
HTML
XML - 14
HTML : inconvnients
Normalisation des diffrentes balises difficile
les constructeurs ont eu tendance dfinir leurs propres balises pour rpondre leurs besoins (incompatibilit) HTML est ddi pour un seul type de terminaux
HTML
spcialisation de SGML adapt la prsentation inadapt l'change entre programmes
HTML
XML - 16
XML : Prsentation
XML= un nouveau langage d'change bas sur le balisage XML= plus simple que SGML XML= plus ouvert que HTML XML = dvelopp par XML Working Group dirig par le W3C (depuis 1996) XML 1.0 = recommandation officielle du W3C depuis le 10 fvrier 1998
Origines
Tarak CHAARI - Dpt Tlcommunications XML - 17
Forces de XML
Sparation de la structure et de la prsentation Moins confus que HTML Plus simple que SGML Idal pour l'change de donnes semi-structures Utilisable entre machines htrognes
Origines
Tarak CHAARI - Dpt Tlcommunications XML - 20
Concepts de XML
Balise (ou tag ou label)
Marque de dbut et fin permettant de reprer un lment textuel Forme: <balise> de dbut, </balise> de fin
Elment de donnes
Texte encadr par une balise de dbut et une de fin Les lments de donnes peuvent tre imbriques
<producteur> <adresse> <rue>A. Einstein</rue> <ville>Villeurbanne</ville> </adresse> </producteur>
Attribut
Doublet nom="valeur" qualifiant une balise
<producteur no="160017" region="Rhne">
XML
XML - 23
XML - 24
XML - 25
XML - 26
Quand utiliser les attributs? - Valeur unique de type simple (information monovalue) Quand utiliser les lments? - Valeur de type complexe (numrations, possde des proprits)
Tarak CHAARI - Dpt Tlcommunications XML - 27
Espaces de noms
Comment mixer des tags (ou balises) issus de diffrents langages? Un espace de noms est caractris par un prfixe
Le prfixe permet de retrouver le langage <!- dfinition des espaces de noms -> <tag xmlns:mic="http://www.michelin.com/2001/Guide", xmlns:pj="http://www.pagejaune.com/2001/Annuaire"> <! utilisation des espaces de noms -> <mic:Adresse><ville>Villeurbanne</ville><zip>69100</zip></mic:Adresse> <pj:Adresse>Villeurbanne 69 Rhne</pj:Adresse>
Production de documents XML partir de services (couche mtier) Transformation de ces documents pour des formats daffichage, dimpression, de transfert..
Tarak CHAARI - Dpt Tlcommunications XML - 29
XML - 30
XML - 32
Approche Donne
Structuration forte et simple Compatibilit SGBDR existants Mise jour en place Intgrit smantique Indexation exacte Adapt au transactionnel et dcisionnel Performances attendues moyenne forte pour une volumtrie moyenne
Approche Document
Structuration faible et complexe Systmes documentaires spcialiss Gestion de versions Recherche textuelle Indexation approche Accs type moteur de recherche Performances attendues moyenne pour une volumtrie forte
XML - 33
Pourquoi XML ?
Equivalences BD / XML
Une table dans une BD peut correspondre un document XML (elle correspond en rel une classe dobjets)
<class name="person">
Une ligne dans la table dcrit une instance dun objet. Elle correspond un lment XML
<instance id="Person_001">
HyTime
XLink
XPointer
Besoins spcifiques
Programmation
SMIL
XML
WAP SOAP
Interrogation / recherche
Description de ressources
UIML
XUL
RDF Mpeg-7
XML - 37
XML - 38
Introduction
Un document XML peut tre associ :
une DTD ou un schma pour dcrire les balises Une feuille de style pour prsenter les donnes
Une DTD ou/et un schma permettent de dfinir son propre langage bas sur XML
Vocabulaire (balises) Grammaire (imbrications) Dialecte ou Jargon
Introduction
XML - 40
Le document a une seule racine Un attribut est unique dans son lment
REPONSE 1:
REPONSE 2:
REPONSE 3:
Tarak CHAARI - Dpt Tlcommunications XML - 42
DTD
Permet de dfinir le vocabulaire et la structure qui seront utiliss dans le document XML Grammaire du langage dont les phrases sont des documents XML (instances) Peut tre mise dans un fichier (DTD externe) et tre appele dans le document XML
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 43
Exemple
<! ELEMENT Nom (#PCDATA)> <Nom>Victor Hugo</Nom>
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 44
DTD
XML - 45
<!ELEMENT personne (nom, prenom+, tel?, adresse) > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT tel(#PCDATA) > <!ELEMENT email (#PCDATA) > <!ELEMENT adresse (ANY) > <personne> <nom>Hugo</nom> <prenom>Victor</prenom> <prenom>Charles</prenom> <tel>01120243</tel> <adresse><rue></rue><ville>Paris</ville></adresse> </personne>
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 46
Dclaration d'attributs
<! ATTLIST balise Attribut Type Mode >
balise spcifie l'lment auquel est attach l'attribut Attribut est le nom de l'attribut dclar Type dfinit le type de donne de l'attribut choisi parmi:
CDATA
Chanes de caractres entre guillemets ("aa") non analyses
Enumration
Liste de valeurs spares par | <! ATTLIST balise Attribut (Valeur1 | Valeur2 | ... ) >
ID et IDREF
Cl et rfrence cl
DTD
XML - 47
Exemple d'attributs
<! ATTLIST personne num ID, age CDATA, genre (Masculin | Feminin ) > <!ELEMENT auteur (#PCDATA) > <!ELEMENT editeur (#PCDATA) > <!ATTLIST auteur genre (Masculin | Feminin ) #REQUIRED ville CDATA #IMPLIED> <!ATTLIST editeur ville CDATA #FIXED "Paris">
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 48
Exemple de DTD
DTD
XML - 49
</DOCUMENT>
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 50
DTD externe
Modle pour plusieurs documents
partage des balises, attributs et structures
Exemple de document
<?xml version="1.0" standalone="no"?> <!DOCTYPE modeles SYSTEM "modeles.dtd"> ...
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 51
Prcdence
Regrouper les dclarations d'entits en tte
Abstraction
Utiliser des entits pour les modles de contenus
Spcificit
viter les DTD trop gnrales
Simplicit
Dcouper les DTD trop complexes
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 54
Propositions de complments
XML-schema du W3C
DTD
Tarak CHAARI - Dpt Tlcommunications XML - 57
XML Schma
Un schma d'un document dfinit:
les lments possibles dans le document les attributs associs ces lments la structure du document et les types de donnes
XML - 60
XML - 61
ID
"A212"
byte
-1, 126
IDREF
"A212"
integer
-126789, -1, 0, 1, 126789
IDREFS
"A212" "B213"
positiveInteger
1, 126789
negativeInteger
-126789, -1
anyURI
http://www.example.com/e1.html#5
hexBinary
0FB7
language
en-GB, en-US, fr
int
-1, 126789675
dateTime
1999-05-31T13:20:00.000-05:00
unsignedInt
0, 1267896754
Et beaucoup dautres
Short, long, float
boolean
true, false 1, 0
date
1999-05-31
Schema
XML - 62
Exemple
<xs:complexType name="AddresseFR"> <xs:sequence> <xs:element name="nom" type="xs:string"/> <xs:element name="rue" type="xs:string"/> <xs:element name="ville" type="xs:string"/> <xs:element name="codep" type="xs:decimal"/> </xs:sequence> <xs:attribute name="pays" type="xs:NMTOKEN" fixed="FR"/> </xs:complexType>
Schema
Tarak CHAARI - Dpt Tlcommunications XML - 63
Hritage de types
Dfinition de sous-types Exemple dextension : <xs:complexType name="AdressePays"> par hritage
Par extension : ajout d'informations Par restriction : ajout de contraintes <xs:complexContent> <xs:extension base="Adresse"> <xs:sequence> <xs:element name="pays type="string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
Schema
XML - 64
Les patterns
Contraintes sur type simple prdfini Utilisation d'expression rgulires
Similaires celles de Perl
Exemple de restriction
<xs:simpleType name="num5"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}"/> </xs:restriction> </xs:simpleType> Autres facettes de restriction - xs:mininclusive, xs:maxexclusive, xs:enumeration, xs:length
Tarak CHAARI - Dpt Tlcommunications XML - 65
Schema
Rutilisation de types
Type simple avec extension <xs:simpleType name="num5"> <xs:restriction base="xs:string"> <xs:pattern value="\d{5}"/> </xs:restriction> </xs:simpleType> Type complexe (squence) <xs:element name="livre"> <xs:complexType> <xs:sequence> <xs:element name="Titre" type="xs:string"/> <xs:element name="Auteur" type="xs:string"/> <xs:element name="ISBN" type="num5"/> </xs:sequence> </xs:complexType> </xs:element>
XML - 66
Les occurences
Une bibliothque contient au moins un livre
<xs:element name="biblio"> <xs:complexType> <xs:sequence> <xs:element ref="livre" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element>
XML - 67
Groupage dlments
<xs:group name="TitreAuteurISBN"> <xs:sequence> <xs:element name="Titre" type="xs:string"/> <xs:element name="Auteur" type="xs:string"/> <xs:element name="ISBN" type="num5"/> </xs:sequence> </xs:group> <xs:element name="livre"> <xs:complexType> <xs:sequence> <xs:group ref="TitreAuteurISBN"/> <xs:element ref="traduction"/> </xs:sequence> </xs:complexType> </xs:element>
Tarak CHAARI - Dpt Tlcommunications XML - 70
Schema
XML - 71
CSS
Cascading Style Sheets
XSL
eXtensible Stylesheet Language
XML - 74
Principes
Cascade Correspondance dlments (slecteurs)
Tarak CHAARI - Dpt Tlcommunications XML - 75
CSS: Syntaxe
Attachement dune feuille de style un document
<xml-stylesheet type="text/css" href="livre.css"?>
Syntaxe gnrale
Slecteur {proprit: valeur; proprit: valeur;}
Slecteur
Voir http://www.w3.org/TR/REC-CSS2/selector.html
el el1 el2 el [att=foo ] el:hover el:first-line Les lments el Les lments el2 descendants de el1 Les lments el contenant un attribut att de valeur foo Un lment el lorsquil est survol par la souris La premire ligne dun lment el
XML - 76
CSS: proprits
Mesure des longueurs
Mesure relatives: em, ex, %
font-size: 1.2em; (1.2 * la taille de llment parent) line-height: 3ex; (3 * la taille dune minuscule)
Couleurs
Prdfinis: black, blue, green, maroon, yellow, Numriques: #rrvvbb, rgb (n, n, n)
Exemple
texte { font-size: 1.2em; line-height: 3ex; }
XML - 77
XML - 78
Proprit
slecteur
instruction
XML - 79
Faiblesses de CSS
CSS a t initialement prvu pou la prsentation des documents HTML Mme dfauts que HTML
- Syntaxe non modifiable et non extensible - Syntaxe difficile normaliser - Difficults pour trouver des lments
Tarak CHAARI - Dpt Tlcommunications XML - 80
Exemples:
image [@imgsrc=joconde.jpg] /livre/listeEmprunts/emprunt[2]/sortie
Tarak CHAARI - Dpt Tlcommunications XML - 81
XML - 82
Ct serveur
En invoquant un formateur par CGI, PHP ou ASP En invoquant un formateur programm (ex: Saxon, Xalan) En utilisant un cadre de publication XML ( ex: Cocoon)
Tarak CHAARI - Dpt Tlcommunications XML - 83
Ensemble de rgles
XML - 84
Rgles nommes
<xsl: call-template name="format-date">
<xsl:template name="format-date"></xsl:template>
XML - 85
Conditions
<xsl: if test="condition"> </xsl: if > <xsl: choose> <xsl: when test="condition" > </xsl: when> </xsl: choose>
Tarak CHAARI - Dpt Tlcommunications XML - 86
Exemple XSLT(1/4):
Document XML dorigine
XML - 87
Exemple XSLT(2/4):
feuille de style
XML - 88
Exemple XSLT(2/4):
feuille de style (suite)
XML - 89
Exemple XSLT(2/4):
document produit
XML - 90
XML - 91
Serveurs d'applications
XML - 92
Types d'vnement :
dbut et fin de document ; dbut et fin d'lments ; attributs, texte, .
Document XML
Stream XML
Parser
Evnement startElement
. Evnement endDocument
Default Handler
SAX
XML - 95
ErrorHandler
fatalError error warning
ContentHandler
SAX
EntityResolver
resolveEntity
XML - 96
Default Handler
Principales mthodes:
XML - 97
Exemple SAX
<personne> <nom> Cover </nom> <prenom> Harry </prenom> <adresse> <rue> Stendhal </rue> <ville> Paris </ville> </adresse> </personne> startDocument () startElement (personne) startElement (nom) characters (Cover) endElement (nom) startElement (prenom) characters (Harry) endElement (prenom) startElement (adresse) startElement (rue) characters (Stendhal) endElement (rue) startElement (ville) characters (Paris) endElement (ville) endElement (adresse) endElement (personne) endDocument ()
XML - 98
XML - 99
(libre)
Application
DOM
XML - 101
NodeList <Restaurant>
Element
<Guide>
<Restaurant id="R1">Le meilleur restaurant</Restaurant>
</Guide>
DOM
XML - 102
XML - 103
Org.w3c.dom.Document
Interface qui reprsente une arborescence XML
XML - 104
Org.w3c.dom.Element
Interface reprsentant un lment XML
String getAttribute(String name) Retrieves an attribute value by name. Attr getAttributeNode(String name) Retrieves an attribute node by name. NodeList getElementsByTagName(String name) Returns a NodeList of all descendant Elements with a given tag name, in the order in which they are encountered in a preorder traversal of this Element tree. String getTagName() The name of the element. void removeAttribute(String name) Removes an attribute by name. void setAttribute(String name, String value) Adds a new attribute.
XML - 105
Org.w3c.dom.Attr
Interface reprsentant un attribut XML
String getName() Returns the name of this attribute. Element getOwnerElement() The Element node this attribute is attached to or null if this attribute is not in use. boolean getSpecified() If this attribute was explicitly given a value in the original document, this is true; otherwise, it is false. String getValue() On retrieval, the value of the attribute is returned as a string. void setValue(String value) On retrieval, the value of the attribute is returned as a string.
XML - 106
Document: <nom ville ="Paris"> <prenom> Jean </prenom> <nomfa> Dupont </nomfa> </nom>
DOM
XML - 107
SAX et DOM
SAX DOM
Gourmand en mmoire
Tarak CHAARI - Dpt Tlcommunications XML - 108
Outils XML
Editeurs
XML SPY
Browsers
Mozilla
Convertisseurs
Xalan
Parseurs
SAX, JDOM
Serveurs XML
Cocoon (cadre de publication XML)
Tarak CHAARI - Dpt Tlcommunications XML - 109
Pour finir
QUESTION:
Quest ce quon peut faire avec XML?
REPONSE:
Imagination is more important than knowledge
Albert Einstein
XML - 110
Rfrences
Elliotte Rusty Harold, XML bible, 2nd Edition, Wiley, 2001, 1206 pages. Alain michard, XML: langage et applications, Eyrolles, 2000 Support de cours en ligne de George Gardarin, http://perso.orange.fr/georges.gardarin/Cours2003.htm T. Bray et.al. (ed.). Extensible Markup Language (XML) 1.0. World Wide Web Consortium (W3C), February 1998. http://www.w3.org/TR/REC-xml B. McLaughlin. Java and XML. OReilly and Associates, Sebastopol, 2000
XML - 111