SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
TECHNOLOGIES XML
TECHNOLOGIES XML
Master IT 2013/2014
Prof. M.D. RAHMANI
1
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
PLAN
 Les bases de XML
Syntaxe, éléments, attributs, arbres, document bien formé,
Espace de noms
 Les Grammaires XML
Document XML valide (DTD , XML Schéma)
Document XML valide (DTD , XML Schéma)
 XML: recherches et transformation
XPath, XSLT
 Programmation XML
DOM, SAX
2
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
BIBLIOGRAPHIE
 J.C.Bernadac, F. Knab, Construire une application XML,
Ed. Eyrolles (1999).
 A. Michard, XML, Langage et Applications, Ed. Eyrolles
(1999).
(1999).
 S. Lecompte,T. Boulager,, XML par la pratique (2ème edition),
Ed. ENI
3
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
WEBOGRAPHIE
- Tous les liens sur XML et SGML:
http://www.oasis-open.org/cover
- Les recommandations W3C :
 la page XML http://www.w3.org/XML
 la recommandation XML http://www.w3.org/TR/REC-xml
- Cours XML :
- Cours XML :
- Olivier carton
http://www.liafa.jussieu.fr/~carton/Enseignement/XML/Cours/support.pdf
- Cours et tutoriels: http:/xml.developpez.com/cours
- Cours XML université Pierre et marie curie: http://www.gchagnon.fr/cours/xml
- Université Aix-Marseille
http://www.dil.univ-mrs.fr/~tichit/java/CoursXML_1_XML.pdf
- Cours CNAM:
http://www.infres.enst.fr/~talel/cours/bda/enst-xml-xpath-xslt-t3-02-03.pdf
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 4
Définitions
XML est un méta-langage qui permet de créer
des langages de balisage adaptés aux types
des langages de balisage adaptés aux types
d’informations à décrire
XML est un langage de description de
document.
5
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Historique
 1986: SGML (Standard Generalized e la structure d’un document.
Il propose à la fois une approcheMarkup Language) fut adopté par
l’ISO pour normaliser la description d générale et ouverte, mais assez
complexe à mettre en œuvre.
( 20 % seulement de la fonctionnalité de SGML était utilisée).
 1990 marque la naissance de HTML (Hypertext Markup Language)
 Le nouveau langage rendit nécessaire la création d’un nouveau protocole
destiné au transfert des données HTML, c’est la naissance du HTTP
(Hypertext Transfert Protocol ).
 Les serveurs http mettent les pages HTML à la disposition de l’utilisateur,
les documents sont lus à l’aide des navigateurs.
6
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Historique
 1993 apparut MOSAIC, le premier navigateur WEB avec
interface graphique.
 A l’origine était sous UNIX, puis sous Windows, son
concepteur Marc Anderesen est le fondateur de la société
NETSCAPE.
 1996: Le consortium W3C (Word Wide Web Consortium) et les
grandes entreprises des logiciels se sont mis d’accord pour
définir un langage de balisage normalisé.
 1998: La 1ère version 1.0 des spécifications de XML
(eXtensible Markup Language ou langage de balisage
extensible) a fait l’objet d’une recommandation XML 1.0.
7
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Caractéristiques de XML
 Tout comme son parent SGML, XML est un méta-langage.
XML permet la définition d’un langage pour décrire la structure de
l’information associée à un type de document donné.
 Le mot markup rend compte du fait que XML permet d’identifier les différents
éléments d’un document au moyen de balises
HTML n’est qu’une application de SGML avec une syntaxe figée et non
 HTML n’est qu’une application de SGML avec une syntaxe figée et non
extensible.
 XML est extensible: on peut créer autant de balises que l’on souhaite.
Les balises HTML servent à formater les informations.
Les balises XML ne servent qu’à structurer les documents.
Remarque: Un document XML ne possède aucune information sur la manière dont
il doit être affiché sur un écran d’ordinateur.
8
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Editeurs XML
 Notepad++: http://notepad-plus-plus.org/fr/
 jEdit: http://www.jedit.org/
 XMLWriter: http://xmlwriter.net/
 XMLWriter: http://xmlwriter.net/
 Eclipse: https://www.eclipse.org/
 Editix XML Editor: http://www.editix.com/
 Oxygen XML Editor: http://www.oxygenxml.com/
9
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Exemple d'un document XML
demo.xml
1- ?xml version=1.0?
2- demoXML
3- messageVoici du XML/message
4- /demoXML
4- /demoXML
Explication:
1- prologue: déclaration du type de document.
2- la balise ouvrante de l'élément racine du document
3- un sous élément avec un contenu
4- la balise fermante de l'élément racine du document
10
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Exemple: demo1.xml
1. PROLOGUE
?xml version='1.0' encoding='ISO-8859-1' ?
déclaration, encodage ISO-Latin
!-- fichier demo.xml --
commentaire
la DTD, s'il y a, est dans le prologue
2. ARBRE d'ELEMENTS
demoXML
élément racine du document
messageVoici du XML/message
élément = balise d'ouverture + contenu + balise de fermeture
balise d'ouverture peut contenir des attributs
/demoXML
11
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
I- Le prologue:
1- Une déclaration qui annonce qu’il s’agit d’un document XML.
?xml version=1.0 [encoding=chaine] [standalone=yes|no]?
?xml ? est une déclaration
- l'attribut encoding précise l'encodage des caractères du document
: UTF-8, UTF-16, US-ASCII l'ascii sans caractère accentué,
ISO-8859-1 français.
- standalone précise si le document est seul (sans DTD) ou non
(auquel cas une instruction !DOCTYPE ... est nécessaire)
12
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
2- instructions de traitement :
?application argument1 arg2 ... argN?,
qui ne font pas parties du document au sens XML.
Ce sont des instructions au processeur XML.
Exemple:
Exemple:
?stylesheet TYPE=text/css HREF=feuille.css?
Il s'agit dans ce cas d'associer une feuille de style CSS au
document XML
3- commentaire
!-- commentaire --
13
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
II- Arbre d'éléments:
 Le contenu est structuré en éléments qualifiés par des attributs avec
des valeurs
 Un élément est représenté par une paire de balises et son contenu
 Les balises décrivent la structure du texte, pas sa présentation
 Les balises décrivent la structure du texte, pas sa présentation
 Les balises ouvrantes peuvent porter zéro, un ou plusieurs attributs
qui donnent des précisions sur les éléments et leur contenu
 Un attribut a un nom et une valeur
 Eléments et attributs ne sont pas prédéfinis, mais choisis en
fonction du type de document à représenter
 Le balisage est indépendant du système où il est créé et des
traitements à effectuer
14
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
Arbre d'éléments:
- un seul élément racine du document,
- les balises doivent être correctement emboîtées,
- les noms des éléments et attributs suivent la spécification des
namespaces, espaces de noms.
namespaces, espaces de noms.
- texte/ élément vide est équivalent à texte/texte
- payement devise='dirham' mode=CB balise d'ouverture
avec attribut(s) : couple nom='valeur' ,
- les valeurs d'attribut sont entre  ou entre '
15
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
Attributs prédéfinis :
 xml:lang=fr indication de la langue
 xml:lang=fr indication de la langue
 xml:space=default|preserve indique au processeur XML
ce qu'il faut faire des blancs (espace, tabulation, nouvelle
ligne)
les supprimer ou les sauvegarder.
16
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
Les entités:
Une entité est une chaîne de caractères commençant par  et se
terminant par ;
Elle s'apparente à une macro
 Référence à une entité prédéfinie :
lt; référence l'entité prédéfinie 
gt; pour 
amp; pour 
quot; pour 
apos; pour '
#valeur; code un caractère, par exemple #x20; pour l'espace
17
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
LE DOCUMENT XML
La section CDATA:
Une section CDATA (Character Data) contient une chaîne de
caractères qui n'est pas analysée par le processeur XML
Exemple: demo2.xml
Exemple: demo2.xml
texte
le code que vous devez saisir est : ![CDATA[ab et bc]]
pour entrer
/texte
ab et bc est une section littérale (constante), donc elle n'est pas
interprétée.
18
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Définition d’attributs
Attribut or pas ?
La construction:
replique
personnage attitude='assis souriant' geste='un dollar entre les mains'Jordan Belfort/personnage
texte ton='long'  Je m’appelle Jordan Belfort. L’année de mes 26 ans, à la tête de ma propre firme de
courtage, je me suis fait 49 millions de dollars, ce qui m’énerva vraiment car ça faisait à peine un million par
semaine./texte
/replique
pourrait être remplacée par :
pourrait être remplacée par :
replique
personnageJordan Belfort/personnage
attitudeassis souriant/attitude
gesteun dollar entre les mains/geste
tonlong/ton
texte Je m’appelle Jordan Belfort. L’année de mes 26 ans, à la tête de ma propre firme
de courtage, je me suis fait 49 millions de dollars, ce qui m’énerva vraiment car ça faisait à peine
un million par semaine./ texte
/replique
Jordan Belfort (Leonardo DiCaprio) dans Le Loup de Wall Street de Martin Scorsese, 2013
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 19
Attributs ou éléments
• Il faut plutôt utiliser un élément
• lorsque l’ordre est important (l’ordre des attributs est au hasard)
• lorsqu’on veut réutiliser un élément plusieurs fois (avec le même parent)
• lorsqu’on veut (dans le futur) avoir des descendants / une structure
interne
• pour représenter un type de données (objet) plutôt que son usage,
autrement dit: une chose est un élément et ses propriétés sont des
autrement dit: une chose est un élément et ses propriétés sont des
attributs
• Il faut plutôt utiliser un attribut
• lorsqu’on désire faire référence à un autre élément
• pour indiquer l’usage/type/etc. d’un élément
adresse usage=prof ... /adresse
• lorsqu'on veut imposer des valeurs par défaut dans la DTD
20
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Documents bien formés
Un document XML est bien formé (well-formed) s’il
respecte les règles de la syntaxe XML :
• Un document possède une racine et une seule
• Tout élément a une balise ouvrante et une fermante : n.../n
Eléments vides : b/b ou b/
Eléments vides : b/b ou b/
• Les paires de balises ouvrantes/fermantes sont imbriquées
a...b.../b.../a
a...b.../a.../b × pas de chevauchement
• Chaque attribut doit avoir une valeur
• Un attribut ne peut apparaître qu’une fois pour un même élément
• Un processeur XML doit s’arrêter lorsqu’il rencontre une erreur
21
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Arbres XML
• Un document bien formé peut être considéré et traité comme un arbre
a
a
bbla/b
c
ab/.../a
/c
/c
/a
c/
/a
• L’imbrication et l’ordre des éléments reflètent la structure arborescente
et ordonnée
• Les éléments terminaux sont des éléments vides ou des chaînes
de caractères
• Particularité : les attributs d’un même élément n’ont pas d’ordre
22
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Formatage d’un document XML
CSS:
- CSS1 et CSS2 (Cascading Style Sheets) sont des feuilles de style dédiées à
la présentation visuelle de documents XML.
XSL:
Le langage XSL (Extensible Stylesheet Language), se compose de deux
sous langages:
sous langages:
1- XSLT: un langage permettant d’effectuer des transformations sur un
document XML
2- XSLFO: un langage permettant le formatage de documents XML.
API:
Une autre façon de formater un document consiste à modifier son contenu
par un programme (Java, C++, PERL,…), pour aboutir à un document
HTML ou un format de sortie recherchée.
Les deux principales catégories d’API sont (SAX et DOM)
23
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
Définition:
Un espace de noms permet de garantir l’unicité
des noms d’éléments et d’attributs.
On attache une information unique à un nom de
balise.
balise.
Cette information est une URL(Uniform Ressource
Locator).
Déclaration:
xmlns:reseau=http://www.fsr.ac.ma/reseau
24
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
 Soit un document qui donne la
position géographique d’un
parc d’ordinateurs:
machines
machine
nomunix1/nom
adresse
 Un document qui donne les
adresses réseau d’un parc
d’ordinateurs:
reseau
equipement
adresse
IP212.140.115.10/IP
nomunix1.fsr.ac.ma/nom
adresse
batiment12/batiment
bureauR-09/bureau
/adresse
/machine
….
/machines
nomunix1.fsr.ac.ma/nom
/adresse
/equipement
….
/reseau
Remarque: la même balise
adresse n’a pas le même sens
dans les deux cas.
25
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
Si on fusionne les 2
documents, la
signification de la
balise adresse devient
ambigüe:
machines
machine
nomunix1/nom
adresse
batiment12/batiment
bureauR-09/bureau
/adresse
ambigüe:
/adresse
adresse
IP212.140.115.10/IP
nomunix1.fsr.ac.ma/nom
/adresse
/machine
….
/machines
26
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
La solution est d’associer un espace de noms et un préfixe qui
qualifie les noms des éléments et des attributs de cet espace.
?xml version=1.0 encoding=ISO-8859-1?
machines
machine
nomunix1/nom
adresse
batiment12/batiment
batiment12/batiment
bureauR-09/bureau
/adresse
reseau:adresse
xmlns:reseau=http://www.fsr.ac.ma/reseau 
reseau:IP212.140.115.10/reseau:IP
reseau:nomunix1.fsr.ac.ma/reseau:nom
/reseau:adresse
/machine
….
/machines
27
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
Plusieurs espaces de noms peuvent être utilsés.
?xml version=1.0 encoding=ISO-8859-1?
local:machines
xmlns:reseau=http://www.fsr.ac.ma/reseau
xmlns:local=http://www.fsr.ac.ma/localisation
local:machine
local:nomunix1/local:nom
local:adresse
local:batiment12/local:batiment
local:batiment12/local:batiment
local:bureauR-09/local:bureau
/local:adresse
reseau:adresse
reseau:IP212.140.115.10/reseau:IP
reseau:nomunix1.fsr.ac.ma/reseau:nom
/reseau:adresse
/local:machine
….
/local:machines
28
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Espaces de noms XML
Espace de noms et attribut: Les attributs peuvent
également bénéficier des espaces de noms
Exemple:
Soit:
produit monnaie=Dirhams
prix140prix
prix140prix
/produit
Devient:
com:produit xmlns:com='http://www.societe.com/commercial'
com:monnaie = 'Dirhams'
com:prix 150/com:prix
/com:produit
29
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
Dialectes, extensions et applications
 XLink et XPointer: Liens entre documents
 XPath: Sous-ensemble d'un document
 XQuery: Requêtes de base de données
 XSL: Transformation de documents
 Schémas XML: Modèles de documents
 RSS : (Really Simple Syndication) Flux de données
 RSS : (Really Simple Syndication) Flux de données
 XUL : (XML-based User interface Language) Langage de
description d'interfaces graphiques
 SVG : (Scalable Vector Graphics) Dessin vectoriel
 SMIL: (Synchronized Multimedia Integration Language)
Multimédia
 MusicML: partition musicale
 CML: description des molécules chimiques en 3D
 MathML: l'équivalent du TEX (formules mathématiques)
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 30
La galaxie XML
Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 31

Contenu connexe

Similaire à 1- XML généralités technologies xml1.pdf

xml_bd_ouahdikrid.ppt
xml_bd_ouahdikrid.pptxml_bd_ouahdikrid.ppt
xml_bd_ouahdikrid.pptLeilaAmrane
 
Modèles de données et langages de description ouverts 2021-2022 - 2
Modèles de données et langages de description ouverts   2021-2022 - 2Modèles de données et langages de description ouverts   2021-2022 - 2
Modèles de données et langages de description ouverts 2021-2022 - 2François-Xavier Boffy
 
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygenEmmanuelle Morlock
 
Génération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTOGénération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTOguested7f6
 
Cours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptCours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptManalAg
 
xml dtd schema
xml dtd schemaxml dtd schema
xml dtd schemaDame Sy
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Paris Open Source Summit
 
interface graphique mobile.pdf
interface graphique mobile.pdfinterface graphique mobile.pdf
interface graphique mobile.pdfYasmineChihab1
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Thibaud Vibes
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 
7. information modelling
7. information modelling7. information modelling
7. information modellingsugogo
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)CERTyou Formation
 
Cyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCERTyou Formation
 
Formation - P2 - Standards du Web
Formation - P2 - Standards du WebFormation - P2 - Standards du Web
Formation - P2 - Standards du WebPatrick Vincent
 

Similaire à 1- XML généralités technologies xml1.pdf (20)

XML.pdf
XML.pdfXML.pdf
XML.pdf
 
xml_bd_ouahdikrid.ppt
xml_bd_ouahdikrid.pptxml_bd_ouahdikrid.ppt
xml_bd_ouahdikrid.ppt
 
XML
XMLXML
XML
 
Chap 1 xml
Chap 1 xmlChap 1 xml
Chap 1 xml
 
Modèles de données et langages de description ouverts 2021-2022 - 2
Modèles de données et langages de description ouverts   2021-2022 - 2Modèles de données et langages de description ouverts   2021-2022 - 2
Modèles de données et langages de description ouverts 2021-2022 - 2
 
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
2014 09 12_atelier-humanites-numerique-hisoma-seance-1-oxygen
 
Génération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTOGénération de documents Office avec Open XML et VSTO
Génération de documents Office avec Open XML et VSTO
 
Cours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptCours XML_2019_final (1).ppt
Cours XML_2019_final (1).ppt
 
xml dtd schema
xml dtd schemaxml dtd schema
xml dtd schema
 
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
Keynote #Tech - Solution métier Open Source : exemple de nouvelle approche te...
 
interface graphique mobile.pdf
interface graphique mobile.pdfinterface graphique mobile.pdf
interface graphique mobile.pdf
 
Rapport XMI To SVG
Rapport XMI To SVGRapport XMI To SVG
Rapport XMI To SVG
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 
7. information modelling
7. information modelling7. information modelling
7. information modelling
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Xml
XmlXml
Xml
 
Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)
 
Cyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCyxlm formation-xml-synthese
Cyxlm formation-xml-synthese
 
Formation - P2 - Standards du Web
Formation - P2 - Standards du WebFormation - P2 - Standards du Web
Formation - P2 - Standards du Web
 

1- XML généralités technologies xml1.pdf

  • 1. TECHNOLOGIES XML TECHNOLOGIES XML Master IT 2013/2014 Prof. M.D. RAHMANI 1 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 2. PLAN Les bases de XML Syntaxe, éléments, attributs, arbres, document bien formé, Espace de noms Les Grammaires XML Document XML valide (DTD , XML Schéma) Document XML valide (DTD , XML Schéma) XML: recherches et transformation XPath, XSLT Programmation XML DOM, SAX 2 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 3. BIBLIOGRAPHIE J.C.Bernadac, F. Knab, Construire une application XML, Ed. Eyrolles (1999). A. Michard, XML, Langage et Applications, Ed. Eyrolles (1999). (1999). S. Lecompte,T. Boulager,, XML par la pratique (2ème edition), Ed. ENI 3 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 4. WEBOGRAPHIE - Tous les liens sur XML et SGML: http://www.oasis-open.org/cover - Les recommandations W3C : la page XML http://www.w3.org/XML la recommandation XML http://www.w3.org/TR/REC-xml - Cours XML : - Cours XML : - Olivier carton http://www.liafa.jussieu.fr/~carton/Enseignement/XML/Cours/support.pdf - Cours et tutoriels: http:/xml.developpez.com/cours - Cours XML université Pierre et marie curie: http://www.gchagnon.fr/cours/xml - Université Aix-Marseille http://www.dil.univ-mrs.fr/~tichit/java/CoursXML_1_XML.pdf - Cours CNAM: http://www.infres.enst.fr/~talel/cours/bda/enst-xml-xpath-xslt-t3-02-03.pdf Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 4
  • 5. Définitions XML est un méta-langage qui permet de créer des langages de balisage adaptés aux types des langages de balisage adaptés aux types d’informations à décrire XML est un langage de description de document. 5 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 6. Historique 1986: SGML (Standard Generalized e la structure d’un document. Il propose à la fois une approcheMarkup Language) fut adopté par l’ISO pour normaliser la description d générale et ouverte, mais assez complexe à mettre en œuvre. ( 20 % seulement de la fonctionnalité de SGML était utilisée). 1990 marque la naissance de HTML (Hypertext Markup Language) Le nouveau langage rendit nécessaire la création d’un nouveau protocole destiné au transfert des données HTML, c’est la naissance du HTTP (Hypertext Transfert Protocol ). Les serveurs http mettent les pages HTML à la disposition de l’utilisateur, les documents sont lus à l’aide des navigateurs. 6 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 7. Historique 1993 apparut MOSAIC, le premier navigateur WEB avec interface graphique. A l’origine était sous UNIX, puis sous Windows, son concepteur Marc Anderesen est le fondateur de la société NETSCAPE. 1996: Le consortium W3C (Word Wide Web Consortium) et les grandes entreprises des logiciels se sont mis d’accord pour définir un langage de balisage normalisé. 1998: La 1ère version 1.0 des spécifications de XML (eXtensible Markup Language ou langage de balisage extensible) a fait l’objet d’une recommandation XML 1.0. 7 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 8. Caractéristiques de XML Tout comme son parent SGML, XML est un méta-langage. XML permet la définition d’un langage pour décrire la structure de l’information associée à un type de document donné. Le mot markup rend compte du fait que XML permet d’identifier les différents éléments d’un document au moyen de balises HTML n’est qu’une application de SGML avec une syntaxe figée et non HTML n’est qu’une application de SGML avec une syntaxe figée et non extensible. XML est extensible: on peut créer autant de balises que l’on souhaite. Les balises HTML servent à formater les informations. Les balises XML ne servent qu’à structurer les documents. Remarque: Un document XML ne possède aucune information sur la manière dont il doit être affiché sur un écran d’ordinateur. 8 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 9. Editeurs XML Notepad++: http://notepad-plus-plus.org/fr/ jEdit: http://www.jedit.org/ XMLWriter: http://xmlwriter.net/ XMLWriter: http://xmlwriter.net/ Eclipse: https://www.eclipse.org/ Editix XML Editor: http://www.editix.com/ Oxygen XML Editor: http://www.oxygenxml.com/ 9 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 10. Exemple d'un document XML demo.xml 1- ?xml version=1.0? 2- demoXML 3- messageVoici du XML/message 4- /demoXML 4- /demoXML Explication: 1- prologue: déclaration du type de document. 2- la balise ouvrante de l'élément racine du document 3- un sous élément avec un contenu 4- la balise fermante de l'élément racine du document 10 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 11. Exemple: demo1.xml 1. PROLOGUE ?xml version='1.0' encoding='ISO-8859-1' ? déclaration, encodage ISO-Latin !-- fichier demo.xml -- commentaire la DTD, s'il y a, est dans le prologue 2. ARBRE d'ELEMENTS demoXML élément racine du document messageVoici du XML/message élément = balise d'ouverture + contenu + balise de fermeture balise d'ouverture peut contenir des attributs /demoXML 11 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 12. LE DOCUMENT XML I- Le prologue: 1- Une déclaration qui annonce qu’il s’agit d’un document XML. ?xml version=1.0 [encoding=chaine] [standalone=yes|no]? ?xml ? est une déclaration - l'attribut encoding précise l'encodage des caractères du document : UTF-8, UTF-16, US-ASCII l'ascii sans caractère accentué, ISO-8859-1 français. - standalone précise si le document est seul (sans DTD) ou non (auquel cas une instruction !DOCTYPE ... est nécessaire) 12 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 13. LE DOCUMENT XML 2- instructions de traitement : ?application argument1 arg2 ... argN?, qui ne font pas parties du document au sens XML. Ce sont des instructions au processeur XML. Exemple: Exemple: ?stylesheet TYPE=text/css HREF=feuille.css? Il s'agit dans ce cas d'associer une feuille de style CSS au document XML 3- commentaire !-- commentaire -- 13 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 14. LE DOCUMENT XML II- Arbre d'éléments: Le contenu est structuré en éléments qualifiés par des attributs avec des valeurs Un élément est représenté par une paire de balises et son contenu Les balises décrivent la structure du texte, pas sa présentation Les balises décrivent la structure du texte, pas sa présentation Les balises ouvrantes peuvent porter zéro, un ou plusieurs attributs qui donnent des précisions sur les éléments et leur contenu Un attribut a un nom et une valeur Eléments et attributs ne sont pas prédéfinis, mais choisis en fonction du type de document à représenter Le balisage est indépendant du système où il est créé et des traitements à effectuer 14 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 15. LE DOCUMENT XML Arbre d'éléments: - un seul élément racine du document, - les balises doivent être correctement emboîtées, - les noms des éléments et attributs suivent la spécification des namespaces, espaces de noms. namespaces, espaces de noms. - texte/ élément vide est équivalent à texte/texte - payement devise='dirham' mode=CB balise d'ouverture avec attribut(s) : couple nom='valeur' , - les valeurs d'attribut sont entre ou entre ' 15 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 16. LE DOCUMENT XML Attributs prédéfinis : xml:lang=fr indication de la langue xml:lang=fr indication de la langue xml:space=default|preserve indique au processeur XML ce qu'il faut faire des blancs (espace, tabulation, nouvelle ligne) les supprimer ou les sauvegarder. 16 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 17. LE DOCUMENT XML Les entités: Une entité est une chaîne de caractères commençant par et se terminant par ; Elle s'apparente à une macro Référence à une entité prédéfinie : lt; référence l'entité prédéfinie gt; pour amp; pour quot; pour apos; pour ' #valeur; code un caractère, par exemple #x20; pour l'espace 17 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 18. LE DOCUMENT XML La section CDATA: Une section CDATA (Character Data) contient une chaîne de caractères qui n'est pas analysée par le processeur XML Exemple: demo2.xml Exemple: demo2.xml texte le code que vous devez saisir est : ![CDATA[ab et bc]] pour entrer /texte ab et bc est une section littérale (constante), donc elle n'est pas interprétée. 18 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 19. Définition d’attributs Attribut or pas ? La construction: replique personnage attitude='assis souriant' geste='un dollar entre les mains'Jordan Belfort/personnage texte ton='long' Je m’appelle Jordan Belfort. L’année de mes 26 ans, à la tête de ma propre firme de courtage, je me suis fait 49 millions de dollars, ce qui m’énerva vraiment car ça faisait à peine un million par semaine./texte /replique pourrait être remplacée par : pourrait être remplacée par : replique personnageJordan Belfort/personnage attitudeassis souriant/attitude gesteun dollar entre les mains/geste tonlong/ton texte Je m’appelle Jordan Belfort. L’année de mes 26 ans, à la tête de ma propre firme de courtage, je me suis fait 49 millions de dollars, ce qui m’énerva vraiment car ça faisait à peine un million par semaine./ texte /replique Jordan Belfort (Leonardo DiCaprio) dans Le Loup de Wall Street de Martin Scorsese, 2013 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 19
  • 20. Attributs ou éléments • Il faut plutôt utiliser un élément • lorsque l’ordre est important (l’ordre des attributs est au hasard) • lorsqu’on veut réutiliser un élément plusieurs fois (avec le même parent) • lorsqu’on veut (dans le futur) avoir des descendants / une structure interne • pour représenter un type de données (objet) plutôt que son usage, autrement dit: une chose est un élément et ses propriétés sont des autrement dit: une chose est un élément et ses propriétés sont des attributs • Il faut plutôt utiliser un attribut • lorsqu’on désire faire référence à un autre élément • pour indiquer l’usage/type/etc. d’un élément adresse usage=prof ... /adresse • lorsqu'on veut imposer des valeurs par défaut dans la DTD 20 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 21. Documents bien formés Un document XML est bien formé (well-formed) s’il respecte les règles de la syntaxe XML : • Un document possède une racine et une seule • Tout élément a une balise ouvrante et une fermante : n.../n Eléments vides : b/b ou b/ Eléments vides : b/b ou b/ • Les paires de balises ouvrantes/fermantes sont imbriquées a...b.../b.../a a...b.../a.../b × pas de chevauchement • Chaque attribut doit avoir une valeur • Un attribut ne peut apparaître qu’une fois pour un même élément • Un processeur XML doit s’arrêter lorsqu’il rencontre une erreur 21 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 22. Arbres XML • Un document bien formé peut être considéré et traité comme un arbre a a bbla/b c ab/.../a /c /c /a c/ /a • L’imbrication et l’ordre des éléments reflètent la structure arborescente et ordonnée • Les éléments terminaux sont des éléments vides ou des chaînes de caractères • Particularité : les attributs d’un même élément n’ont pas d’ordre 22 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 23. Formatage d’un document XML CSS: - CSS1 et CSS2 (Cascading Style Sheets) sont des feuilles de style dédiées à la présentation visuelle de documents XML. XSL: Le langage XSL (Extensible Stylesheet Language), se compose de deux sous langages: sous langages: 1- XSLT: un langage permettant d’effectuer des transformations sur un document XML 2- XSLFO: un langage permettant le formatage de documents XML. API: Une autre façon de formater un document consiste à modifier son contenu par un programme (Java, C++, PERL,…), pour aboutir à un document HTML ou un format de sortie recherchée. Les deux principales catégories d’API sont (SAX et DOM) 23 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 24. Espaces de noms XML Définition: Un espace de noms permet de garantir l’unicité des noms d’éléments et d’attributs. On attache une information unique à un nom de balise. balise. Cette information est une URL(Uniform Ressource Locator). Déclaration: xmlns:reseau=http://www.fsr.ac.ma/reseau 24 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 25. Espaces de noms XML Soit un document qui donne la position géographique d’un parc d’ordinateurs: machines machine nomunix1/nom adresse Un document qui donne les adresses réseau d’un parc d’ordinateurs: reseau equipement adresse IP212.140.115.10/IP nomunix1.fsr.ac.ma/nom adresse batiment12/batiment bureauR-09/bureau /adresse /machine …. /machines nomunix1.fsr.ac.ma/nom /adresse /equipement …. /reseau Remarque: la même balise adresse n’a pas le même sens dans les deux cas. 25 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 26. Espaces de noms XML Si on fusionne les 2 documents, la signification de la balise adresse devient ambigüe: machines machine nomunix1/nom adresse batiment12/batiment bureauR-09/bureau /adresse ambigüe: /adresse adresse IP212.140.115.10/IP nomunix1.fsr.ac.ma/nom /adresse /machine …. /machines 26 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 27. Espaces de noms XML La solution est d’associer un espace de noms et un préfixe qui qualifie les noms des éléments et des attributs de cet espace. ?xml version=1.0 encoding=ISO-8859-1? machines machine nomunix1/nom adresse batiment12/batiment batiment12/batiment bureauR-09/bureau /adresse reseau:adresse xmlns:reseau=http://www.fsr.ac.ma/reseau reseau:IP212.140.115.10/reseau:IP reseau:nomunix1.fsr.ac.ma/reseau:nom /reseau:adresse /machine …. /machines 27 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 28. Espaces de noms XML Plusieurs espaces de noms peuvent être utilsés. ?xml version=1.0 encoding=ISO-8859-1? local:machines xmlns:reseau=http://www.fsr.ac.ma/reseau xmlns:local=http://www.fsr.ac.ma/localisation local:machine local:nomunix1/local:nom local:adresse local:batiment12/local:batiment local:batiment12/local:batiment local:bureauR-09/local:bureau /local:adresse reseau:adresse reseau:IP212.140.115.10/reseau:IP reseau:nomunix1.fsr.ac.ma/reseau:nom /reseau:adresse /local:machine …. /local:machines 28 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 29. Espaces de noms XML Espace de noms et attribut: Les attributs peuvent également bénéficier des espaces de noms Exemple: Soit: produit monnaie=Dirhams prix140prix prix140prix /produit Devient: com:produit xmlns:com='http://www.societe.com/commercial' com:monnaie = 'Dirhams' com:prix 150/com:prix /com:produit 29 Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014
  • 30. Dialectes, extensions et applications XLink et XPointer: Liens entre documents XPath: Sous-ensemble d'un document XQuery: Requêtes de base de données XSL: Transformation de documents Schémas XML: Modèles de documents RSS : (Really Simple Syndication) Flux de données RSS : (Really Simple Syndication) Flux de données XUL : (XML-based User interface Language) Langage de description d'interfaces graphiques SVG : (Scalable Vector Graphics) Dessin vectoriel SMIL: (Synchronized Multimedia Integration Language) Multimédia MusicML: partition musicale CML: description des molécules chimiques en 3D MathML: l'équivalent du TEX (formules mathématiques) Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 30
  • 31. La galaxie XML Prof. M.D. RAHMANI Technologies XML Master IT 2013/2014 31