Formation XML Jonathan Marciano Mars 2004 Introduction à XML Introduction à XML Présentation des DTD Présentation des DTD
slide 2 Plan de la présentation I. Introduction –Qu’est-ce que XML ? –Origines et buts –Les principaux domaines d’application. –La fin d’HTML ? II. Concepts –Définition d’un document –Structure d’un document III. La DTD (Document Type Définition) –Déclaration de type élément –Déclaration de liste d’attributs –Déclaration d’entités –Déclaration de notations –Exemple
I. Introduction Qu’est-ce que XML ? Qu’est-ce que XML ? Origines et buts. Origines et buts. Les principaux domaines d’application Les principaux domaines d’application Les acteurs Les acteurs La fin d’HTML ? La fin d’HTML ?
slide 4 Qu’est ce que XML ? (1/3) Langage de marquage constitué de balisesLangage de marquage constitué de balises Mi-chemin entre SGML et HTMLMi-chemin entre SGML et HTML XML pour eXtenible Markup Langage :XML pour eXtenible Markup Langage :<INSTRUMENT>Guitare</INSTRUMENT>
slide 5 Qu’est ce que XML ? (2/3) Orienté données, ne se préoccupe pas de la mise en formeOrienté données, ne se préoccupe pas de la mise en forme Permet la structuration de l’information :Permet la structuration de l’information : Accès optimisé à l’informationAccès optimisé à l’information
slide 6 Qu’est ce que XML ? (3/3) Langage simple et lisible, facile à appréhenderLangage simple et lisible, facile à appréhender Adapté pour les échanges de données entre les applications Adapté pour les échanges de données entre les applications Pérennité du contenuPérennité du contenu
I. Introduction Qu’est-ce que XML ? Qu’est-ce que XML ? Origines et buts. Origines et buts. Les principaux domaines d’application Les principaux domaines d’application Les acteurs Les acteurs La fin d’HTML ? La fin d’HTML ?
slide 8 Origines et buts (1/4) Développé par le XML Working Group depuis 1996Développé par le XML Working Group depuis 1996 Créé sous l’égide du World Wilde Web Consortium (W3C)Créé sous l’égide du World Wilde Web Consortium (W3C) Organisme prodiguant les recommandation sur les technologies utilisés sur le web.Organisme prodiguant les recommandation sur les technologies utilisés sur le web.
slide 9 Origines et buts (2/4) Les objectifs de conception d’XML :Les objectifs de conception d’XML : 1.XML sera utilisable sans difficulté sur Internet, 2.XML soutiendra une grande variété d'applications, 3.XML sera compatible avec SGML, 4.Il sera facile d'écrire des programmes traitant les documents XML, 5.Le nombre d'options dans XML doit être réduit au minimum, idéalement à aucune,
slide 10 Origines et buts (3/4) Les objectifs de conception d’XML (suite) :Les objectifs de conception d’XML (suite) : 6. Les documents XML devraient être lisibles par l'homme et raisonnablement clairs, 7. La conception de XML devrait être préparée rapidement, 8. La conception de XML sera formelle et concise, 9. Il sera facile de créer des documents XML, 10. La concision dans le balisage de XML est de peu d'importance.
slide 11 Origines et buts (4/4) Remarques :Remarques : –Extrait des spécifications officielles qui restent très théorique –Objectifs qui ne sont pas encore atteint –Apprentissage long et fastidieux –Rareté des outils disponibles sur le marché (Notepad … ?)
I. Introduction Qu’est-ce que XML ? Qu’est-ce que XML ? Origines et buts. Origines et buts. Les principaux domaines d’application Les principaux domaines d’application Les acteurs Les acteurs La fin d’HTML ? La fin d’HTML ?
slide 13 Les Domaines d’application Échange de données :Échange de données : –XML s’impose de plus en plus comme le format d’échange de données par excellence. –Exemple : Communication de systèmes plus ou moins hétérogènes, intégration des systèmes d’informationCommunication de systèmes plus ou moins hétérogènes, intégration des systèmes d’information E-commerce, ou XML joue un rôle importantE-commerce, ou XML joue un rôle important Framework d’entrepriseFramework d’entreprise Service en-ligne et recherches plus efficace sur le WebService en-ligne et recherches plus efficace sur le Web Le graphisme et le multimédiaLe graphisme et le multimédia
I. Introduction Qu’est-ce que XML ? Qu’est-ce que XML ? Origines et buts. Origines et buts. Les principaux domaines d’application Les principaux domaines d’application Les acteurs Les acteurs La fin d’HTML ? La fin d’HTML ?
slide 15 Les Acteurs De nombreuses applications professionnelles sont basées sur XMLDe nombreuses applications professionnelles sont basées sur XML Microsoft, Oracle, Sybase et IBM ont positionné XML au cœur du développements de leurs nouveaux produits :Microsoft, Oracle, Sybase et IBM ont positionné XML au cœur du développements de leurs nouveaux produits : –Office 2003 intègrera XML –PowerBuilder 9 de Sybase s’appuie sur XML
I. Introduction Qu’est-ce que XML ? Qu’est-ce que XML ? Origines et buts. Origines et buts. Les principaux domaines d’application Les principaux domaines d’application Les acteurs Les acteurs La fin d’HTML ? La fin d’HTML ?
slide 17 La fin d’HTML ? (1/2) A terme XML est appelé à succéder à HTMLA terme XML est appelé à succéder à HTML Réserves :Réserves : –Il a fallu environ 2 ans pour que la norme HTML 4.0 soit correctement implémentée dans les navigateurs –De plus il n’est pas rare de trouver chez les particuliers ou professionnels des navigateurs en version 3.0 or seuls IE 5.0 et Mozilla (Netscape 5.0) le supporte. –Les outils sont encore très rares sur le marché
slide 18 La fin d’HTML ? (2/2) Réserves (suite) :Réserves (suite) : –Toutes les normes qui s’articulent autour d’XML ne sont pas encore achevées par le W3C Divergence de point de vue :Divergence de point de vue : –Révolution de l’internet pour les uns, –Simple évolution du Web pour les autres Bilan :Bilan : –On peut vraisemblablement envisager une utilisation optimale dans les années à venir –Cependant HTML a encore de beaux jours devant lui.
II. Les Concepts Définition d’un document Définition d’un document Structure d’un document Structure d’un document
slide 20 Définition d’un document (1/7) Afin de représenter un document XML, il est nécessaire de posséder :Afin de représenter un document XML, il est nécessaire de posséder : une feuille XML qui contient les données (texte, image, vidéo,...)une feuille XML qui contient les données (texte, image, vidéo,...) une feuille de style XSL (ou CSS) pour la présentation physique des donnéesune feuille de style XSL (ou CSS) pour la présentation physique des données éventuellement un fichier de définition du type du document, de description du document (décrit la grammaire du fichier XML).éventuellement un fichier de définition du type du document, de description du document (décrit la grammaire du fichier XML).
slide 21 Définition d’un document (2/7) Les fichiers de description définissent :Les fichiers de description définissent : –Les balises –L’enchaînement des balises –Éventuellement les types de données
slide 22 Définition d’un document (3/7) Notions de fichier «valide» et de fichier «bien formé» :Notions de fichier «valide» et de fichier «bien formé» : –Un fichier sera déclaré « bien formé » (« well-formed ») s’il respecte correctement la syntaxe XML, à savoir : les valeurs d'attributs doivent être entre en guillemets " "les valeurs d'attributs doivent être entre en guillemets " " les noms des attributs doivent tous être en minusculesles noms des attributs doivent tous être en minuscules toute balise ouverte doit être fermée ex : toute balise ouverte doit être fermée ex : les balises uniques doivent être de la forme, par exemple : les balises uniques doivent être de la forme, par exemple : les caractères < et & écrits < et &les caractères < et & écrits < et & un document commence par la déclaration suivante : (yes, s'il est seul et no s'il est accompagné d'une DTD)un document commence par la déclaration suivante : (yes, s'il est seul et no s'il est accompagné d'une DTD) etc...etc...
slide 23 Définition d’un document (4/7) –Un fichier sera déclaré « valide » (« valid ») s’il respecte la grammaire définie dans son fichier de description, à savoir : Seuls les balises définies dans le fichier de description peuvent être utiliséesSeuls les balises définies dans le fichier de description peuvent être utilisées La grammaire doit y être conformeLa grammaire doit y être conforme Éventuellement, les types de données doivent y correspondre (tous les fichiers de description ne permettent pas de préciser les types de données)Éventuellement, les types de données doivent y correspondre (tous les fichiers de description ne permettent pas de préciser les types de données)
slide 24 Définition d’un document (5/7) Pour être interprété par les navigateurs Web, un fichier XML doit :Pour être interprété par les navigateurs Web, un fichier XML doit : –Être bien formé s’il ne possède pas de fichier de description –Être bien formé et valide s’il possède un fichier de description
slide 25 Définition d’un document (6/7) En résumé, pour produire un document XML il faut :En résumé, pour produire un document XML il faut :
slide 26 Définition d’un document (7/7) Exemple de fichier XML :
II. Les Concepts Définition d’un document Définition d’un document Structure d’un document Structure d’un document
slide 28 Structure d’un document (1/5) Un fichier XML est composé de la façon suivante :Un fichier XML est composé de la façon suivante : –Un prologue, il contient diverses déclaration facultatives mais recommandées –Du contenu avec les balises associées –Des commentaires éventuels
slide 29 Structure d’un document (2/5) Le prologue :Le prologue : –Il constitue les premières balises du fichier –Tous les fichiers doivent obligatoirement débuter par la balise : –Les attributs de cette balise permettent de spécifier: La version : version="1.0"La version : version="1.0" Les différents types de codageLes différents types de codage Les éventuelles références aux fichiers de descriptionLes éventuelles références aux fichiers de description
slide 30 Structure d’un document (3/5) Le prologue :Le prologue : –Le codage : encoding="UTF-8" les plus fréquemment utilisés sont :les plus fréquemment utilisés sont : –UTF-16 : codage des caractères sur 16 bits –UTF-8 : codage des caractères sur 8 bits –ISO –Pour plus d’information : –Exemple : …
slide 31 Structure d’un document (4/5) Le corps du document (1/3):Le corps du document (1/3): –C’est à l’intérieur que sera stocké tout le contenu textuel d’un document. –Tout fichier XML possède un contenu hiérarchisé et peut donc être représenté sous forme d’un arbre :
slide 32 Structure d’un document (5/5) Le corps du document (2/3):Le corps du document (2/3): –On y distingue cinq types d’informations : 1. Les éléments nécessitant un fermeture : … 1. Les éléments nécessitant un fermeture : … –Ne doivent pas débuter par un nombre –Ne doivent pas être un mot-clef XML 2. Les éléments " uniques" : 2. Les éléments " uniques" : 3. Les attributs : 3. Les attributs : –Doivent être en minuscule 4. Les commentaires : 4. Les commentaires :
slide 33 Exercice (1/2) Exercice :Exercice : –Décrire dans un fichier XML le contenu d’un livre en faisant apparaître les notions suivantes : Le prologueLe prologue Des éléments avec balises fermantes … Des éléments avec balises fermantes … Des éléments avec balises unique Des éléments avec balises unique Des attributsDes attributs Des commentairesDes commentaires –L’afficher sous Internet Explorer
slide 34 Exercice (2/2) Description du contenu du livreDescription du contenu du livre Exercice (2/2) Mon Premier XML Introduction à XML HTML ? XML ? Syntaxe XML éléments attributs
slide 35 Structure d’un document Le corps du document (3/3):Le corps du document (3/3): –On y distingue cinq types d’informations : 5. Les Entités: –Permettent de signifier des symboles qui serait mal interprétés par un processeur XML –Elles débutent par ‘&’ et se terminent par ‘;’ –XML en définit 5 : –Elle permettent de signifier des symboles, par leur caratère UNICODE (ex: ©) ou leur valeur hexadécimale (©) –Exemple : test sur les " entités " donnera : test sur les "entités " EntitéCaractère && << >> "" '‘
slide 36 Exercice (1/2) Exercice :Exercice : –Décrire dans un fichier XML le contenu d’un livre en faisant apparaître les notions suivantes : Le prologueLe prologue Des éléments avec balises fermantes … Des éléments avec balises fermantes … Des éléments avec balises unique Des éléments avec balises unique Des attributsDes attributs Des commentairesDes commentaires Des entitésDes entités –L’afficher sous Internet Explorer
slide 37 Exercice (2/2) Description du contenu d’un livre :Description du contenu d’un livre : Mon Premier " XML " © la compagnie Introduction à XML HTML XML Syntaxe XML él&#e9ments attributs
III. Les DTD Introduction Introduction Déclaration de type élément Déclaration de type élément Déclaration de liste d’attributs Déclaration de liste d’attributs Déclaration d’entités Déclaration d’entités Déclaration de notations Déclaration de notations Exemple Exemple
slide 39 DTD – Introduction (1/3) DTD : Document Type DefinitionDTD : Document Type Definition –Permet de définir la structure interne du document. A savoir : Les balises que l’on va utiliserLes balises que l’on va utiliser Leur enchaînement.Leur enchaînement. –L’utilisation d’une DTD est facultative, on aura alors des documents bien formés. –Elle peut prendre deux formes : Interne, donc incluse directement dans le fichier XMLInterne, donc incluse directement dans le fichier XML Externes, elle est dissociée du document XML, c’est la forme la plus courante : réutilisabilitéExternes, elle est dissociée du document XML, c’est la forme la plus courante : réutilisabilité
slide 40 DTD – Introduction (2/3) Document avec DTD interne :Document avec DTD interne : ]> Bonjour!
slide 41 DTD – Introduction (3/3) Document avec DTD externe :Document avec DTD externe : –L’attribut standalone de la balise xml, permet de spécifier si le fichier possède ou non une DTD. –La balise permet de donner des informations sur le fichier DTD : La balise racineLa balise racine Le fait que le fichier est indépendant : SYSTEMLe fait que le fichier est indépendant : SYSTEM Le chemin vers ce fichierLe chemin vers ce fichier Bonjour!
La DTD Introduction Introduction Déclaration de type élément Déclaration de type élément Déclaration de liste d’attributs Déclaration de liste d’attributs Déclaration d’entités Déclaration d’entités Déclaration de notations Déclaration de notations Exemple Exemple
slide 43 DTD – Éléments (1/3) Déclaration de type d’élémentsDéclaration de type d’éléments –La notation utilisée : –Un élément peut être de plusieurs types différents : EMPTY, pour des déclarer des éléments qui ne possèdent pas de contenu. Exemple : EMPTY, pour des déclarer des éléments qui ne possèdent pas de contenu. Exemple : ANY, pour inclure d’autres éléments définis dans la DTD ou des caractères au sein de l’élément.ANY, pour inclure d’autres éléments définis dans la DTD ou des caractères au sein de l’élément. PCDATA, pour inclure des données qui ne soient pas des éléments de la DTD,PCDATA, pour inclure des données qui ne soient pas des éléments de la DTD, Des sous-éléments, en les précisant à l’intérieur de paranthèses séparé par des virgules, ex : Des sous-éléments, en les précisant à l’intérieur de paranthèses séparé par des virgules, ex :
slide 44 DTD – Éléments (2/3) Déclaration de type d’élémentsDéclaration de type d’éléments –Exemple : <!DOCTYPE livre [ ]>
slide 45 DTD – Éléments (3/3) Déclaration de type d’élémentsDéclaration de type d’éléments –Groupage et récurrences : Il est possible à l’intérieur des déclarations pour affiner la syntaxe:Il est possible à l’intérieur des déclarations pour affiner la syntaxe: L’élément peut engendrer soit les élément titre et auteur, soit l’élément description. Il est également possible de préciser un opérateur d’occurrence après chaque déclaration :Il est également possible de préciser un opérateur d’occurrence après chaque déclaration : OpérateurDescription ?0 ou 1 fois +1 ou n fois *0 ou n fois
La DTD Introduction Introduction Déclaration de type élément Déclaration de type élément Déclaration d’attributs Déclaration d’attributs Déclaration d’entités Déclaration d’entités Déclaration de notations Déclaration de notations Exemple Exemple
slide 47 DTD – Attributs (1/7) Déclaration d’attributsDéclaration d’attributs –Ils ne peuvent apparaître qu’au sein de balises ouvrantes et de balises d’élément vide ( ). –Il peuvent servir à : Définir un jeu d’attribut se rapportant à un type de donné,Définir un jeu d’attribut se rapportant à un type de donné, Établir des contraintes de types pour ces attributs,Établir des contraintes de types pour ces attributs, Fournir des valeurs par défaut pour des attributsFournir des valeurs par défaut pour des attributs –Les déclaration d’attributs précisent le nom,le nom, le type de donnéesle type de données la valeur par défaut de chaque attribut associé à un type d’élément la valeur par défaut de chaque attribut associé à un type d’élément
slide 48 DTD – Attributs (2/7) Exemple :Exemple : Les types d’attribut XML sont de trois genres :Les types d’attribut XML sont de trois genres : –Un type chaîne –Des types énumérés
slide 49 DTD – Attributs (3/7) Exemples :Exemples :
slide 50 DTD – Attributs (4/7) Les valeurs par défaut :Les valeurs par défaut : –Il est possible de spécifier une valeur par défaut autorisée par le type de données. –Si une valeur n’est pas appropriée, les mots-clefs suivant peuvent être utilisés : –Exemples : –Exemples : Mot-clefDescription #REQUIREDA spécifier obligatoirement #IMPLIEDPeut rester non spécifié #FIXEDFixe, ne pouvant être modifiée
slide 51 DTD – Attributs (5/7) Les types de données :Les types de données : TypeDescription CDATADonnées caractères EnumeratedType énuméré ENTITYUne entité déclarée dans la DTD ENTITIESPlusieurs entités (séparées par des espaces) IDIdentificateur unique IDREFValeur d’un attribut ID unique IDREFSPlusieurs IDREF NOTATIONUne notation déclarée dans la DTD
slide 52 DTD – Attributs (6/7) Exemples :Exemples : –ID & IDREF, le fichier suivant : –Aura pour DTD :
slide 53 DTD – Attributs (7/7) La balise permet également de placer toutes les déclarations à l’intérieur d’une déclaration ATTLISTLa balise permet également de placer toutes les déclarations à l’intérieur d’une déclaration ATTLIST –Exemple : <!ATTLIST personne nom CDATA #REQUIRED numSecu ID #REQUIRED Compagnie CDATA #FIXED "theCompagny">
La DTD Introduction Introduction Déclaration de type élément Déclaration de type élément Déclaration de liste d’attributs Déclaration de liste d’attributs Déclaration d’entités Déclaration d’entités Déclaration de notations Déclaration de notations Exemple Exemple
slide 55 DTD – Entités (1/3) Déclaration d’entités :Déclaration d’entités : –Les entités sont similaires à des macros, –Elle permettent de remplacer une série de caractères par une autre, –XML en définit cinq (cf. Structure d’un document XML), –Il est possible de définir ses propres entités, –Il en existe quatre types.
slide 56 DTD – Entités (2/3) Les entités générales :Les entités générales : –Déclaration : –Déclaration : –Ces entités permettent de remplacer d’autres caractères à l’intérieur d’un document XML –Ex : DTD: –Ex : DTD: XML: ©right; XML: ©right; Les entités paramètres :Les entités paramètres : –Déclaration : –Déclaration : –Contrairement aux entités générales, elles ne sont utilisables que dans la DTD. –Ex : –Ex :
slide 57 DTD – Entités (3/3) Les entités externes :Les entités externes : –Déclaration : –Déclaration : –Ces entités permettent de copier le contenu XML situé à l’adresse URI dans le document XML courant –Ex : DTD: –Ex : DTD: XML: &cotation; XML: &cotation; Les entités non analysées :Les entités non analysées : –Déclaration : –Déclaration : –Permet d’insérer un contenu non-XML dans un document XML –Ex : –Ex :
La DTD Introduction Introduction Déclaration de type élément Déclaration de type élément Déclaration de liste d’attributs Déclaration de liste d’attributs Déclaration d’entités Déclaration d’entités Déclaration de notations Déclaration de notations Exemple Exemple
slide 59 DTD - Notations Les Notations :Les Notations : –Elles sont principalement utilisées avec les entités non analysées –Elles font correspondre un mot-clef NDATA avec une information plus spécifique –Le processeur XML est libre d’utiliser ou d’ignorer cette information
slide 60 DTD – Exemple <!DOCTYPE NEWSPAPER [ ]>