Programmation Web : Introduction à XML Jérôme CUTRONA jerome.cutrona@univ-reims.fr 10:53:58 Programmation Web 2018-2019
Introduction 10:53:58 Programmation Web 2018-2019
XML, un exemple introductif <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Recette SYSTEM "Recette.dtd"> <Recette> <Titre>Tarte aux pommes</Titre> <Auteur> <Nom>Desjardin</Nom> <Prenom>Eric</Prenom> </Auteur> </Recette> Ça ressemble à du HTML où : on utilise ses propres balises la syntaxe est rigoureuse Ce document ne peut pas s’afficher directement On utilise des outils pour manipuler l’information de ce document 10:53:58 Programmation Web 2018-2019
XML, historique, intérêt XML = Extensible Markup Language Version 1.0 publiée en 1998 Langage à balises (<a>…</a>, <b/>) Lisible par les humains et les machines Représente une structure de données Base de RSS, SOAP, Office Open XML, OpenDocument, fichiers de configuration, … Validation par DTD ou schéma XSD Manipulable par XSLT ou API DOM 10:53:58 Programmation Web 2018-2019
Comparaison HTML / XML 10:53:58 Programmation Web 2018-2019
Comparaison HTML / XML Normalisation de HTML en XML XHTML Structure orientée présentation Jeu de basiles fini et normalisé Rendu graphique dépendant du navigateur Réutilisation limitée Cible : Web Écriture laxiste Stockage : Fichier Normalisation de HTML en XML XHTML XML a été conçu pour décrire, stocker et échanger des données XML Toutes structures, données Jeu de balises extensible Pas de présentation directe (nécessite une feuille de style) Exploitation sémantique Cible : Web, PDF, échange,… Rédaction de contenu Stockage : Fichier, BD, natif 10:53:58 Programmation Web 2018-2019
Syntaxe XML 10:53:58 Programmation Web 2018-2019
XML, syntaxe Déclaration XML <?xml version="1.0" encoding="ISO-8859-1"?> Tout élément doit avoir une balise de fermeture <p>C'est un paragraphe</p> <br /> Les noms d'éléments sont sensibles à la casse <Titre> et <titre> sont deux éléments différents Les éléments doivent être correctement appariés <Un><Deux>Ceci est incorrect</Un></Deux> Un élément racine qui enserre tous les autres il doit exister et est unique dans le document ex : <html> … </html> 10:53:58 Programmation Web 2018-2019
Éléments XML Ce qui est entre la balise ouvrante et la balise fermante représente le contenu de l'élément L'ordre des éléments est significatif même si ici Chiffres peut être vu comme un conteneur <Chiffres><Un /><Deux /></Chiffres> <Chiffres><Deux /><Un /></Chiffres> Un élément peut contenir plusieurs éléments identiques <Chiffres> <Chiffre>Un</Chiffre> <Chiffre>Deux</Chiffre> </Chiffres> 10:53:58 Programmation Web 2018-2019
Attributs des éléments XML Un élément peut être qualifié par des attributs <Chiffre combien="1" libelle="un" /> Un attribut a un nom ET une valeur L'ordre des attributs n'a pas d'importance ≈ <Chiffre libelle="un" combien="1" /> Les valeurs des attributs doivent être encadrés par des guillemets ou des apostrophes Un élément ne peut pas avoir deux fois le même attribut <Mot style='verbe' style='futur'>verra</Mot> 10:53:58 Programmation Web 2018-2019
Autour de XML 10:53:58 Programmation Web 2018-2019
Prologue XML Le prologue d'un document XML contient tout ce qui précède l'élément racine et peut contenir : la déclaration XML des instructions de traitement des commentaires une clause DTD Instructions de traitement <?xml-stylesheet type="text/css" href="style.css"?> Association à une référence externe à la structure (DTD) <!DOCTYPE La_racine SYSTEM "Recette.dtd"> 10:53:58 Programmation Web 2018-2019
Commentaires et entités XML Commentaires XML <!-- Je suis un commentaire --> Entités prédéfinies < > & " ' Entités des caractères ne faisant pas partie du jeu utilisé Mise en œvre => Mise en œuvre Entités de texte définies dans la DTD ©right; Entité référence à des fichiers binaires <image photo="flipper"> 10:53:58 Programmation Web 2018-2019
Entités XML Noms des entités : Peuvent contenir des chiffres, des lettres ou d'autres caractères Ne peuvent PAS commencer par un chiffre ou un caractère de ponctuation Ne peuvent PAS commencer par la chaîne xml (dans toutes les casses possibles) Ne peuvent PAS contenir des espaces Ne doivent PAS contenir le caractère " : " qui est utilisé par les espaces de nom 10:53:58 Programmation Web 2018-2019