Vous êtes sur la page 1sur 44

Architecture SOA et Service Web- XML

Plan

Introduction
XML
XML Validation
DTD
Structure
Entités
Utiliser DTD
XSD
Schéma XML
Types simples
Types complexes
5
Annotation

XML
XML pour « eXtensible Markup Language » (Langage de balisage extensible

Le XML se classe dans la catégorie des langages de description (il n'est ni un


langage de programmation, ni un langage de requêtes).

Il est naturellement utilisé pour décrire des données en s'appuyant sur des balises
et des règles personnalisables.

C’est est un langage à balise définissant un format universel de representation


des données.
6
XML

XML est issu du langage de balise SGML dont est issu


HTML

Standard Generalized Markup Language (« langage


de balisage généralisé normalisé » - SGML) est
un langage de description à balises, de
norme ISO (ISO 8879:1986).

Si HTML est conçu pour l’affichage, XML est conçu


pour la représentation des données.

Note
En informatique, les langages de balisage représentent une classe de langages
spécialisés dans l'enrichissement d'information textuelle.
Ils utilisent des balises, unités syntaxiques délimitant une séquence de
caractères ou marquant une position précise à l'intérieur d'un flux de
caractères (par exemple un fichier texte).
une balise traduit une catégorie d'information

L'inclusion de balises permet de transférer à la fois la structure du document et


son contenu.
Cette structure est compréhensible par un programme informatique, ce qui
permet un traitement automatisé du contenu.
8
XML
XML décrit les données de manière aussi bien compréhensible par les
Hommes qui écrivent les documents XML que par les machines qui les
exploitent.
Un document XML contient à la fois des données et les méta données
qui les décrivent.

Ces méta données permettent de déterminer la structure du document :


ce sont des balises.
Une métadonnée est une donnée servant à définir ou décrire une autre
donnée.
Un exemple type est d'associer à une donnée la date à laquelle elle a
été produite ou enregistrée, ou à une photo les coordonnées GPS du
lieu où elle a été prise 9

XML

A DTD file is a Document Type Definition (un modèle de document xml)


La DTD est dans l'URL indiqué après le mot clef "SYSTEM".
Dans ce fichier xml, il y a déclaration de la DTD qui référence un fichier externe
(spécifié par l’URL dans cet exemple)

10
Structure XML : balise

Les balises sont les éléments de base d'un


document XML

Les balises permettent de décrire les données


contenu dans le document XML

Deux types de balise :


∉ balise par pair : <balise>contenu</balise>

∉ balise unique : <balise/>


11

XML
Structure d’un document XML

Prologue + Corps

12
XML
Structure d’un document XML

Le prologue= Des déclarations+ instructions de traitement+


commentaires +
Déclarations =
L'entête XML qui précise entre autre la version de XML et le codage du
fichier.
La seconde déclaration est la déclaration du type du document (DTD)
qui définit la structure du document. La déclaration de type de
document est omise lorsqu'on utilise des schémas XML ou d'autres
types de modèles qui remplacent les DTD.
13

Structure XML : entête

∉ version : de façon générale 1.0


Il existe deux versions 1.0 et 1.1

∉ encoding : valeur par défaut UTF-8

∉ standalone : valeur par défaut yes


Indique si le document en lui seul est suffisant pour être interprété ou
s'il nécessite l'adjonction d'un autre document externe (DTD)

14
Note

Unicode est une norme de codage de caractères universelle qui attribue un code à
chaque caractère et symbole dans toutes les langues du monde.
Codage des caractères= Character encoding

Encoding Types :There are mainly two types of encoding − UTF-8 and UTF-16

UTF stands for UCS Transformation Format, and UCS itself means Universal
Character Set.
UTF-8 utilise un octet au minimum pour encoder les caractères tandis que UTF-16
utilise au minimum deux octets. ... UTF-8 est un codage de longueur variable et prend 1
à 4 octets, selon le point de code. UTF-16 est également un codage de caractères de
longueur variable, mais prend 2 ou 4 octets. D'autre part, UTF-32 est fixé à 4 octets..

15

Structure XML : racine

L’ensembleϒ du contenu (le corps) d’un document XML est encapsulé au


sein d’une balise qui vient directement après l’entête. c’est la balise
racine (root)

Un document XML ne contient qu’une seule balise racine

16
Document XML bien formé
Un document bien formé respecte la syntaxe de base XML
Exemples d’erreurs de bonne formation
absence de déclaration XML
mauvaise syntaxe des balises
pas d’élément racine, pas de fermeture, croisement,…
mauvaise formation des noms XML
caractères spéciaux mal utilisés

17

Document XML valide (Validation XML)


La validation XML est le contrôle du contenu XML par rapport à une
grammaire fournie.
DTD : le plus ancien, très restreint en termes de contraintes
pouvant être exprimées;
XML Schéma : norme fournie par le W3C, permet un très grand
choix de contraintes et de types.
Relax NG : l'équivalent de XML Schéma mais proposé par OASIS.
Schematron : il est orienté « sémantique » en permettant d'ajouter des
contraintes sur les valeurs des éléments et des attributs.

18
Les parseurs XML
XML est uniquement un langage de structuration et de
représentation de données.
Il ne comporte pas d'instructions de contrôle et ne permet
donc pas d'exploiter directement les données.

Pour réaliser des applications XML, il faut donc avoir recourt aux
langages de programmation classiques (Java, Perl, C++, Python...).

Un analyseur syntaxique XML (ou parseur), permet de récupérer


dans une structure XML, les balises, leur contenus, leurs attributs et
de les rendre accessibles depuis les applications
19

Les parseurs XML


Le parseur sert à "découper" le fichier de données en un
ensemble de"mots" (tokens) et à les mettre à disposition
d'applications.

Il est associé à un module de traitement qui a lui un rôle plus


important : le processeur XML.

Il en existe deux types :


Les processeurs SAX (Simple API for XML), orientés
événement.
Les processeurs DOM (Document Object Model) orientés
hierarchie. 20
Les processeurs XML
SAX fournit une interface événementielle pour parcourir un document
XML.
L’API SAX renvoie à l'application qui manipule le document XML des
"événements" (ouverture de balise, fermeture de balise, contenu
textuel...).

SAX est bien adapté pour les traitements qui ne nécessitent qu'une seule
passe sur le document, ou dans le cas de gros volumes de données, s'il
n'est pas nécessaire d'avoir une représentation complète des données en
mémoire.

SAX existe en plusieurs versions suivant le langage utilisé : version Java


(2.0), Perl, C++ et Python. 21

Les processeurs XML


Un processeur DOM, à la différence des processeurs SAX, utilise une approche
hierarchique.
Ils permet une navigation aisée dans un document mais nécessite le chargement
complet en mémoire de sa structure arborescente.

Un parseur utilisant DOM prend en entrée un document XML et construit, à partir


de cela, un arbre formé d’objets : chaque objet appartient à une sous-classe de Node
et des opérations sur ces objets permettent de créer de nouveaux noeuds, ou de
naviguer dans le document.

A noter qu'une version de DOM spécifique à Java existe l'API JDOM .


22
• Illustration dans le TP
• Illustration utilisant le projet exemple du logiciel Eclipse

23

Structure XML : attribut d’une balise

Un attribut est une information supplémentaire qui est ajouté à la


balise pour apporter plus de détail.

On peut ajouter autant d’attributs qu’on veut à la balise

24
Structure XML : CDATA

Le contenu
ϒ d’une balise ne peut pas contenir certains caractères comme >,
<, & doivent être remplacés par leur encodage html.

CDATA permet
ϒ de contourner cette limitation et de saisir n’importe quel
caractère comme contenu.

ϒ
Le contenu du CDATA est interprété par l’éditeur XML comme du texte
brute.

Crochets obliques, chevrons : > <


25

Note

Une portion CDATA dans un document XML est une portion entière de ce
document qui n'est pas prise en compte par l'analyseur. On peut ainsi avoir
plusieurs pages de CDATA, comportant tous les caractères spéciaux que l'on veut,
sans perturber l'analyseur XML.

Dans l’exemple, la valeur des attributs étaient de type CDATA dans les DTD.

Une portion de texte CDATA apparaît entre les balises <![CDATA[ et ]]>

26
Structure XML : commentaire

ϒ
Permet de commenter et simplifier la lecture du contenu XML pour
l’humain.

27

Structure XML : instructions de traitement


Les processing-instructions (les instructions de traitement) sont le
moyen d'envoyer des ordres à l‘éditeur XML.
Une processing-instruction (PI) commence par <? et se termine par ?>
Exemple :

<?xml-stylesheet type="text/css" href="style.css" ?>

Permet d’attacher des feuilles de style externes avec les instructions de


traitement de xml-stylesheet

28
DTD
DTD : Document Type Definition
DTD permet de décrire la structure d'un document XML
liste des balises

attributs des balises

organisation des balises

La validation est le mécanisme qui vérifie qu’un document XML


respecte une DTD

30

DTD
Avec une DTD, des groupes indépendants de personnes peuvent se mettre
d'accord sur une DTD standard pour l'échange de données.

Une application peut utiliser une DTD pour vérifier que les données XML sont
valides.
Ceci est le fichier DTD: annuaire.dtd

31
Ceci est le fichier DTD: "bibliography.dtd"

https://www.irif.fr/~carton/Enseignement/XML/Cours/Syntax/index.html 32

Ceci est un fichier xml référençant le DTD: "bibliography.dtd"

https://www.irif.fr/~carton/Enseignement/XML/Cours/Syntax/index.html 33
DTD
Structure : élément

Définit une balise XML


∉ ELEMENT : mot clé pour déclarer une balise
∉ nom : le nom de la balise
∉ (contenu) : le contenu de la balise
Un contenu peut être vide, texte, ou contenir des sous
éléments

34

DTD
Structure : élément
Type DTD XML

Elément vide <!ELEMENT elt EMPTY> <elt/>

Elément <!ELEMENT elt (#PCDATA)> <elt>texte</elt>


contenant du
texte

<!ELEMENT elt (sous-elt)> <elt>


Elément avec
sous éléments <!ELEMENT sous-elt EMPTY> <sous-elt/>
</elt>

36
Note
Type DTD XML

Elément vide <!ELEMENT elt EMPTY> <elt/>

An empty element is an element that is complete by itself;

it never contains other elements.

Rather than being composed of a start tag, data, and an end tag,
the empty element is a combined start and end tag.

Typically, an empty element is used as a flag of some kind or


perhaps as an element that contains its information in its attributes.
37

DTD
Structure : élément
Type DTD XML
Elément <!ELEMENT elt (s1, s2)> <elt>
avec plusieurs <!ELEMENT s1 EMPTY> <s1/>
sous <s2/>
<!ELEMENT s2 EMPTY>
éléments </elt>

Elément avec <!ELEMENT elt (#PCDATA|s1)> <elt>texte</elt>


contenu <!ELEMENT s1 EMPTY> ou
variable
<elt><s1/></elt>
<elt>texte</elt>
ou
<elt><s1/></elt>
etc. 38
DTD
Structure : élément
Type DTD XML
L'élément pourra contenir des
Elément à flots de caractères ainsi que
contenu non <!ELEMENT elt ANY> n'importe quels éléments
défini déclarés par ailleurs.

Exemple:
<ELEMENT monElement1 ANY>
<!ELEMENT monElement2 EMPTY>
Permet d’avoir dans le fichier xml :
<monElement1><monElement2/>bonjour</monElement1>
<monElement1>au revoir<monElement2/></monElement1>
<monElement1></monElement1>
39
...

Elément à
DTD contenu non
défini
<!ELEMENT elt ANY>

Structure : élément
You can declare an element using the ANY keyword in the content. It is most
often referred to as mixed category element. ANY is useful when you have
yet to decide the allowable contents of the element.

Syntax :<!ELEMENT elementname ANY>

Here, the ANY keyword indicates that text (PCDATA) and/or any
elements declared within the DTD can be used within the content of the
<elementname> element. They can be used in any order any number of
times. However, the ANY keyword does not allow you to include
elements that are not declared within the DTD
40
Elément à
DTD contenu non
défini
<!ELEMENT elt ANY>

Structure : élément
Example: Following is a simple example demonstrating the element
declaration with ANY content −

41
https://www.tutorialspoint.com/dtd/dtd_elements.htm

DTD
Structure : élément
Cardinalité Signification
<!ELEMENT elt (s1)> Le contenu de la balise elt est une seule
balise s1

<!ELEMENT elt (s1*)> Le contenu de la balise elt est 0 à n


occurrence de la balise s1

<!ELEMENT elt (s1?)> Le contenu de la balise elt est 0 à 1


occurrence de la balise s1

<!ELEMENT elt (s1+)> Le contenu de la balise elt est 1 à n


occurrence de la balise s1

42
DTD
Structure : attribut

Définit l’attribut d’une balise XML


∉ ATTLIST : mot clé pour déclarer un attribut
∉ nom : le nom de la balise
XML elements can have attributes,
∉ nom-attribut : le nom de l’attribut
just like HTML.
∉ type : type de l’attribut
Attributes are designed to contain
∉ CDATA : chaîne de caractères data related to a specific element

∉ liste de valeurs possibles ("v1" |"v2" |"v3")


∉ valeur-par-defaut : valeur par défaut de l’attribut si aucune valeur n’est
fournie 43

DTD
Structure : attribut

∉ contrainte : définit les contraintes que doit respecter l’attribut, n’est


pas obligatoire

#REQUIRED : l’attribut est obligatoire


#IMPLIED : l’attribut est optionnel
#FIXED : la valeur de l’attribut est fixé, et prends comme valeur la valeur par
défaut

44
DTD
Structure : identifiant
Un attribut peut être déclaré comme identifiant d’un élément avec le mot clé ID

Un attribut peut être déclaré comme référence vers un autre élément (comme
une clé étrangère) avec le mot clé IDREF

45

DTD
Les entités

Les entités XML représentent un mécanisme qui permet de


déclarer un alias vers une information qui va être réutilisée
dans un XML ou une DTD

Les entités XML sont un moyen de représenter un élément


de données dans un document XML, au lieu d'utiliser les
données elles-mêmes.

46
DTD
Les entités

Entité générale : utilisé dans le document XML

47

DTD
Les entités

entité paramètre : utilisé dans une DTD

Ou

48
DTD
Les entités

Entité externe : même rôle que l’entité générale, sauf que les informations sont
stockés dans un fichier externe

L’attribut standalone au niveau de l’entête doit être a no

49

DTD
Utiliser une DTD

DOCTYPE permet de déclarer la DTD à utiliser pour valider le document XML,


vient directement après l’entête
PUBLIC est utilisé lorsque la DTD est une norme ou qu'elle est enregistrée sous forme
de norme ISO par l'auteur.
SYSTEM est utilisé pour donner l'adresse du fichier qui contient la DTD dans le cas où
la DTD n'est pas publique.

50
DTD
Utiliser une DTD interne

Ici, la DTD
est déclaré
directement
dans le
document XML
dans la balise
DOCTYPE

51

DTD
Utiliser une DTD externe

La DTDϒ est déclaré dans un fichier externe

SYSTEM : λla DTD est indiquée en fournissant sa localisation par son URI

PUBLIC : la DTD est dans le domaine public (norme), indiquée par son
identifiant (FPI) et sa localisation par son URI

Les FPI (Formal Public Identifier) sont des identifiants de documents hérités de SGML. Ils
52
sont plutôt remplacés en XML par les URI qui jouent le même rôle
XSD
XSD pour XML Schema Definition;

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.

Les schémas ont été introduits pour combler certaines lacunes des
DTD.

53

XSD
Avantages par rapport à DTD :

Le typage poussé des données (booléens, entiers, intervalles de


temps…)
Possibilité de créer de nouveaux types à partir de types existants.

Dérivation; Les éléments peuvent hériter du contenu et des attributs


d'un autre élément.

Les indicateurs d'occurrences des éléments peuvent être tout nombre


non négatif autre que 0,1 ou infini

54
XSD
Un schéma XML se compose
essentiellement de déclarations d'éléments
et d'attributs et de définitions de types

55

XSD
Type de données

Plus de 40 types de données,


string, integer, date, year, CDATA, float, double,
binary, ENTITIES, token, byte, etc.

Fournit un mécanisme pour définir des types de


données complexes
Créer un type de données totalement nouveau,
Restreindre ou d’étendre un type de données existant.

On distingue deux sortes de types, simple et


complexe
56
XSD
Type simple

Un élément de type simple ne peut comporter ni


attributs, ni sous-éléments.

Il est possible d’utiliser les types prédéfinis ou d’en


dériver de nouveaux à partir de types déjà existant.

La liste complète des types prédéfinis est disponible à


http://www.w3.org/TR/xmlschema-0/#CreatDt

57

XSD
Type simple

58
XSD
Type simple

La création de nouveaux types simples est réalisée au travers de la


balise <simpleType>

59

XSD
Type simple

Trois façons pour créer un nouveau type :

Restriction : <restriction> permet de dériver un nouveau


type sur la base d’un existant en ajoutant de nouvelles
contraintes
List : <list> permet de créer un nouveau type liste
Union : <union> permet de créer un nouveau type en
faisant l’union de plusieurs types existants

60
XSD
Type simple : Restriction

Les restrictions sur les types simples (Facets) permettent de


dériver de nouveaux types à partir de types existants

La restriction de type permet de définir des contraintes sur le


nouveau type à créer

La restriction est exprimée par la balise <restriction>

61

XSD
Type simple : Restriction

Exemples de contraintes
maxExclusive : limite supérieure (exclue)
maxInclusive : limite supérieure (incluse)
minExclusive : limite inférieure (exclue)
minInclusive : limite inférieure (incluse)
enumeration : liste de valeurs autorisée
length : nombre de caractères ou d’élément d’une liste autorisée
62
XSD
Type simple : Restriction
minLength : nombre minimum de caractères ou d’élément d’une liste
pattern : expression régulière à respecter
fractionDigits : nombre maxi de digits autorisé
totalDigits : nombre exact de digits autorisé
whiteSpace : politique de gestion des espaces blancs (tab, retour ligne,
fin de ligne, …)

La définition de l’ensemble des restrictions pour chaque type est disponible à


www.w3.org/TR/xmlschema-0/# SimpleTypeFacets
63

XSD
Type simple : Restriction

64
XSD
Type simple : Listes
Il existe trois types de liste : NMTOKENS, ENTITIES, IDREFS
Ces types existent pour garder la compatibilité avec les DTD

Il est possible de créer de nouvelles listes de types simple par dérivation


du type existant

La création de liste est exprimé par <list>

65

XSD
Type simple : Union

XSD permet de définir de nouveaux types simples par union de


types existants

i.e le nouveau type accepte les valeurs de l’ensemble des


types qui participent à l’union

L’union est exprimée par <union>

66
XSD
Type complexe
Un élément de type complexe peut contenir d'autres éléments et / ou
des attributs
Un attribut ne peut être de type complexe
Un élément de type complexe peut être

Elément vide qui ne contient que des attributs


Elément de type simple qui contient des attributs
Elément qui contient des sous éléments et des attributs
Elément qui contient des attributs, des sous éléments et du texte

La création d'un élément de type complexe est réalisée au travers


de la balise <complexType>
67

XSD
Type complexe

Type avec des attributs et sans contenu

68
XSD
Type complexe

Type avec ou sans attributs et un contenu de type simple

La balise <simpleContent> précise qu’il ne peut y avoir que


des attributs et un contenu de type simple

Contenu simple= integer + un attribut=l’unité du poids


69

XSD
Type complexe

Type avec ou sans attributs et un contenu composé de sous éléments


La balise <sequence> dite indicateur d’ordre, indique la logique
de placement des sous éléments dans le document XML

70
XSD
Type complexe

Trois balises
ϒ indicateurs d’ordre peuvent être utilisé pour indiquer la
logique de placements des sous éléments dans le document XML:

<all> :λ les sous éléments sont placés quelque soit l’ordre

<sequence>
λ : les sous éléments doivent respectés l’ordre de
déclaration dans le type

<choice>
λ : un seul des sous éléments déclarés est utilisé

71

XSD
Type complexe

Les indicateurs d'occurrence sont utilisés pour exprimer le nombre de


fois qu'un sous élément peut apparaître dans le document XML
maxOccurs : précise le nombre d'occurrence maximum d’un élément , la valeur par
défaut est 1
minOccurs : précise le nombre d'occurrence minimum d’un élément, la valeur par
défaut est 1

72
Pour définir une valeur infinie, fixer la valeur à unbounded
XSD
Type complexe
Il est possible de créer un type d’élément dont le contenu est composé de
texte et de sous éléments en même temps
L’attribut mixed de la balise complexType doit être positionné à true
Pour plus de detail, voir la
section 5.5.4. de la reference

https://www.irif.fr/~carton/En
seignement/XML/Cours/Sche
mas/index.html
(Une copie de ce cours vous a
été normalement transféré)

73

XSD
Type complexe

Il est possible de définir un nouveau type complexe sur la base d'un


type complexe existant:
Étendre le type existant en y ajoutant des attributs et des sous
éléments <extension>

Restreindre le type existant en limitant les valeurs possibles des


attributs et sous éléments existants <restriction>

La balise <complexContent> est utilisé pour implémenter cette


possibilité

74
XSD
Type
complexe

75

XSD
Visibilité des Types
Un type est visible par tous les descendants du noeud dans lequel il a été déclaré.
Un type déclaré sous le noeud principal (root) <schema> est visible dans tout le
document XSD.
Un type déclaré sous un nœud autre que le root, n’est visible que dans ce nœud.

76
XSD
Structure : élément

• La définition d’éléments se fait dans une balise <element>.


Définir un type de données et l’utiliser dans la définition de l’élément.

77

XSD
Structure : élément
Définir
ϒ le type de données à l’intérieur de l’élément.

78
XSD
Structure : attribut

La définition
ϒ d’attributs associés à un élément se fait par la balise
<attribute>.
name : nom de l’attribut
type : type de l’attribut, ne peut être qu’un type simple.
use : permet de préciser si l’attribut est obligatoire, optionnel ou interdit:

required : obligatoire
optional : optionnel
prohibited : interdite

Valeurs possibles :
fixed : valeur fixe, ne change pas
default : valeur par défaut.
79

XSD
Structure : attribut

La définition d’attributs peut se faire de deux façons différentes.

Définir l’attribut puis l’utiliser dans la définition du type.

Définir l’attribut directement à l’intérieur du type.

80
XSD
Structure : attribut
ϒ Définir l’attribut et l’utiliser
dans la définition du type.
λ

Définir l’attribut
directement à
l’intérieur du
type.

81

XSD
Annotation

L'annotation permet d'enrichir la description d'un XSD, c’est un


commentaire.
L'annotation est réalisée au travers de la balise <annotation> et propose
deux sous éléments (avec occurrences multiples)
<documentation> : son contenu est en direction de l’utilisateur
humain
<appinfo> : son contenu est en direction des outils d’édition XML

82
Structure d’un document XSD
XSD est un document XML, Il commence par un entête et un élément
racine (root)

• L'espace de noms des schémas XML est identifié par • Voir l’exemple de l’éditeur xml
d’Eclipse: Catalogue.xsd
l'URI http://www.w3.org/2001/XMLSchema . +readme file
• https://www.w3.org/2001/XMLSc
• Il est généralement associé au préfixes xsd ou xs. hema
• Tout le schéma est inclus dans l'élément xsd:schema. • https://www.w3.org/2009/XMLSc
83
hema/XMLSchema.xsd

XSD xmlns:prefix où prefix identifie l'espace de


noms (des definitions de types de
données/de balises)

targetNameSpace : libellé du namespace


associé au document XSD (en general
c’est l’URI du schema)

http://www.datypic.com/books/defxmlschema/chapter05.html
84
XSD

xmlns:prefix où prefix identifie l'espace de


noms (des definitions de types de
données/de balises)

xmlns:tns - Stands “for target namespace”

http://www.datypic.com/books/defxmlschema/chapter05.html
85

XSD

xmlns:tns - Stands “for


target namespace”

http://www.datypic.com/books/defxmlschema/chapter05.html
86
Espaces de nom (XML Namespaces)
Les espaces de nom XML est une spécification W3C, son
objectif est de:
permettre l’utilisation de plusieurs vocabulaires (plusieurs

défintions de types incluses dans divers schémas) dans un seul


document.

lever les ambiguïtés lorsque plusieurs vocabulaires offrent


The World Wide Web Consortium (W3C) is the main
des éléments avec les même nom. international standards organization for the World
87
Wide Web

Complément: xmlns
Suite à la diversité des schémas xml, il devient indispensable
d'identifier la provenance de chaque élément et de chaque
attribut afin de permettre une validation correcte.
Les espaces de noms jouent justement ce rôle.
Chaque élément ou attribut appartient à un espace de noms
qui détermine le schema dont il est issu. Cette appartenance
est marquée par la présence dans le nom d'un préfixe
associé à l'espace de noms

88
Complément: xmlns

Un espace de noms est déclaré par un pseudo attribut dont le nom prend la
forme xmlns:prefix où prefix est un nom XML ne contenant pas le caractère ':'. La
valeur de ce pseudo attribut est l'URI qui identifie l'espace de noms.

xmlns:xsi déclare un préfixe d'espace de noms standard (xsi) pour un espace de


noms de base utilisé dans XSD: http://www.w3.org/2001/XMLSchema-instance

il déclare la liaison conventionnelle du préfixe d'espace de noms xsi à


http://www.w3.org/2001/XMLSchema-instance, qui configure correctement
l'utilisation des attributs suivants: xsi:type, xsi:schemaLocation...
89

Complément: xmlns

Un nom qualifié d'élément prend la forme prefix:local où prefix est un préfixe


associé à un espace de noms et local est le nom local de l'élément.

Ce nom local est également un nom XML ne contenant pas le caractère ':'

Dans la terminologie XML, les noms sans caractère ':' sont appelés NCNAME qui
est l'abréviation de No Colon Name et les noms qualifiés sont appelés QNAME qui
est, bien sûr, l'abréviation de Qualified Name. 90
Creating an XML file from an XSD file
The following example is an XML Schema file called "note.xsd" that defines the elements of the XML document fhat follows
("note.xml"):

The note element is


a complex type because it
contains other elements. The
other elements (to, from,
heading, body) are simple
types because they do not
contain other elements.
ϒ
elementFormDefault :
λ indique si les éléments du
λ XSD doivent être préfixé
λ
par l’alias du namespace
lors de son utilisation dans
un document XML

92
https://www.w3schools.com/xml/schema_howto.asp

Creating an XML file from an XSD file


A Reference to an XML Schema: W3Schools is a freemium educational website for learning
("note.xml"): coding online. Developed in 1998, its name is derived from
the World Wide Web.[1] It is run by Refsnes Data in Norway.

λ
λ

93
https://www.w3schools.com/xml/schema_howto.asp
Utiliser un XSD
A la différence du DTD, n’importe quel élément de la XSD peut
servir de racine pour le document XML

xmlns:xsi : identifier le namespace de la norme W3C


xmlns:… : identifier les autres namespaces à utiliser dans le
document XML

xsi:schemaLocation : identifier pour chaque namespace utilisé


par le document XML, la localisation physique du document XSD
(sauf pour le namespace de la norme W3C)
The World Wide Web Consortium (W3C) is an international
community where Member organizations, a full-time staff, and the public 94
work together to develop Web standards.

Vous aimerez peut-être aussi