Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parRobin Richard Modifié depuis plus de 9 années
1
DU24 Septembre 20021 Introduction à XML test et correction Université Paris II & LRI Michel de Rougemont mdr@lri.fr http://www.lri.fr/~mdr 1.Introduction à XML 2.Test de propriétés, Correction Mots Arbres
2
DU24 Septembre 20022 XML (S. Abiteboul) eXtensible Markup Language "successeur" de HTML héritier de SGML XML est un métalangage de description et d’échange de documents structurés
3
DU24 Septembre 20023 Le monde XML Historique –"successeur" de HTML –héritier de SGML Structure DTD Espaces Nominaux XSL
4
DU24 Septembre 20024 Notion de balisage structurel Principe clé de SGML Idée fondamentale: Étant donné un document, il est souhaitable de séparer complètement les informations de structure des informations de présentation.
5
Exemple de document Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: 012133564 Fax: 879765426 Objet: ben quoi? Monsieur, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Veuillez agréer patati patata vachement sincères. signature Pied de page Logo Date Destinataire Corps Pied de page En-tête Objet Salutation Formule de politesse Signature
6
Représentation XML … 30 Nivose 2004 Monsieur, Ici le premier paragraphe et là le deuxième &abrev-adresse; Mr Schnock rue des églantiers Saint Glin bla bla …
7
DU24 Septembre 20027 Points importants La représentation de cette lettre en XML ne comporte aucune indication sur sa mise en page. De nombreuses propriétés graphiques ou typographiques sont absentes du source XML. Ces propriétés seront définies par l'intermédiaire d'une feuille de style. Une feuille de style est un ensemble de règles pour spécifier la réalisation concrète d'un document sur un média particulier.
8
DU24 Septembre 20028 Exemples de documents XML Bonjour! Bonjour! Bonjour!
9
DU24 Septembre 20029 Structure d’un document Un document XML se compose –d’un prologue, éventuellement vide –d’un arbre d’éléments –de commentaires et d’instructions de traitement, facultatifs Bonjour!
10
DU24 Septembre 200210 Le prologue contient Une déclaration XML, facultative –de la forme: –indique au processeur qui va traiter le document: la version du langage XML utilisée le codage de caractères utilisé l'existence de déclarations extérieures au document Une déclaration de type de document, facultative –de la forme –indique la structure particulière à laquelle doit se conformer un document
11
DU24 Septembre 200211 Structure d'une DTD Une DTD peut comprendre deux parties –une partie externe la partie externe est définie en dehors du document. Elle est référencée par une référence DTD, le plus souvent un URL. Ce mécanisme permet d'assurer une réutilisation de DTDs souvent utilisées. –une partie interne utilisée pour spécialiser une DTD externe générique ou redéfinir certains types d'éléments
12
DU24 Septembre 200212 Structure d'un élément (1) Un élément est de la forme: contenu est la balise d'ouverture est la balise de fermeture. Sa présence est obligatoire, à l'exception très particulière des éléments vides, notés indifféremment ou. contenu est le contenu d'un élément. Il peut s'agir: attr='valeur' représente un ensemble éventuellement vide d'attributs, c'est à dire de paires (nom,valeur). Un élément ne peut posséder qu'un seul attribut de nom donné. – de vide – de texte – d'autres éléments – d'une imbrication de texte et d'éléments – d'instructions de traitement – de commentaires
13
DU24 Septembre 200213 Structure d'un élément (2) Un nom d'élément est une suite non vide de caractères pris parmi –les caractères alphanumériques –le tiret-souligné (undescore) –le signe moins –le point –le caractère deux-points (:) est utilisable, mais il a un sens particulier qui doit satisfaire les contraintes suivantes –le premier caractère doit être alphabétique ou un tiret- souligné –les trois premiers caractères ne doivent pas former une chaîne dont la représentation en lettres minuscules est "xml". Exemples de noms d'éléments correctsincorrects _ toto Nom_société xsl:rule X.11 1998-catalogue XmlSpécififica tion nom société
14
DU24 Septembre 200214 Syntaxe des attributs Un attribut est une paire nom='valeur' qui permet de caractériser un élément. Un élément peut avoir plusieurs attributs. Dans ce cas, les paires nom='valeur' seront séparées par un espace. Exemples – Le nom d'un attribut obéit aux mêmes règles que le nom d'un élément La valeur d'un attribut est une chaîne encadrée par des guillemets ( " ) ou des apostrophes simples ( ' ).
15
DU24 Septembre 200215 Arbre d'éléments Dire qu'un document XML contient un arbre d'éléments, c'est imposer les contraintes suivantes: –Il existe dans un document un et un seul élément père qui contient tous les autres. C'est l'élément racine du document. –Tout élément distinct de la racine est totalement inclus dans son père. Il ne peut donc y avoir recouvrement partiel. Ainsi: bla bla bla n'est pas une structure XML.
16
DU24 Septembre 200216 Documents bien formés Un document est dit bien formé si: –son prologue ne contient pas de déclaration de type de document –il contient un arbre d'éléments –Exemple Bonjour!
17
DU24 Septembre 200217 Documents valides Un document est dit valide si: –son prologue contient une déclaration de type de document –son arbre d'éléments respecte la structure définie par la déclaration de type <!DOCTYPE document [ ]> Bonjour!
18
DU24 Septembre 200218 Notion de DTD Un document valide doit contenir une Déclaration de Type de Document ou DTD. Cette déclaration peut faire référence, par l'intermédiaire d'une URL à un fichier externe. Bonjour!
19
DU24 Septembre 200219 Contenu d'une DTD Une DTD peut contenir des déclarations –d'éléments –de listes d'attributs –d'entités générales –d'entités paramètres –de notations ainsi que des commentaires
20
DU24 Septembre 200220 Déclaration d'élément Une déclaration d'élément est de la forme –ELEMENT est un mot-clef et s'écrit impérativement en majuscules –nom est un nom valide d'un élément –modèle est le modèle de contenu de cet élément. On distingue cinq modèles de contenu éléments données mixte libre vide
21
DU24 Septembre 200221 Modèle de contenu éléments (1/2) Séquence d'éléments fils (..,..,..) –Exemple Un élément chapitre doit contenir, impérativement et dans cet ordre, un sous-élément titre, intro et section. Alternative (..|..|..) –Exemple Indicateurs d'occurrence *, +, ? Un nom d'élément apparaissant dans le modèle d'un élément père peut-être suffixé par un indicateur d'occurrence. p* : p peut apparaître zéro, une ou plusieurs fois dans le contenu d'une instance p+ : p peut apparaître une ou plusieurs fois p? : p peut apparaître zéro ou une fois
22
DU24 Septembre 200222 Exemple simple Livre.dtd. <!ELEMENT auteur (#PCDATA) s1.xml <!DOCTYPE livre SYSTEM 'livre.dtd' [ ]> &ionesco; s1.xsl
23
DU24 Septembre 200223 Modèle de contenu éléments (2/2) Exemples <!ELEMENT chapitre ( titre, intro?, section+ ) > <!ELEMENT section ( titre-section, texte-section ) >
24
DU24 Septembre 200224 Modèle de contenu données La présence de données dans le contenu d'un élément est spécifiée par le mot-clé #PCDATA Exemple
25
DU24 Septembre 200225 Modèle de contenu mixte Ce modèle permet de définir des modèles de contenu autorisant de mêler données et éléments Forme du modèle (#PCDATA | nom 1 | …|nom n )* Exemples de déclarations <!ELEMENT p (#PCDATA | em | exposant | indice | renvoi)* > Exemple d'utilisation un paragraphe peut contenir du texte mis en évidence ou en exposant
26
DU24 Septembre 200226 Modèle de contenu libre (1/2) Un élément peut être défini comme ayant un contenu quelconque, sous réserve que ce contenu respecte les règles générales du langage XML. Exemple Pour que le contenu d'un élément de modèle de contenu libre soit valide, il faut que, s'il contient des éléments, ceux-ci soient déclarés dans la DTD
27
DU24 Septembre 200227 Modèle de contenu libre (2/2) Utilité: ce modèle de contenu est particulièrement utile lors de la création d'un DTD complexe Exemple
28
Saint Pétaouchnoque, Le 30 nivose 2004 Editions Duschmol, 12 rue Schmurz YT123 Rapis WindStar 2000 Les rosières en buget AB562 Saint Pétaouchnoque Tel: 012133564 Fax: 879765426 Objet: ben quoi? Monsieur, Bla bla bli, bli blo bla, kkkk vhlg vckjdhklbg fdskjbvhv feje slc ifehfe fhckh c jeflccj n khef iheznf jùkvbc lkhdklvn v Veuillez agréer patati patata vachement sincères. signature Pied de page...... Si lettre alors enfants Si entete alors … Si corps alors enfants para Si para alors Police new roman, taille 12, décaler première ligne Si … alors … Principe de fonctionnement des feuilles de style
29
DU24 Septembre 200229 XML : "successeur" de HTML HTML Hypertext Markup Language. Un ensemble prédéfini et limité de balises, défini par une norme (HTML 2.0, 3.2, 4.0). Ces balises ont des sémantiques variées: –h1,.., h6, title, address, … donnent des indications structurelles –center, hr, b, i, big, small,… ne servent qu'à décrire une mise en page.
30
DU24 Septembre 200230 Exemples (1) Attribut CDATA ' > L'attribut att1 des éléments de type f a une valeur constante. C'est la chaîne de caractères. Cette chaîne ne sera pas traitée et reconnue comme un balisage par un processeur XML. Attribut énuméré –Exemple 1 24 Mai 1998 1998-05-24 L'attribut format est obligatoire, et doit prendre sa valeur parmi ANSI, ISO ou FR –Exemple 2 Jean Pierre Jacques
31
DU24 Septembre 200231 Exemples (2) Attributs ID et IDREF Ces types d'attributs permettent de créer des renvois à l'intérieur d'un document, par exemple vers une références bibliographiques, une note, une section... contenu d'une section autre section. Fait référence à la section X321 Problème: on ne référence pas en fait une section, mais un élément du document possédant un attribut de type ID et dont la valeur est X321.
32
DU24 Septembre 200232 Entités internes Entités prédéfinies –certains caractères, comme & ne peuvent être utilisés dans le texte d'un document –ces caractères doivent être représentés par des codes prédéfinis, appelées entités prédéfinies <: < >: > &: &
33
DU24 Septembre 200233 Entités internes Entités définies par l'utilisateur –il est possible de déclarer des entités dans la DTD –cette déclaration a pour forme Exemple la déclaration suivante <!DOCTYPE toto [ ]> ©right produira © Editions titi remarque: 00A9 est le codage Unicode du caractère ©
34
DU24 Septembre 200234 Entités externes adressées par URL Exemple <!DOCTYPE bouquin [ ]> XML par la joie &auteur; Il était une fois le Web… &chapitre1; &chapitre2; Contrainte: les entités externes doivent être des documents bien formés
35
DU24 Septembre 200235 Entités paramètres Les entités vues jusqu'à présent étaient définies dans une DTD pour être utilisées dans un document Elles jouent le rôle de constantes symboliques Il peut être intéressant de posséder le même mécanisme au sein d'une DTD, afin par exemple de nommer et réutiliser des modèles de contenu apparaissant de façon répétitive XML propose pour cela le mécanisme des entités paramètres
36
DU24 Septembre 200236 Déclaration d'entité paramètre Formes possibles Exemple
37
DU24 Septembre 200237 Espaces nominaux DTD : définition de structure réutilisable et modulaire Possiblité de composer un document à partir d'un ensemble de DTDs publiques Nécessité de pouvoir résoudre des conflits de noms d'éléments Objectif des espaces nominaux
38
DU24 Septembre 200238 Principe Préfixer un nom d'élément par un identificateur unique, le plus souvent un url Déclaration –Attribut spécial, xmlns: ="URL" Exemple <rapport xmlns:math='http://www.w3.org/ TR/REC/MathML> …
39
DU24 Septembre 200239 DOM Document Object Model DOM –modèle de document –interface de programmation indépendante du langage et des plates- formes Permet d'accéder –la structure des documents (HTML et XML) –le contenu des documents –le style –Les événements API définie pour trois langages –OMG IDL, Java, ECMAScript
40
DU24 Septembre 200240 XPath Langage d'expressions de chemin –adresser des parties de documents XML Une expression élémentaire XPath contient –un axe qui spécifie la relation structurale : fils, descendants, ancêtres, frères, attributs,... –un test qui spécifie le type de noeud –des prédicats pour raffiner la sélection Brique de base d'autres applications XML –Xlink, XSLT, Xquery, …
41
DU24 Septembre 200241 XLink XML Linking Language –Hypertexte avancé –permet d'insérer dans les documents XML de quoi décrire les liens entre ressources Web Liens simples unidirectionnels à la HTML Liens hors document Liens multidirectionnels Comportement des liens XLink utilise XPath pour adresser l'intérieur des structures XML
42
DU24 Septembre 200242 Transformation de documents Le Web présente de multiples cas de transformation –Formatage –Réutilisation de document –Adaptation aux appareils de présentation –Conversion de format, par exemple XML vers HTML Trois approches –Des programmes utilisant le DOM –Les feuilles de transformation XSLT –Le langage de requêtes XQuery
43
DU24 Septembre 200243 XSLT Langage de transformation « le Perl de XML » Une feuille de transformation XSLT contient un ensemble de règles pattern/template Pattern –Contexte structurel dans l'arbre source –Expression XPath Template –Un fragment du résultat à produire pour le pattern correspondant Principe –Quand le pattern est reconnu dans le document source, le template correspondant est engendré dans le document résultat
44
DU24 Septembre 200244 XQuery « le SQL de XML » Un modèle de données pour les documents XML Un ensemble d'opérateurs sur ce modèle (algèbre) Un langage de requête fondé sur ces opérateurs (syntaxe) Les requêtes XQuery –Peuvent sélectionner des documents entiers ou des sous-arbres qui répondent à la requête –Peuvent construire des documents nouveaux fondés sur ce qui est sélectionné
45
DU24 Septembre 200245 1.Fonctions arithmétiques Vérifier si P(x,y) calcule x/y Que faire si P est incorrect? Corriger! Itérer P(x.r, y.r) pour r aléatoire. Majorité. 2.Langages réguliers 3.Langages d’arbres Vérification, Test et Correction
46
DU24 Septembre 200246 Property F on a class K Goldreich, Golwasser, Ron ~1995 An test for F is a probabilistic algorithm A such that –If U |= F, A accepts –If U is far from F, A rejects with high probability (>2/3) –Time(A) independent of n Test de propriété
47
DU24 Septembre 200247 Property testing on words F : 0*1* W |= F Prob [ H |= F’ ] =1 W is -far from F Prob [ H |= not F’] >2/3 H random subword Word W
48
DU24 Septembre 200248 A testable regular property W |= F Prob [ H |= F’ ] =1 W is -far from F Prob [ H |= not F’] >2/3 Many 10 appear in W. Repeating the test will detect it with high probability H random subword 0000 1111 0111..... F’ Word W How can we verify F : 0*1* ? distance(w,w’) = Hamming distance
49
DU24 Septembre 200249 Regular properties are testable Theorem. Regular languages are testable. N. Alon, M. Krivelevich, I. Newman, M. Szegedy FOCS 99. General idea : if a word is far from a regular language, it contains many subwords which are infeasible and can be detected.
50
DU24 Septembre 200250 Tree-automata Logical definability on trees Tree grammar Regular expression Tree properties r(a,b(a,b(a,b(a,b(a,b(a,b)....)r(a(a,b(a,b(a(a,b),b)....),b)
51
DU24 Septembre 200251 Distance(T1,T2) = # flips T1 : T2 (when defined) Flips : Distance on Trees Distance(T1,T2) =2
52
DU24 Septembre 200252 Expansion. Operations on Trees
53
DU24 Septembre 200253 (q0, q0) q1 (q0,q1) q1 Tree automata q0 q1 q0 q1 q2 (q1,q1) q2 (q1,q0) q2 (q2,-) q2 (-,q2) q2
54
DU24 Septembre 200254 Logical definability on a class K of trees Tree properties Equivalence of : Automata definable Monadic Second-order Regular
55
DU24 Septembre 200255 Definition : a subtree t is feasible for L if there are subtrees (for its leaves) which reach states (q1...ql) such that the state of the root q=t(q1...ql) can reach an accepting state (in the automaton for L). Feasible subtree feasible infeasible
56
DU24 Septembre 200256 Theorem. If then the number of unfeasible subtrees of length a is O(n). Infeasible subtrees Intuition : if the Distance is large then there are many infeasible subtrees
57
DU24 Septembre 200257 Decision principle: analysis of the esssentially strongly connected component Deciding the transformation qq’ Q Find a path in the tree automaton from (q,q’) until Q. It will determine the sequence of flips and expansions.
58
DU24 Septembre 200258 Avoir un testeur est équivalent à avoir un correcteur, lorsque le mot n’est pas trop loin d’un langage. Projets: 1.Implémenter le testeur 2.Implémenter le correcteur Test et Correction
59
DU24 Septembre 200259 Conclusion XML : standard pour les documents WEB Manipulation d’arbres réguliers –DTD=Automate=Expression régulière. Arbres: –Les arbres réguliers sont testables –On peut les corriger.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.