Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam:donneestructurees:le_format_xml_1 [2024/12/18 23:19] – [Mise en œuvre] dthevenot | slam:donneestructurees:le_format_xml_1 [2024/12/20 09:13] (Version actuelle) – [Règles de composition] dthevenot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ~~SLIDESHOW~~ | ||
======= Langage XML ======= | ======= Langage XML ======= | ||
====== Historique : de SGML à XML ====== | ====== Historique : de SGML à XML ====== | ||
- | **XML**(**Extensible Markup Language**) dérive d'un langage développé dans les années 80, le **SGML** . Ce langage était complexe à apprendre et utiliser quotidiennement. Une version allégée, le **HTML** a donc été développée ; mais ce dernier, malgré de nombreuses adaptations, | + | **XML**(**Extensible Markup Language**) dérive d'un langage développé dans les années 80, le **SGML**(Standard Generalized Markup Language). Ce langage était complexe à apprendre et utiliser quotidiennement. Une version allégée, le **HTML** a donc été développée ; mais ce dernier, malgré de nombreuses adaptations, |
+ | ===== ===== | ||
Le XML est un dérivé du SGML. Il tente de se servir des principes de simplicité du HTML et de la souplesse SGML. | Le XML est un dérivé du SGML. Il tente de se servir des principes de simplicité du HTML et de la souplesse SGML. | ||
Ligne 10: | Ligne 11: | ||
Cette association n'est cependant pas obligatoire, | Cette association n'est cependant pas obligatoire, | ||
+ | ===== ===== | ||
Une autre caractéristique importante est que dans un document XML, **la mise en forme des données est totalement séparée des données** elles-mêmes. Cela permet de séparer complètement l' | Une autre caractéristique importante est que dans un document XML, **la mise en forme des données est totalement séparée des données** elles-mêmes. Cela permet de séparer complètement l' | ||
+ | ===== ===== | ||
+ | Un document XML peut ainsi prévoir **plusieurs cibles**, comme par exemple l' | ||
- | Un document XML peut ainsi prévoir plusieurs cibles, comme par exemple l' | + | De plus, la possibilité de créer les éléments que l'on désire permet de rendre le fichier lui-même |
- | + | ===== ===== | |
- | De plus, la possibilité de créer les éléments que l'on désire permet de rendre le fichier lui-même lisible et modifiable- par un être humain : on peut donner aux informations contenues dans un tel fichier les étiquettes que l'on veut, et les ordonner selon son désir. | + | Il est également possible d' |
- | + | ||
- | Il est également possible d' | + | |
===== Caractéristiques de XML ===== | ===== Caractéristiques de XML ===== | ||
- | * il est destiné à décrire le contenu du document, pas son affichage (les feuilles de style CSS et XSL gèrent l' | + | * il est destiné à décrire le **contenu du document**, pas son affichage (les feuilles de style CSS et XSL gèrent l' |
- | * il est flexible, on peut définir ses balises, et les utiliser dans un ou plusieurs documents, | + | * il est **flexible**, on peut définir ses balises, et les utiliser dans un ou plusieurs documents, |
- | * le document ne sera affiché que s'il est bien formé et valide (s'il suit une DTD ou un schéma), | + | * le document ne sera affiché que s'il est bien formé et valide (s'il suit une **DTD** ou un **schéma**), |
- | * il est lisible pour l' | + | ===== ===== |
+ | * il est **lisible pour l' | ||
* le document XML est un texte qui n'est pas destiné à être lu par l' | * le document XML est un texte qui n'est pas destiné à être lu par l' | ||
+ | ===== ===== | ||
===== Mise en œuvre ===== | ===== Mise en œuvre ===== | ||
Ligne 31: | Ligne 33: | ||
XML permet de séparer forme et fond. Par exemple, cela signifie que pour produire un document HTML à partir de données en utilisant le format XML, il est nécessaire d' | XML permet de séparer forme et fond. Par exemple, cela signifie que pour produire un document HTML à partir de données en utilisant le format XML, il est nécessaire d' | ||
+ | ===== ===== | ||
En pratique, et dans un souci de normalisation et de généralisation, | En pratique, et dans un souci de normalisation et de généralisation, | ||
- | - Optionnel : un fichier peut être nécessaire pour définir a priori les balises auxquelles le document XML pourra avoir recours. Ce fichier peut être soit une Document Type Definition soit un Schema (voir plus loin dans le cours) ; | + | - Optionnel : un fichier peut être nécessaire pour définir a priori les balises auxquelles le document XML pourra avoir recours. Ce fichier peut être soit **une Document Type Definition soit un Schema** (voir plus loin dans le cours) ; |
- Le document contenant les données elles-mêmes, | - Le document contenant les données elles-mêmes, | ||
- Le document contenant les informations de mise en forme, permettant de produire un fichier dans le format de sortie voulu : une feuille XSLT (eXtensive Stylesheet Language Transformations). | - Le document contenant les informations de mise en forme, permettant de produire un fichier dans le format de sortie voulu : une feuille XSLT (eXtensive Stylesheet Language Transformations). | ||
+ | ===== ===== | ||
Dans le cas d'un format de sortie HTML, il peut être également nécessaire d' | Dans le cas d'un format de sortie HTML, il peut être également nécessaire d' | ||
Ligne 44: | Ligne 46: | ||
- Créer la feuille de style XSL permettant la production du fichier HTML ; | - Créer la feuille de style XSL permettant la production du fichier HTML ; | ||
- Créer éventuellement une feuille de style CSS. | - Créer éventuellement une feuille de style CSS. | ||
+ | ===== ===== | ||
Nous verrons au long de ce cours successivement les étapes 2, 1 et 3. | Nous verrons au long de ce cours successivement les étapes 2, 1 et 3. | ||
==== 2)Exemple : une bibliographie ==== | ==== 2)Exemple : une bibliographie ==== | ||
< | < | ||
- | <?xml version=" | + | <?xml version=" |
<!-- La ligne ci-dessus est le prologue --> | <!-- La ligne ci-dessus est le prologue --> | ||
<!-- Élément racine --> | <!-- Élément racine --> | ||
Ligne 70: | Ligne 72: | ||
</ | </ | ||
</ | </ | ||
+ | ===== ===== | ||
==== 3)Structure ==== | ==== 3)Structure ==== | ||
Comme cela est illustré par l' | Comme cela est illustré par l' | ||
+ | ===== ===== | ||
* Les premières lignes forment le **prologue**, | * Les premières lignes forment le **prologue**, | ||
* L' | * L' | ||
+ | ===== ===== | ||
Même s'il est simple de comprendre ce code, on s' | Même s'il est simple de comprendre ce code, on s' | ||
=== Visualisation dans un navigateur : === | === Visualisation dans un navigateur : === | ||
- | |||
Copier l’exemple ci-dessus dans un éditeur de texte, enregistrez-le au format xml et exécutez-le. Que remarquez-vous ? | Copier l’exemple ci-dessus dans un éditeur de texte, enregistrez-le au format xml et exécutez-le. Que remarquez-vous ? | ||
+ | ===== ===== | ||
=== Le prologue=Déclaration XML === | === Le prologue=Déclaration XML === | ||
Cette déclaration fait partie des « instructions de traitement ». Exemple de déclaration XML : <?xml version=" | Cette déclaration fait partie des « instructions de traitement ». Exemple de déclaration XML : <?xml version=" | ||
+ | ===== ===== | ||
On distingue trois informations fournies dans cette déclaration : | On distingue trois informations fournies dans cette déclaration : | ||
* version : version du XML utilisée dans le document, 1.0 en ce qui nous concerne ; | * version : version du XML utilisée dans le document, 1.0 en ce qui nous concerne ; | ||
* encoding : le jeu de codage de caractères utilisé. Par défaut, encoding a la valeur UTF-8. Cela permet à l' | * encoding : le jeu de codage de caractères utilisé. Par défaut, encoding a la valeur UTF-8. Cela permet à l' | ||
+ | ===== ===== | ||
* standalone : dépendance du document par rapport à une déclaration de type de document. Si standalone a la valeur yes, le processeur de l' | * standalone : dépendance du document par rapport à une déclaration de type de document. Si standalone a la valeur yes, le processeur de l' | ||
+ | ===== ===== | ||
=== Les commentaires === | === Les commentaires === | ||
Ligne 100: | Ligne 103: | ||
<elt> <!-- ceci est correct aussi --> Un peu de texte </ | <elt> <!-- ceci est correct aussi --> Un peu de texte </ | ||
+ | ===== ===== | ||
__Remarque__ : En raison de la compatibilité XML/SGML, la chaîne de caractères -- est interdite dans un commentaire. | __Remarque__ : En raison de la compatibilité XML/SGML, la chaîne de caractères -- est interdite dans un commentaire. | ||
Ligne 106: | Ligne 109: | ||
* a. Introduction | * a. Introduction | ||
Un document XML peut se représenter sous la forme d'une arborescence d' | Un document XML peut se représenter sous la forme d'une arborescence d' | ||
+ | ===== ===== | ||
* b. Élément racine | * b. Élément racine | ||
L' | L' | ||
+ | ===== ===== | ||
* c. Les éléments | * c. Les éléments | ||
Les éléments forment la structure même du document : ce sont les branches et les feuilles de l' | Les éléments forment la structure même du document : ce sont les branches et les feuilles de l' | ||
+ | ===== ===== | ||
Exemple d' | Exemple d' | ||
Ligne 125: | Ligne 129: | ||
Exemple d' | Exemple d' | ||
- | + | ===== ===== | |
**Arborescence de l’exemple « bibliographie » :** | **Arborescence de l’exemple « bibliographie » :** | ||
< | < | ||
- | Biblio | + | biblio |
| | | | ||
--- livre | --- livre | ||
Ligne 145: | Ligne 149: | ||
--- nbtomes | --- nbtomes | ||
</ | </ | ||
- | + | ===== ===== | |
**Fichier XML exemple2 :** | **Fichier XML exemple2 :** | ||
< | < | ||
Ligne 173: | Ligne 177: | ||
</ | </ | ||
</ | </ | ||
- | + | ===== ===== | |
- | | + | |
- | + | ===== ===== | |
- | + | ||
==== Les attributs ==== | ==== Les attributs ==== | ||
Les attributs apportent des informations sur l' | Les attributs apportent des informations sur l' | ||
+ | ===== ===== | ||
Tous les éléments peuvent contenir un ou plusieurs attributs. Chaque élément ne peut contenir qu'une fois le même attribut. Un attribut est composé d'un nom et d'une valeur. Il ne peut être présent que dans la balise ouvrante de l' | Tous les éléments peuvent contenir un ou plusieurs attributs. Chaque élément ne peut contenir qu'une fois le même attribut. Un attribut est composé d'un nom et d'une valeur. Il ne peut être présent que dans la balise ouvrante de l' | ||
+ | ===== ===== | ||
**Exemple d' | **Exemple d' | ||
**Exemple d' | **Exemple d' | ||
+ | ===== ===== | ||
L' | L' | ||
==== Les entités ==== | ==== Les entités ==== | ||
Il existe des entités définissables et définies. Elles peuvent|être analysables ou non, internes ou externes. La déclaration des entités s' | Il existe des entités définissables et définies. Elles peuvent|être analysables ou non, internes ou externes. La déclaration des entités s' | ||
+ | ===== ===== | ||
| Caractère| Entité| | | Caractère| Entité| | ||
|& | |& | ||
Ligne 201: | Ligne 203: | ||
|" | |" | ||
|' | |' | ||
+ | ===== ===== | ||
Certains caractères ayant un sens précis en XML, il est nécessaire de leur trouver un remplaçant lorsque l'on a besoin de les insérer dans un document. On a recours dans ce cas à des entités prédéfinies. Ces entités sont : | Certains caractères ayant un sens précis en XML, il est nécessaire de leur trouver un remplaçant lorsque l'on a besoin de les insérer dans un document. On a recours dans ce cas à des entités prédéfinies. Ces entités sont : | ||
- | + | ===== ===== | |
- | + | ||
- | + | ||
==== Règles de composition ==== | ==== Règles de composition ==== | ||
- | Un document XML est bien formé | + | Un document XML est **bien formé** (well formed - l' |
- il contient une déclaration XML ; | - il contient une déclaration XML ; | ||
- il contient un ou plusieurs éléments ; | - il contient un ou plusieurs éléments ; | ||
Ligne 215: | Ligne 214: | ||
- les éléments non vides ont une balise de début et de fin ; | - les éléments non vides ont une balise de début et de fin ; | ||
- les éléments non vides sont correctement imbriqués (<P> <EM> ... </EM> </P>) ; | - les éléments non vides sont correctement imbriqués (<P> <EM> ... </EM> </P>) ; | ||
- | - les éléments vides ont un / à la fin de la balise avant le > ; | ||
- les noms des balises ouvrantes et fermantes correspondent ; | - les noms des balises ouvrantes et fermantes correspondent ; | ||
- un nom d' | - un nom d' | ||
Ligne 227: | Ligne 225: | ||
- Toutes les balises portant un contenu non vide doivent être fermées. | - Toutes les balises portant un contenu non vide doivent être fermées. | ||
- Les balises n' | - Les balises n' | ||
+ | ===== ===== | ||
+ | < | ||
- | **A vous de jouer (1), créez votre premier fichier XML bien formé :** | + | **Proposer une présentation structurée au format XML des données contenues dans le texte ci-dessous :** |
- | + | ||
- | Proposer une présentation structurée au format XML des données contenues dans le texte ci-dessous : | + | |
Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium, et 5,5 mg d'ions positifs magnésium. On y trouve également des ions négatifs comme des chlorures à 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie à St-Cyr la Source, dans le département du Loiret. Son code barre est 3274080005003 et son pH est de 7,45. Comme la bouteille est sale, quelques autres matériaux comme du fer s'y trouvent en suspension. | Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifs calcium, et 5,5 mg d'ions positifs magnésium. On y trouve également des ions négatifs comme des chlorures à 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie à St-Cyr la Source, dans le département du Loiret. Son code barre est 3274080005003 et son pH est de 7,45. Comme la bouteille est sale, quelques autres matériaux comme du fer s'y trouvent en suspension. | ||
Ligne 237: | Ligne 235: | ||
PS : Volvic est dans le Puy-de-Dôme... | PS : Volvic est dans le Puy-de-Dôme... | ||
+ | ===== ===== | ||
__Remarque__ : Un fichier XML est un fichier texte dont l’extension est .xml | __Remarque__ : Un fichier XML est un fichier texte dont l’extension est .xml | ||
Ligne 243: | Ligne 241: | ||
Il peut s’écrire dans n’importe quel éditeur de texte (blocnote, notepad) et il existe des éditeurs spécifiques pour xml (XMLSpy, Editix, …) | Il peut s’écrire dans n’importe quel éditeur de texte (blocnote, notepad) et il existe des éditeurs spécifiques pour xml (XMLSpy, Editix, …) | ||
- | + | **Exemple 3 de fichier XML** | |
- | + | ||
- | **Exemple 3 de fichier XML** | + | |
- | + | ||
- | + | ||
- | **Travail à faire** | + | |
- | + | ||
- | - Quelle est la balise racine du fichier XML de l’exemple 3 ? | + | |
- | - Réalisez l’arbre du fichier XML de l’exemple 3. | + | |
- | + | ||
- | Exemple 4 de fichier XML | + | |
< | < | ||
- | 1. <?xml version=" | + | 1. <?xml version=" |
2. < | 2. < | ||
3. < | 3. < | ||
Ligne 267: | Ligne 255: | ||
</ | </ | ||
- | **Travail à faire** | + | < |
+ | - Quelle est la balise racine de l’exemple 3. | ||
+ | - Réalisez l’arbre du fichier XML de l’exemple 3. | ||
- Ce fichier est mal formé, indiquez les numéros de ligne qui posent problème et expliquer le problème. | - Ce fichier est mal formé, indiquez les numéros de ligne qui posent problème et expliquer le problème. | ||
- Proposez une correction pour rendre bien formé le document XML ci-dessus en respectant une logique de structuration des informations. | - Proposez une correction pour rendre bien formé le document XML ci-dessus en respectant une logique de structuration des informations. |