0% ont trouvé ce document utile (0 vote)
34 vues34 pages

Validation des documents XML et DTD

Ce document traite de la validation des documents XML, en expliquant l'utilisation des DTD et des schémas XML pour garantir la conformité syntaxique. Il décrit les différences entre DTD internes et externes, ainsi que les types de données et les contraintes associées aux éléments XML. Enfin, il aborde les limitations des DTD et présente les schémas XML comme une alternative plus complète pour définir des modèles de documents.

Transféré par

oussamadarouay
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues34 pages

Validation des documents XML et DTD

Ce document traite de la validation des documents XML, en expliquant l'utilisation des DTD et des schémas XML pour garantir la conformité syntaxique. Il décrit les différences entre DTD internes et externes, ainsi que les types de données et les contraintes associées aux éléments XML. Enfin, il aborde les limitations des DTD et présente les schémas XML comme une alternative plus complète pour définir des modèles de documents.

Transféré par

oussamadarouay
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Architecture SOA et Service Web

Chapitre2:

Validation des documents XML

Réalisé par: Dr. Ghallabi Sameh


l’Institut d’Informatique et Mathématique à Monastir
Cible : 3émé informatique
Validation des documents XML

Comment vérifier qu’un document XML est conforme à une


syntaxe donnée?
 XML fournit un moyen de vérifier la syntaxe d'un document.
Utilisation des XML Schema ou des DTD (Document Type
Definition) pour décrire la structure des documents avec les
imbrications des éléments possibles.

Document bien formé : Un document suivant les règles de XML.

Document valide : Un document XML possédant une DTD (ou


XMLSchema) et étant conforme à celle-ci.
Validation des documents XML
Choix entre deux technologies pour écrire les définitions de vos
documents XML : les DTD (Document Type Definition) ou les
schémas XML.
Validation des documents XML
Les DTD sont des fichiers spécifiant le vocabulaire et la structure d'un
type de documents XML.
Une DTD peut être définie de 2 façons :
-Sous forme interne
-Sous forme externe
Les règles des DTD internes s'écrivent directement dans le fichier
XML alors que les règles des DTD externes sont écrites dans un fichier
séparé portant l’extension .dtd .
Validation des documents XML
La déclaration du type de document- DTD
La déclaration d’une DTD doit apparaitre après la déclaration
XML, mais avant l’élément racine.

Une DTD interne suit la syntaxe suivante :


Validation des documents XML
Création d’une DTD
Pour définir les règles portant sur les éléments (balises), on utilise
le mot clef ELEMENT.
Le mot-clef balise est à remplacer par le nom de la balise à laquelle
vous souhaitez appliquer la règle
 Dans le cas où la balise contient une valeur simple (du texte), on
utilisera le mot clef #PCDATA.
Le caractère # est là pour éviter toute ambiguïté avec une balise et
indique au parseur qu’il s’agit d’un mot-clé. PCDATA signifie
Parsable Character DATA.
Une valeur simple désigne par exemple une chaîne de caractères,
un entier, un nombre décimal, un caractère, etc.
Validation des documents XML
Déclaration des éléments
Validation des documents XML
Déclaration des éléments

- Type de données :

- Exemple :
Validation des documents XML
Déclaration des éléments

.
Validation des documents XML
Un exemple de DTD interne
Validation des documents XML
-Occurrence des éléments :
Validation des documents XML
-Occurrence des éléments :
Exemple
Validation des documents XML
-Déclaration des attributs :

Exemple:
Validation des documents XML
-Les types d’un attribut :
Validation des documents XML
La déclaration du type de document- DTD externe

Elle est introduite avant la première balise (racine) de votre


document sous cette forme :

racine est le premier élément (la première balise).


L’URI peut être absolue ou relative au document.
Exemple:

Dans cet exemple, la DTD [Link] est localisée relativement à


notre document XML.
DTD externe, interne
Les DTD sont des fichiers spécifiant le vocabulaire et la structure d'un
type de documents XML.

Interne : directement en entête du fichier XML.


Externe : en spécifiant l’adresse de la DTD.

standalone="..." (valant “yes” ou “no” suivant si on veut utiliser une


DTD externe ou non).
standalone=”yes” : pour dire au logiciel que la DTD est définie dans le document.
standalone=”no” : pour dire au logiciel d'aller chercher une DTD externe.
Exercices
Soit la DTD « [Link] »

Ecrivez un fichier XML valide par rapport à cette DTD.


Exercices
Limites des DTD
DTD permet d'exprimer des contraintes assez basiques
– Liste des éléments et de leurs attributs
– Règles de structuration des éléments

Mais:
 Pas de nombre précis d’occurrences d’un élément dans une
grammaire XML : «*» (0 à N), «?» (0 ou 1), «+» (1 à N)
Un seul type des données est défini (du texte)
Ne permettent pas de typer des données. Impossible de préciser
si une donnée est un nombre entier, un nombre décimal, une
date, etc.
Autres langages de schéma plus complets, par ex. XML
Schema
Schéma XML
 Les schémas XML permettent, comme les DTD, de définir des
modèles de documents.
 Il est ensuite possible de vérifier qu'un document donné est valide pour
un schéma c'est-à-dire respecte les contraintes données par le schéma.

 Un schéma XML définit :


- La signification et les relations entre différents éléments et leur contenu.
-Les attributs et leurs valeurs
-Les types de données, les attributs associés à ces données.
Structure de base d’un schéma XML
 Comme tout document XML, un schéma XML commence par un
prologue et a un élément racine.
 Le schéma XML utilise un espace de nom xsd.
 L'élément racine est l'élément xsd:schema

Exemple: Le document XML-Schéma ("[Link]")


Déclaration des éléments
 Dans un schéma, un élément se déclare avec la balise < xsd:element >
 L’attribut name de xsd:element contient le nom de l’élément.
 Les éléments composés d’attributs et de sous éléments devront inclure une
balise xsd:complexType.
Exemple:

 Ce schéma déclare deux éléments :


remarque et contacts
A chaque élément est associé un type via l'attribut type
-remarque de type xsd:string, type simple prédéfini de XML Schema
-contacts de type typeContacts, type complexe défini par l'utilisateur
Déclaration des éléments
 Un élément peut avoir un type:
[Link] simple: si sa valeur a un type prédéfini en XML-Schéma ou une
extension de ces types.
1.1. Types primitifs: string, boolean, float, double, integer,…

1.2. Types dérivés : dérivent d’un type primitif ou d’un autre type dérivé.
1.2.1 Dérivation par restriction,
1.2.2 Dérivation par extension,
1.2.3 Dérivation par union,
1.2.3 Dérivation par liste.

2. Type complexe: s’il contient des sous éléments ou s’il comporte au moins un
attribut
2.1. Collection ordonnée d'éléments typés: xsd:sequence
2.2. Choix entre éléments typés: xsd:choice
2.3. Collection non ordonnée d'éléments typés: xsd:all
Types simples : Primitif
 Dans un schéma XML, un élément simple se déclare avec la balise
xsd:element.
 Un élément simple est un élément qui ne possède pas de sous-
éléments.
 Un type simple, c’est par exemple un chiffre, une date ou encore une
chaîne de caractères.
Exemple de déclaration d'un élément de type simple

Quelques types prédéfinis


String Bonjour
Boolean {true, false, 1, 0}
………
Dérivation de types simples
Dérivation par restriction (1/3)
 La dérivation par restriction restreint l’ensemble des valeurs d'un
type pré-existant.
 La restriction est définie par des contraintes de facettes du type de
base: valeur min, valeur max ...
Exemple:
Les contraintes de facettes (2/3)
on distingue différents types de contraintes, appelés facettes:
Avec les chaines
 lenght : la longueur en nombre de caractères.
 minLenght: la longueur minimale.
 maxLenght: la longueur maximale.

Pour le nombre et les dates


 enumeration: un ensemble discret de valeurs.
 maxInclusive / maxExclusive: borne supérieure
 minInclusive/ minExclusive : borne inférieure
Les contraintes de facettes (2/3)
Exemple1:

Exemple2:
Dérivation par extension
 Dériver un nouveau type par extension consiste à ajouter à un type
existant des sous-éléments ou des attributs.
 On obtient inévitablement un type complexe.
Exemple 1: cas de l’ajout de l’unité de mesure ‘unit’ à la valeur
donnée ‘Mesure’ (cas d’une base de type simple
Dérivation par liste
 Une liste permet de définir un nouveau type de sorte qu’une valeur
du nouveau type est une liste de valeurs du type pré_existant
(valeurs séparées par espace).
Types complexes
 Un élément complexe est un élément qui peut contenir d’autres
éléments ou bien des attributs.
 Un élément complexe se déclare en utilisant la balise
xsd:complexType

 Trois façons de composer des éléments dans un type complexe:


-sequence,
- choice,
-all.
Types complexes: Sequence
 Un type sequence est défini par une suite de sous-éléments qui
doivent être présents dans l'ordre donné.
 Le nombre d'occurences de chaque sous-élément est défini par les
attributs minOccurs et maxOccurs.
Exemple

.
Types complexes: Choice
 Un seul des éléments listés doit être présent.
 Le nombre d'occurences possibles est déterminé par les attributs
minOccurs et maxOccurs de l’élément.
Exemple 1

.
Types complexes: All
 Le type all est utilisé lorsque l’on veut spécifier que les éléments
contenus dans un type complexe peuvent apparaître dans n’importe
quel ordre.
Syntaxe Exemple

.
Déclaration des attributs
La définition d’attributs associés à un élément se fait dans un élément
qui possède les attributs suivants:
Name : nom de l’attribut
Type : type de l’attribut, par exemple xsd:string, xsd:boolean, .
Use : permet de préciser si l’attribut est obligatoire ou optionnel: required
(obligatoire), optional (facultatif)
Value : fixed ou default (valeur par défaut)

Vous aimerez peut-être aussi