1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
---
language: xml
contributors:
- ["João Farias", "https://github.com/JoaoGFarias"]
translators:
- ["Geoffrey Liu", "https://github.com/g-liu"]
filename: learnxml.xml
---
XML est un langage de balisage conçu pour stocker et transporter les informations.
Contrairement à HTML, XML ne spécifie pas comment afficher ou formater les informations, juste comment le porter.
* La syntaxe XML
```xml
<!-- Les commentaires en XML ressemblent ceci -->
<?xml version="1.0" encoding="UTF-8"?>
<librarie>
<livre categorie="CUISINE">
<titre lang="en">Everyday Italian</titre>
<auteur>Giada De Laurentiis</auteur>
<an>2005</an>
<prix>30.00</prix>
</livre>
<livre category="ENFANTS">
<titre lang="en">Harry Potter</titre>
<auteur>J. K. Rowling</auteur>
<an>2005</an>
<prix>29.99</prix>
</livre>
<livre category="WEB">
<titre lang="en">Learning XML</titre>
<auteur>Erik T. Ray</auteur>
<an>2003</an>
<prix>39.95</prix>
</livre>
</librarie>
<!-- Ce qui précède est un fichier XML typique.
Il commence par une déclaration, qui informe certaines métadonées (en option).
XML utilise une structure arborescente. Ci-dessus, le nœud racine est «librairie», qui a
trois nœuds enfants, qui sont appelés «livres». Ces nœuds a plus de nœuds enfants, et ainsi de suite ...
On crée les nœuds avec des balises d'ouverture / fermeture, et les enfants sont les nœuds juste entre
les balises d'ouverture et de fermeture. -->
<!-- XML porte deux types d'informations:
1 - Les attributs -> les metadonnées sur un nœud.
Habituellement, l'analyseur XML utilise cette information pour bien stocker les donnés.
2 - Les éléments -> les informations pures.
C'est ce que l'analyseur retrouvera du fichier XML.
Les éléments apparaissent entre les balises d'ouverture et de fermeture, sans parenthèses. -->
<!-- Ci-dessous, un élément avec deux attributs -->
<fichier type="gif" id="4293">ordinateur.gif</fichier>
```
* Un document bien-formaté & le validation
Un document XML est bien formaté s'il est syntaxiquement correcte.
Cependant, il est possible d'injecter plus de contraintes dans le document,
en utilisant les définitions de documents, tels que les schémas DTD et XML.
Un document XML qui suit une définition de document est dit valide,
en ce qui concerne ce document.
Avec cet outil, vous pouvez vérifier les données XML en dehors de la logique de l'application.
```xml
<!-- Ci-dessous, vous pouvez voir une version simplifiée du document de librairie,
avec l'addition de définition DTD. -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Librarie.dtd">
<librarie>
<livre categorie="CUISINE">
<titre>Everyday Italian</titre>
<prix>30.00</prix>
</livre>
</librarie>
<!-- Cette DTD pourrait être quelque chose comme: -->
<!DOCTYPE note
[
<!ELEMENT librarie (livre+)>
<!ELEMENT livre (titre,prix)>
<!ATTLIST livre categorie CDATA "Littérature">
<!ELEMENT titre (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
]>
<!-- La DTD commence par une déclaration.
Après, le nœud racine est déclaré, qui exige un ou plusieurs nœuds enfants.
Chaque «livre» doit contenir exactement un «titre» et «prix» et un attribut
appelé «catégorie», avec «littérature» comme valeur par défaut.
Les nœuds de «titre» et «prix» contiennent des informations de caractère analysés
(anglais: «parsed character data») -->
<!-- La DTD pourrait être déclaré dans le fichier XML lui-même -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note
[
<!ELEMENT librarie (livre+)>
<!ELEMENT livre (titre,prix)>
<!ATTLIST livre categorie CDATA "Littérature">
<!ELEMENT titre (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
]>
<librarie>
<livre categorie="CUISINE">
<titre>Everyday Italian</titre>
<prix>30.00</prix>
</livre>
</librarie>
```
|