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

Tutoriel XML – Première Partie F. Sajous & L. Tanguy ERSS – Sémantique et Corpus.

Présentations similaires


Présentation au sujet: "Tutoriel XML – Première Partie F. Sajous & L. Tanguy ERSS – Sémantique et Corpus."— Transcription de la présentation:

1 Tutoriel XML – Première Partie F. Sajous & L. Tanguy ERSS – Sémantique et Corpus

2 2 Plan Aparté obligatoire : le codage des caractères Historique, principes, soucis et solutions La structure d'un document XML En-tête et syntaxe Blocs structurants, blocs en lignes, attributs Bonne formation Saisie et modifications avec un éditeur XML Les DTD Principes Déclaration Lien document-DTD, validation Recherche dans un document XML par XPath

3 3 Principes du codage des caractères (1) Un caractère est stocké sous la forme d'un code numérique Un fichier texte = une suite de nombres Table de codage : équivalence caractère- nombre Plusieurs types de codages Raisons historiques, techniques et commerciales Peut varier d'un système / outil à l'autre Distinction : caractère glyphe (apparence physique, indiqué par une police)

4 4 Combien de caractères (et lesquels) ? Coder le minimum de caractères pour gagner de la place ASCII : 7 bits = 128 (lettres, chiffres, signes) Pas de lettres accentuées (cible = anglais) Extensions du code ASCII : 8 bits (octet) = 256 Iso (latin 1) : ajout des lettres accentuées pour l'europe de l'ouest Plusieurs codes similaires : CP1252, CP857, … De latin 2 à latin 10 : autres langues d'europe Autres alphabets sans rapport avec l'ASCII API, cyrillique, arabe, etc.

5 5 Problèmes dus au codage (1) Texte écrit par l'application A utilisant la table TA 'é' -> 243 Texte lu par l'application B utilisant la table TB 243 -> 'Û' L'application B n'est pas forcément au courant Codages concurrents actuels : Standard anglo-saxon : ASCII Standards ISO (Unix), CodePage Windows, DOS, Mac, etc.

6 6 Problèmes dus au codage (2) Uniquement pour les fichiers texte (bruts) Les traitements de texte et autres indiquent en interne le codage Autres alphabets API, autres langues, etc. Autant de tables de codage Problème en texte brut : plusieurs alphabets dans le même document

7 7 Codage "Universel" UNICODE : codage pour tous les caractères 4 Milliards de caractères possibles (langues asiatiques notamment) En couches de 256 caractères Un standard, plusieurs utilisations UTF-8 : les caractères ASCII sont codés sur un octet, les autres, cela dépend… UTF-16 : les caractères ASCII, latin, etc sur 2 octets, les autres sur 4 UTF-32 : tous sur 4 octets

8 8 Concrètement (1) Le codage d'un fichier texte doit être fait suivant un code précis Texte en Français, Anglais, Allemand, etc. : Choix entre "Iso Latin 1" et Unicode Texte mixte (Français + API, Français + Coréen…) : Unicode Espérer que les destinataires seront bien équipés Le choix par défaut : UTF-8 (incompatible avec iso pour les lettres accentuées) En XML, le codage est explicite !

9 9 Concrètement (2) Taper un caractère bizarre Lettres accentuées du français : pas de pb. Sinon : Vérifier que l'on est bien en codage Unicode En fonction de l'outil Word : insérer caractères spéciaux Sinon, copier-coller depuis Word Dans le pire des cas, utiliser le code numérique du caractère Ų = ¬ Dans tous les cas, vérifier que l'on a bien installé une police compatible…

10 10 Concrètement (3) Que faire si on a des accents mal fichus ? Identifier le problème : "ça a raté" ٱa a ratٱcode 8 bits interprété en UTF-8 ça a raté UTF-8 interprété en 8 bits a a rat mauvais code 8 bits Pas de panique ! Windows : Utilisez un éditeur universel : Word, NotePad (ils vous poseront la question) Linux : utilisez "recode", le transcodeur universel Macintosh : Ok, vous pouvez paniquer

11 11 XML : Eléments de Syntaxe

12 12 Structure générale d'un document En-tête Indique que c'est du XML, de quelle version Indique le codage des caractères Exemple : Note : c'est le seul cas où une balise est notée par Corps Une balise unique doit contenir tout le reste du document (racine du document)

13 13 Eléments : syntaxe générale Une balise doit être nommée : Avec des minuscules (c'est mieux), accentuées si l'on veut Eventuellement, des _, des - et des chiffres Eléments simples : Balise ouvrante Balise fermante Toute balise ouverte tu fermeras Tu ne feras pas chevaucher des balises Mauvais exemple :

14 14 Types d'éléments (1) Eléments vides Balise ouvrante et fermante à la fois Rôle : permet d'indiquer des informations ponctuelles dans un document Exemples : pauses dans un discours, référence à un élément non-textuel (photo, etc.)

15 15 Types d'éléments (2) Eléments avec attributs Eléments vides ou non Les attributs sont codés dans la balise Syntaxe : nom="valeur" OU nom='valeur' L'ordre des attributs n'a pas d'importance La balise fermante est une balise simple Exemple : ….

16 16 Eléments structurants ou en ligne Deux types d'usage des éléments Structurants Organisent la hiérarchie du document Contiennent soit d'autres balises, soit du texte (élément terminal) Sont généralement nécessaires Exemples : titres, sections, paragraphes, etc. En ligne Permettent un balisage au fil du texte Sont optionnels Exemples : indications discursives, annotations, notes, pauses, etc.

17 17 XML et mise en page Les retours à la ligne ne jouent AUCUN rôle dans un document XML Ils ne servent qu'à faciliter la lecture Les éditeurs peremettent généralement de réorganiser la présentation du document à l'écran Les espaces n'ont d'importance que dans le texte Aucun rôle entre deux balises Attention à séparer les attributs, toutefois

18 18 Commentaires et caractères spéciaux On peut commenter une partie d'un document en l'entourant de Le contenu sera ignoré pour tout traitement Pour insérer dans du texte les caractères suivants : & On doit utiliser les notations suivantes : <(less than)< >(greater than)> &(ampersand)& On peut insérer un caractère quelconque si on connaît son code : {Caractère de code 123 (décimal) ᨯCaractère de code 1A2F (hexadécimal) (donné par Word entre autres)

19 19 Editeur XML Facilite la saisie Permet de vérifier la bonne formation Les règles syntaxiques ont-elles été respectées ? Peut mettre en forme votre document Exemple : Oxygen Disponible sur Windows et Unix Pas trop cher Pas trop mal Au boulot ! (Exercice 1)

20 20 Les DTD Principes Syntaxe Association doc-DTD Validation d'un document

21 21 Principes Généraux des DTD Grammaire du document Indique les éléments pouvant être utilisés, et comment Permet la validation d'un document Facilite la saisie / annotation de données

22 22 Syntaxe d'une DTD Dans un fichier à part (extension.dtd) Une ligne d'en-tête : la même que pour un document XML Note : le codage de caractères est indépendant des fichiers XML associés… Puis, dans un ordre quelconque, la déclaration des éléments du document

23 23 Déclaration d'un élément (note : pas du XML !) Où : nom : nom de la balise / élément type peut être : #PCDATA : l'élément ne contient que du texte (structure) : l'élément contient d'autres éléments, avec une syntaxe particulière

24 24 Structure d'un élément complexe La structure indique quels éléments, combien, et dans quel ordre, on peut trouver dans l'élément défini (e1, e2) : un élément e1 puis un élément e2 (e1 | e2) : l'un ou l'autre (e+) : 1 ou plusieurs éléments e (e*) : 0 ou plusieurs éléments e (e?) : 0 ou 1 élément e Les éléments e1 et e2 doivent ensuite être décrit de la même manière

25 25 Encore plus compliqué… Eléments complexes : Soit : un auteur, un ou plusieurs destinataires, un sujet optionnel, un corps, une signature optionnelle Eléments mixtes, pouvant contenir du texte, et éventuellement des éléments : Exemple d'instanciation : début texte notable suite

26 26 Attributs (1) On peut en plus autoriser des attributs à un élément Syntaxe :

27 27 Attributs (2) Type d'un attribut CDATA : texte non contraint ID : identifiant unique (valeur1 | valeur2 | … ) : choix parmi une liste Options d'un attribut #REQUIRED : attribut obligatoire #IMPLIED : attribut optionnel Exemple : Instanciation XML possible : …

28 28 Association DTD-document Rien à faire dans la DTD Dans l'en-tête du document XML : Où racine est le nom de l'élément de plus haut niveau défini dans la DTD Il est possible d'utiliser une DTD située sur un serveur Web :

29 29 Quelques règles pour les DTD Tout élément apparaissant dans la description d'un autre doit aussi être décrit L'ordre n'a aucune importance On peut vérifier la bonne formation d'une DTD On ne peut pas vérifier sa cohérence Sauf avec des éditeurs très chers Une vérification plus approfondie se fait au moment de la validation d'un document XML

30 30 Au boulot Définir une DTD Associer une DTD à un document Pour en faciliter la saise Pour en vérifier la conformité et le valider Pour importer des données de texte brut A discuter par la suite : Choix d'une structure pour une information Attributs vs. éléments

31 31 XPATH Elément de la technologie XSLT Pour la manipulation des documents XPATH permet : De repérer un élément dans un document Incidemment, de fouiller des données en se basant sur la structure XPATH est intégré dans les bons éditeurs XML A venir : interrogation de corpus par XPATH…

32 32 XPATH : principes Une expression analogue à celle d'une adresse Web, avec en plus, des contraintes Il faut penser en termes d'arbre Exemples de base : /mail/expéditeur expéditeur d'un mail priorité (attribut) d'un mail

33 33 Syntaxe par l'exemple /Racine du document /XElément racine du document (de nom X) //YElément Y n'importe où dans le document /X/ZElément Z situé sous la racine X //X/..Elément contenant l'élément X att de l'élément X //X/../YElément Y frère de l'élément X Etc. NOTE : une expression XPATH peut correspondre à plusieurs éléments d'un même document

34 34 Ajout de contraintes Aspect vital : ajouter des contraintes sur le contenu ou la position des éléments Contrainte sur la position //X[1] = premier élément X /X/Y[2] = deuxième fils Y de X Contraintes sur le contenu //X[Y = 'contenu']Elément X dont le texte du fils Y est contenu Exemple : //mail[expéditeur = 'ludovic'] NOTES :- utilisez soit des ' ' soit des " " - il s'agit d'une équivalence exacte - idem pour les attributs

35 35 Recherche de chaînes Au lieu de l'équivalence exacte, on peut utiliser la fonction contains qui recherche des segments //mail[contains (subject, 'XML')] tout mail dont le sujet contient la chaîne 'XML' //mail[contains (subject, 'XML')]/corps Le corps d'un mail dont le sujet contient 'XML' Si la contrainte porte sur l'élément sélectionné, on utilise la notation "text()" : //subject[contains(text(), 'XML')] Le sujet d'un mail, s'il contient "XML"

36 36 Combinaisons de contraintes On peut mixer plusieurs contraintes par des connecteurs logiques (and / or ) //mail[contains(subject, 'XML') and auteur='ludovic'] Un mail de ludovic dont le sujet contient XML //mail[contains(subject, 'XML') or contains(subject, 'corpus') ] Un mail dont le sujet contient XML ou corpus

37 37 Au boulot ! Prochaines étapes : Le langage de transformation XSLT Les liens bases de données XML D'ici là : Etudes de cas réels du labo Phonologie, discours, corpus divers


Télécharger ppt "Tutoriel XML – Première Partie F. Sajous & L. Tanguy ERSS – Sémantique et Corpus."

Présentations similaires


Annonces Google