Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parPascaline Dubois Modifié depuis plus de 10 années
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-8859-1 (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-8859-1 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 : <!ELEMENT mail (auteur, destinataire+, sujet?, corps, signature?)> 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 : <!ATTLIST élément attribut1type1option1 attribut2type2option2 …>
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 /mail/@priorité 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 X/@attAttribut 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.