Tutoriel sur l'essentiel de XML pour débutant


Télécharger Tutoriel sur l'essentiel de XML pour débutant

★★★★★★★★★★3 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Tutoriel sur l'essentiel de XML pour débutant

...

Qu’y a t’il dans un fichier XML

‣Prologue

‣ En-tête XML

‣Déclarations de DTD

‣ Instructions pour les processeurs XML

‣ Instructions de traitement

‣ Instructions pour applications externes

‣Arbre des éléments

‣ Eléments

‣ Balises XML pour le marquage

‣ Contenu

‣ texte

‣ autres éléments

‣ Attributs des éléments

‣ Information associées aux éléments

‣ Commentaires

Déclaration XML

Syntaxe générale :

<?xml version="1.0" [encoding = "encodage"] [standalone="yes | no"] ?>

C’est une des informations de traitement

Cela indique

‣ Conformité du document à une version de la norme XML

‣version="1.0"

‣ Jeu de caractères utilisé dans le document

‣encoding = "UTF-8"

‣Présence ou non de références externes

‣standalone="yes"

Un document XML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE livre SYSTEM "/Users/aurelien/Cours/CCI/intro.dtd">

<livre id="561" nbpages="190" titre="La compagnie des spectres">

<auteur>

<nom>Salvayre</nom>

<prenom>Lydie</prenom>

</auteur>

<format type="poche">

<mesure type="largeur" unite="cm">11</mesure>

<mesure type="longueur" unite="cm">19</mesure>

<mesure type="hauteur" unite="mm">10</mesure>

</format>

</livre>

Déclaration Document Type

‣ Identifie le nom de l’élément racine du document

<!DOCTYPE My_XML_Doc>

‣Permet aussi de rajouter des définitions d’entités et des DTD

<!DOCTYPE My_XML_Doc [ ... ] >

<My_XML_Doc>

...

</My_XML_Doc>

Un document XML

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE livre SYSTEM "/Users/aurelien/Cours/CCI/intro.dtd">

<livre id="561" nbpages="190" titre="La compagnie des spectres">

<auteur>

<nom>Salvayre</nom>

<prenom>Lydie</prenom>

</auteur>

<format type="poche">

<mesure type="largeur" unite="cm">11</mesure>

<mesure type="longueur" unite="cm">19</mesure>

<mesure type="hauteur" unite="mm">10</mesure>

</format>

</livre>

Éléments : règles de base

‣Un nom d’élément

‣ commence par une lettre ou souligné

‣ contient des lettres, chiffres, et "-",

".", ":", "_“

‣ peut posséder un nom de domaine

‣ domaine:nom_element

‣ Ex. : xsl:template

‣ Les noms d’éléments dépendent de la casse

‣ <nom_element>

≠<nom_Element>

‣Balises

‣ de début : <nom_element>

‣ de fin : </nom_element>

‣ Les éléments peuvent être vides

‣ pas de contenu

‣<element_vide />

‣ Ex: <img src= "toto.jpg" />

Arbre des éléments

‣Un seul élément racine qui contient tous les autres

‣Pas d’intersections entre éléments

‣ Mauvais : <nom1><nom2>...</nom1></nom2>

‣Bon : <nom1><nom2>...</nom2></nom1>

‣Blancs ou retours chariot en général non significatifs

‣<section><p> ... </p></section>

‣<section>

<p> ... </p>

</section>

‣ Les éléments sont ordonnés

Caractères spéciaux

Ces caractères ont une signification spéciale pour les parsers XML

Il faut les écrire différemment :

‣ <                      &lt;

‣ >                      &gt;

‣ &                     &amp;

‣ ‘                       &apos;

‣ “                      &quot;

Attributs : règles de base

Dans les balises ouvrantes

‣<el att1="valeur1" att2="valeur2">

Les noms d’attributs dépendent de la casse

‣<el att1="valeur1" Att1="valeur2">

Valeurs d’attributs entourées

‣ par des guillemets (“) ou des apostrophes (')

Les attributs sont non-ordonnés

Attributs

Les valeurs peuvent être

‣ des données textuelles

‣ value="N’importe quoi”

‣ des tokens (noms XML) simples

‣ value = "blue"

‣ des ensembles de tokens

‣ value = "red green blue"

Possibilité d’énumérer les valeurs possibles et de mettre des valeurs par défaut (voir DTD)

Attributs de type ID et IDREF(S)

‣Permettent des relations non hiérarchiques entre éléments

‣ ID : identificateur unique dans le document XML

‣ IDREF : référence à un élément ayant un attribut de type ID



‣ IDREFS : références à des éléments ayant un attribut de type ID

‣ Exemple :

<société codes_services="A001 A003">

<service code="A001">

<employé code="E206" code_service="A001"> Frédéric Marc

</employé>

<employé code="E207" code_service="A001"> Fabrice Detterne

</employé>

<employé code="H107" code_service="A003"> Angélique Millet

</employé>

</service>

<service code="A003">

<employé code="A115" code_service="A003"> Isabelle Mascot

</employé>

</service>

</société>

Commentaires

‣ Les commentaires ne sont pas considérés comme faisant partie du document XML.

<!-- Un commentaire -->

‣Pas de '--' dans un commentaire !

‣Un commentaire ne peut pas se trouver dans une autre déclaration

Instructions de traitement

Informations nécessaire à une application externe

Format :

<?NomApplication paramètres ?>

Exemples :

‣Déclaration XML obligatoire en début de fichier

                               <?xml version='1.0’ ?>

‣Déclaration de feuille de style à utiliser

<?xml-stylesheet href="fichier.xsl"

type="text/xsl"?>

Déclaration

Instructions pour le processeur XML

Format : <!…> ou <! … [ <! … >] >

‣Document type                                         <!DOCTYPE...>

‣ Character data                                         <![CDATA[...]]>

‣ Entities                                                                      <!ENTITY...>

‣ Notation                                                                    <!NOTATION ... >

‣ Element                                                                    <!ELEMENT...>

‣Attributes                                                  <!ATTLIST...>

‣ <![INCLUDE[…]]> et <![IGNORE[...]]>

Déclaration Character Data

Dans les occasions pour lesquelles le texte doit contenir des caractères qui ne doivent pas être interprétés

Deux textes équivalents

‣Press &lt;&lt;&lt;ENTER&gt;&gt;&gt;

‣<![CDATA[Press <<<ENTER>>>]]>

Au bilan : dans un document XML

Prologue

‣ en-tête

‣ déclaration de DTD

‣ instructions de traitement

Eléments

‣ attributs

‣ contenus

Commentaires

Traiter automatiquement un document XML

Parser

‣ Outil qui lit un document XML et construit l’arbre des éléments en mémoire

Vérifier qu’un document répond bien à la syntaxe XML

‣Document bien formé

‣Possibilité de l’utiliser en tant que tel

‣ ex. : le présenter à l’utilisateur

Vérifier en plus qu’un document suit bien la grammaire définie dans une DTD

‣Document valide

Document Type Definition

Définir le type de document XML voulu

‣ décrire comment construire un document XML qui lui corresponde (grammaire)

Permet de

‣ valider un document XML (parser validant)

‣ vérifier que tous les éléments sont présents et corrects

‣ vérifier que les noms d’attributs et leurs valeurs sont corrects

‣ transmettre cette connaissance à d’autres

‣ ils pourront définir leurs propres documents XML dans le même cadre

‣ d’où possibilité de standardisation et d’échanges

DTD

Un fichier

‣ contenant la définition formelle de la structure autorisée,

‣ qui décrit donc

‣ quels noms sont utilisés pour les types d’éléments

‣ comment ces types d’éléments s’organisent

‣ Ordre

‣ Hiérarchie

‣ les attributs des éléments

‣ des entités analysables ou non

‣ des notations pour les types de données binaires

Liaison DTD / document XML

‣ La DTD est dans le document XML (inline)

‣ Le document XML réfère à la DTD avec une URI

Déclarations d’éléments

Définir un élément et son contenu

‣<!ELEMENT name (#PCDATA)>

㱺 <name> ... </name>

Un élément vide n’a pas de contenu

‣<!ELEMENT name EMPTY>

㱺 <name/>

Si on autorise les fils

‣ Quelconques: <!ELEMENT name ANY>

‣Spécifiés: <!ELEMENT person (name, e-mail*)>

Spécification des fils (grammaire)

‣Définir le contenu des éléments

<!ELEMENT person (name, e-mail*)>

‣…et définir une hiérarchie d’éléments

<!ELEMENT name (fname, surname)>

<!ELEMENT fname (#PCDATA)>



<!ELEMENT surname (#PCDATA)>

<!ELEMENT e-mail (#PCDATA)>

‣ Organisation des sous-éléments

‣ Connecteur de séquence ‘,' : (A, B, C) [puis]

‣ Connecteur de choix '|' : (A | B | C) [ou]

Indicateurs de quantité

Contraintes sur les éléments des DTD

‣A?                                   Possible                                            [0..1]

‣A+                                   1 fois et plus                     [1..*]

‣A*                                   0 ou plus                                           [0..*]

Exemples

‣ (A, B)+

‣ ((A,B?) | C+)*

Déclaration d’attributs

Les attributs sont associés aux types d’éléments

Déclarés dans une déclaration ATTLIST

‣<!ELEMENT element ... >

‣<!ATTLIST element ... >

‣ Il faut ensuite définir

‣ le nom de l’attribut

‣ le type de l’attribut

‣ sa valeur par défaut

Noms et types d’attributs

Noms d’attributs

‣<!ATTLIST elem name type default>

‣<!ATTLIST elem first_attr …

secon_attr …

third_attr ... >

Types d’attributs

CDATA ID

NMTOKEN IDREF

NMTOKENS IDREFS

ENTITY NOTATION

ENTITIES name group

Types d’attributs (1)

‣ CDATA

‣ Chaine de caractères

‣<!ATTLIST person name CDATA ... >

‣name = "Tom Jones"

‣ NMTOKEN

‣ Token unique

‣<!ATTLIST mug color NMTOKEN ... >

‣color="red"

‣ NMTOKENS

‣ Multiples tokens

‣<!ATTLIST temp values NMTOKENS ... >

‣values="12 15 34"

Joue sur la manière dont le parser interprète l’attribut

Le nom doit être un nom XML valide

Types d’attributs (2)

‣ ENTITY

‣ L’attribut est une référence d’entité

‣<!ATTLIST person photo

ENTITY ... >

‣photo="MyPic"

‣ ENTITIES

‣Plusieurs références d’entités

‣<!ATTLIST album photos

ENTITIES … >

‣photos="pic1 pic2"

‣ ID

‣ Identificateur unique

‣<!ATTLIST person id

ID ... >

‣ID = “P09567”

‣ IDREF

‣Référence à un ID d’un autre elt.

‣<!ATTLIST person father

IDREF...>

‣IDREF="P09567"

Types d’attributs (3)

‣ IDREFS

‣Référence à plusieurs ID

‣<!ATTLIST person children IDREFS ... >

‣IDREFS="A01 A02"

‣ NOTATION

‣Décrit des données non XML

‣<!ATTLIST image format NOTATION (TeX|TIFF)...>

‣FORMAT="TeX"

‣ Name group

‣ Liste restreinte

‣<!ATTLIST point coord (X|Y|Z)...>

‣coord="X"

Types d’attributs

Quatre types :

‣ #REQUIRED                Doit être spécifié

‣ #IMPLIED                                   Peut être spécifié

‣ "default"                                    Valeur par défaut si non spécifié

‣ #FIXED                                                        Une seule valeur autorisée

Mise en place de DTD

‣Utiliser les composants de XML…

‣ Entités, éléments, déclarations, instructions de traitements, listes d’attributs, etc.

‣ ... dans des DTD pour spécifier les règles

‣ permettant de valider des documents XML

‣Définir un modèle (type) de document de façon formelle

‣Une DTD décrit

‣ Quels noms peuvent être utilisés pour les types d’éléments

‣ L’ordre dans lesquels ceux-ci peuvent apparaître

‣ La hiérarchie documentaire

‣ Les noms et les types des attributs d’éléments



427