Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document...

37
Le 10/05/2006 Université de Technologie de Belfort Montbéliard 1 par S.Lamrous Créer un document XML élémentaire Créer un fichier .txt Enregistrer le fichier en lui donnant l’extension .xml Ou changer l’extension .txt en.xml

Transcript of Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document...

Page 1: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

1

par S.Lamrous

Créer un document XML élémentaire

• Créer un fichier .txt• Enregistrer le fichier

en lui donnant l’extension .xml

• Ou changer l’extension .txt en.xml

Page 2: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

2

par S.Lamrous

• Une fois le document XML terminé, on détecte les erreurs de syntaxe éventuelles grâce à un parseur

• Il existe deux types de parseurs :

Validant et non validant

Vérifier un document XML

Page 3: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

3

par S.Lamrous

Parseurs validant

• Les parseurs validants contrôlent la syntaxe du document XML.

• Ils vérifient également que les données XML respectent les éventuelles règles de validation prédéfinies en comparant les documents XML aux définitions de type de document (DTD) et aux schémas.

Exemple : MSXML : parseur validant inclus dans Internet Explorer 5.5

Page 4: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

4

par S.Lamrous

Parseurs non validants

• Les parseurs non validants vérifient la syntaxe des

documents XML, mais ne contrôlent pas la concordance

de ces derniers avec les DTD et les schémas.

Exemples de parseurs de ce type :• RUWF de XML.com, fondé sur le parseur Lark :

www.xml.com/pub/tools/ruwf/check.html.• Expat de James Clark :

www.jclark.com/xml/expat.html.

Page 5: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

5

par S.Lamrous

Vérifier un document XML• Ouvrir le

document .xml : ici essai1.xml

Voici le résultat

Page 6: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

6

par S.Lamrous

Interpréter les rapports d’erreur de MSXML• Nous introduisons une

erreur dans le fichier XML, puis nous chargeons ce dernier dans Internet Explorer, afin d’étudier le rapport d’erreur généré par le parseur MSXML.

RésultatIci, le parseur XMLindique la ligne et laposition exacte en nombrede caractères de l’erreursyntaxique XML.

Page 7: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

7

par S.Lamrous

Créer un processeur XML élémentaire

• Pour traiter des données XML, nous devons créer un processeur XML, code qui accède aux données XML, les gère ou les affiche sous une forme intelligible. Il existe quatre grandes catégories de processeurs XML :1- Feuilles de styles en cascade (CSS). Assurent un

affichage élémentaire des données XML. (simple à créer, mais limité).

2- Feuilles de styles XSL. Assurent un affichage dynamique et complexe des données XML.

Page 8: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

8

par S.Lamrous

3- Îlots de données et script. Incorporent des données XML dans une présentation HTML et, outre l’affichage de ces informations, assurent certaines opérations de traitement, comme la recherche d’erreurs éventuelles ou la gestion de données.

4- Modèle d’objet de données et script ou programme côté client. Créent une application XML complète.

Page 9: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

9

par S.Lamrous

Ici, nous expliquons comment• créer une feuille de styles en cascade,• lier une CSS à un document XML.

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

Page 10: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

10

par S.Lamrous

Créer une déclaration de document XML

Nous créons un document XML grâce à un type d’instruction spécial : la déclaration XML. Tout document XML doit commencer par cette dernière.La syntaxe est la suivante :

<?xml version="numéro_version"[encoding="jeu_de_caractères"][standalone="yes | no"] ?>

Facultative

Page 11: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

11

par S.Lamrous

•numéro_version indique la version de la spécification XML à laquelle se conforme le document.•jeu_de_caractères est une valeur facultative. Par défaut les documents XML sont écrits dans le jeu de caractères UTF-8, version compressée d’Unicode optimisée pour l’anglais américain. •l’attribut optionnel standalone peut prendre la valeur yes ou no, selon que le document XML doit ou non être associé à d’autres fichiers XML pour être valide. La valeur par défaut est yes : elle indique que le document XML ne dépend d’aucun autre fichier XML.

Page 12: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

12

par S.Lamrous

La liste des jeux de caractères• UTF-8 : Unicode compressé• UTF-16 : UCS (Universal Character System)compressé : prise en charge parfois plus étendue des caractères d’autres langues que l’anglais.• UTF-10646-UCS-2 : Unicode brut, non compressé.• UTF-10646-UCS-4 : UCS (Universal Character System)

brut.• ISO-8859-1 : Latin-1 : langues d’Europe occidentale.• ISO-8859-2 : Latin-2 : langues d’Europe orientale.• ISO-8859-3 : Latin-3 : langues d’Europe du Sud.• ISO-8859-4 : Latin-4 : langues d’Europe du Nord.

Page 13: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

13

par S.Lamrous

La liste des jeux de caractères (suite)

• ISO-8859-5 : alphabet cyrillique : bulgare, russe,

serbe, etc.• ISO-8859-6 : Arabe.• ISO-8859-7 : Grec.• ISO-8859-8 : Hébreux.• ISO-8859-9 : Latin-5 : prise en charge du turc.• ISO-2022-JP : Japonais.• Shift_JIS : Japonais, Windows.• EUC_JP : Japonais, UNIX.

Page 14: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

14

par S.Lamrous

Ajouter un commentaire• Il est forcément recommandé de commenter

précisément vos documents XML

Syntaxe :

<!--Auteur de ce fichier : toto -->

Saisissez votre commentaire

Balise d’ouverturedu commentaire

Balise de fermeturedu commentaire

Page 15: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

15

par S.Lamrous

Déclarer l’élément racine

• Il doit figurer au début du document XML, après la déclaration XML mais avant toute autre déclaration d’élément

• La syntaxe à utiliser est la suivante :<nom_élément_racine></nom_élément_racine>

• nom_élément_racine est le nom de l’élément que vous voulez spécifier comme racine. N’oubliez pas que XML est sensible à la casse et que les balises d’ouverture et de fermeture doivent se correspondre exactement.

Page 16: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

16

par S.Lamrous

Déclarer un élément de données non-racine

• La structure des éléments de données se décrit en imbriquant des éléments contenus dans des éléments conteneurs

• Tous les éléments de données non-racines sont contenus dans l’élément racine du document.

• Les éléments de données non-racines se déclarent au moyen de la syntaxe suivante :<élément_conteneur [infos_attribut]>

[<élément_contenu [infos_attribut]>

</élément_contenu>] </élément_contenu>

Page 17: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

17

par S.Lamrous

Exemple

Entre les balisesd’ouverture et de fermeturede l’élément conteneur,on insère un ou plusieurséléments contenus,c’est-à-dire inclus dansl’élément conteneur.

Ici, infos_marketingest à la fois un élémentcontenu et un élément conteneur

Page 18: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

18

par S.Lamrous

Déclarer un élément de données répétitif

• Vous pouvez ajouter plusieurs instances d’un même type d’élément de données en réutilisant simplement le nom de ce dernier.

• Cette méthode permet de déclarer des éléments répétitifs et, ainsi, de créer des listes.

• La syntaxe employée pour déclarer un élément de données répétitif est la même que celle utilisée dans le cas d’un élément de données XML non-racine :

<nom_élément>données_élément_1</nom_élément><nom_élément>données_élément_2</nom_élément><nom_élément>données_élément_N</nom_élément>

nom_élément correspond au nom de l’élément de données répétitif.

Page 19: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

19

par S.Lamrous

Exemple

On peut insérer touteAutre instance de l’élément de données répétitif

Page 20: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

20

par S.Lamrous

Décrire un élément de données au moyen d’attributs

• Vous pouvez déclarer des attributs et les associer à

des éléments XML particuliers, afin de construire des

groupes de données complexes. Cette déclaration doit

s’effectuer dans la balise d’ouverture de l’élément, en

respectant la syntaxe suivante :<nom_élément

[nom_attribut_2="valeur_attribut_2"]

[nom_attribut_N="valeur_attribut_N"]>

valeur_élément</nom_élément>

[nom_attribut_1="valeur_attribut_1"]

Page 21: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

21

par S.Lamrous

Exemple

Insérez toute autredéclaration d’attributsouhaitée.

Attention : Il est impossible de coupler deux attributs de nom identique à un même élément. Si vous soumettez, par exemple, la déclaration XML suivante à un parseur, il signale une erreur :

<infos_nutrition calories="128"calories="461">

Page 22: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

22

par S.Lamrous

Utiliser une entité XML prédéfinie

• Exemple : <desc_err>En cas de panne du PC,

vous pouvez lire le message suivant :

<<error 101>></desc_err>

N’ayant aucun moyen de savoir que le deuxième

chevron d’ouverture ci-dessus ne commence pas

de balise, le parseur génère une erreur au

moment de traiter cette déclaration.

Page 23: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

23

par S.Lamrous

Pour pouvoir définir des données qui renferment des

caractères comme des signes supérieur à et inférieur à,

XML prévoit des entités prédéfinies qui permettent de

différencier des symboles avec une signification

particulière en XML (comme les chevrons d’ouverture)

de ces mêmes caractères insérés dans une chaîne de

texte ordinaire.

XML accepte cinq entités prédéfinies : &lt; pour représenter le signe inférieur à (<) ; &gt; pour représenter le signe supérieur à (>) ; &amp; pour représenter l’esperluette (&) ; &apos; pour représenter l’apostrophe (’) ; &quot; pour représenter les guillemets (").

Page 24: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

24

par S.Lamrous

Insérer un texte avec des caractères spéciaux

• Ce que nous avons vu précédemment convient parfaitement à une utilisation occasionnelle, mais lorsque vous vous trouvez obligé d’insérer beaucoup de symboles, mieux vaut recourir à une instruction spécialement prévue à cet effet : la section CDATA.

Syntaxe :<![CDATA[texte]]>

texte est une chaîne de texte qui renferme descaractères spéciaux et n’est pas contrôlée par les parseursXML. Ce texte est ignoré, en quelque sorte. Le processeurXML est quant à lui chargé d’analyser et/ou d’exploiter cetexte pour le rendre intelligible.

Page 25: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

25

par S.Lamrous

Exemple

balise de fermeture de la sectionCDATA : ]]>.

balise d’ouverture de la sectionCDATA : ]]>.

Page 26: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

26

par S.Lamrous

Ajouter une instruction de traitement spéciale

• Les instructions de traitement permettent de transmettre des instructions propres à l’application d’un document XML à un processeur XML. Elles respectent la syntaxe suivante :

<?instructions?>• « instructions » correspond au nom de n’importe quel exécutable valide, suivi de tout paramètre obligatoire. Les instructions de traitement visant des applications spécifiques, leur intitulé commence souvent par le nom de l’application en question, suivi d’autres termes représentant des paramètres attendus par cette application.

Page 27: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

27

par S.Lamrous

exemple

Ici, l’instruction de traitement iexplorer.exeCorrespond à l’exécutable d’Iternet Explorer

Page 28: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

28

par S.Lamrous

Étudions quelques instructions :• <?gcc monProgramme.c?> réfère à un compilateur C(gcc.exe), auquel elle transmet un fichier source C (monProgramme.c).• <?doit.exe paramètre1="16463"paramètre2="79182" paramètre3="51"?> réfère à un exécutable interne (doit.exe), auquel elle transmettrois paramètres (16463, 79182 et 51).• <?xml-stylesheet type="text/xsl"href="exemple5.xsl"?> appelle un module qui fournit une

feuille de styles XSL.

Page 29: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

29

par S.Lamrous

Déclarer une DTD• Vous pouvez définir des types de données spécifiques

pour chaque composant d’un document XML grâce à une définition de type de document (DTD).

Vous pouvez implémenter une DTD de deux manières :

En incluant son texte dans le document XML. Privilégiez cette approche fondée sur des DTD en ligne dans de petits documents XML et dans tous les fichiers XML en phase de développement, ainsi que dans les cas où vous n’envisagez pas d’appliquer la DTD à d’autres documents XML.

En enregistrant le texte de la DTD dans un fichier indépendant, auquel vous faites référence au sein du document XML.

Page 30: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

30

par S.Lamrous

Déclarer une DTD en ligne

• Une DTD en ligne se crée au moyen de la syntaxe suivante :

<!DOCTYPE élément_racine [règles_dtd]>

élément_racine correspond à la racine du document

XML qui renferme la DTD. règles_dtd désigne une ou

plusieurs déclarations XML qui définissent des règles de

DTD pour des éléments particuliers inclus dans la

racine.

Page 31: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

31

par S.Lamrous

Exemple

Ici, nous insérons le motclé #PCDATA, afin de limiterla valeur de l’élémentBIENVENUE à des caractères.

Page 32: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

32

par S.Lamrous

Déclarer et enregistrer un fichier DTD externe

Pour créer une DTD externe, utilisez la syntaxe

suivante :

<!DOCTYPE élément_racine SYSTEM

"fichier_dtd">

élément_racine correspond à la racine du

document XML à laquelle est appliquée la DTD.

fichier_dtd est le nom du fichier DTD externe.

Il est de rigueur d’ajouter l’extension .dtd à tous lesfichiers DTD.

Page 33: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

33

par S.Lamrous

Exemple

Note. Si le fichier DTD se trouvedans un autre dossier que ledocument XML, indiquez sonchemin d’accès complet. S’il sesitue sur le Web, spécifiez son URL.

Page 34: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

34

par S.Lamrous

Définir et réutiliser du texte dans une DTD

• Il est possible de décrire un bloc de texte unique,appelé entité paramètre, et d’y faire plusieurs fois référence dans un fichier DTD.

Dans le cas d’une entité paramètre interne, lasyntaxe à utiliser est la suivante :

<!ENTITY % nom "texte de remplacement">nom correspond au texte qui sera remplacé.Dans le cas d’une entité paramètre externe, en revanche,vous devez ajouter l’URL indiquant l’emplacement ducontenu. La syntaxe devient alors :

<!ENTITY % nom SYSTEM "URL">

Page 35: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

35

par S.Lamrous

Exemple :

Pendant la phase d’exécution,le texte de remplacement,c’est-à-dire (importante |moyenne | insuffisante), vientse substituer à la référence del’entité (IMI). Ce développement/remplacement s’opère en interne,au moment de l’analyse du fichierDTD par le parseur.

Page 36: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

36

par S.Lamrous

Définir un texte réutilisable dans un fichier XML

• Cela évite d’avoir à répéter des passages de texte longs ou complexes.

• Une entité générale interne se crée au moyen de la syntaxe suivante :– <!ENTITY % nom "élément remplacé">– Les entités générales sont référencées dans les

fichiers XML au moyen d’une esperluette et d’un point-virgule (&NomEntité;).

Page 37: Université de Technologie de Belfort Montbéliard par S.Lamrous Le 10/05/2006 1 Créer un document XML élémentaire Créer un fichier.txt Enregistrer le fichier.

Le 10/05/2006

Université de Technologie de Belfort Montbéliard

37

par S.Lamrous

Exemple :