Upload
thibault-dumas
View
106
Download
0
Embed Size (px)
Citation preview
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
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
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
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.
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
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.
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.
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.
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"?>
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
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.
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.
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.
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
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.
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>
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
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.
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
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"]
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">
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.
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 : < pour représenter le signe inférieur à (<) ; > pour représenter le signe supérieur à (>) ; & pour représenter l’esperluette (&) ; ' pour représenter l’apostrophe (’) ; " pour représenter les guillemets (").
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.
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 : ]]>.
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.
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
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.
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.
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.
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.
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.
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.
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">
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.
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é;).
Le 10/05/2006
Université de Technologie de Belfort Montbéliard
37
par S.Lamrous
Exemple :