You are on page 1of 81

eXtensible Markup Language

Xavier Blanc Xavier.Blanc@lip6.fr

Plan

De HTML XML Documents bien forms Documents valides Liens Feuilles de style Traitement de documents XML Applications

de HTML XML

Gnralits

HTML

Langage balises
Balises obligatoires (head, body, ) Balises valeur smantique (h1, meta, ) Balises valeur dhabillage (center, small, ..) Nombre fini de balises Balises diffrentes suivant les navigateurs Pas dvolution possible pour lutilisateur

HTML

Aucune sparation de la forme et du fond


Balises de fond (Meta, Head, ) Balises de forme (center, small, ) Balises de fond & forme (h1, h2, )

Dure de vie limite la dure de vie des outils capables de visionner ces documents.

Lapport de XML

Ensemble non fini de balises

Lutilisateur peut crer de nouvelles balises Un document XML sera constitu dau moins deux entits (le fond et la forme) Permet la validation des documents

Sparation de la forme et du fond

Sparation du contenu et de la grammaire

Historique

XML est un standard un W3C (World Wide Web Consortium) XML est bas sur le standard SGML Les travaux de XML ont commenc en 1996 En 1999, XML est considr comme tant le standard dchange dinformation du futur

Documents bien forms

rgles syntaxiques de XML

Un document XML bien form

Exemple de document XML :


<titre> le super livre </titre> <chapitre> <numero> 1 </numero> <titre> titre du chapitre 1 </titre> <contenu> blabla blabla </contenu> </chapitre> <chapitre> </chapitre>

<livre>

</livre>

Documents XML bien forms

Un document XML bien form est un document qui est conforme aux rgles syntaxiques du langage XML. Un document bien form pourra tre trait par un parseur XML sans gnrer dexception. Un document XML bien form pourra tre associ avec une feuille de style.

Rgles syntaxiques XML

Un document XML est constitu de :


Un prologue : qui contient un ensemble dinformations sur le document Un ensemble dlments avec leurs contenus : les lments et leurs contenus sont les donnes du document Des commentaires qui peuvent tre inclus nimporte o dans le document

Le prologue

La dclaration XML
<?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?>

Permet de prciser la version du document Permet de prciser lencodage utilis Permet de savoir si le document est autonome ou pas (lien vers dautres documents)

Le prologue

XML permet de dfinir des types de documents. Un type de documents est une sorte de grammaire, on peut alors valider un document par rapport une grammaire. Le prologue permet de dclarer le type dun document. <!DOCTYPE livre SYSTEM "livre.dtd" >

Ensemble dlments

Les lments des documents XML sont composs dune balise douverture, dun contenu et dune balise de clture. <nom> contenue de llment </nom> Le nom dune balise est compos de caractres alphanumriques, du tiret-soulign, du signe moins ou du point. Il ne faut pas quil soit compos despaces. Un nom doit commencer par un caractre alphabtique ou du caractre tiret-soulign. Un nom ne doit pas commencer par XML/Xml/xML/...

Ensemble dlments

Une balise douverture peut avoir un ensemble dattributs. Ex : <livre date= 01-01-2000 > Un attribut est une paire nom=valeur Les noms des attributs suivent les mmes rgles que les noms des lments La valeur est une chane de caractres encadre par les caractres guillemets ou apostrophe Lattribut xml:lang est prdfini et sa valeur reprsente le langage utilis dans le document Ex : <p xml:lang= fr > ...

Ensemble dlments

Le contenu dun lment peut tre :


un ensemble dlments et/ou des donnes sous forme de chanes de caractres ne contenant pas les caractres & et < et/ou des rfrences

Ensemble dlments

Une rfrence peut tre :

une rfrence un caractre alphanumrique, elle doit commencer par &#x, puis inclure le numro du caractre et finir par ; Ex : &#x38; est une rfrence vers & une rfrence prdfinie comme par exemple &amp; ou &apos; qui sont deux rfrences vers & et une rfrence vers quelque chose dfini dans la DTD (Data Type Definition). Elle commence alors par &, puis par le nom de la rfrence, et finit par ; Ex : &ma_reference; (avec ma-reference= texte long

Ce couple (nom, valeur) est appel une entit

Ensemble dlments

Les balises de clture sont composes des noms correspondant aux balises douvertures prcds du caractre / Ex : </livre> En lment peut tre vide (sans contenu), dans ce cas, il na quune seule balise (compose du nom suivi du caractre /) Ex : <Element_vide/>

Sections littrales

Lorsque le parseur scanne un lment, il remplace toutes les rfrences par leurs valeurs. Pour empcher cela, il faut utiliser une section littrale. Une section littrale est encadre par <![CDATA[ et par ]]> Ex : <![CDATA[ <auteurs> Dupond &amp; ]]>

Instructions de traitement

Il est possible dinclure des instructions de traitement dans un document XML La dclaration dune instruction de traitement se fait de la facon suivante : <?nom arg1 arg2 .. ?> nom est le nom de lapplication cible arg1, arg2, sont les arguments de l application Les noms XML, XmL, sont rservs

Commentaire

Des commentaires peuvent tre inclus dans le contenu dun lment XML. Ils doivent tre encadrs par les marques <!-- et --> Un commentaire est une chane de caractres quelconque qui ne contient pas la chane -Exemple : <!-- un commentaire --> <!-- un commentaire qui nest -- pas bien form -->

Documents bien forms

Le plus petit :
<?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?> <livre/>

Un autre :
<?xml version=1.0 encoding=ISO-8859-1 standalone=yes ?> <livre date= 01-01-2000 > <chapitre> XML &amp; HTML </chapitre> <!-- prciser la version de HTML--> </livre>

Documents valides

XML et grammaire

Document Type Definition

En XML, un type de document reprsente une structure (une grammaire) Ex : le type livre prcise quun livre est compos de chapitres, qui sont composs de parties Un type de document est dfini dans une DTD (Document Type Definition) Une DTD peut tre inclue ou rfrence par un document XML

Document Type Definition

On peut vrifier la validit dun document par rapport la DTD quil rfrence ou quil inclut. On parlera alors de document XML valide Un document XML valide est donc un document XML bien form qui a une DTD et qui est conforme cette DTD Il existe dj de nombreuses DTD, il est alors possible de les utiliser pour construire des documents XML valides Ex : La DTD MathML pour les quations

Document Type Definition

Pour associer un document XML une DTD, il faut le faire avec llment <!DOCTYPE> Ex : <!DOCTYPE livre SYSTEM "livre.dtd" > On considre quun document XML est constitu de deux choses : La DTD et la donne. Un document XML bien form peut ne pas tre compos de DTD Un document XML valide doit avoir une DTD

Data Type Definition

Une DTD est dfinie dans llment


<!DOCTYPE name SYSTEM "fichier.dtd" [delaration] > name est le nom du type de document SYSTEM "fichier.dtd" est une rfrence vers le fichier.dtd. Ce fichier contient tout ou une partie de la DTD. Cest la partie externe de la DTD [declaration] permet de dfinir tout ou une partie de la DTD. C est la partie interne de la DTD

Contenu dune DTD


Dclarations des entits Dclarations des lments et de leurs contenus Dclarations des attributs des lments Commentaires

Les entits

Une entit est un couple (nom, valeur). On rfrence le nom pour utiliser la valeur. Ex : &amp; (amp,&) Une entit peut tre interne (dfinie dans le document) ou externe (dfinie ailleurs) Les entits internes ont des valeurs de chanes de caractres XML et sont utilises comme moyen dabrviation. Les entits externes peuvent tre de type

XML : utilis pour segmenter un document en parties non XML : utilis pour inclure des sons, images ...

Dclaration des entits


Les entits doivent tre dclares dans la DTD Un document peut rfrencer nimporte quelle entit qui a t dclar dans la DTD mais aussi les entits prdfinis (amp, apos, ) La dclaration dune entit se fait de la manire suivante : <!ENTITY nom valeur>

La valeur doit tre entre guillemets

Les entits externes XML


Permet la segmentation dun document XML Ex : <!DOCTYPE livre [ <!ENTITY chapitre-1 SYSTEM "./chap1.xml"> <!ENTITY chapitre-2 SYSTEM "./chap2.xml"> ]> <livre> &chapitre-1; &chapitre-2; </livre> Le mot cl SYSTEM indique une URL, voir le mot cl PUBLIC avec les identificateurs public

Les entits externes non-XML


Les entits externes non-XML servent inclure des images, du son ou autre dans un document XML Avant de dfinir l entit, il faut dfinir son format en utilisant une NOTATION Ex : <!NOTATION img "./PsP" > Puis dfinir lentit Ex : <!ENTITY fond SYSTEM "./fond.img" NDATA img> L utilisation se fait donc ainsi : Ex : <photo val= fond />

Les entits paramtres


Ces entits sont dfinies dans une DTD mais elles sont aussi utilises dans une DTD Une entits paramtre est forcement XML Une entits paramtre se dfinie comme une entit gnrale si ce nest quil y a le caractre %. Ex : <!ENTITY % nom valeur> Pour rfrencer une entit paramtre on utilise le caractre % Ex : %nom;

Les lments dans la DTD

La dclaration dun lment se fait de la manire suivante : <!ELEMENT nom modle> Le nom correspond au nom de llment Le modle dfini le contenu de llment :

lments fils donnes mlanges lments fils et donnes nimporte quoi respectant la syntaxe XML lment vide

Les lments dans la DTD


Pour dcrire les lments fils dun lment, il suffit de donner leurs noms entre parenthses. Si lordre des lment fils est important on les spare par des virgules sinon par des barres verticales. Pour prciser les multiplicits des lments fils on utilise : (soit fils le nom de llment fils) :

fils = une fois et une seule fils? = 0 ou 1 fois fils* = 0, 1 ou plus dune fois fils+ = au moins un fois

il est possible de faire des groupes dlments fils en utilisant des parenthses.

Les lments dans la DTD

Exemples de dfinition dlment : <!ELEMENT livre (titre, intro, chapitre+)> <!ELEMENT chapitre (titre , (titre_partie, partie)+)> ...

Les lments dans la DTD

Lorsquun lment ne contient que des donnes (i.e. : un chane de caractre), on le dfini de cette manire avec le mot cl : #PCDATAT Ex : <!ELEMENT partie (#PCDATA)>

Les lments dans la DTD

Il est possible quun lment ait des lments fils mais aussi des donnes. Il est tout fait possible de dfinir ce type dlment dans une DTD. Ex : <!ELEMENT toto (#PCDATA, titi, tutu)*>

Les lments dans la DTD

Lorsquun lment peut contenir soit du texte, soit nimporte quel ensemble dlment fils, il faut utiliser le mot cl ANY Ex : <!ELEMENT elmt ANY> Lorsquun lment est un lment vide, il faut utiliser le mot cl EMPTY Ex : <!ELEMENT elmt EMPTY>

Les attributs dans la DTD

La dclaration des attributs dun lment se fait de la manire suivante : <!ATTLIST element (attribut type default)+> element correspond au nom de llment qui contient lattribut attribut correspond au nom de lattribut type correspond au type de lattribut default contient des indications sur la valeur par dfaut

Les attributs dans la DTD

Le type de lattribut peut tre :


CDATA pour une chane de caractre ID ou IDREF pour des rfrences internes au document ENTITY ou ENTITIES pour des rfrences externes non-XML NOTATION pour associer le contenu de llment une application

Les attributs dans la DTD

Lindication sur la valeur par dfaut peut tre :


#REQUIRED indique que lattribut doit avoir une valeur une fois le document cr. #IMPLIED indique que lattribut est optionnel. #FIXED valeur indique que lattribut est une constante

Les attributs dans la DTD

Quelques exemples : <!ATTLIST ex1 att1 CDATA #IMPLIED> <!ATTLIST ex2 att1 CDATA #IMPLIED att2 ENTITY #REQUIRED> ...

Sections conditionnelles

<![ INCLUDE [ contenu ]]> fait que le contenu appartient la DTD <![IGNORE [ contenu ]]> fait que le contenu nappartient pas la DTD En utilisant des entits paramtres et en les redfinissant dans le document, il est alors possible davoir une DTD conditionnelle

Liens

Navigation XML

Avec les attributs ID et IDREF

Lattribut ID permet dassocier un identifiant un lment Ex : <!ELEMENT cible (#PCDATA)> <!ATTLIST cible identifiant ID #IMPLIED> L attribut IDREF permet de rfrencer un lment qui possde un attribut ID Ex : <!ELEMENT rfrence EMPTY> <!ATTLIST rfrence ref IDREF #REQUIRED>

Do <cible identifiant=01234> blabla </cible> <!-- une rfrence --> <rfrence ref=01234/>

XPointer XML Pointer Language


XPointer est le standard qui permet de rfrencer des ressources Un XPointer est constitu dune rfrence de base puis dune cascade de rfrences. Ainsi il est possible de rfrencer la valeur de lattribut couleur du 3me lments fils de llment de type voiture.

XPointer XML Pointer Language

La rfrence de base dun XPointer est :


root() : la racine du document cible origin() : lorigine du pointeur. id(nb) : llment ayant un attribut id avec nb comme valeur html(val) : un lment <A> ayant un attribut name avec val comme valeur

XPointer XML Pointer Language

Les cascades de rfrence peuvent tre :

child(), descendant(), ancestor(), avec les paramtres suivant :


nb : le numro de l occurrence #element, #pi, #comment, #text, #all nom : le nom dun lment un nom dattribut et/ou une valeur dattribut

attr(nom) pour la valeur dun attribut nom ...

XPointer XML Pointer Language


Un XPointer peut tre prcd dun URL, il faut utiliser le caractre # comme sparateur Exemples de XPointer http://un.deux.fr/toto.xml#root().child(1,titre) http://un.deux.fr/toto.xml#id(0123) ...

XLink XML Linking Language


Un XLink permet de lier plusieurs ressource entre elles. Les XLink peuvent tre :

simples / tendus : les liens simples nont quune seule cible contrairement aux liens tendus inclus / exclus : La ressource qui dcrit les liens inclus est inclue dans le liens, elle est considre comme lorigine.

XLink XML Linking Language


DTD du lien simple <!ELEMENT lk-simple EMPTY> <!ATTLIST lk-simple xml:link CDATA #FIXED simple href CDATA #REQUIRED inline (true | false) true role CDATA #IMPLIED title CDATA #IMPLIED content-role CDATA #IMPLIED content-title CDATA #IMPLIED show (embed | replace | new) #IMPLIED actuate (auto | user) #IMPLIED behavior CDATA #IMPLIED >

XLink XML Linking Language


Pour les liens tendus, la valeur de lattribut xml.link est extended Un lien tendu est compos de plusieurs cibles. Chaques cibles est reprsent par un lment avec lattribut xml.link qui a comme valeur locator

Feuilles de style

Lhabillage de documents XML

La forme et le fond

Un document XML contient des informations qui vont tre prsentes sur diffrents supports (ecran, feuille, son, ) Il est possible de crer des feuilles de style pour dcrire comment se fait cette prsentation Les feuilles de style sont rfrences par les documents XML, elles nen font pas parties

CSS : Cascading Style Sheets


CSS est un standard du W3C pour dcrire des feuilles de style. CSS-1 a t dfini en 1996, CSS-2 en 1998 CSS-1 est support par les navigateur version 4 de netscape et microsoft. CSS-2 est support par les navigateur version 5 de netscape et microsoft Le W3C sest engag pour quune version N soit toujours valide par rapport au version N+x de la norme.

CSS : Cascading Style Sheets


Il est possible de dfinir plusieurs feuilles de style pour un document XML Il est possible de dfinir une feuille de style avec des proprits valables uniquement pour les crans et des proprits valables uniquement pour les imprimantes. Il est possible quune feuille de style importe dautres feuilles de style

CSS : Cascading Style Sheets

Le principe de base de CSS est le suivant selecteur { proprit1: valeur; proprit2: valeur; } Selecteur indique quel est (ou quels sont) llment affect par ces proprits. Les proprits sont des indications sur la forme, CSS dfinit 122 proprits

CSS : Cascading Style Sheets


Ex de feuille de style CSS : @media screen, print { *{ background : black; color : yellow; font-weight : bold; font-size:14pt; font-family : Garamond; font-style : normal; } }

CSS : Cascading Style Sheets

CSS : Cascading Style Sheets

XSL : eXtensible Stylesheet Language


XSL est un standard pour dcrire des feuilles de style La spcification date de Avril 1999, elle nest pas encore totalement stabilise XSL permet plus de chose que CSS

La prsentation nest pas bas sur larbre du document XML Il est possible de rajouter des informations (ex : table des matires, )

XSL : eXtensible Stylesheet Language

Pour afficher un document


Larbre source est transform en fonction des directives de la feuille de style XSL Larbre transform est mis en sortie (cran, papier)

Une feuille de style XSL dcrit les directives de transformation de larbre source.

XSL : eXtensible Stylesheet Language

Structure dun feuille XSL


<xsl> <define-script> var foo = function bar(xx) {} </define-script> <define-style name= "style-para" <! attributs de formatage --> /> <define-macro name=item <! forme resultat --> </define-macro> <import href="feuille.xsl" /> <id attribute="sqd" />

XSL :eXtensible Stylesheet Language

Structure dune feuille XSL (suite) <rule> <root/> <HTML> <BODY> <children/> </BODY> </HTML> </rule> <rule> <element type="para"/> <target-element type="code" /> <PRE> <children/></PRE> </rule>

XSL : eXtensible Stylesheet Language


Exemple de feuille XSL <xsl> <rule> <root/> <HTML> <BODY> <children/> </BODY> </HTML> </rule> <rule> <element type="cours"/> <target-element type="auteur"/> <H1> Salut je lis auteur </H1> </rule> </xsl>

XSL : eXtensible Stylesheet Language

Traitement de documents XML

DOM et SAX

Parseur

XML offre de nouveaux horizons applicatifs Il nest pas possible dimaginer ltendu de ce domaine applicatif Cependant, toutes les applications auront besoin de parseur Il y a deux types de parseur normaliss

SAX DOM

SAX : Simple API for XML


SAX est un type de parseur XML SAX a t construit par des internautes en 1997, ils voulaient standardiser ce type de parseur SAX est implant en Java et en Python SAX est un parseur vnementiel

Lorsque que le parseur lit un lment du document, il lance un vnement Il est utilis par les applications qui considrent les documents XML comme des flots de donnes

SAX : Simple API for XML

SAX tant un parseur vnementiel, il propose un ensemble dinterface pour implanter des handler

DocumentHandler

startElement() starDocument()
Error()

ErrorHandler

Il suffit ensuite de crer un parseur XML, daffecter les handler puis de commencer scanner le document

SAX : Simple API for XML


Exemple dapplication utilisant SAX public class MyHandler extends DocumentHandler { public void startElement(String n, AttributeList att) { System.out.println("Start element :" + n); } } . DocumentHandler dh = new MyHandler(); parser.serDocumentHandler(dh);

DOM : Document Object Model


DOM est un type de parseur XML DOM a t standardis par le W3C LAPI du DOM est dfinit en IDL CORBA DOM est un parseur compil

Lecture de la totalit du document XML Cration dune structure arborescente dobjet qui reprsente le document XML

DOM : Document Object Model

Le DOM est un parseur compil, son API est compos de toutes les entits dun document XML

Document : Objet qui reprsente le document XML Element : Objet qui reprsente un lment XML Node : Objet dont tous les autres objets hritent

Pour construire une application qui utilise le DOM, il suffit de crer un parseur et dappeler la mthode parse qui retourne un objet de type Document

DOM : Document Object Model


Exemple dapplication utilisant DOM try { DOMParserWrapper parser = new Document docu = parser.parser(uri);

Conclusion pour les traitements


SAX et DOM sont deux types de parseur standardiss par les internautes pour SAX et par le W3C pour DOM SAX est plus orient traitement du document comme un flot dinformation DOM est plus orient transformation de document ou archivage Il existe de nombreuses implantations gratuites en Java de SAX et de DOM (Sun, IBM, )

Applications

XMI

MOF : Meta Object Facility


M3 layer meta-metamodel

MOF Model

UML Meta-model

IDL Meta-model

M2 layer meta-model

UML Models UML Models UML Models

M1 layer models IDL Interfaces M0 layer

XMI : XML Metadata Interchange


Meta-Level Metadata XMI DTDs XMI documents

M3

The MOF Model

MOF DTD

M2

UML MetaModel (ODP and others)

UML DTD (ODP and others)

MOF MetaModel Documents

M1

UML Models (ODP and others)

UML Model Documents (ODP and others)

M0

Instances

Bibliographie

A vous de jouer

Les documents utilis pour ce support


XML Langage et applications Eyrolles Alain Michard www.w3c.org : le site du W3C http://www.alphaworks.ibm.com/formula/xml/ http://babel.alis.com/web_ml/xml/ http://www.xmltechno.com/

You might also like