La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

XML (eXtensible Markup Language)

Présentations similaires


Présentation au sujet: "XML (eXtensible Markup Language)"— Transcription de la présentation:

1 XML (eXtensible Markup Language)
The eXtensible Markup Language W3C (World Wide Web Consortium)

2 Un exemple en HTML extrait de « XML expliqué aux débutants » d’Emmanuel Lazinier
Le « source » avec balises de mise en page : <H2>Bibliographie XML</H2>  <UL>  <LI>  Jean-Christophe Bernadac et François Knab, <I>Construire une application XML</I>, Paris, Eyrolles, 1999</LI>  <LI>  Alain Michard, <I>XML, Langage et Applications</I>, Paris, Eyrolles, 1998 </LI>  <LI>  William J. Pardi, <I>XML en Action</I>, Paris, Microsoft Press, 1999, adapté de l'anglais par James Guerin</LI> </UL> 

3 Visualisation dans un navigateur
Aucune indication de sémantique par les balises

4 Problèmes dus en partie à HTML
Les balises HTML sont prédéfinies, Un seul type de document, Structuration et contenu non séparés, Une seule vue du même document, Sémantique des liens rudimentaire, Adaptation en utilisant des scripts, Interopérabilité limitée (échanges d'informations limité)

5 Même si... Facilité d'apprentissage de HTML,
disponibilités d'outils (de création, de visualisation), génération dynamique de documents, langages de scripts pour des comportements dynamiques, ...

6 En XML : <?xml version="1.0" encoding="ISO-8859-1"?>
<BIBLIO SUBJECT="XML"> <BOOK ISBN=" " LANG="fr" SUBJECT="applications"> <AUTHOR> <FIRSTNAME>Jean-Christophe</FIRSTNAME> <LASTNAME>Bernadac</LASTNAME> </AUTHOR> <AUTHOR> <FIRSTNAME>François</FIRSTNAME> <LASTNAME>Knab</LASTNAME> <TITLE>Construire une application XML</TITLE> <PUBLISHER> <NAME>Eyrolles</NAME> <PLACE>Paris</PLACE> </PUBLISHER> <DATEPUB>1999</DATEPUB> </BOOK> <BOOK ISBN=" " LANG="fr" SUBJECT="général"> …. </BIBLIO>

7 Différences ? Sémantique Hiérarchie Aucune balise de présentation
Balises : firstname, lastname Attributs Hiérarchie Biblio Book Author Translator Title Firstname Lastname Aucune balise de présentation

8 Ce que XML permet (ou va permettre ?)
Taper une seule fois le contenu, sans se soucier de la présentation de ce contenu Visualiser/Exploiter ce contenu de plusieurs manières

9 Le contenu sans se soucier de la présentation ou des traitements futurs ; sans avoir à saisir des libellés tels que'"auteur", "année de parution : à la manière dont on alimenterait une base de données.

10 La présentation de multiples présentations (en tableau, en texte suivi…), avec éventuellement tris, sélections, réorganisations, génération automatique de libellés, tables des matières, index, etc. et ce sur de multiples médias (écran, papier, terminal Braille, réfrigérateur, PDA, etc.)

11

12

13 Le code XML est intégré à une page HTML et exploité par un script
=> interactivité.

14 L’exploitation Comprendre/exploiter au mieux le contenu de ces pages, grâce au balisage spécifique, indépendant de toute application.

15 Les apports d'XML

16 Au départ : l'arbre d'éléments
Un élément est un composant identifiable d'un document (paragraphe, numéro de partie, date, listes, titre, …) Un élément : peut avoir un contenu (données, autres éléments), peut être un pointeur sur de l'information (lien hypertexte), doit être "contigu" : un début –une fin … sans "trou"

17 L'arbre d'éléments (suite)
Chaque élément est délimité par des crochets (balise de fermeture obligatoire sauf pour les éléments vides exemple : <foo att1="val1" /> ), Un élément peut avoir plusieurs attributs pour décrire ses propriétés exemple de balise ouvrante : <rapport langue="FR" version="v2">

18 Exemple Section Chapître livre Section Chapître

19 Exemple Rmq : le document est un arbre : les éléments ne doivent donc pas se chevaucher !

20 HTML : Description physique et structurelle mêlées
Durée de vie courte (= celle des technologies qui donnent un sens aux éléments de mise en page) Plusieurs formes d'un même document => plusieurs versions de ce document !

21 Contrôle de validité Doc. XML Doc. HTML Présentation Présentation
Contenu Structure Présentation Contenu Structure Contrôle de validité

22 Doc. bien formé - doc. valide
Bien formé : Règles syntaxiques de XML respectées = bonne formulation. Valide : c'est un document bien formé qui respecte une DTD ou un schéma.

23 Modularité et réutilisation
Structure définie à part, dans une "Document Type Definition" (DTD) ou dans un Schéma Utilisation de structures normalisées, publiques (ex : pour un tableau, une liste de références bibliographiques, …) Définition de nouveaux types de documents

24 Extensibilité et structure
<DATE> <ANNEE>1999</ANNEE> <MOIS>Octobre</MOIS> <JOUR>14</JOUR> </DATE> ou <date format="ISO-8601"> </date>

25 Sémantique dans les balises
<PERSON ID="p1100" SEX = "M"> <NAME> <GIVEN> Hubert </GIVEN> <SURNAME> McDaniel </SURNAME> </NAME> <BIRTH><DATE>20 Fev 1923</DATE> </BIRTH> <DEATH><DATE>9 Oct 2000</DATE> </DEATH> </PERSON> Des données auto-documentées

26 Autres avantages Reste indépendant des constructeurs
Norme du W3C Codage universel (UNICODE)

27 Ce qu'XML n'est pas Ce n'est pas un langage de programmation,
Ce n’est pas un protocole réseau, Ce n'est pas un format propriétaire, Ce n'est pas une base de données, … mais XML permet le stockage d'informations "semi structurées".

28 Pour plus de détails… quelques éléments de syntaxe

29

30 Structure d’un document XML
Le prologue Le corps Une racine unique, L’arbre d’éléments

31 Le prologue La déclaration XML La déclaration de la DTD ou du schéma
La version de la spécification utilisée, Le type de codage (le jeu de caractères) La déclaration de la DTD ou du schéma Des commentaires (<!-- … -->) Les instructions de traitement (pour traiter le contenu non xml) La déclaration d’entités

32 Déclaration de type On indique le type du document (titlepage)
SYSTEM permet de définir la ressource qui contient la DTD : une URL (<!doctype rapport SYSTEM "rapport.dtd" [déclarations]>) La référence à une DTD ou à un schéma n'est pas obligatoire… mais recommandée !!! (<!doctype lettre [déclarations]>)

33 Le corps d'un doc XML Une racine unique, L’arbre d’éléments.

34 Une racine unique <?xml version "1.0" ?>
<!-- livre est la racine unique de ce document--> <livre> <chapître> <section>... </section> </chapître> ... </livre>

35 L'arbre d'éléments Un élément se compose:
D’une balise d’ouverture Un contenu Une balise de clôture Si l’élément est vide il peut s’écrire uniquement avec la balise d’ouverture et un "slash" avant le chevron fermant exemple : <position/> Un élément peut contenir d'autres éléments imbriqués.

36 Un doc bien formé Cela signifie : Une racine unique,
début et fin explicites pour chaque élément, Pas de superposition de définitions d'éléments, Les attributs respectent les règles suivantes :

37 Balises et attributs : règles des noms
Les noms commencent par une lettre ou _ (caractère souligné) les noms peuvent contenir : des lettres de tous les alphabets (Unicode), des chiffres et les 3 caractères _

38 Balises et attributs : règles des noms
Les noms ne peuvent pas contenir : d'autres ponctuation (sauf :) des blancs ou des retours à la ligne) La "casse" (majuscule/minuscule) est importante.

39 Règles sur les attributs
un espace sépare un attribut d'un élément ou deux attributs entre-eux, les attributs sont nommés, utilisation de l'égalité et des quotes (simples ou doubles)

40 Erreurs "classiques" de "bonne formation"
Absence de déclaration XML mauvaise formation des noms XML mauvaise syntaxe des balises pas d'élément racine caractères spéciaux mal utilisés

41 Validité d'un doc XML Après le test de "bonne formation"
Test de la conformité à la structure définie dans la DTD ou le schéma associé.

42 Document Type Definition

43 DTD Permet de définir un modèle d'un type de document, appelé aussi "Doctype": message , article de journal, livre

44 DTD (suite) Un ensemble de règles de définition de la structure d'un document, En général dans un fichier à part, Permet de connaître la structure d'un document sans accéder à son contenu, Une DTD peut être partagée par plusieurs documents et plusieurs sites Web.

45 DTD (suite) Un exemple de définition d’une liste qui est constituée d’items : <!ELEMENT list (item)+> <!ELEMENT item (#PCDATA)> les items contiennent du texte (parsable character data)

46 DTD (suite) Pas nécessairement incluse dans un fichier unique : sections internes et sections externes. Plusieurs sections externes (mais pas de déclaration du même élément dans 2 sections différentes : conflit de noms) domaines nominaux…

47 Quelles déclarations ? Eléments types, listes d'attributs, entités,
notations, (des commentaires)

48 Eléments types Exemple :
<!ELEMENT livre (préface?, avant-propos?, introduction, partie+, chapitre+, conclusion)> introduction, partie, chapitre et conclusion obligatoires, préface et avant-propos facultatives au moins une fois : partie, chapitre une seule fois : introduction, conclusion

49

50

51

52 Eléments déclarés "ANY" Le contenu est : un groupe ou répétable,
il peut contenir : des chaînes (#PCDATA) ou tout autre élément de la DTD.

53 Eléments déclarés "EMPTY"
Le contenu est vide On lui associe des attributs.

54 Les attributs Il est associé à un élément,
Il fournit des informations supplémentaires sur l'élément, Il est limité à un ensemble de valeurs définies.

55 Les attributs (suite) Il contient en général :
des informations de sécurité, de contrôle (version, statut, diffusion, …) des compléments d'information (date, langue, …) des informations de formattage.

56 Les attributs prédéfinis
à la norme ISO 3166 par défaut xml:lang <p xml:lang='fr'> essai </p> <!-- la langue peut être privée --> <p xml:lang='iserois'>Quein même</p> xml:space pour indiquer à l'application si le contenu d'un élément doit être traité en préservant les espaces (xml:space='preserve') ou application du traitement par défaut (xml:space='default').

57 Exemple

58 Listes d'attributs Un attribut : une paire (nom, valeur) associée à un élément <ATTLIST nom-élément nom-att1 type-att1 déclaration-de-défaut> Types d'attributs : CDATA, ID ou IDREF ou IDREFS, ENTITY ou ENTITIES, NMTOKEN ou NMTOKENS, NOTATION

59

60 Exemple Dans la DTD : Dans le document XML :

61

62 Un exemple

63 Attributs ID, IDREF Un attribut de type ID affecte un identificateur unique à un élément XML, t.q. : Le parser peut tester s'il est unique à l'interieur du document, Un attribut IDREF peut référencer un élément nommé par ID les paires ID/IDREF sont utilisées pour : des références croisées et des liens internes. référencer des objets dans le document.

64 Exemple Exemple de déclarations pour ID/IDREF dans la DTD :
<!ELEMENT para (#PCDATA | figure | figref)* > <!ELEMENT figure (title?, graphic) > <!ATTLIST figure name ID #REQUIRED > <!ELEMENT graphic EMPTY > <!ATTLIST graphic filename CDATA #REQUIRED > <!ELEMENT figref (#PCDATA) > <!ATTLIST figref pointer IDREF #REQUIRED >

65 Exemple (suite) Dans le document : <para>
<figure name="fishes"> <title>Fish come in many sizes</title> <graphic filename="fisheatfish.jpg"/> </figure> As we see in the figure above (<figref pointer="fishes"> </figref>) we must consider size when selecting a fishtank. </para>

66

67 Les déclarations d'entités
Celles déclarées dans un document : entités générales, Celles déclarées dans une DTD pour être utilisées dans la DTD : entités paramètres

68 Exemple : les entités d'un livre
<?xml version="1.0"?> <!doctype livre SYSTEM "livre.dtd" [ <!ENTITY toc SYSTEM 'toc.xml'> <!ENTITY chap1 SYSTEM 'chap1.xml'> <!ENTITY chap2 SYSTEM 'chap2.xml'> ]> <livre> <titre>Ceci est le titre</titre> &toc; &chap1; &chap2; </livre> Les entités seront remplacées par leur valeur (ici, le contenu des fichiers)

69 Entité paramètre exemples :
<!ENTITY % ent1 SYSTEM 'val1'> <!ENTITY % ent2 SYSTEM 'http://foo.fr/xxx.xml'> <!ENTITY % ent3 PUBLIC '-//US//TEXT texte//FR' 'http://foo.fr/secours.xml'> Déclaration dans la partie interne ou externe d'une DTD Dans la partie interne d'une DTD (entre les crochets ouvrant et fermant de la déclaration DOCTYPE) : utilisables en pratique pour inclure le contenu d'un fichier externe

70 Adressée par identificateur public
FPI (Formal Public Identifier) Pas toujours gérés par les applications Hérité de SGML Indirection entre le nom symbolique donné à l'entité et son URL de la forme : <!ENTITY nom PUBLIC FPI URL> Utilisé si l'application ne peut pas résoudre l'identificateur public

71 Quelques règles d'écriture
Modulariser / réutiliser

72 Quelques règles d'écriture
Ordonner Les déclarations d'entités se placent en tête

73 Les outils nécessaires
Un éditeur adapté (vision arborescente, indentation, etc…) Un "parseur", pour vérifier la bonne formulation : il peut être validant ou non. Une "visionneuse" : qui permet d'appliquer une feuille de style à un document XML et d'afficher le document formaté.

74 En résumé : Editeur Écrit le Document Vérifié par le "Parseur"
Chargé dans le Navigateur Montré au Lecteur

75 Une vue d'ensemble d'XML

76 Les origines d'XML 1997 XML 1992 HTML WWW 1986 SGML GM Internet 1960
Generalized Markup

77 XML c'est (1/2) Des recommandations du W3C (XML 1.1 le 4 février 2004 : X : eXtensible / Ouvert ML : Markup Language (comme HTML) Métalangage pour créer d'autres langages

78 XML c'est (2/2) Séparation du contenu, de la structure et de la forme
Ajout de sémantique Internationalisation : Unicode

79

80 SGML ? Trop complexe (beaucoup d'options différentes, …),
omission possible de balises : pb de lisibilité, "XML = 80% des fonctionnalités de SGML et 20% de sa difficulté" d'après J.C. Bernadac et F. Knab

81 Sous ses apparences… Ressemble au premier abord à du HTML
Est un sous-ensemble de SGML (Standard Generalised Markup Language) Offre plus de flexibilité que HTML pour personnaliser et gérer des documents du Web

82 ...trompeuses un méta-langage et non un langage de marquage
sans liste d'éléments prédéfinis : tout élément possible utilisation optionnelle d'une DTD (Document Type Definition) ou d'un schéma contrôle possible de la structure logique du document écrit en SGML

83

84 De nouveaux enjeux Edition collaborative, Diffusion ciblée,
Personnalisation, Adaptation Échange de données Partage de ressources,

85 Les documents Des gisements d'information (veille, analyse, …),
En énorme quantité (Web, mises en ligne,…) Hétérogénéité des origines, des logiciels utilisés (Word, LateX, ps, pdf, numérisé,…)

86 Quels traitements ? Recherche d’information (pb de la lecture séquentielle), Filtrage, Tri, Transformation, mise à jour, Traitements complexes (traitements conditionnels, extraction de données, changements simultanés dans plusieurs fichiers, …)

87 Prise en compte d’Unicode
Codage sur deux octets. Comment écrire du XML en unicode ? Rédaction d’un texte avec un jeu de caractères puis conversion (Framemaker le gère automatiquement) Insertion de références à des caractères Unicode (é pour le é)

88 Unicode : à quoi sert-il ?
Actuellement, environ symboles issus d’au moins 24 alphabets internationaux (près de pour les idéogrammes du han (Chine), et pour les syllabes du hangul coréen). Permet de représenter pratiquement toutes les langues de la planète « The unicode standard » ISBN d’Addison-Wesley ou

89 Unicode, quelques outils
"recode" "native2ascii" dans le java development kit : Converts a file with native-encoded characters (characters which are non-Latin 1 and non-Unicode) to one with Unicode-encoded characters. dans le parser XML : RXP (option –c) (http://www.cogsci.ed.ac.uk/~richard/rxp.html)

90 Les problèmes liés au Web
Quantité d'informations "Infinie "   > Pb de recherche d'informations (pertinence, "Invisible Web", déterminisme, …) > Comment retrouver ? Structuration des informations Certification des informations

91 Les problèmes liés au Web (suite)
Pérennité des informations Adaptation à l'utilisateur "Privacy", copyright, ... Limites du protocole HTTP Toujours de nouvelles normes

92 Le(s) "successeur(s)" d’HTML
XML (Extensible Markup Language, ou Langage Extensible de Balisage) Comme HTML (Hypertext Markup Language) c'est un langage de balisage (markup), c'est-à-dire un langage qui présente de l'information encadrée par des balises.

93 Contrairement à HTML HTML : un jeu limité de balises orientées présentation (titre, paragraphe, image, lien hypertexte, etc.) XML est un métalangage, Permet d'inventer à volonté de nouvelles balises pour isoler toutes les informations élémentaires (titre d'ouvrage, prix d'article, numéro de sécurité sociale, référence de pièce…), ou agrégats d'informations élémentaires, que peut contenir une page Web.


Télécharger ppt "XML (eXtensible Markup Language)"

Présentations similaires


Annonces Google