Exonet 57
Réponse AJAX

Description

Public(s)Section de TS Services informatiques aux organisations
Savoir(s)Format d’échange des données.
Capacité(s)
  • Caractériser les nouvelles technologies de l’information
  • Collecter, sélectionner et exploiter des informations provenant de différents médias
  • Mettre en œuvre un outil de gestion documentaire
Objectif(s)
  • Utiliser le langage XML (eXtensible Markup Language) pour structurer et présenter des informations dans un document.
  • Qualifier un document XML bien formé et valide.

Cet exercice est l’occasion d’une première approche du langage XML, les espaces de nom et les types de données XMLSchema notamment ne sont pas abordés.

FichierExonet57.zip
Auteur(s)Eric DESCHAINTRE merci à Frédéric VARNI et Pierre LOISEL pour leur relecture.

Enoncé

XML (Extensible Markup Language) est un langage qui permet de définir une structure de données et son contenu. Ce langage défini par le W3C est rapidement adopté par l'industrie (Software AG, IBM, Sun, Microsoft, Netscape, DataChannel, SAP et bien d'autres ont annoncé leur adhésion au XML).

Les principaux avantages de ce langage sont les suivants :

Cet exercice propose une toute première introduction au langage XML.

Considérons le document suivant qui décrit un CD audio (en partie) :

Titre : Stan Getz Finest Hour
Interprète : STAN GETZ
Genre : Jazz/blues
Piste 1 :
	Titre : It Never Entered My Mind
	Compositeur : Hart
	Compositeur : Rodgers
	Durée : 3 :51
Piste 2 :
	Titre : S-h-i-n-e
	Compositeur : Brown
	Durée : 8 :56

Seules les deux premières pistes de ce CD sont présentées.

On peut représenter la structure de ce document sous la forme d'un arbre :

Les éléments <Piste> et <Compositeur> peuvent être répétés plusieurs fois.

Voici la définition de ce type de document (cette définition respecte la syntaxe DTD (Document Type Definition) définie par le W3C, cette définition est enregistrée dans le fichier cd.dtd) :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT CD (Titre, Interprete, Genre, Piste+)>
<!ELEMENT Piste (Titre, Compositeur+, Duree)>
<!ELEMENT Titre (#PCDATA)>
<!ELEMENT Interprete (#PCDATA)>
<!ELEMENT Genre (#PCDATA)>
<!ELEMENT Compositeur (#PCDATA)>
<!ELEMENT Duree (#PCDATA)>

Un élément peut être une donnée (on se limite ici au type #PCDATA - Ou Parsed Character DATA, chaîne de caractères analysée) ou bien être composé d'autres éléments indiqués entre parenthèses après le nom de l'élément.

Le signe " + " indique une répétition (une ou plusieurs fois). Pour information le signe " * " indique une répétition (zéro, une ou plusieurs fois) et le signe " ? " signifie que l'élément peut apparaître zéro ou une fois.

Voici la définition XML du document présenté ci-dessus (cette définition est enregistrée dans le fichier cd.xml, elle est associée à la définition de type de document contenue dans le fichier cd.dtd) :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE CD SYSTEM "cd.dtd">
<CD>
<Titre>Stan Getz Finest Hour</Titre>
<Interprete>STAN GETZ</Interprete>
<Genre>Jazz/blues</Genre>
<Piste>
<Titre>It Never Entered My Mind</Titre>
<Compositeur>Hart</Compositeur>
<Compositeur>Rodgers</Compositeur>
<Duree>3:51</Duree>
</Piste>
<Piste>
<Titre>S-h-i-n-e</Titre>
<Compositeur>Brown</Compositeur>
<Duree>8 :56</Duree>
</Piste>
</CD>

Document XML bien formé et valide

Un document XML peut avoir deux qualifications, il peut être :

Voici les principales règles de syntaxe que doit respecter un document XML bien formé :

Travail à faire

Vérifier que le fichier cd.xml présenté ci-dessus correspond à un document XML bien formé et valide.

Votre réponse n°1

Qualifier le document XML ci-dessous : est-il bien formé ? est-il valide ?

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE CD SYSTEM "cd.dtd">
<Titre>Stan Getz Finest Hour</Titre>
<Genre>Jazz/blues</Genre>
<Interprete>STAN GETZ</Interprete>
<Piste>
<Titre>S-h-i-n-e</Titre>
<Compositeur>Brown</Compositeur>
<Duree>8 :56</Duree>
</Piste>
Votre réponse n°2

Rédiger la définition (DTD) d'un document de type Bon de commande en utilisant le texte en italiques ci-dessous :

Un bon de commande est émis par une organisation identifiée par un nom, une adresse, un numéro de téléphone et éventuellement un numéro de télécopie. Il s'adresse à une autre organisation définie de la même manière. Il comporte une date, un montant total ainsi que une ou plusieurs lignes de commande. Chaque ligne comporte une référence de produit, un intitulé, une quantité, un prix unitaire.

Votre réponse n°3

Rédiger un document XML bien formé et valide par rapport à la définition de document proposée à la question précédente.

Votre réponse n°4

Rédiger la définition (DTD) d'un document de type Exonet en utilisant la structure du présent exercice (composé de Description, Énoncé, Travail à faire,.). On supposera qu'un exercice ne contient que du texte. (NdPastore : pour cette question, je conseille de vous référer à la version originale de cet Exonet)

Votre réponse n°5

Rédiger le document XML qui utilise la définition ci-dessus pour présenter l'intégralité de cet exercice. On renseignera les valeurs des données uniquement pour la partie Description.

Votre réponse n°6

Visualiser dans un navigateur le document ainsi obtenu en l'associant à une feuille de style en cascade (CSS) grâce à une ligne du type <?xml-stylesheet type="text/css" href="exonet.css"?>. Collez ici la capture d'écran du résultat dans le navigateur :

Votre réponse n°7

Collez ici la feuille CSS qui vous a permis d'obtenir le résultat précédent :

Votre réponse n°8