XML dans son contexte Une introduction la description

  • Slides: 146
Download presentation
XML dans son contexte Une introduction à la description et à la structuration de

XML dans son contexte Une introduction à la description et à la structuration de données Application : construction de ressources linguistiques électroniques Serge Fleury @ SF 2001

Mots « magiques » pour le cours } } } } Document structuré Document

Mots « magiques » pour le cours } } } } Document structuré Document arboré Annotations de documents Arbre de document Balisage Grammaire de document Règles de réécriture XML : e. Xtensible Markup Language

Enjeux de ce cours } } Apprendre à décrire et à structurer des informations

Enjeux de ce cours } } Apprendre à décrire et à structurer des informations dans un document Construire des documents structurés organiser les informations contenues dans un document pour faciliter : u leurs échanges u leurs manipulations via des traitements automatiques

Ressources linguistiques } Corpus textuels sous format électronique Jouent un rôle central dans de

Ressources linguistiques } Corpus textuels sous format électronique Jouent un rôle central dans de nombreux domaines de recherche liés au traitement de la langue Mais aussi des usages u } Industriel, professionnel et grand public Textes, littérature, scientifiques, techniques, journaux Mono et multilingue (parallèle et comparable) } Dictionnaires, lexiques et grammaires, bases terminologiques Mono et multilingue } Transcription de l’oral et du multimodale

Normalisation et contexte d’utilisation } Représentation uniforme de la structure S’appuyer sur un codage

Normalisation et contexte d’utilisation } Représentation uniforme de la structure S’appuyer sur un codage logique et hiérarchique de l’information Présentation vs. représentation } Faciliter : la mise en place d’une politique éditoriale consistante les analyses linguistiques et les traitements automatiques de la langue à partir de ressources textuelles } Mais également, prendre en compte toutes les informations contextuelles nécessaires à la bonne conduite d’un projet – les méta-data

Mise en réseau de ressources linguistiques } Partage et distribution des ressources linguistiques Facilité

Mise en réseau de ressources linguistiques } Partage et distribution des ressources linguistiques Facilité l'accès aux données, la ré-utilisation } Maintenance locale des ressources Données évolutives, vivantes, … } Répartition de la charge des traitements

Sommaire } } Partie 1 : (long) Préambule u fichiers binaires, fichiers texte u

Sommaire } } Partie 1 : (long) Préambule u fichiers binaires, fichiers texte u Le balisage : introduction u HTML : un langage à balises pour le WEB u XML : des balises, des arbres, des grammaires. . . Partie 2 : Formats de documents électroniques } Partie 3 : SGML : une introduction } Partie 4 : XML : une introduction

Références bibliographiques } Manuels de référence « XML, langage et applications » , Alain

Références bibliographiques } Manuels de référence « XML, langage et applications » , Alain Michard, Editions Eyrolles, 1999 (noté désormais [XML 99]) u « XML in a nutshell » , manuel de référence, E. R. Harold & W. S. Means, traduction de T. Broyer, P. Ensarguet, A. Ketterlin, Editions O'REILLY, 2001 (désormais noté [XML 01]) u « Ingénierie des langues » , sous la direction de Jean-Marie Pierrel, Editions HERMES, 2000 u • en particulier, chapitre 7, « Codage et normalisation de ressources textuelles »

Lectures « obligatoires » } Le poly distribué en cours « Documents structurés, introduction

Lectures « obligatoires » } Le poly distribué en cours « Documents structurés, introduction à XML » , leçons 0, 1, 2, 3 } Les documents annexes : « Introduction à SGML » par Michel Goossens, Chapitres 7 et 8 de « Ingénierie des Langues » J. M. Pierrel… } Sur le Web : Revue solaris n° 06 : « Normes et documents numériques : quels changements ? » www. info. unicaen. fr/bnum/jelec/Solaris/d 06/

Partie 1 Préambule Fichiers binaire/texte Balisage SGML/HTML/XML Sommaire @ SF 2001

Partie 1 Préambule Fichiers binaire/texte Balisage SGML/HTML/XML Sommaire @ SF 2001

Stockage de données sur un ordinateur (1) } Il existe deux moyens de stocker

Stockage de données sur un ordinateur (1) } Il existe deux moyens de stocker les données sur un ordinateur fichier binaire u a priori, fichiers « illisibles » : fichiers composés de suite de bits, de « 0 » ou de « 1 » u les fichiers binaires ne peuvent être ouverts que par les programmes qui les ont ouverts ou créés u exemple : un document WORD u restriction sur ces fichiers : format propriétaire

Stockage de données sur un ordinateur (2) fichier texte u un fichier texte constitue

Stockage de données sur un ordinateur (2) fichier texte u un fichier texte constitue en réalité un fichier binaire structuré que l ’on peut qualifier d ’ « universel » u les bits des fichiers texte sont regroupés en petits ensembles qui permettent de coder la représentation des symboles (lettres ou chiffres) : tous les programmes peuvent les lire u restriction sur ces fichiers : le texte y est contenu de manière « brute » (pas de mise en forme par exemple)

Fichiers binaires

Fichiers binaires

ABC. doc } Avec word } Sous un éditeur de texte

ABC. doc } Avec word } Sous un éditeur de texte

Fichiers texte (1)

Fichiers texte (1)

ABC. txt } Avec word } Avec un éditeur de texte

ABC. txt } Avec word } Avec un éditeur de texte

Fichiers texte (2)

Fichiers texte (2)

Le balisage @ SF 2001

Le balisage @ SF 2001

Structuration de fichier texte : le balisage } Introduction de balises pour mettre en

Structuration de fichier texte : le balisage } Introduction de balises pour mettre en forme un fichier texte pour indiquer que la phrase : « le petit chat est mort » doit être écrite en rouge, il suffit de faire précéder le début de la phrase par une suite de symbole indiquant ce formatage et le nombre de caractères concernés {rouge 22 {le petit chat est mort}} Solution facile, mais pas forcément lisible Une meilleure solution : le balisage <rouge>le petit chat est mort</rouge>

Balisage } } Identification de la structure logique d'un document au moyen de «

Balisage } } Identification de la structure logique d'un document au moyen de « balises » Balises : chaînes de caractères ayant une signification/fonction spéciale dans un document; distinction claire entre contenu et balisage (utilisation de caractères spéciaux) } Exemples de balises : <mot> (balise d'ouverture) </mot> (balise de fermeture) <mot>cours</mot><mot>de</mot><mot>licence</mot>

Baliser = Interpréter « Nous définissons le balisage (l ’encodage) comme le moyen de

Baliser = Interpréter « Nous définissons le balisage (l ’encodage) comme le moyen de rendre explicite une interprétation d ’un texte… Encoder un texte pour un traitement informatique est, en principe, comme transcrire un manuscrit à partir d ’une scriptio continua… un processus qui vise à conduire le lecteur vers la manière dont le contenu du texte devrait être interprété. » (Lou Bernard, « What is SGML and how does it help » , 1995. => Le balisage permet d ’indiquer de manière claire les informations de diverses natures dans le document, ce qui rend leur utilisation aisée scriptio continua : dans les textes manuscrits médiévaux, le texte est continu, sans ponctuation, ni même parfois de séparations entre les mots.

Exemples de documents structurés } } Un corpus de transcription Un dictionnaire

Exemples de documents structurés } } Un corpus de transcription Un dictionnaire

Transcription de données orales Le document est associé à un fichier son Les thèmes

Transcription de données orales Le document est associé à un fichier son Les thèmes de la discussion sont précisés Les participants sont identifiés Les tours de parole sont délimités

Un dictionnaire (cf le devoir)

Un dictionnaire (cf le devoir)

Balisage en 2 temps } } Définition de l'ensemble des balises dont on va

Balisage en 2 temps } } Définition de l'ensemble des balises dont on va se servir pour décrire la structure d'un document (grammaire du document ou DTD (Définition de Type de Document)) Balisage proprement dit du document d'après la définition donnée par la grammaire (DTD)

Le texte : une entrée de dictionnaire <dictionnaire> <article> <forme> Bidingue </forme> <grammaire> <categorie>

Le texte : une entrée de dictionnaire <dictionnaire> <article> <forme> Bidingue </forme> <grammaire> <categorie> n. et adj </categorie> </grammaire> <etymologie> de bilingue et de dingue </etymologie> <acception> <definition> bilingue fou </definition> </acception> </article> </dictionnaire> Descripteurs d ’une entrée de dictionnaire Forme graphique de l ’entrée Catégorie grammaticale associée Informations étymologiques Acception et définition Amorce d ’une grammaire de document : la classe de document « Dictionnaire »

Grammaire et arbre de document Contenu Element dictionnaire -> article+ article -> forme, grammaire,

Grammaire et arbre de document Contenu Element dictionnaire -> article+ article -> forme, grammaire, etymologie, acception forme -> caractères grammaire -> caractères etymologie -> caractères acception -> definition, exemple* definition -> caractères exemple -> caractères Grammaire de document Arbre de document

Le texte : un courrier électronique } Exemple de courrier électronique Un en-tête Expéditeur

Le texte : un courrier électronique } Exemple de courrier électronique Un en-tête Expéditeur Destinataire en copie Sujet Un corps de message Texte du message Signature Adresse

Représentation formelle d’un courrier électronique courrier -> en-tête, corps-message en-tête -> émetteur, destinataire, cc?

Représentation formelle d’un courrier électronique courrier -> en-tête, corps-message en-tête -> émetteur, destinataire, cc? , sujet? émetteur -> adresse-électronique destinataire -> adresse-électronique+ cc -> adresse-électronique+ sujet -> caractères corps-message -> message, signature, adresse-postale? message -> caractères signature -> caractères adresse-postale -> caractères adresse-électronique -> nom, @, prestataire nom -> caractères prestataire -> caractères

Différents types de balisage } Balisage de type « présentation » traitements de texte

Différents types de balisage } Balisage de type « présentation » traitements de texte type WORD ce type de balisage correspond à une représentation spécifique du document : u } la présentation physique à l ’impression Balisage logique ou générique description de la structure logique en faisant abstraction de tout aspect physique

Balisage logique généralisé } Description de la structure d ’un document u Etape 1:

Balisage logique généralisé } Description de la structure d ’un document u Etape 1: • Définition de l ’ensemble des balises pour identifier les éléments de base d ’un document et les règles formelles qui décrivent sa structure : un modèle de document i. e. la grammaire d ’un document (sa DTD) u Etape 2: • Introduction du balisage dans le document lui- même selon les principes décrits dans la DTD

Remarques méthodologiques } Un texte balisé n ’est pas fait pour être lu mais

Remarques méthodologiques } Un texte balisé n ’est pas fait pour être lu mais pour être manipulé par des outils de traitements particuliers u } les balises HTML sont utilisées par les navigateurs pour gérer l ’affichage d ’une page HTML On peut utiliser des logiciels pour extraire des fragments de texte relevant d ’un type donné : sur des email, extraire les émetteurs, les destinataires… u sur un dictionnaire, extraire les définitions, les usages. . . u

On ne balise pas à la main } Le processus de balisage d ’un

On ne balise pas à la main } Le processus de balisage d ’un document se fait de manière semi-automatique on balise les champs réguliers de manière automatique : on construit des programmes adaptés. u Exemple : passage d ’un texte pur en HTML on ajuste ou on corrige à la main le reste u Exemple : la conversion HTML faite par WORD n ’est pas optimale

{Mais que fait Word (Microsoft) ? } } Word crée des « marqueurs »

{Mais que fait Word (Microsoft) ? } } Word crée des « marqueurs » et les cache à l ’utilisateur Word peut être considéré comme formé de plusieurs programmes coopérants pour donner à l ’utilisateur l ’illusion de travailler directement sur la forme finale du document } Module d ’édition de Word Saisie du texte dans un fichier interne en y insérant des balises RTF (invisibles pour l ’utilisateur) : {ul…} Programme d ’affichage d ’un texte balisé RTF Programme d ’impression : RTF -> Post. Script Programme de lecture qui ignore les balises RTF, par exemple pour recherche la chaîne « ul »

Documents structurés : balisage logique @ SF 2001

Documents structurés : balisage logique @ SF 2001

Documents structurés } Séparation logique/physique « A chacun son métier » : les auteurs

Documents structurés } Séparation logique/physique « A chacun son métier » : les auteurs écrivent, les typographes ou maquettistes règlent les problèmes de mise en forme Une même version d ’un roman peut être imprimée dans un format poche ou dans une édition de luxe : u } la structure « profonde » est la même Généricité Une définition structurée de documents permet de décrire l ’organisation logique de toute une classe générique de documents : des articles, des thèses. . .

Normalisation des documents : pourquoi faire ? } } L ’ordinateur permet de gérer

Normalisation des documents : pourquoi faire ? } } L ’ordinateur permet de gérer des masses importantes de données textuelles et permet une actualisation rapide de ces données Passage de plus en plus rapide du support papier au support électronique : édition d ’annuaires, de dictionnaires, de recueils juridiques… } Faciliter l ’échange et l ’exploitation des documents

Applications autour du document électronique (1) } A partir d ’une collection d ’adresses

Applications autour du document électronique (1) } A partir d ’une collection d ’adresses (téléphoniques, électroniques…) production d ’annuaire-papier développement d ’un service interrogeable par MINITEL développement d ’un service interrogeable par INTERNET Imprimer des étiquettes etc.

Applications autour du document électronique (2) } A partir de textes de loi ou

Applications autour du document électronique (2) } A partir de textes de loi ou d ’une série d ’articles de linguistique : Edition d ’un code contenant toutes lois Encyclopédie de la linguistique (? ) Publication de revue avec mises à jour régulières Sélectionner des articles sur un domaine restreint pour générer un ouvrage thématique Proposer un service de consultation sur Minitel ou via Internet Développement d ’un système hypertexte pour une édition sur CD-ROM

Les langages à balise De SGML à XML @ SF 2001

Les langages à balise De SGML à XML @ SF 2001

Une brève histoire du balisage (1) } SGML : à partir des travaux de

Une brève histoire du balisage (1) } SGML : à partir des travaux de C. Godfarb, E. Mosher, R. Lorie chez IBM dans les années 70 u u } Langage sémantique et structurel à balises pour les documents textuels HTML : application SGML pour la réalisation de pages Web 1996, J. Bosak, T. Bray, C. M. Sperberg-Mc. Queen, J. Clark. . . commencent à travailler sur une version simplifiée de SGML pour le Web Février 1998 : XML 1. 0

SGML (en le disant rapidement) } SGML, langage de balisage généralisé langage de balisage

SGML (en le disant rapidement) } SGML, langage de balisage généralisé langage de balisage = système formel avec lequel l ’information et le codage sont ajoutés à la version électronique d ’un document dans le but de représenter son sens et donc d ’en contrôler son traitement } Le modèle de base pour la représentation de données au format SGML correspond à un arbre hiérarchique Cet arbre représente les données textuelles avec des éléments de contenu de types différents et encapsulés les uns dans les autres } L ’objectif de SGML est de fournir une représentation logique des données indépendamment de la manière dont elles seront manipulées ou présentées

Instance de document du type « mémo » <!DOCTYPE memo SYSTEM "memo. dtd"> <memo

Instance de document du type « mémo » <!DOCTYPE memo SYSTEM "memo. dtd"> <memo statut="conf"> <auteur>Serge Fleury</auteur> <dest> La grammaire <nom>André Salem</nom> du document <nom>Pollet Samvelian</nom> est décrite ici </dest> <sujet>Cours SLFE 6</sujet> <corps> <par>Veuillez noter que le cours SLFE 6 sur les documents électronique aura bel et bien lieu au mois de mai 2002</par> <par>S'il y avait des changements de votre côté, veuillez m'en aviser dans les plus brefs délais. </par> </corps> </memo>

Grammaire de document du type « mémo » <!-- DTD utilisable pour baliser les

Grammaire de document du type « mémo » <!-- DTD utilisable pour baliser les memos en SGML --> <!ELEMENT memo -- ((auteur & (date? ) & sujet & dest & (cc? )), corps)> <!ATTLIST memo statut (conf | pub) pub> <!ELEMENT (dest | cc) -- (nom+)> <!ELEMENT corps -- (par*)> <!ELEMENT (auteur | date | sujet | nom | par) -- (#PCDATA)>

Exemple de DTD (1) (grammaire) } Une grammaire de type « roman » <!ELEMENT

Exemple de DTD (1) (grammaire) } Une grammaire de type « roman » <!ELEMENT roman --(chapitre+)> <!ELEMENT chapitre --(titre, paragraphe+)> <!ELEMENT paragraphe - -(texte+)> <!ELEMENT titre - -(texte)> Contenu de ces éléments Nom des éléments utilisés pour décrire la structure des documents

Eléments (1) · Objets ou blocs d'information d'un document qu'on désire identifier et ainsi

Eléments (1) · Objets ou blocs d'information d'un document qu'on désire identifier et ainsi différencier d'autres objets/blocs dans le document Indication de présence/omission Nom de l ’élément des balises de début ou de fin · Syntaxe : <!ELEMENT NOM D F (modèle de contenu)> · cette déclaration donne le nom de l ’élément et indique entre parenthèses ce que peut ou doit contenir cet élément (son modèle de contenu) · Présence/absence de balise : u u doit être présente : caractère « - » peut être omise caractère « O »

Eléments (2) } Le modèle de contenu utilisation d ’opérateurs d ’ordre et de

Eléments (2) } Le modèle de contenu utilisation d ’opérateurs d ’ordre et de choix , & | + ? * tous doivent apparaître dans l ’ordre indiqué tous doivent apparaître, ordre quelconque un et un seul doit apparaître élément obligatoire et répétable (1 fois ou plus) élément optionnel (0 ou 1 fois) élément optionnel et répétable (0 fois ou plus)

Eléments (3) } } Un élément peut contenir d ’autres éléments ou des caractères

Eléments (3) } } Un élément peut contenir d ’autres éléments ou des caractères Types de caractères utilisés PCDATA données textuelles analysées (balises ou appels d ’entités interdits) <!ELEMENT TITLE - - (#PCDATA)> RCDATA données textuelles remplaçables CDATA données textuelles ANY PCDATA ou tout élément de la DTD EMPTY contenu vide <!ELEMENT IMG - O EMPTY>

Une brève histoire du balisage (2) } } SGML Le « Standard Generalized Markup

Une brève histoire du balisage (2) } } SGML Le « Standard Generalized Markup Language » est le premier langage de type auto-descriptif conçu pour faciliter la gestion d ’importants fichiers langage extrêmement complexe le langage HTML utilisé sur le web est une application restreinte de SGML } } XML SGML trop « complexe » HTML trop « simple » et réservé à l ’affichage dans un navigateur XML (e. Xtensible Markup Language) est la solution idéale version simplifiée de SGML

HTML : un langage à balises pour le WEB } “Hypertext Mark-Up Language” (HTML)

HTML : un langage à balises pour le WEB } “Hypertext Mark-Up Language” (HTML) Langage de “structuration de documents” Description de contenus par des éléments de formatage Liens hypertextuels (références internes et externes) } Le langage HTML tire son origine du langage SGML Il s'agit d'un type particulier d'annotations destiné au WWW et qui correspond à une collection de « marqueurs » (les balises) reconnaissables par les navigateurs Un navigateur (en anglais « browser » ) est donc un logiciel qui interprète à l'écran les balises HTML contenues dans un document accessible sur le WWW

Description d’un document HTML } } } Le HTML (Hyper. Text Markup Language) est

Description d’un document HTML } } } Le HTML (Hyper. Text Markup Language) est un langage permettant de mettre en forme du texte, des images, du son, etc. destinés à être visualisés grâce à un navigateur (Microsoft Internet Explorer, Netscape Navigator, Opéra…) Ce langage de description de page utilise des balises pour spécifier la façon dont un élément doit apparaître, pour afficher des images ou définir des actions Ces marques sont toujours placées entre les signes “<” et “>” et agissent très souvent par paire : la première spécifie le début d’application du style (ou de l’action), la seconde, qui comporte le signe “/”, marque la fin d’application du style (ou de l’action)

Créer un document HTML } } } } <HTML> première ligne du document <head>

Créer un document HTML } } } } <HTML> première ligne du document <head> ouverture de la zone d'entête <title> titre de la page suivi de </title> </head> fermeture de la zone d'entête <body> ouverture du corps du document Mettre le texte et les images ici </body> fin du corps du document </HTML> fin du document HTML

Un document HTML (1) Ecriture d ’un document HTML dans un éditeur de texte

Un document HTML (1) Ecriture d ’un document HTML dans un éditeur de texte

Un document HTML (1) Visualisation du document HTML via un navigateur

Un document HTML (1) Visualisation du document HTML via un navigateur

Les limites de HTML } HTML ne permet pas de « marquer » les

Les limites de HTML } HTML ne permet pas de « marquer » les informations en fonction de leur signification si l'on souhaite présenter des informations concernant la linguistique, la chimie, la météorologie. . . pas de balises PHRASE, MOT, SYNTAGME, CATEGORIE…pour les linguistes u ATOM ou MOLECULE pour les chimistes u ni de balises CARTE ou TEMPERATURE pour les météorologues u

Pour aller plus loin avec HTML } Nombreux cours sur le WEB pour commencer

Pour aller plus loin avec HTML } Nombreux cours sur le WEB pour commencer : u slides HTML sur le site TAL

XML } « Définition » : XML est une méthode universelle et standardisée de

XML } « Définition » : XML est une méthode universelle et standardisée de représentation(1) textuelle (2) de données structurées

Textuel (2) <dictionnaire> <article> <forme>bidingue</forme> <grammaire> <categorie>n. et adj</categorie> </grammaire> <etymologie>de bilingue et de

Textuel (2) <dictionnaire> <article> <forme>bidingue</forme> <grammaire> <categorie>n. et adj</categorie> </grammaire> <etymologie>de bilingue et de dingue </etymologie> <acception> <definition>bilingue fou </definition> </acception> </article>. . . </dictionnaire> } Textuel par opposition à binaire Un document XML contient du texte (jamais de données binaires) u Les données sont incluses dans un document XML sous forme de chaînes de caractères et elles sont délimitées par des marqueurs textuels qui les décrivent Il est éditable par n'importe quel programme capable de lire un fichier texte XML est sensible à la casse : les composants d'un document XML écrits dans une casse différente sont différents Une unité particulière de donnée et son marqueur est appelée un élément XML est lisible : « par l ’homme » et par « des programmes »

représentation(1) } XML a été conçu pour constituer essentiellement un format d ’échange de

représentation(1) } XML a été conçu pour constituer essentiellement un format d ’échange de données et éventuellement de stockage } Les structures de données sont représentées comme un flux de caractères (balises et contenus)

XML en le disant rapidement } XML consiste très schématiquement à entourer les données

XML en le disant rapidement } XML consiste très schématiquement à entourer les données par des balises indiquant leur type <dictionnaire> <article> <forme>bidingue</forme> <grammaire> <categorie>n. et adj</categorie> </grammaire> <etymologie>de bilingue et de dingue</etymologie> <acception> <definition>bilingue fou</definition> </acception> </article>. . . </dictionnaire>

XML et les données de langue } } XML permet de structurer et d

XML et les données de langue } } XML permet de structurer et d ’organiser les données XML permet ainsi l ’extraction de l ’information de manière simple et puissante chaque donnée peut être associée à son type exemple : u dans un dictionnaire, recherche de toutes les informations morpho-syntaxiques associées aux entrées du dictionnaire

Faciliter les traitements automatiques } DOCUMENT XML = structures de données manipulables par programme

Faciliter les traitements automatiques } DOCUMENT XML = structures de données manipulables par programme Repose sur des interfaces de programmation normalisées (API) pour manipuler la structure et le contenu « textuel » u traitement évènementiel par règles : SAX • Cette interface ne s ’appuie pas sur la description complète de l ’arbre du document mais permet de déclencher des évènements sur des types d ’objets rencontrés lors du parcours de l ’arbre u traitement par manipulation d ’arbre : DOM • Cette interface de programmation permet de parcourir l ’arborescence à partir de l ’un de ses nœuds dans différentes directions, de modifier ses propriétés (le document ou un nœud) cf cours de maîtrise (SLFN 7 -8)

Arbres XML } Les documents XML sont des arbres Un seul élément sans parent

Arbres XML } Les documents XML sont des arbres Un seul élément sans parent : la racine Dès lors que les éléments ne se chevauchent pas et que tous les éléments, à l'exception de la racine, possèdent un parent, les documents XML représentent une structure de données appelée arbre

De la grammaire pour linguistes… (1) <Phrase> -> <GN> <GV> <GN> -> <Art> <Adj>*

De la grammaire pour linguistes… (1) <Phrase> -> <GN> <GV> <GN> -> <Art> <Adj>* <Nom> <GV> -> <Verbe> <Adv> | … <Art> -> le | la | un | … Application de cette grammaire pour « Le joli chien court rapidement » : représentation à plat avec des balises : <Phrase><GN><Art>Le</Art><Adj>joli</ adj><Nom>chien</Nom></GN><GV><Verbe> court</verbe><Adv>rapidement</Adv></ GV></Phrase>

Des arbres pour linguistes. . .

Des arbres pour linguistes. . .

… aux grammaires de textes } Description formelle d ’un texte de type «

… aux grammaires de textes } Description formelle d ’un texte de type « roman » <roman> -> <chapitre>* <chapitre> -> <titre> <paragraphe>* <titre> -> <texte> <paragraphe> -> <texte> þUn roman est formé d ’un nombre quelconque de chapitres, un chapitre est formé d’un titre et d’un nombre quelconque de paragraphes et un paragraphe c’est du texte. . .

XML 1. 0 } } XML 1. 0 est un standard défini par une

XML 1. 0 } } XML 1. 0 est un standard défini par une recommandation du World Wide Web Consortium (W 3, organisation responsable de la normalisation pour le Web). Quoique récent, on peut dire qu'XML 1. 0 est déjà largement déployé Dans l'environnement immédiat d'XML, il y d'autres normes dont l'état est plus ou moins avancé : XSL, XLL, XPATH. . .

XSLT : langage de manipulation d ’arbres } XSLT est un langage (décrit en

XSLT : langage de manipulation d ’arbres } XSLT est un langage (décrit en XML) qui permet de transformer des arbres XML il permet d ’écrire des règles de restructuration d ’un document XML Application : présentation de document XML sur le Web u conversion d ’un document XML vers HTML u Exemples : • une liste d ’entrées bibliographiques • un catalogue de CD • « Le petit prince » version bilingue : français et tchèque cf cours de maîtrise SLFN 8

Partie 2 Formats de documents électroniques Etat de l ’art Un nouveau paradigme Internet

Partie 2 Formats de documents électroniques Etat de l ’art Un nouveau paradigme Internet Sommaire @ SF 2001

Format de documents (1) } Format propriétaire conçu par un constructeur, en fonction des

Format de documents (1) } Format propriétaire conçu par un constructeur, en fonction des besoins d ’une application qui en reste propriétaire le format évolue en même temps que le logiciel exemple : Word de Microsoft } Problèmes posés par le format propriétaire incompatibilité verticale : les documents Word 98 ne sont pas lisibles par Word 6 u cette lecture est possible si on construit un convertisseur spécial (en général bien après) incompatibilité horizontale : u les autres applications (concurrentes) doivent construire des convertisseurs pour lire ce type de document u

Formats de documents (2) } Format normalisé norme internationale garantie par un organisme standard

Formats de documents (2) } Format normalisé norme internationale garantie par un organisme standard industriel (i. e. propriété d ’un constructeur) qui s ’est engagé publiquement sur un format et sur sa stabilité le format normalisé repose sur un consensus entre les acteurs (utilisateurs, développeurs, constructeurs…) Exemple : le développement du Web est devenu possible grâce à l ’adoption d ’un format commun : HTML } Avantages du format normalisé compatibilité horizontale (entre logiciels conformes) échange de données plus facile pour l ’utilisateur, utiliser une norme c ’est s ’affranchir d ’un outil et de son constructeur

Comment décrire un document ? } (1) Niveau de description physique décrire un document

Comment décrire un document ? } (1) Niveau de description physique décrire un document par sa forme matérielle exemple : un document RTF (Microsoft) contient des indications sur le rendu imprimé du document } (2) Niveau de description logique décrire un document en termes de structures logiques et des relations qu ’elles entretiennent exemple : LATEX (système de représentation de documents) exige qu ’un rapport soit structuré en document, sections…, un livre est fait de chapitres, . . . } On peut passer de (2) à (1). . . une description logique permet de déduire description physique (feuille de style déclarative) : XML + XSLT } mais plus difficilement de (1) à (2) une liste à tirets peut correspondre à un dialogue ou à une énumération

Edition de documents électroniques } Microsoft Word PDF HTML SGML XML } => cf

Edition de documents électroniques } Microsoft Word PDF HTML SGML XML } => cf document distribué : « le texte dans tous ces états » } }

Microsoft Word } Format propriétaire de représentation des documents documentation inaccessible au grand public

Microsoft Word } Format propriétaire de représentation des documents documentation inaccessible au grand public RTF (Rich Text Format) u format d ’échange pour documents Word qui est en principe une fidèle représentation du format propriétaire } Un document est décrit par une suite de caractères (représentant le contenu) entrecoupés de commandes décrivant leur mise en forme l ’entête peut contenir des définitions de styles (caractéristiques de mise en forme pour les caractères ou les paragraphes) les styles sont organisés de manière hiérarchique les commandes précisent des caractéristiques visuelles du texte ou permettent d ’introduire d ’autres types d ’objets (graphiques…) } Word n’est pas un format de document structuré les structures peuvent être décrites en termes de styles, mais l ’utilisation des styles n ’est pas obligatoire

Docume nt RTF

Docume nt RTF

PDF : Portable Document Format (1) } Format propriétaire de représentation des documents de

PDF : Portable Document Format (1) } Format propriétaire de représentation des documents de Adobe devenu un standard industriel format de description des documents dans leur présentation exacte de façon portable } Un document est décrit un arbre de pages (avec pour chacune description visuelle, des annotations. . . ) éventuellement un ou plusieurs arbres représentant le plan du document des indicateurs permettant de guider ou de modifier la lecture (table des matières, liens hypertextuels, zoom, sélection d ’un flux linéaire de lecture…)

PDF : Portable Document Format (2) } PDF est un format structuré proposant une

PDF : Portable Document Format (2) } PDF est un format structuré proposant une structure documentaire fixe basée sur une description physique des documents l ’unité documentaire est la page } PDF comporte une description visuelle des pages des structures logiques permettant d ’en instrumenter la lecture

Hyper. Text Markup Language (1) } Langage de description des pages WEB visualisables de

Hyper. Text Markup Language (1) } Langage de description des pages WEB visualisables de la même manière par tous les utilisateurs } Dans HTML, la notion de document se confond avec celle de page d ’écran chaque document est conçu pour être affiché en une seule page } Un document HTML est défini par un fichier source balisé les balises sont conçues pour permettre le repérage de structures logiques ayant une influence sur la présentation physique

Docume nt HTML

Docume nt HTML

SGML : Standart Generalized Markup Language } } } SGML est une norme internationale

SGML : Standart Generalized Markup Language } } } SGML est une norme internationale pour la représentation de documents SGML est un métalangage, i. e. un formalisme qui permet de définir des langages de balisage Chaque langage de balisage est une grammaire de balises que les documents doivent respecter

Documents SGML } Des grammaires de documents : des modèles pour chaque type de

Documents SGML } Des grammaires de documents : des modèles pour chaque type de document (livre, rapport, dictionnaire…) } Des instances de document pour chaque modèle : les instances (les documents proprement dits) doivent respecter le modèle auquel ils sont associés un document SGML doit être conforme à une DTD

Instance de document SGML représentant un mémo <!DOCTYPE memo SYSTEM "memo. dtd"> <memo statut="conf">

Instance de document SGML représentant un mémo <!DOCTYPE memo SYSTEM "memo. dtd"> <memo statut="conf"> <auteur>Serge Fleury</auteur> <dest> <nom>André Salem</nom> <nom>Claire Beyssade</nom> La grammaire du </dest> document <sujet>Cours SLFE 6</sujet> est décrite ici <corps> <par>Veuillez noter que le cours SLFE 6 sur les documents électronique aura bel et bien lieu au mois de mai 2000</par> <par>S'il y avait des changements de votre côté, veuillez m'en aviser dans les plus brefs délais. </par> </corps> </memo>

Grammaire des documents de type mémo <!-- Ceci est la DTD utilisable pour baliser

Grammaire des documents de type mémo <!-- Ceci est la DTD utilisable pour baliser les memos en SGML --> <!ELEMENT memo -- ((auteur & (date? ) & sujet & dest & (cc? )), corps)> <!ATTLIST memo statut (conf | pub) pub> <!ELEMENT (dest | cc) -- (nom+)> <!ELEMENT corps -- (par*)> <!ELEMENT (auteur | date | sujet | nom | par) -- (#PCDATA)>

Pourquoi SGML } } } Traitement d ’un nombre croissant de documents électroniques :

Pourquoi SGML } } } Traitement d ’un nombre croissant de documents électroniques : dictionnaires, annuaires, textes de lois… Amélioration des documents par ajout de balises structurelles Augmentation de l ’ « utilisabilité » et de la « réutilisabilité » Mise à jour des documents Extraction d ’informations dans les documents Publication sous différentes formes

Brève histoire de la norme SGML } } } Origine : travaux de Charles

Brève histoire de la norme SGML } } } Origine : travaux de Charles F. Goldfarb (ingénieur chez IBM) sur le Generalized Markup Language (GML) en 1969 Adoption de SGML par l'ISO (International Organization for Standardization) le 15 octobre 1986 ISO/IEC 8879: 1986 : Information Processing - Text and Office Systems - Standard Generalized Markup Language (SGML)

Qui utilise SGML } AAP : Association des éditeurs américains sélection de 3 types

Qui utilise SGML } AAP : Association des éditeurs américains sélection de 3 types de document dans le domaine de l ’édition : u } le livre, la publication en série, l ’article : élaboration d ’un modèle de document pour chaque type British Library Guidelines for editors & publishers } Mc. Graw-Hill Encyclopedia of science and technology

Text Encoding Initiative } La TEI est un système de codage permettant l ’échange

Text Encoding Initiative } La TEI est un système de codage permettant l ’échange et la circulation de documents électroniques utilisés en sciences sociales u u La TEI couvre un ensemble de type de textes extrêmement large : prose, poésie, théâtre, dictionnaires, bases terminologiques, … La TEI vise des domaines variés : publication électronique, analyse littéraire et historique, lexicographie, TAL, recherche documentaire, etc. Migration de TEI vers XML Cf [XML-01] : exemple de document TEI utilisant la version XML de la DTD TEI

Lecture : Codage TEI des dictionnaires } Groupe de travail de la TEI sur

Lecture : Codage TEI des dictionnaires } Groupe de travail de la TEI sur les dictionnaires Véronis & al. Cahier GUTemberg n° 24 } Fournir un ensemble de conventions pour les entrées du dictionnaire pour la structuration au niveau supérieur (page de titre, matériau introductif, divisions en noms communs et noms propres…)

Composants de base } Informations clairement identifiables forme du mot, informations grammaticales, définitions ou

Composants de base } Informations clairement identifiables forme du mot, informations grammaticales, définitions ou traductions, étymologie, renvois, sous-entrées, notes d ’usage, exemples… } Construction d ’une DTD : spécification d ’une typologie des éléments atomiques qui figurent dans les entrées visées une nomenclature adéquate pour ces éléments

Du dictionnaire à la DTD Une entrée du Collins English Dictionnary }roughcast (r^f, ca:

Du dictionnaire à la DTD Une entrée du Collins English Dictionnary }roughcast (r^f, ca: st) n. 1. a coarse plaster used to cover the surface of an external wall. 2. Any rough or preliminary form, model, etc. 3. Covered with or denoting roughcast. ~vb. -casts, -casting, -cast. 4. To apply roughcast to (a wall, etc. ). 5. To prepare in rough. 6. (tr. Another word for rough-hew. -- ’rough, caster n. }

Organiser la structure d ’une entrée } Structuration de façon hiérarchique une entrée peut

Organiser la structure d ’une entrée } Structuration de façon hiérarchique une entrée peut contenir une ou plusieurs sous-partie (homographes grammaticaux) « subdivisables » en sens et sous-sens Factorisation des informations à certains niveaux de la hiérarchie : les informations ont une portée Généralement, les informations relatives à la prononciation, à la forme orthographique, à la catégorie grammaticale sont mises en facteur à la tête de l ’entrée : elles s ’appliquent à différents sens de cette entrée

Structure hiérarchique et portée <entry> <form> <orth>roughcast</orth><pron> r^f, ca: st </pron></form> <hom> <gram><pos>N</pos> <sense

Structure hiérarchique et portée <entry> <form> <orth>roughcast</orth><pron> r^f, ca: st </pron></form> <hom> <gram><pos>N</pos> <sense N=‘ 1’><def>a coarse plaster… </def> </sense> <sense N=‘ 2’><def>any rough… </def> </sense> </hom> <gram><pos>ADJ</pos> <sense N=‘ 3’><def>covered… </def> </sense> </hom>… </entry>

Problèmes et difficultés (1) } Chaque entrée d ’un dictionnaire est un objet fortement

Problèmes et difficultés (1) } Chaque entrée d ’un dictionnaire est un objet fortement structuré : nombreux mécanismes d ’abréviation et d ’organisation typographique } Cette structure varie considérablement d ’un dictionnaire à l ’autre, dans un même dictionnaire } Un dictionnaire est à la fois une base de données (structure profonde) et un ensemble de textes (structure de surface)

Problèmes et difficultés (2) } } Une grande partie des informations de la structure

Problèmes et difficultés (2) } } Une grande partie des informations de la structure profonde n ’est pas explicite dans la structure de surface et nécessite la connaissance des conventions, de la présentation des dictionnaires Que faut-il privilégier pour le codage ? Point de vue « base de données » Point de vue textuel => Points de vue orthogonaux et codages respectifs parfois très différents

Vers un nouveau paradigme Internet ? } Maîtriser le déluge textuel Structurer l ’information

Vers un nouveau paradigme Internet ? } Maîtriser le déluge textuel Structurer l ’information dans les documents u et la retrouver facilement u et pouvoir l ’utiliser facilement dans des applications Faire des hypertextes puissants Afficher et imprimer de manière flexible Gérer toutes sortes de données et d ’usages u diffuser, échanger, stocker, cher… u pas juste afficher

XML, une version simplifiée de SGML } La norme SGML n'a pas été retenue

XML, une version simplifiée de SGML } La norme SGML n'a pas été retenue en raison de sa lourdeur et de sa complexité : un très grand nombre de fonctionnalités qui sont très rarement utilisées le support des différents jeux de caractères internationaux est « quelque peu léger » } Pour toutes ces raisons le W 3 C à créé une norme plus simple, dérivée de SGML, et renforcée là ou SGML comporte des faiblesses. Cette norme est la norme XML

Partie 3 Normalisation de documents Introduction à SGML Sommaire @ SF 2001

Partie 3 Normalisation de documents Introduction à SGML Sommaire @ SF 2001

Des documents à la représentation formelle des documents } Enjeux Partager les ressources textuelles

Des documents à la représentation formelle des documents } Enjeux Partager les ressources textuelles Diffusion des ressources textuelles Une norme de représentation doit permettre une manipulation normalisée u une mise à jour aisée u

Pré-requis pour les documents électroniques } } Ne pas stocker l ’information sous une

Pré-requis pour les documents électroniques } } Ne pas stocker l ’information sous une forme correspondant à celle d ’un document imprimé (ex: WORD) Conserver la structure logique des documents

SGML : grammaire (DTD) et documents } SGML est un méta-langage pour décrire des

SGML : grammaire (DTD) et documents } SGML est un méta-langage pour décrire des grammaires définissant des classes de documents structurés } Une grammaire de document = un modèle de document DTD Document Type Definition

Exemple de DTD (1) (grammaire) } Une grammaire de type « roman » <!ELEMENT

Exemple de DTD (1) (grammaire) } Une grammaire de type « roman » <!ELEMENT roman --(chapitre+)> <!ELEMENT chapitre --(titre, paragraphe+)> <!ELEMENT paragraphe - -(texte+)> <!ELEMENT titre - -(texte)> Contenu de ces éléments Nom des éléments utilisés pour décrire la structure des documents

Eléments (1) · Objets ou blocs d'information d'un document qu'on désire identifier et ainsi

Eléments (1) · Objets ou blocs d'information d'un document qu'on désire identifier et ainsi différencier d'autres objets/blocs dans le document Indication de présence/omission Nom de l ’élément des balises de début ou de fin · Syntaxe : <!ELEMENT NOM D F (modèle de contenu)> · cette déclaration donne le nom de l ’élément et indique entre parenthèses ce que peut ou doit contenir cet élément (son modèle de contenu) · Présence/absence de balise : u u doit être présente : caractère « - » peut être omise caractère « O »

Eléments (2) } Le modèle de contenu utilisation d ’opérateurs d ’ordre et de

Eléments (2) } Le modèle de contenu utilisation d ’opérateurs d ’ordre et de choix , & | + ? * tous doivent apparaître dans l ’ordre indiqué tous doivent apparaître, ordre quelconque un et un seul doit apparaître élément obligatoire et répétable (1 fois ou plus) élément optionnel (0 ou 1 fois) élément optionnel et répétable (0 fois ou plus)

Eléments (3) } } Un élément peut contenir d ’autres éléments ou des caractères

Eléments (3) } } Un élément peut contenir d ’autres éléments ou des caractères Types de caractères utilisés PCDATA données textuelles analysées (balises ou appels d ’entités interdits) <!ELEMENT TITLE - - (#PCDATA)> RCDATA données textuelles remplaçables CDATA données textuelles ANY PCDATA ou tout élément de la DTD EMPTY contenu vide <!ELEMENT IMG - O EMPTY>

Une instance de document de type « roman » } Un roman de G.

Une instance de document de type « roman » } Un roman de G. Pérec « La vie mode d ’emploi » <!DOCTYPE roman SYSTEM "roman. dtd"> <roman> <chapitre> <titre><texte>Dans l ’escalier</texte></titre> <paragraphe><texte>Oui, cela pourrait commencer … combles. </texte></paragraphe> <paragraphe><texte>…</texte></paragraphe>. . . </chapitre> </roman>

Exemple de DTD : une carte postale } DTD d'une carte (postale) } Cette

Exemple de DTD : une carte postale } DTD d'une carte (postale) } Cette DTD est contenue dans le fichier carte. dtd <!-- element min contenu -- > <!ELEMENT CARTE - - ((BONJOUR, CORPS, SALUT) & (IMAGE)) > <!ELEMENT BONJOUR - - (#PCDATA) > <!ELEMENT CORPS - - (DIVERS, TEMPS? ) > <!ELEMENT DIVERS - - (PARA)* > <!ELEMENT TEMPS - - (#PCDATA) > <!ELEMENT PARA - o (#PCDATA) > <!ELEMENT SALUT - - (#PCDATA) > <!ELEMENT IMAGE - o EMPTY > <!-- Attributs --> <!ATTLIST IMAGE SRC NAME #REQUIRED > } Remarques: <!-- --> marque un commentaire Le 'o' dans l'élément PARA indique la balise de fin peut être omise

Un exemple de carte postale conforme à cette DTD <!DOCTYPE CARTE SYSTEM "carte. dtd">

Un exemple de carte postale conforme à cette DTD <!DOCTYPE CARTE SYSTEM "carte. dtd"> <CARTE> <IMAGE SRC = "le_port. gif"> <BONJOUR>Mon tres cher ami, </BONJOUR> <CORPS><DIVERS> <PARA>Les vacances ont commence. </PARA> <!-- cette balise peut etre omise --> <PARA>Les cailloux sont en fleur. </PARA> </DIVERS> <TEMPS>Le soleil transpire a grosses gouttes. </TEMPS> </CORPS> <SALUT>Bonjour chez vous. </SALUT> </CARTE>

Partie 4 XML : Le langage de base Sommaire @ SF 2001

Partie 4 XML : Le langage de base Sommaire @ SF 2001

XML : un métalangage à balises } XML est un métalangage à balises pour

XML : un métalangage à balises } XML est un métalangage à balises pour les documents texte Les données sont incluses dans un document XML sous forme de chaînes de caractères et elles sont délimitées par des marqueurs textuels (les balises) qui les décrivent Une unité particulière de donnée et son marqueur est appelée un élément } Spécifications XML Ensemble de documents qui précisent les règles de formation des documents XML

Documents XML } Deux types de documents XML Document bien formé : u il

Documents XML } Deux types de documents XML Document bien formé : u il obéit aux règles syntaxiques du langage XML (document correct) Document valide : u un document bien formé obéit en outre à une structure type définie dans une DTD u le document valide est associé à une DTD

Structure d ’un document } Un prologue facultatif mais conseillé } Un arbre d

Structure d ’un document } Un prologue facultatif mais conseillé } Un arbre d ’éléments le contenu propre du document } Commentaires et instructions de traitement facultatifs, présents dans le prologue ou dans l ’arbre d ’éléments

Le prologue } Une déclaration XML <? xml version= « 1. 0 » encoding=

Le prologue } Une déclaration XML <? xml version= « 1. 0 » encoding= « ISO-8859 -1 » standalone= « yes » > } Instructions de traitement cf [XML 1999, (Chap 1, 4. 4. 7)] } Une déclaration de type de document indique le type de document auquel se conforme le document en question DTD externe : <!DOCTYPE rapport SYSTEM « rapport. dtd » > DTD interne : <!DOCTYPE rapport […]>

Déclarations XML } Les documents XML peuvent commencer par une déclaration (syntaxe similaire à

Déclarations XML } Les documents XML peuvent commencer par une déclaration (syntaxe similaire à celle des instructions de traitement) u Nom : xml, attributs : version, standalone et encoding u <? xml version="1. 0" encoding="ISO-8859 -1" standalone="yes"> u Version : version des spécifications XML u u Encoding : type de codage, ISO-8859 -1 (Latin-1) prend en compte les caractères nécessaires pour les langues occidentales Standalone : si la valeur est no, l'application peut avoir besoin de lire une DTD externe. Pour les documents sans DTD, on peut utiliser la valeur yes

 « Mon premier doc XML » Entête Arbre d ’éléments

« Mon premier doc XML » Entête Arbre d ’éléments

L ’arbre d ’éléments (1) } Un élément d ’un document XML une balise

L ’arbre d ’éléments (1) } Un élément d ’un document XML une balise d ’ouverture le contenu de l ’élément une balise de fermeture Exemple : u <nom>contenu de l ’élément</nom> } Éléments vides Les éléments sans contenu ont une syntaxe spéciale, on peut les représenter par une balise « auto-fermée » u <nom. Element/>

Nom d ’élément } } Les noms d'éléments et autres noms XML peuvent contenir

Nom d ’élément } } Les noms d'éléments et autres noms XML peuvent contenir n'importe quel caractère alphanumérique Ils peuvent aussi contenir les signes : souligné (_), trait d'union (-) et point (. ) } } } Ils ne doivent pas contenir d'autres signes de ponctuation Le caractère : est réservé pour une utilisation avec les espaces de noms Les noms XML doivent commencer par des lettres, des symboles ou le caractère souligné Ils ne doivent pas commencer par un nombre, un trait d'union ou un point } Il n'y a pas de limite dans la longueur d'un nom XML

L ’arbre d ’éléments (2) } Tout élément fils de l ’arbre est complètement

L ’arbre d ’éléments (2) } Tout élément fils de l ’arbre est complètement inclus dans son père i. e. pas de recouvrement entre balises } Il existe un et un seul élément père qui contient tous les autres : l ’élément racine (root)

Eléments et attributs } <Nom. Element [attribut 1=‘ val 1 ’…]> une balise d

Eléments et attributs } <Nom. Element [attribut 1=‘ val 1 ’…]> une balise d ’ouverture se compose : u< u le nom de l ’élément u un ou plusieurs attributs pour décrire certaines propriétés de l ’élément u>

Eléments et attributs } Contenu d ’élément « visible » <personne> <nom>Serge Fleury</nom> <adresse>ILPGA</adresse>

Eléments et attributs } Contenu d ’élément « visible » <personne> <nom>Serge Fleury</nom> <adresse>ILPGA</adresse> </personne> } Contenu d ’élément « invisible » <personne nom= « Serge Fleury » adresse= « ILPGA » />

Contenu d ’un élément } Un élément peut contenir d ’autres éléments des données

Contenu d ’un élément } Un élément peut contenir d ’autres éléments des données des références à des entités des sections littérales des instructions de traitement

Données } Constituées par un flot de caractères tous les caractères sont acceptés sauf

Données } Constituées par un flot de caractères tous les caractères sont acceptés sauf le e commercial « & » et le caractère « plus petit que (<) »

Références à des entités (1) } Entités prédéfinies < > & &apos; " =>

Références à des entités (1) } Entités prédéfinies < > & &apos; " => => => < > & ‘ «

Références à des entités (2) } Références à des caractères références décimales u <

Références à des entités (2) } Références à des caractères références décimales u < => < u & => & références hexadécimales u &#003 c; => < u &#0026; => & utilisation des numéros que ces caractères ont dans les tables ISO 10646 ou Unicode

Références à des entités (3) } Entités internes il est possible de créer ses

Références à des entités (3) } Entités internes il est possible de créer ses propres entités et d ’y faire référence dans le contenu des éléments <!ENTITY nom_entity « valeur_entity » >

Sections littérales } Si l ’on souhaite insérer une longue suite de caractères «

Sections littérales } Si l ’on souhaite insérer une longue suite de caractères « spéciaux » il est préférable d ’utiliser une section littérale ou CDATA : <![CDATA [<auteurs>S. Fleury & al. </auteurs>]]> réalisation : <auteurs>S. Fleury & al. </auteurs> } Tout ce qui est contenu à la place de … dans (<![CDATA [. . . ]]) est traité comme des données textuelles brutes (le parseur ne les analyse pas)

Instructions de traitement } Une indication de traitement est destinée aux applications qui manipulent

Instructions de traitement } Une indication de traitement est destinée aux applications qui manipulent les documents XML <? cible arg 1 arg 2 …? > cible : nom de l ’application u arg 1, arg 2 : chaînes passées à l ’application u exemple : association d ’une feuille de style u u <? xml-stylesheet href="person. css" type="text/css"? > Les instructions de traitement sont des balises mais pas

Commentaires } Les documents XML peuvent contenir des commentaires Ils commencent par <!- Ils

Commentaires } Les documents XML peuvent contenir des commentaires Ils commencent par <!- Ils se terminent par --> } Le double trait d'union ne doit pas apparaître dans le commentaire avant la séquence --> } Les commentaires peuvent apparaître n'importe où sauf à l'intérieur d'une balise ou dans un autre commentaire

Entités et notations (1) } Entités externes via URL <? xml version= « 1.

Entités et notations (1) } Entités externes via URL <? xml version= « 1. 0 » ? > <!DOCTYPE livre [ <!ENTITY chap 1 SYSTEM « chap 1. xml » > <!ENTITY chap 2 SYSTEM « chap 2. xml » > <!ENTITY auteur «SF» >]> <livre> <titre>Mon livre</livre> <auteur>&SF; </auteur> &chap 1; &chap 2; </livre>

Entités et notations (2) } Entités externes via identificateur public cf [XML 1999] }

Entités et notations (2) } Entités externes via identificateur public cf [XML 1999] } Entités non XML cf [XML 1999]

Exemple : une lettre [XML 00]

Exemple : une lettre [XML 00]

Exemple : une lettre [XML 00]

Exemple : une lettre [XML 00]

Exemple : une lettre [XML 00] Ajout d ’attributs

Exemple : une lettre [XML 00] Ajout d ’attributs

Définition de type de document DTD } Les DTDs permettent de définir quels éléments

Définition de type de document DTD } Les DTDs permettent de définir quels éléments et quelles entités peuvent apparaître dans un document XML et quels sont les contenus des éléments et des attributs

Structure Type de document } Un document valide obéit à une structure type de

Structure Type de document } Un document valide obéit à une structure type de document défini dans une DTD • un document valide est une instance de cette DTD } Une DTD est l ’ensemble de toutes les déclarations contenues, soit directement ou par référence à des entités externes, dans une déclaration de type de document

Structure Type de document u Exemple 1 <? xml version= « 1. 0 »

Structure Type de document u Exemple 1 <? xml version= « 1. 0 » ? > <!DOCTYPE EXEMPLE [ <!-- Début DTD --> <!ELEMENT EXEMPLE (#PCDATA)> <!-- Fin DTD --> ]> <-- Début instance --> <EXEMPLE>Texte de l ’instance de document correspondant à la DTD définie ci-dessus</EXEMPLE> <-- Fin instance --> u Exemple 2 : le dico

Contenu d ’une DTD } } } Entités générales Entités paramètres Notations Déclarations d

Contenu d ’une DTD } } } Entités générales Entités paramètres Notations Déclarations d ’éléments Déclarations de listes d ’attributs Commentaires

Déclaration d ’élément (1) } <!ELEMENT nom modèle> Séquences : u <!ELEMENT nom (ID

Déclaration d ’élément (1) } <!ELEMENT nom modèle> Séquences : u <!ELEMENT nom (ID 1, ID 2, ID 3)> • l ’élément nom est composé de ID 1 suivi de ID 2 puis de ID 3 Choix (l ’un ou l ’autre) : u <!ELEMENT nom (ID 1 | ID 2 | ID 3)> • L ’élément nom est composé soit de ID 1, soit de ID 2, soit de ID 3

Déclaration d ’élément (2) Indicateur d ’occurrence d ’un élément : u <!ELEMENT nom

Déclaration d ’élément (2) Indicateur d ’occurrence d ’un élément : u <!ELEMENT nom (ID 1+)> • l ’élément ID 1 peut apparaître 1 ou n fois dans l ’élément nom u <!ELEMENT nom (ID 1*)> • l ’élément ID 2 peut apparaître 0 ou n fois dans l ’élément nom u <!ELEMENT nom (ID 1? )> • l ’élément ID 1 peut apparaître 0 ou 1 fois dans l ’élément nom Parenthèses : u pour combiner les choix, les séquences et les suffixes • <!ELEMENT nom (ID 1 , (ID 2 | ID 3)>

Déclaration d ’élément (4) Données dans un élément u <!ELEMENT DONNEES (#PCDATA)> u les

Déclaration d ’élément (4) Données dans un élément u <!ELEMENT DONNEES (#PCDATA)> u les données sont constituées par un flot de caractères Modèle mixte u <!ELEMENT MIXTE (#PCDATA | ID 1 | ID 2)*> u dans cet exemple l ’élément mixte est composé de données et d ’éléments, le caractère de répétition est obligatoirement l ’étoile Contenu libre u <!ELEMENT LIBRE ANY> Elément vide u <!ELEMENT VIDE EMPTY>

Déclaration de listes d ’attributs <!ATTLIST Nom_élément Nom_attribut type_attribut défaut> ex : <!ATTLIST ex

Déclaration de listes d ’attributs <!ATTLIST Nom_élément Nom_attribut type_attribut défaut> ex : <!ATTLIST ex 1 nb (1|2|3) ‘ 1 ’> Type d ’attributs : u CDATA : chaîne de caractères prise telle quelle u ID ou IDREF : renvoi dans le document u ENTITY ou ENTITIES : entité externe non XML u NMTOKEN : noms symboliques formés de caractère alphanumériques u NOTATION : attribut de notation

} Valeur par défaut : la valeur en question #REQUIRED : attribut obligatoirement présent

} Valeur par défaut : la valeur en question #REQUIRED : attribut obligatoirement présent et valeur spécifié par le créateur de l ’instance #IMPLIED : présence de l ’attribut facultative #FIXED ‘ Valeur ’ : l ’attribut prend toujours cette valeur

Déclaration d ’entités paramètres } } Les entités déclarées dans un document sont appelées

Déclaration d ’entités paramètres } } Les entités déclarées dans un document sont appelées « générales » Les entités déclarées dans une DTD sont appelées « paramètres » <!ENTITY % nom « valeur » > <!ENTITY % nom SYSTEM ‘ URL ’> <!ENTITY % NOM PUBLIC ‘ lien public ’> } Référence à l ’entité par %nom;

} } Les entités paramètres peuvent être déclarées librement dans la partie externe de

} } Les entités paramètres peuvent être déclarées librement dans la partie externe de la DTD Dans la partie interne (entre les crochets [ et ] de DOCTYPE), elles sont déclarées librement mais ne peuvent pas être référencées dans une autre déclaration

Pour aller plus loin } Format de documents électroniques : u } XML :

Pour aller plus loin } Format de documents électroniques : u } XML : une introduction u } Transparents sur le site TAL/ILPGA JAVA / XML u } Transparents sur le site TAL/ILPGA Perl / XML u } Transparents sur le site TAL/ILPGA TP XML u } Transparents sur le site TAL/ILPGA Programmation : modèles de programmation u Transparents sur le site TAL/ILPGA