Documentation Structurée
XML
SEWAVI KOKOU MAURICE
INGÉNIEUR INFORMATICIEN
Classe Licence 2
[Link]@[Link]
Année académique 2024-2025
PLAN DU MODULE
• Chapitre 1 Introduction au langage XML (Extensible
Markup Language)
• Chapitre 2 Structure des documents XML: XSD (XML
Schema) et Espaces de nom
• Chapitre 3 Publication de documents XML
• XPATH
• XSL
• Chapitre 4 Web Services
• Pourquoi étudier XML?
XML joue un rôle important dans de nombreux systèmes informatiques différents.
XML est souvent utilisé pour distribuer des données sur Internet.
Il est important (pour tous les types de développeurs de logiciels d'avoir une bonne
compréhension de XML.
Introduction au
XML
Introduction
• Qu’est-ce-que
XML ?
XML est un outil indépendant du logiciel et du matériel pour
stocker et transporter des données.
XML est né d’un besoin universel : savoir faire cohabiter dans un
même document de l’information et de la signification.
Introductio
n
• Le document XML
D’une manière informelle, un document XML
peut être perçu comme un document texte
porteur de ces deux types de données.
Introductio
n • Rôle du document
XML
Le rôle de l’informatique est d’offrir un cadre de stockage et de
traitement de l’ensemble des informations produites dans une
entreprise. Pour être comprise, l’information doit être :
Formalisée (représentée en respectant certaines règles)
Le choix des mots, l’ordre des mots, etc., tout
cela a du sens pour les acteurs de l’entreprise, qu’ils soient
humains ou logiciels.
Xml s’inscrit dans cette logique et sert donc de vecteur à
l’information :c’est une manière universelle de représenter des
données et leur sens dans un cadre précis.
Introductio
n • Rôle du document
XML
Le document XML : Orienté document ou données ?
Lorsque les données sont élaborées par des êtres humains, on
dit que les fichiers XML produits sont orientés document.
Exemples : un livre, un article, un message…
Lorsque les données sont construites automatiquement par des
programmes, on dit que les fichiers XML sont orientés données.
Exemples: un sous ensemble d’une base de données
Introductio
n • Rôle du document
XML
Le document XML : Orienté document ou données ?
Introductio
n
• Rôle du document
XML
La circulation XML : notion de bus
Les données informatiques circulent aussi bien en interne, dans
l’entreprise, que vers l’extérieur, auprès de services et de
partenaires externes.
L’étendue de cette circulation rend le format de données
d’autant plus important que chaque acteur peut disposer de
plates-formes d’exploitation différentes.
Le formalisme XML neutralise les différences par un consensus
de stockage, la plupart des langages de programmation étant à
même de traiter tout type de document XML.
Introductio
n
• Rôle du document
XML
Structure et validation d’un document XML
On associe à un document XML un schéma, qui peut être vu
comme le schéma d’une base de données relationnelle.
La validation d’un document XML garantit que la structure de
données utilisée respecte ce schéma.
Les documents XML qui circulent doivent ainsi être en accord
avec ce schéma pour être acceptés par la plate forme. Dans le
cas contraire ils sont rejetés et doivent être refaits.
Introductio
n
• Rôle du document
XML
Transformation et adaptation d’un document XML
Un document XML peut être transformé ; il n’est pas figé par un
émetteur mais peut suivre, par analogie avec les ateliers de
production, différentes étapes de modification.
Le format XSLT (eXtensible Stylesheet Language Transformation)
est un moyen pour adapter un document XML à un autre format
XML.
Ces processus de transformation sont cependant coûteux et
doivent répondre à un besoin.
Introductio
n
• Les bases de
données
Les bases de données étant incontournables dans les systèmes
informatiques actuels, nous allons donner quelques points de
repère quant à leurs relations avec XML.
Introductio
n
• Rôle du document
XML
Circulation des documents XML et workflows
Les flux de données (workflows) existants vont être petit à petit
remplacés par des workflows XML. Les fichiers XML vont circuler,
s’enrichir au fur et à mesure de ces déplacements, être
contrôlés, puis être présentés aux différents acteurs de l’activité
(commerciaux, clients…).
Introductio
n
• Les bases de
données
XML et les bases de données relationnelles
XML formalise les données selon un schéma fixé mais ne peut
pas remplacer les bases de données telles que nous les
connaissons.
Un document XML est un fichier texte ; il n’est optimisé ni en
espace ni pour les manipulations que l’on peut opérer sur ce
type de fichiers.
Un document XML pourrait être davantage perçu comme une
partie d’un système d’information, car il résout un problème de
circulation de l’information à un moment donné.
Introductio
n
• Les bases de
données
XML et les bases de données relationnelles
Certains systèmes de bases de données relationnelles assurent
la prise en charge du langage XML. Des données XML peuvent
être stockées de façon native dans une colonne de type XML.
La recherche par SQL est étendue pour ces types via la solution
XQuery ;
Exemple avec SQL Server et Oracle
Introductio
n
• Les bases de
données
Les bases « natives » XML
Ce sont bases de données qui stockent du XML sous forme
"native", généralement sous la forme d'une variante du DOM
mappée à un magasin de données sous-jacent.
Il existe deux formes de bases de données natives XML
Celles gardant le texte du document XML tel quel
celles effectuant une conversion sous une forme objet (comme
DOM, qui est une standardisation objet d’un document XML).
Introductio
n
• Les bases de
données
Les bases « natives » XML
Introductio
n
• L’édition d’un document
XML
Cas des formats orientés document
La réalisation de documents xml impose de se focaliser sur le
contenu et non sur la syntaxe du format de document.
Il est donc déconseillé d’utiliser un éditeur de texte quelconque
Pour arriver à alléger la part de ce travail, il existe des outils qui
proposent l’édition en WYSIWYG (what you see is what you get)
Exemple: Bitflus, Xopus, Serna
Ces outils utilisent souvent une feuille de styles CSS (Cascading
StyleSheets) qui donne une représentation graphique à telles ou
telles parties du document XML.
Introductio
n
• L’édition d’un document
XML
Cas des formats orientés données
Dans ce type de format :
Il n’y a pas de représentation facilement utilisable pour
l’être humain
L’idéal est de passer par une application qui masquera la
localisation des données
Édition avec un formulaire
Certaines solutions visent à analyser les schémas des fichiers
XML pour générer un formulaire de saisie.
Exemple des éditeurs comme Editlive et Microsoft avec InfoPath
Introductio
n
• L’édition d’un document
XML
Cas des formats orientés données
Éditeurs plus généralistes
Il s’adresse plus aux techniciens
Il existe de nombreux produits, qui offrent tous la validation et
la transformation. Ils se démarquent par certaines facilités.
Exemples :
Editeurs payants : XMLSpy ([Link]
Studio ([Link] EditiX
([Link] …
Editeurs gratuits : XMLCooktop ([Link] ,
XMLNotepad 2007 ([Link]
Introductio
n
• Outils pour manipuler les
documents XML
Les parseurs XML
Un parseur a pour rôle d’analyser le document XML et de servir
de lien avec une application de traitement.
Des parseurs non validants qui n’offrent qu’une vérification
syntaxique
Des parseurs validants qui offrent également le support des
DTD/schéma W3C.
Introductio
n
• Outils pour manipuler les
documents XML
Les parseurs XML
Sur ces deux catégories de parseurs se greffent principalement
deux catégories de services :
un service événementiel, qui ne vise pas à représenter un
document XML dans son intégralité, de type SAX (Simple API
for XML), par exemple.
un service objet, qui permet de représenter un document
XML sous une forme objet, de type DOM (Document Object
Model), par exemple.
Introductio
n
• Outils pour manipuler les
documents XML
Les parseurs XML
Exemples
Microsoft XML Core Services (MSXML :
[Link] est une API composée d’un parseur
validant, compatible SAX et DOM, et d’un moteur de
transformation 1.0.
Xerces est disponible pour Java, C++ et Perl. C’est un logiciel
Open Source réalisé par le groupe apache
([Link]
Expat est un parseur réalisé en C ([Link]
utilisé par le projet Mozilla. Il dispose d’extensions pour SAX et
DOM.
Piccolo est un parseur non validant réalisé en Java
Introductio
n
• Transformation d’un document XML
La transformation XSLT d’un document XML fonctionne
en complément d’un parseur.
Il s’agit d’une API qui réalise le passage d’un document
XML vers un document texte (souvent au format XML
lui aussi).
La plupart des moteurs de transformation ne gèrent
que la version XSLT 1.0.
Le toolkit MSXML de Microsoft
([Link] supporte la version 1.0.
Le projet Xalan ([Link] pour Java et
C++ avec support de la version 1.0 est géré par
Introductio
n
• Transformation d’un document XML
Saxon est un projet Open Source avec également une
licence commerciale. Il fonctionne pour Java et .NET et
gère les versions 1.0 et 2.0.
Sablotron est une implémentation en C++ de la
version 1.0 ([Link] Il
peut être employé sous forme d’extension en PHP, Perl,
Pascal…
Introductio
n
Le format XSL-FO
XSL-FO (Extensible Stylesheet Language Formatting Objects) est
un langage de présentation pour différents formats (PDF, RTF...). Il
y a peu d’outils à l’heure actuelle capables de réaliser les
transformations XSL-FO.
Une première solution propriétaire est Ecrion (
[Link] Elle gère en sortie les formats PDF et
PostScript.
Une autre solution propriétaire est XEP de RenderX
([Link] Elle gère en sortie les formats PDF et
PostScript.
Une solution Open Source est probablement FOP (Formatting
Objects Processor) du groupe Apache
([Link] Elle gère en sortie les formats
Introductio
n
Le format SVG
SVG (Scalable Vector Graphics) est un langage de description des
dessins en 2D. Il existe quelques plug-ins pour les navigateurs.
le plus connu était SVG Viewer de adobe
([Link]
L’éditeur a mis fin au support en 2008.
On retiendra comme implémentation Open Source le projet Batik
pour Java ([Link] du groupe
Apache.
CHAPITRE II
Structure des documents
XML
Structure des document XML
• Structure d’un document
xml
Considérons l’exemple simple d’un document xml ci-dessous
<?xml version="1.0" encoding="utf-8"?>
<!-- Date de création : 30/09/07 -->
<cours titre="XML">
<intervenant nom="Maurice SEWAVI">
</intervenant>
<plan>
Introduction
XML et la composition de documents
</plan>
</cours>
Structure des document XML
• Structure d’un document
xml
On peut constater que :
XML est un document texte lisible
L’exemple décrit un cours qui a pour titre XML dont
l’intervenant est Maurice SEWAVI,
Par ailleurs le plan du cous en ressort aussi
Structure des document XML
• Structure d’un document
xml
I. Le prologue
Il s’agit de la première ligne d’un document XML servant à donner les
caractéristiques globales du document, c’est-à-dire :
La version XML, soit 1.0 ou 1.1, sachant que la très grande
majorité des documents sont en version 1.0 et que la version 1.1
est assez décriée.
Le jeu de caractères employé (encoding). Pour fonctionner, le
parseur va avoir besoin de distinguer le rôle de chaque caractère,
certains étant réservés à la syntaxe et d’autres représentant des
Structure des document XML
• Structure d’un document
xml
I. Le prologue
Le champ standalone désigne l’indépendance du document, au
sens où il n’existe aucun élément externe qui puisse altérer la
forme finale du document XML fourni à l’application par le parseur
(références d’entités, valeurs par défaut…). Ce champ prend les
valeurs yes ou no. Dans la pratique, au-delà de l’aspect informatif,
il n’a pas grand intérêt et vous pouvez l’ignorer.
Structure des document XML
• Structure d’un document
xml
I. Le prologue
Le prologue est encapsulé par <? et ?> et qu’il n’existe pas
d’espaces (de blancs) entre le début du document et cet élément.
Le prologue n’est pas obligatoire et, dans ce cas, le parseur utilise
un comportement par défaut (version 1.0 et encoding UTF-8).
Structure des document XML
• Structure d’un document
xml
II. Les instructions de traitement
Les instructions de traitement (processing instruction ou PI) n’ont
pas de rôle lié aux données ou à la structuration de votre
document. Elles servent à donner à l’application qui utilise le
document XML des informations.
On les positionne à n’importe quel endroit du document (après le
prologue, bien entendu).
Structure des document XML
• Structure d’un document
xml
II. Les instructions de traitement
Un cas typique est l’utilisation avec les navigateurs Mozilla Firefox
ou Internet Explorer pour effectuer la transformation d’un
document XML en document XHTML affichable avec l’instruction :
<?xml-stylesheet type="text/xsl"
href="[Link]"?>
Structure des document XML
• Structure d’un document
xml
II. Les instructions de traitement
Les instructions de traitement ont également pour fonction de
pallier des manques dans la spécification XML, par exemple pour
effectuer un lien vers un langage de validation non standard
(vérifiant donc la conformité du document par rapport à une
grammaire) de type Relax NG ([Link]
Structure des document XML
• Structure d’un document
xml
III. Les commentaires
Les commentaires en XML sont les mêmes qu’en HTML(ceci est dû
au lien de parenté avec SGML).
Ils se positionnent n’importe où après le prologue et peuvent
figurer sur plusieurs lignes.
<!-- Date de création : 30/09/07 -->
Structure des document XML
• Structure d’un document
xml
IV. La déclaration du type de document
Elle sert à attacher une grammaire de type DTD (Document Type
Definition) à votre document XML.
Elle est optionnelle
Elle est introduite avant la première balise (racine) de votre
document sous cette forme :
<!DOCTYPE racine SYSTEM "URI vers la DTD">
Structure des document XML
• Structure d’un document
xml
IV. La déclaration du type de document
racine est le premier élément (la première balise)
L’URI peut être absolue ou relative au document. Il est
généralement préférable d’utiliser une URI relative, pour pouvoir
déplacer le document XML et sa grammaire sans difficulté.
Exemple : <!DOCTYPE cours SYSTEM "[Link]">
Le mot-clé SYSTEM est important et indique qu’il s’agit d’une DTD
qui vous est propre. L’alternative est le mot-clé PUBLIC.
Structure des document XML
• Structure d’un document
xml
IV. La déclaration du type de document
Exemple :
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0 Strict//EN" >
Ici, l’URI est remplacée par un identifiant public composé de :
• - : indique qu’il s’agit d’un format non compatible ISO (sinon on
utilise +).
• IETF : organisme gérant le format.
• DTD : indique la nature du document.
• HTML 2.0 Strict : description du document.
• EN : un code langue (ISO 639).
Structure des document XML
• Structure d’un document
xml
IV. La déclaration du type de document
La déclaration de type de document peut également héberger un
bloc d’instructions propre aux DTD (on parle alors de DTD interne).
Exemple
Structure des document XML
• Structure d’un document
xml
IV. La déclaration du type de document
<!DOCTYPE cours [
<!ELEMENT cours ( intervenant, plan )>
<!ELEMENT intervenant EMPTY>
<!ELEMENT plan (#PCDATA)>
<!ATTLIST cours titre CDATA #REQUIRED>
<!ATTLIST intervenant nom CDATA #REQUIRED>
]>
Structure des document XML
• Structure d’un document
xml
V. Les nœuds éléments
Les éléments gèrent la structuration des données d’un document XML,
On peut les qualifier de métadonnées, au sens où ils ne font pas partie
réellement des données mais servent à en désigner la nature.
Pour décrire ce que contiennent les éléments, on parle de modèle de
contenu. On trouve :
• Rien : il n’y pas de contenu, l’élément est vide.
• Du texte : nous détaillerons par la suite cette notion.
• Un ou plusieurs éléments : on peut les qualifier d’éléments
fils, l’élément les contenant étant appelé un élément parent
• Un mélange de textes et d’éléments : c’est une forme plus rare
qui peut révéler une erreur de structuration.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds éléments
Exemple
<?xml version="1.0" encoding="ISO-
8859-1"?>
<cours>
<intervenant>
Phileas
</intervenant>
<separateur/>
<chapitre>
Formation XML
<para>Un
paragraphe</para>
<para>Autre
Structure des document XML
• Structure d’un document
xml
V. Les nœuds éléments
cours : élément racine contenant trois éléments fils :
intervenant, separateur et chapitre ;
intervenant : élément contenant du texte ;
separateur : élément sans contenu ;
chapitre : élément contenant du texte et des éléments fils
para ;
para : élément contenant du texte
Structure des document XML
• Structure d’un document
xml
Exercice 1
Création d’un livre en XML
On souhaite écrire un livre en utilisant le formalisme XML. Le livre est structuré en sections
(au moins 2), en chapitres (au moins 2) et en paragraphes (au moins 2). Le livre doit contenir
la liste des auteurs (avec nom et prénom). Tous les éléments doivent posséder un titre, sauf
le paragraphe qui contient du texte. Proposez une structuration XML de ce document (avec
2 auteurs, 2 sections, 2 chapitres par section et 2 paragraphes par chapitre). Vérifiez, à
l’aide de l’éditeur, que votre document est bien formé. Attention : ne pas utiliser d’attributs ;
l’encodage utilisé est ISO-8859-1
Votre document sera nommé [Link].
Structure des document XML
• Structure d’un document
xml
V. Les nœuds éléments
cours : élément racine contenant trois éléments fils :
intervenant, separateur et chapitre ;
intervenant : élément contenant du texte ;
separateur : élément sans contenu ;
chapitre : élément contenant du texte et des éléments fils
para ;
para : élément contenant du texte
Structure des document XML
• Structure d’un document
xml
V. Les attributs d’un élément
Un attribut est un couple (clé, valeur) associé à la définition d’un
élément.
Il est localisé dans la balise ouvrante de l’élément.
Un élément peut donc avoir de 0 à n attributs uniques.
L’attribut est complémentaire de l’élément de par son rôle au
sens où il ajoute une information à l’élément ou bien encore le
complète dans sa définition.
<auteur nom="brillant" prenom="alexandre">…</auteur>
Structure des document XML
• Structure d’un document
xml
V. Les attributs d’un élément
Voici un exemple de document XML avec des attributs :
<?xml version="1.0" encoding="ISO-8859-1"?>
<cours>
<intervenant nom="fog"
prenom="phileas"/>
<introduction/>
<chapitre numero="1">
Formation XML
<paragraphe>Détails
du format</paragraphe>
</chapitre>
Structure des document XML
• Structure d’un document
xml
V. Choix entre éléments et attributs
L’attribut peut sembler superflu. En effet, ce qui s’écrit avec des
attributs peut également l’être en s’appuyant uniquement sur des
éléments.
Exemple
Cas avec attributs :
<personne nom="brillant" prenom="alexandre"/>
Structure des document XML
• Structure d’un document
xml
V. Choix entre éléments et attributs
Cas sans attribut :
<personne>
<nom>
brillant
</nom>
<prenom>
alexandre
</prenom>
</personne>
Structure des document XML
• Structure d’un document
xml
V. Choix entre éléments et attributs
Cependant, l’inverse n’est pas vrai car un attribut ne peut pas
être répété dans un élément (mais il peut l’être au travers
d’éléments différents).
Lorsqu’une valeur est de taille modeste, a peu de chance
d’évoluer vers une structure plus complexe, et n’est pas répétée,
alors l’attribut peut tout à fait convenir.
Dans tous les autres cas, l’élément reste incontournable.
En cas de doute entre un attribut et un élément, alors choisissez
toujours l’élément qui est le plus ouvert et garantira le plus
facilement une évolution.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Dans un document XML, ce qui est appelé donnée est le texte qui
est associé à l’attribut, c’est-à-dire sa valeur, ou à l’élément,
c’est-à-dire son contenu.
Les données sont dites terminales dans l’arborescence XML, dans
la mesure où il ne peut y avoir de structuration supplémentaire.
Dans le vocabulaire propre à DOM (Document Object Model), que
nous aborderons dans un autre chapitre, la donnée apparaît
comme un nœud texte.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Elle est bien entendu liée au prologue puisque l’encodage sert à
désigner le jeu de caractères utilisé dans votre document.
Dans l’exemple suivant, le texte XML est une donnée liée à
l’attribut titre de l’élément cours. Introduction… est une donnée
liée à l’élément plan.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
<?xml version="1.0" encoding="utf-8"?>
<!-- Date de création : 30/09/07 -->
<cours titre="XML">
<intervenant nom="alexandre brillant">
</intervenant>
<plan>
Introduction
XML et la composition de documents
</plan>
</cours>
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
certains caractères sont réservés à la syntaxe XML, il faut donc être
vigilant lors de l’écriture des données
Exemple:
<calcul>
if ( a<b et b>c) ...
</calcul>
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Dans cet exemple, on voit bien que <b et b> n’est pas une balise
mais fait partie des
données liées à l’élément calcul.
Il y aura donc ambiguïté pour un parseur qui identifiera une balise de
syntaxe incorrecte.
Pour résoudre ce problème, on dispose d’entités prédéfinies. L’entité
en elle-même
peut être perçue comme un raccourci vers une autre valeur.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes, liste des entités
•
prédéfinies
<:;équivalent de < (less than) ;
• > équivalent de > (greater than) ;
• & équivalent de & (ampersand) ;
• " équivalent de " (quote) ;
• ' équivalent de ' (apostrophe).
Ces entités peuvent être utilisées dans un élément, pour du texte, ou
dans un attribut, pour sa valeur.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Dans le cas du contenu textuel d’un élément (et uniquement dans ce
cas), nous disposons des sections CDATA (Character Data). Cette
section doit être considérée comme un bloc de texte dont les
caractères seront pris tel quel par le parseur jusqu’à la séquence de
fin ]]>.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Exemple :
<![CDATA[
<element>C'est un document XML
</element>
]]>
Dans cet exemple, <element> n’est pas considéré comme une balise de
structuration, mais comme du texte.
Structure des document XML
• Structure d’un document
xml
V. Les nœuds textes
Exercice3 Utilisation des entités prédéfinies
On se propose de créer un nouveau document [Link] reprenant
l’exercice précédent ([Link]). Placez dans 2 paragraphes un bloc de
texte contenant l’extrait suivant : <element id="10">></element>
Pour le premier paragraphe, employez les entités prédéfinies. Pour le
deuxième paragraphe, employez une section CDATA.
Structure des document XML
• Structure d’un document
xml
VI. Les entités du document
Si on conçoit une DTD (Document Type Definition), on pourra à loisir
créer notre propre entité et y faire référence dans nos documents.
Exemple d’utilisation :
L’entité auteur est liée à un nom et un prénom.
La valeur de l’entité peut être interne ou externe (placée dans un
autre fichier).
Structure des document XML
• Structure d’un document
xml
VI. Les entités du document
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE cours [
<!ENTITY auteur "Alexandre Brillant">
<!ELEMENT cours (#PCDATA)>
]>
<cours>
Cours réalisé par &auteur;
</cours>
Structure des document XML
• Structure d’un document
xml
VII. Quelques règles de syntaxe
Ces règles de syntaxe sont à respecter impérativement pour qu’un
document XML soit bien formé.
Le nom d’un élément ne peut commencer par un chiffre.
Si le nom d’un élément est composé d’un seul caractère il doit être
dans la plage [a-zA-Z] (c’est-à-dire une lettre minuscule ou majuscule
sans accent) ou _ ou :.
Structure des document XML
• Structure d’un document
xml
VII. Quelques règles de syntaxe
Avec au moins 2 caractères, le nom d’un élément peut contenir _, -, .
et : plus les caractères alphanumériques (attention, le caractère : est
réservé à un usage avec les espaces de nom que nous aborderons par
la suite). • Tous les éléments ouverts doivent être fermés.
Un élément parent est toujours fermé après la fermeture des
éléments fils. Voici un contre-exemple où l’élément fils b est
incorrectement fermé après la fermeture de son élément parent a :
<a><b></a></b>.
Structure des document XML
• Structure d’un document
xml
VIII. Quelques conventions de nommage
• Employer des minuscules pour les attributs et les éléments.
• Éviter les accents dans les noms d’attributs et d’éléments pour des
raisons de compatibilité avec les outils du marché qui proviennent
souvent d’un univers anglo-saxon.
• Préférer les guillemets délimitant les valeurs d’attribut.
• Séparer les noms composés de plusieurs mots par les caractères -, _, .
ou une majuscule.
• Essayer d’être homogène dans votre document en gardant la même
convention.
Structure des document XML
• Structure d’un document
xml
IX. Quelques exemples de documents xml
• Le format MathML
MathML est une recommandation du W3C ([Link]
servant à d’écrire des expressions mathématiques
Très brièvement, mo désigne un opérateur, mrow une expression, mi et
mn respectivement des opérandes variable (par exemple x) et nombre.
Dans l’exemple, nous avons décrit l’expression : x^2+4x+4
<?xml version="1.0"?>
<math>
<mrow>
<msup> <mi>x</mi><mn>2</mn>
</msup>
<mo>+</mo>
<mrow>
<mn>4</mn><mo>⁢</mo><mi>x</
mi>
</mrow>
<mo>+</mo>
<mn>4</mn>
</mrow>
</math>
Structure des document XML
• Structure d’un document
xml
IX. Quelques exemples de documents xml
• Le format VoiceXML
VoiceXML est un standard pour décrire des choix (processus de
questions/réponses) liés
à des répondeurs vocaux ([Link]
Très brièvement, menu représente dans l’exemple suivant, une liste de
choix, prompt est une question, choice une réponse possible et noinput
la phrase produite si aucun choix n’est réalisé ; le menu est rappelé
<menu>
<prompt>Faire un choix
:<enumerate/></prompt>
<choice
next="[Link]
o
</choice>
<choice
next="[Link]
</choice>
<noinput>Merci de faire un choix
<enumerate/></noinput>
</menu>
</vxml>
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
Les espaces de noms sont un concept très commun en informatique.
Nous les retrouvons dans de nombreux langages de programmation
afin de prévenir d’éventuels conflits.
Par exemple, dans le langage de programmation Java, les packages
servent à délimiter la
portée d’une classe.
En choisissant un package, le développeur lève tout conflit potentiel
sur le nom, car la classe sera par la suite utilisée directement ou
indirectement via son package et son nom.
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
Application des espaces de noms dans un document XML
Lorsque nous créons un document XML, la structure du document est
déterminée à partir des données que nous allons avoir à gérer.
Pour délimiter la portée d’une balise, d’un attribut ou d’une valeur
d’attribut, nous disposons d’espaces de noms (namespace).
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
La notion d’espace de noms peut être perçue comme un groupe
d’appartenance ou une famille.
L’utilisation des espaces de noms garantit une forme de traçabilité de
la balise et évite les ambiguïtés d’usage.
Les espaces de noms sont très souvent employés dans les
spécifications W3C car ces documents peuvent être mélangés à
d’autres et entraîner des conflits. On en trouve, par exemple, dans les
feuilles de styles (XSLT) et dans les schémas W3C.
Croisement
de documents
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
Utilisation des espaces de noms dans un document XML
Il existe plusieurs méthodes pour intégrer des espaces de noms.
1. L’espace de noms par défaut
Il est précisé par un pseudo-attribut xmlns (retenir que ns est pour
namespace). La valeur associée sera une URL garantissant l’unicité de
l’espace de noms. L’espace de noms par défaut s’applique à l’élément
où se situe sa déclaration et à tout son contenu.
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
Exemple :
<chapitre xmlns="[Link]
<paragraphe>
...
</paragraphe>
</chapitre>
Structure des document XML
• Structure d’un document
xml
X. Les espaces de noms
Nous pouvons changer l’espace de noms par défaut même dans les
éléments enfants : dans ce cas, une règle de priorité est appliquée.
Exemple :
<chapitre xmlns="[Link]
<paragraphe xmlns="[Link]
...
</paragraphe>
</chapitre>
Structure des document XML
• Structure d’un document
xml
L’élément paragraphe n’appartient pas à l’espace de noms
[Link] mais uniquement à l’espace de noms
[Link]
Remarque
Un espace de noms par défaut ne concerne que les éléments. Les
attributs et les textes n’y appartiennent pas. Le texte d’un élément
n’est jamais dans un espace de noms puisqu’il représente la donnée.
Structure des document XML
• Structure d’un document
xml
2. L’espace de noms explicite
L’espace de noms par défaut présente l’inconvénient d’être peu
contrôlable sur un document de taille importante.
Tout ajout ou modification d’un tel espace va se répercuter sur la
totalité du contenu.
Pour disposer de davantage de souplesse dans ces espaces et pouvoir
également les appliquer aux attributs et valeurs d’attributs, la
syntaxe introduit la notion de préfixe.
Structure des document XML
• Structure d’un document
xml
2. L’espace de noms explicite
On déclare un préfixe comme un pseudo-attribut commençant par
xmlns:prefixe
Une fois déclaré, il est employable uniquement dans l’élément le
déclarant et dans son
contenu.
Exemple : <p:resultat xmlns:p="[Link]
</p:resultat>,
L’élément resultat est dans l’espace de noms [Link]
grâce au préfixe p
Lorsqu’un élément est préfixé, son contenu doit l’être aussi si l’on
Structure des document XML
• Structure d’un document
xml
2. L’espace de noms explicite
Pour supprimer l’action d’un espace de noms il suffit d’utiliser la
valeur vide "", ce qui revient à ne pas avoir d’espace de noms.
Exemple
<element xmlns="[Link]
<autreelement xmlns="">
.. Aucun d'espace de noms
</autreelement>
<encoreunelement>
... Espace de nom par défaut
</encoreunelement>
</element>
Structure des document XML
• Structure d’un document
xml
2. L’espace de noms explicite
L’élément element est dans l’espace de noms
[Link]
L’élément autreelement n’est plus dans un espace de noms.
L’élément encoreunelement se trouve également dans l’espace de
noms [Link] de par l’espace de noms de son
parent.
Structure des document XML
• Structure d’un document
xml
2. L’espace de noms explicite
Exercice Utilisation des espaces de noms par défaut et avec
préfixe
Il s’agit de créer un document [Link] sur la base de [Link] en
respectant les points suivants :
• Mettez tous les éléments dans l’espace de noms
[Link] sans utiliser d’espace de noms par défaut.
• Mettez la deuxième section dans un espace de noms
[Link]
• Mettez le dernier paragraphe du dernier chapitre de la dernière
section sans espace de noms.