77
1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

Embed Size (px)

Citation preview

Page 1: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

1

Introduction à XML

IUT GTR / Axway Sopra Group.

Denis Viollet / Lionel Baylot

Juin 2004

Page 2: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

2

Origines de XML

XML (eXtensible Markup Language) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises contrairement à HTML où le nombre de balises est limité.

Html décrit la présentation et le contenu, Xml ne décrit que le contenu

Page 3: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

3

Origines de XML SGML (Standard Generalized Markup Langage)

Issu de 30 ans de recherche dans le domaine des documents développé par l’ISO au début des années 80 Usage : standard (ISO 8879) de fait dans le milieu de la gestion

documentaire. (utiliser dans le domaine de la documentation technique.

Langage puissant , mais très complexe.

Propriétés SGML

Langage de balisage extensible

(en anglais Extensible Markup Language)

Méta-langagePermet de définir des langages de représentation de données structurées et évolutifs.

Page 4: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

4

Origines de XML

HTML Est une application très populaire de SGML, Développement a commencé en 1990, Caractéristiques :

HTML est un langage de présentation de données, HTML est un langage de balises non extensibles, HTML mélange les informations :

De Présentation, de Contenu, de Structure

HTML : Standard de présentation des documents et applications Web Navigateurs web (Browser) : Interpréteur universel de page HTML

Page 5: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

5

Origines de XML

World Wide Web Consortium (W3C) 420 membres à travers le monde Développer les technologies de base du Web Ouverture et consensus Gère une cinquantaine de projet.

XML Working Group (1996) : Travail pour créer un langage simplifié dérivé du SGML, Qui répond à la même problématique :

Permet de définir des langages de représentation de données structurées et évolutifs.

Page 6: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

6

XML, pourquoi faire ?

« […] un système d ’information relié universellement, dans lequel généralisation et portabilité sont plus importants que graphisme avenants et autres fonctionnalités complexes »

Tim Berners-Lee

De la page personnel au e-commerce…

Page 7: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

7

XML, pourquoi faire ?

Définition du e-commerce :

Échanges d ’informations au sein d ’une entreprise décentralisée,

Échanges de données d ’informations sur les transactions financières (cartes de crédit, bancaires, etc.),

Échanges de données concernant les transactions médicales entre patients, hôpitaux, médecins et compagnie d ’assurance,

Distribution de logiciels via le web, paiement au service.

Page 8: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

8

XML, pourquoi faire ? XML facilite les échanges B2B

XML est utilisé comme langage de description et d'échange de données entre partenaires.

ExemplesRossettaNet : Utilisé par les constructeurs de matériels informatique pour

échanger avec leurs partenaires / sous traitants

Amazon.com, Vente d ’articles, livres, CD, DVD, logiciels depuis une page web.

XML XMLEchange

SI1 SI2Extraction/Transformation

Transformation/Importation

Page 9: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

9

XML, pourquoi faire ?

Standard d’échange entre Applications dans le S.I.

Accessible par n’importe quel

composant du système, Simple à manipuler par n’importe

quel programme, Universel : Promu par l’ensemble

des éditeurs sans exception,

SGBD XML

Progiciel intégré

Applicationmétier

XNet

Page 10: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

10

Les limites du HTML

Le HTML manque de structure Utilisation des balises d ’en-tête ordonnées (de H1 à H6) et

possibilité de blocs imbriqués à l ’intérieur de balises DIV

Le HTML ne tient pas compte du contenu Ne permet de décrire le contenu des informations. Création de balises personnalisées en XML

Le HTML n ’est pas international Propositions ont été faites pour identifier la langue

Le HTML ne convient pas aux échanges de données Absence sémantique et peu de balises utilisées

Page 11: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

11

Avantages de XML

La solution Xml

Lisibilité : aucune connaissance ne doit théoriquement être nécessaire pour comprendre le contenu d'un document XML

Autodescriptif et extensible

Structure arborescente : permettant de modéliser la majorité des problèmes informatiques

Universalité et portabilité : les différents jeux de caractères sont pris en compte

Page 12: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

12

Avantages de XML

Déployable : il peut être facilement distribué par n'importe quels protocoles à même de transporter du texte, comme HTTP

Intégralité : un document XML est utilisable par toute application pourvue d'un parser (c'est-à-dire un logiciel permettant d'analyser un code XML)

Extensibilité : un document XML doit pouvoir être utilisable dans tous les domaines d'applications

XML est particulièrement adapté à l'échange de données

Page 13: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

13

Anatomie d’un document XML

Le balisage consiste à ajouter à des informations des caractères qui pourront servir à traiter ces informations d ’une manière définie.

Une simple virgule (,) peut être interprétée comme caractère de séparation,

La DTD du Text Encoding Initiative est une forme plus complexe de balisage qui permet d ’effectuer la transcription de manuscrits anciens,

Les fichiers de traitement de texte comprennent des balises (ex. MSWord, WordPerfect, etc.).

Page 14: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

14

Anatomie d’un document XML<?xml version="1.0"?>

<page.accueil>

<en-tete>

<titre>Ma page d'accueil</titre>

<banniere source="banniere.gif"/>

</en-tete>

<corps>

<titre.principal>

Bienvenue sur ma page d'accueil

</titre.principal>

<ligne/>

<texte>

<para>

Desole, cette page est en construction. A bientot !

</para>

</texte>

</corps>

<pied source="foot.gif"/>

</page.accueil>

Page 15: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

15

Anatomie d’un document XML

Page 16: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

16

<?xml version="1.0"? encoding="ISO-8859-1" >

<page.accueil>

<en-tete>

<titre>Ma page d'accueil</titre>

<banniere source="banniere.gif"/>

</en-tete>

<corps>

<titre.principal>

Bienvenue sur ma page d'accueil

</titre.principal>

<ligne/>

<texte>

<para>

Desole, cette page est en construction. A bientot !

</para>

</texte>

</corps>

<pied source="foot.gif"/>

</page.accueil>

Anatomie d’un document XMLDéclaration

Élémentracine Un élément vide

Des attributs

Page 17: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

17

Anatomie d’un document XML

Balises Nom de balise ouvrante = nom de balise fermante

Déclaration XML Identifie que ce qui suit est du code XML

Élément racine Un document XML ne doit avoir qu ’un seul élément racine.

Tous les autres doivent être inclus à l ’intérieur.

Élément vide Les attributs

Un ou plusieurs attributs facultatifs ou obligatoires, définis dans la balise ouvrante de l ’élément<fruit saveur=«acide»>

Page 18: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

18

Structure logique des éléments XML

page d ’accueil

en-tête

titre

bannière

corps

titre1

ligne

texte

para

Pied de page

Élément racine Éléments frères« siblings »

Page 19: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

19

Syntaxe XML

un élément peut avoir différents types de contenu : d ’autres éléments du texte être vide

un élément quelconque est délimité par une balise de début et une balise de fin: <tag>...</tag>

un élément vide peut avoir 2 formes : ne pas avoir de contenu: <tag></tag> être formé d'une balise unique: <tag/>

Page 20: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

20

Syntaxe XML

Symbole Description

< Séparateur d'ouverture de balise ouvrante

</ Séparateur d'ouverture de balise fermante

foo Nom d'élément

> Séparateur de fermeture de balise

/> Séparateur de fermeture de balise vide

Les séparateurs de balisage

Balisage d ’élémentsSymbole Nom Description

<foo> Balise ouvrante Au début d'un élément, la balise ouvrante

texte Contenu Au milieu d'un élément, son contenu

</foo> Balise fermante A la fin d'un élément, la balise fermante

Page 21: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

21

Syntaxe XML

un attribut XML :

Permet de représenter des informations supplémentaires relatives à un élément

Est placé dans la balise de début ou dans la balise unique d'un élément

Est composé d'un couple nom/valeur<... attrName="value" ...>

<personne class="informaticien">

Page 22: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

22

Syntaxe XML

Symbole Description

< Séparateur d'ouverture de balise ouvrante

nom.élément Nom de l'élément

propriété Nom de l'attribut

= Indicateur de valeur

" Séparateur de chaîne littérale

Séparateur de chaîne littérale alternatif

valeur Valeur de l'attribut

> Séparateur de fermeture de balise ouvrante

Spécification d ’un attribut

Page 23: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

23

Syntaxe XML

Règles d ’affectation des noms Un nom consiste en au moins une lettre: de a à z,

ou de A à Z, Si plus d ’un caractère, le nom peut commencer par un trait

de soulignement (_) ou deux points (:), Les espaces et et les tabulations ne sont pas permis dans

les noms d ’éléments. Seuls signes de ponctuation permis sont le tiret (-) et le point (.).

Cela_est_un_nom_long est par exemple interdit...

Les commentaires exemple de commentaire

<!-- Voici du texte en commentaire -->

Page 24: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

24

Syntaxe XML

Les sections CDATA (Character DATA)

Une section CDATA permet de masquer du texte que le processeur XML (parser) pourrait interpréter comme du balisage.

<![CDATA [Voici du texte que le processeur XML ne doit pas voir !]]>

Une section CDATA constitue une méthode à privilégier pour incorporer du code d ’applications (JavaScripts, Vbasic, Perl, etc.) dans votre code XML.

Page 25: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

25

Syntaxe XML Les sections CDATA (Character DATA)

<?xml version="1.0" encoding="iso-8859-1"?>

<script>

<![CDATA[

function matchwo(a,b)

{

if (a < b && a < 0) then

{

return 1

}

else

{

return 0

}

}

]]>

</script>

Page 26: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

26

Syntaxe XML Exemple d ’appel d ’entité interne

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE installation [

<!ENTITY contrat "Tous droits réservés. Le Logiciel est protégé par les lois sur la propriété intellectuelle et les traités internationaux. La reproduction ou redistribution de tout ou partie du Logiciel est expressément interdite par la loi sous peine de sévères poursuites civiles et criminelles. Les contrevenants seront poursuivis pour la peine maximale possible.">

]>

<installation>

<page>

<titre> Installation de Axway Integration Platform</titre>

<licence>Copyright (c) Axway Software, 2004, &contrat;</licence>

</page>

</installation>

Page 27: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

27

Syntaxe XML Exemple d ’appel d ’entité interne

Page 28: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

28

DTD (Document Type Definition)

Qu’est ce qu’une DTD ?

XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe donnée

une DTD est une grammaire permettant de vérifier la conformité du document XML

la norme XML n'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par contre le respect exact des règles de base de la norme XML

Page 29: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

29

DTD - Exemple

Définition d’une grammaire définissant la structure d’un « carnet d’adresse »

Page 30: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

30

DTD - Appels d ’entités Appels d ’entités

Entités internes : Permettent d ’éviter de saisir une grandes quantité de

caractères superflus, Peuvent être considérées comme des sortes de macros.

<!DOCTYPE class [

<!ELEMENT ...>

...

]>

Entités externes : Objets externes tels qu ’une adresse URL ou un fichier

graphique prévu pour figurer dans le documents XML,<!DOCTYPE class PUBLIC "name" "URL">

<!DOCTYPE class SYSTEM "filename">

Page 31: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

31

DTD - Éléments

Exemple d ’appel d ’entité interne

<?xml version="1.0"?><!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>]>

<note> <to>Sydney</to> <from>Vaughn</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body></note>

Page 32: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

32

DTD - Éléments Exemple d ’appel d ’entité externe

Appel dentité externe dans un document XML <?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"><note> <to>Sydney</to> <from>Vaughn</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body></note>

Fichier «note.dtd» contenant la DTD<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>

Page 33: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

33

DTD - Éléments

Pour pouvoir créer un document XML il est utile dans un premier temps de définir les éléments pouvant être utilisés :

Déclaration d ’une entité : <!ELEMENT element-name category>

<!ELEMENT element-name (element-content)>

Page 34: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

34

DTD - Éléments

Élément vide, sans contenu (EMPTY)<!ELEMENT element-name EMPTY>

exemple :<!ELEMENT br EMPTY>

exemple de document XML correspondant :<br />

Élément de contenu quelconque (ANY)<!ELEMENT element-name ANY>

exemple :<!ELEMENT note ANY>

Page 35: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

35

DTD - Éléments

Élément dont le contenu est une séquence de caractères (#CDATA) Pas de traitement du contenu par le parser

Élément dont le contenu est une séquence de caractère

«  parsé » (#PCDATA) Les marqueurs et les entités figurant dans la séquence de

caractères sont traités par le parser.

Page 36: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

36

DTD - Éléments Elément comprenant des fils (séquences) et une seule

occurrence de chaque (1,1)

<!ELEMENT element-name (child-element-name)>

ou<!ELEMENT element-name (child-element-name,child-element-name,.....)>

exemple :<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>

… il devra obligatoirement être de la forme :

Page 37: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

37

DTD - Éléments Contenu comprenant au moins une occurrence d ’un

même élément (1,N)<!ELEMENT element-name (child-name+)>

exemple :<!ELEMENT note (message+)>

Contenu pouvant comprendre plusieurs occurrences d ’un même élément (0,N)

<!ELEMENT element-name (child-name*)>

exemple :<!ELEMENT note (message*)>

Contenu pouvant comprendre une occurrence d ’un élément (0,1)

<!ELEMENT element-name (child-name?)>

exemple :<!ELEMENT note (message?)>

Page 38: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

38

DTD - Éléments Déclaration de contenu à base de ET / OU

exemple :<!ELEMENT note (to,from,header,(message|body))>

Déclaration de contenu mixte

exemple :<!ELEMENT note (#PCDATA|to|from|header|message)*>

Page 39: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

39

DTD - Éléments

D'autre part, il est possible de définir des règles d'utilisation, c'est-à-dire les éléments XML qu'un élément peut ou doit contenir :

Page 40: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

40

DTD - Attributs Il est possible de définir les attributs d’un élément à

l’intérieur d ’une DTD

Une déclaration d'attributs spécifie la liste d'attributs associés à un élément et a la forme

<!ATTLIST element-name attribute-name attribute-type default-value>

exemple DTD :<!ATTLIST payment type CDATA "check">

exemple XML :<payment type="check" />

Page 41: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

41

DTD - Attributs attribute-type :

delault-value :

Valeur DescriptionCDATA The value is character data(en1|en2|..) The value must be one from an enumerated listID The value is a unique idIDREF The value is the id of another elementIDREFS The value is a list of other idsNMTOKEN The value is a valid XML nameNMTOKENS The value is a list of valid XML namesENTITY The value is an entityENTITIES The value is a list of entitiesNOTATION The value is a name of a notationxml: The value is a predefined xml value

Valeur Descriptionvalue The default value of the attribute#REQUIRED The attribute value must be included in the element#IMPLIED The attribute does not have to be included#FIXED value The attribute value is fixed

Page 42: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

42

DTD - Attributs Attribut par défaut

exemple de DTD :<!ELEMENT square EMPTY><!ATTLIST square width CDATA "0">

document XML valide :<square width="100" />

Attribut optionnelexemple de DTD :

<!ATTLIST contact fax CDATA #IMPLIED>

document XML valide :<contact fax="555-667788" />

ou<contact />

Page 43: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

43

DTD - Attributs Attribut obligatoire

exemple de DTD :<!ATTLIST person number CDATA #REQUIRED>

document XML valide :<person number=   "3134" />

document XML invalide :<person />

Attribut « fixé à la valeur »exemple de DTD :

<!ATTLIST sender company CDATA #FIXED "Microsoft">

document XML valide :<sender company="Microsoft" />

document XML invalide :<sender company= »Axway Software" />

Page 44: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

44

DTD - Attributs Attribut de type énuméré

<!ATTLIST element-name attribute-name (en1|en2|..) default-value>

exemple de DTD :<!ATTLIST peinture couleur (ROUGE|JAUNE|BLEU)"BLEU">

exemple XML :<peinture couleur="ROUGE" />

ou<peinture couleur="JAUNE" />

Page 45: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

45

DTD - Exemple Exemple de DTD :<?xml version="1.0"?>

<!DOCTYPE message

[

<!ELEMENT message (subject, exp, dest, content, sign)>

<!ATTLIST message status ("private"|"public") "public">

<!ELEMENT subject (#PCDATA)>

<!ELEMENT exp (#PCDATA)>

<!ELEMENT dest (#PCDATA)+>

<!ELEMENT content (parag|image)*>

<!ELEMENT date (#PCDATA)?>

<!ELEMENT sign (#PCDATA)>

<!ELEMENT parag (#PCDATA)>

<!ELEMENT image EMPTY>

<!ATTLIST image source CDATA #REQUIRED>

]>

Page 46: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

46

DTD / Schémas - Avantages et inconvénients Insuffisances des DTD :

Pas écrites en XML (2 langages différents à maîtriser) Support des types de données est très limité (10 types). Permettent pas de définir des vocabulaires complets et

évolutifs

Avantages des Schémas : Type données : (39 types prédéfinis), créer ses propres types. Orienté objet : Notion de dérivation de types. Écrit en XML :

Pas besoin d’apprendre un autre langage, Transformer et manipuler un Schéma avec les outils XML

Page 47: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

47

DTD / Schémas - Avantages et inconvénients

<xsd:element name=« elt1 »><xsd:complexType> <xsd:sequence> <xsd:element name=« s1 » minoccurs=« 0 » maxoccurs=« unbounded »> </xsd:sequence></xsd:complexType></xsd:element>

<!ELEMENT elt1(s1*)>

<xsd:element name=« elt1 »><xsd:complexType> <xsd:choice> <xsd:element name=« s1 » type=« xs:string » /> <xsd:element name=« s2 » type=”xs:date” /> </xsd:choice></xsd:complexType></xsd:element>

<!ELEMENT elt1(s1|s2)>

Schéma DTD

Page 48: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

48

Représentations Xml

Il existe deux représentations d’un document XML

Forme sérialisée : c’est la forme courante où le contenu est marqué par des balises

Forme arborescente : elle met en évidence la structure du document

Page 49: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

49

Représentations Xml

La représentation sérialisée permet :

Le stockage de données sous forme fichier

L’échange de documents<?xml version="1.0" encoding="ISO-8859-1" ?> -

<CINEMA>

<NOM>Epée de Bois</NOM>

<ADRESSE>100, rue Mouffetard</ADRESSE>

<METRO>Censier-Daubenton</METRO>

</CINEMA>

Page 50: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

50

Représentations Xml

La représentation arborescente est utilisée par certaines applications qui gèrent l’ensemble du document en mémoire (parsers, éditeurs,…)

Page 51: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

51

Représentations Xml

Un document XML est structuré sous forme d’arbre :

Page 52: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

52

Parsing XML

La récupération des données encapsulées dans le document nécessite un outil appelé analyseur syntaxique (en anglais parser), permettant de parcourir le document et d'en extraire les informations qu'il contient.

On passe ainsi de la forme sérialisée à la forme arborescente permettant à un programme de parcourir le document Xml pour extraire les données

Page 53: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

53

Parsing XML

On distingue deux types de parseurs XML :

Les parseurs validants (validating) permettant de vérifier qu'un document XML est conforme à sa DTD

Les parseurs non validants (non-validating) se contentant de vérifier que le document XML est bien formé (c'est-à-dire respectant la syntaxe XML de base)

Page 54: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

54

Parsing XML Type de Parseurs :

DOM (Document Objet Model) : Construction d’une représentation interne sous

forme d'arbre. Fourni une API qui permet par programmation :

• De construire des documents.• De naviguer dans leur structures.• De mettre à jour les éléments.

SAX : Simple Access XML Lecture du document en entrée, reconnaissance

et interprétation des balises au fur et à mesure Aucun stockage d'informations

Utilisations :• Recherche dans un document XML volumineux.• Echange continue d’un flux XML entre deux systèmes.

Page 55: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

55

Parsing XML

SAX est une API basée sur un modèle événementiel, cela signifie que SAX permet de déclencher des événements au cours de l'analyse du document XML.

Une application utilisant SAX implémente généralement des gestionnaires d'événements, lui permettant d'effectuer des opérations selon le type d'élément rencontré soit le document XML suivant :

<personne>

<nom>Baylot</nom>

<prenom>Lionel</prenom>

</personne>

Page 56: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

56

Parsing XML

Les événements générés par Sax sont :

start document

start element: personne

start element: nom

characters: Baylot

end element: nom

start element: prenom

characters: Lionel

end element: prenom

end element: personne

end document

Page 57: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

57

Parsing XML

DOM est une spécification du W3C (World Wide Web Consortium) définissant la structure d'un document sous forme d'une hiérarchie d'objets, afin de simplifier l'accès aux éléments constitutifs du document

DOM permet à une application de parcourir la structure du document et d'agir dynamiquement sur celui-ci

Page 58: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

58

Parsing XML

DOM construit en mémoire une représentation arborescente du document où :

chaque nœud est un objet de type Node

chaque catégorie syntaxique est représentée par un sous-type de Node

la racine est un nœud spécial, de type Document

Page 59: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

59

Parsing XML

Exemple de représentation DOM :

Page 60: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

60

Parsing XML

L’ensemble du document est représenté par un nœud de type Document : c’est la racine du document

Ce nœud peut avoir plusieurs fils, dont un et un seul de type Element : c’est l’élément racine

Quelques exemples de fonctions DOM disponibles : insertBefore() (Node nouv, Node fils)

replaceChild() (Node nouv, Node ancien)

removeChild() (Node fils)

boolean hasChildNodes()()

createElement(), createComment(), …

Page 61: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

61

Parsing XML

Un traitement DOM s’effectue en trois phases

Un arbre vierge est créé en mémoire ou il est créé en important un document Xml sérialisé

Des manipulations de cet arbre sont effectuées

L’arbre modifié est sérialisé à nouveau (par exemple pour être stocké)

Page 62: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

62

Il existe plusieurs sérialisations possibles pour un même document :

ainsi cet arbre peut donner 3 versions sérialisées « différentes » :

Page 63: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

63

<?xml version="1.0" ?<?xml version="1.0" ?>><<AA>> <!--<!-- commentaire commentaire    -->-->    <<BB>>textetexte</</BB>> <<CC>>  

<<DD>>1 &#60; 1 &#60; 22</</DD>>    </</CC>>   </</AA>>

<?xml version="1.0" ?><?xml version="1.0" ?><<AA>> <!--<!-- commentaire commentaire    -->-->    <<BB>>textetexte</</BB>> <<CC>>  

<<DD>><![CDATA[1 < <![CDATA[1 < 2]]>2]]></</DD>>    </</CC>>   </</AA>>

<?xml version="1.0" ?><?xml version="1.0" ?><!DOCTYPE A [<!DOCTYPE A [<!ENTITY file SYSTEM <!ENTITY file SYSTEM "CetD.xml"> "CetD.xml"> ] >] ><<AA>> <!--<!-- commentaire commentaire    -->-->    <<BB>>textetexte</</BB>> &file;&file;</</AA>>

Page 64: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

64

Parsing XML

Exemple de programme DOM :

le programme prend en argument un nom de fichier contenant un document XML

il analyse ce document avec un parser DOM (ici xerces)

il parcourt ensuite les nœuds du document et numérote les nœuds de type Text par leur position dans l’arbre

ensuite le document modifié est à nouveau sérialisé

Page 65: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

65

XSL (eXtensible StyleSheet Language)

Mise en page avec XSL (eXtensible StyleSheet Language) :

XML est un langage de structuration des données, et non de représentation des données.

XSL est un langage pour effectuer la représentation des données de documents XML.

XSL est lui-même défini avec le formalisme XML, cela signifie qu'une feuille de style XSL est un document XML bien formé

Page 66: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

66

XSL

Il est donc possible à partir d'un document XML de créer des documents utilisant différentes représentations (HTML pour créer des pages web, WML pour les mobiles WAP, ...)

XSL est essentiellement utilisé pour transformer du XML en HTML mais il est aussi capable de générer des documents PDF, un autre document XML ou texte, par exemple

Page 67: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

67

XSL

Avantages du tandem XML – XSL :

La modification de l’aspect d’une page Web n’implique que la modification du XSL

L’ajout d’une nouvelle donnée ou d’un nouveau champ nécessite simplement l’ajout d’un nouvel élément dans le XML

Les pages Web sont dynamiques et c’est primordial

quand le contenu d’une page n’est pas connu d’avance

Page 68: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

68

XSL XSL possède 2 composantes :

Le langage de transformation des données (XSLT, eXtensible Stylesheet Transformation) permettant de transformer la structure des éléments XML

Le processeur XSLT crée une structure arborescente à partir du document XML et lui fait subir des transformations selon les template rules contenues dans la feuille XSL pour produire un arbre résultat représentant, par exemple, la structure d'un document HTML

Le langage de formatage des données (XSL/FO), c'est-à-dire un langage permettant de définir la mise en page (affichage de texte ou de graphiques) de ce qui a été créé par XSLT

Page 69: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

69

XSL

Fichier XML

Fichier XSL

Fichier HTML, XML,

texte, ou autre.Processeur XSL

Page 70: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

70

XSL

Fichier XSL

Fichier XML

Fichier HTML

Xerces

Fichier DTD

Xalan

Page 71: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

71

XSL

Structure d’un document XSL :

Un document XSL étant un document XML, il commence obligatoirement par la balise suivante :

<?xml version="1.0" encoding="ISO-8859-1" ?>

Toute feuille de style XSL est comprise entre les balises <xsl:stylesheet ...> et </xsl:stylesheet>

La balise xsl:stylesheet encapsule des balises xsl:template définissant les transformations à faire subir à certains éléments du document XML

Page 72: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

72

XSL

Une feuille de style XSL (enregistré dans un fichier dont l'extension est .xsl) peut être liée à un document XML (de telle manière à ce que le document XML utilise la feuille XSL) en insérant la balise suivante au début du document XML :

<?xml version="1.0" encoding="ISO-8859-1"?>

<?xml-stylesheet href="fichier.xsl" type="text/xsl"?>

Page 73: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

73

XSL Syntaxe :<?xml version="1.0" encoding="iso-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"/>

<xsl:template match="/">

<HTML>

<HEAD>

<TITLE>Titre de la page</TITLE>

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<xsl:apply-templates/>

</BODY>

</HTML>

</xsl:template>

<xsl:template match="personne" >

<ul>

<li> <xsl:value-of select="nom"/> -

<xsl:value-of select="prenom"/>

</li>

</ul>

</xsl:template>

</xsl:stylesheet>

Page 74: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

74

XSL

Signification de cette feuille XSL :

Le premier tag <xsl:template> permet d'appliquer une transformation à l'ensemble du document (la valeur "/" de l'attribut match indique l'élément racine du document XML). Ce tag contient des balises HTML qui seront transmises dans l'arbre résultat

L'élément <xsl:apply-templates/> indique le traitement de tous les enfants directs de la racine.

La balise <xsl:template match="personne"> permet d'aller traiter les éléments de type personne

Enfin les deux éléments <xsl:value-of select="nom"/> et <xsl:value-of select="prenom"/> permettent de récupérer les

valeurs des balises nom et prenom

Page 75: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

75

XSL

Exemple :

Voici un exemple de ce qu’il faut écrire en HTML pour obtenir un répertoire d’adresses sur Internet :

ex.html

On remarque d’ores et déjà que le code HTML à écrire n’est pas clair car les informations et la mise en page sont

mélangées

Page 76: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

76

XSL Le XML suivant contient les mêmes informations que la

page HTML, mais il présente les avantage suivants :

l’information et la mise en page (les données et les traitements) ne sont pas mélangées

la présence de la DTD permet de vérifier la syntaxe du document (repertoire.dtd)

on peut par exemple, vérifier que l’on n’a pas oublié le numéro de téléphone d’une personne lorsque celui-ci a été défini comme obligatoire dans la DTD

cf. ex.xml

Page 77: 1 Introduction à XML IUT GTR / Axway Sopra Group. Denis Viollet / Lionel Baylot Juin 2004

77

XSL

Le XSL suivant permet de transformer les données du répertoire décrit en XML en fichier HTML  

cf. ex.xsl