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

Langage de structuration des données: XML Adrien Vieilleribière 2010.05.21.

Présentations similaires


Présentation au sujet: "Langage de structuration des données: XML Adrien Vieilleribière 2010.05.21."— Transcription de la présentation:

1 Langage de structuration des données: XML Adrien Vieilleribière

2 Quest-ce que XML? eXtended Markup Language Langage universel déchange de données Méta-langage

3 Plan I)Introduction Historique Objectifs Document XML II)Langages darbres DTD XML Schéma XML III) Requêtes et manipulation Xpath XSL, XSLT DOM, SAX IV)Applications

4 1998 eXtensible Markup Language W3C Historique 1974 à 1986 Standard Generalized Markup Language Norme ANSI et ISO HyperText Markup Language CERN-W3C 2000 eXtensible HyperText Markup Language W3C

5 Introduction : Plan Historique SGML HTML XML Pourquoi ? Documents bien formés Syntaxe

6 SGML Indépendance Conformité Problèmes Trop complexe pour la réalisation des navigateurs Structure de documents Représentation physique Mise en page Visualisation Indépendant

7 HTML : HyperText Markup Language Jeu fini de balises destiné à décrire des pages WEB dans une optique de présentation Propriétés Langage simple, facile à écrire Mise en œuvre rapide Permet la navigation au travers des pages dinformation via les liens Intégration de médias (image figée, images animées, fichier audio)

8 Applications HTML portables sur tous les Environnements Station Unix Station Linux Ordinateur portable Serveur Web données Internet Quelque soit le type de demandeur de la page web, le serveur web lui renvoie une page web au format HTML

9 HTML : HyperText Markup Language Structure générale dun document html section des informations non affichables indique le titre non affichable du document Indique la section des informations affichables

10 HTML: Exemple

11 Limites du HTML Pages statiques et ninteragissant pas avec lutilisateur => DHTML Dynamic HTML portion de code en script sexécutant dans le navigateur WEB Script client NON portable Ensemble prédéfini de balises avec attributs prédéfinis Description physique et structurelle mêlée

12 XML: Un standard Consortium W3C (World Wide Web Consortium) Sociétés impliquées dans la technologie WEB + éditeurs de logiciels Sociétés respectant XML : Netscape, IBM, Sun MicroSystem, Oracle, Microsoft, Hewlett Packard, Adobe System, etc… (XML) 1.0 (Fifth Edition) 1996Première version de XML (Sous ensemble de SGML) 1998projet XML est devenu un standard (XML) 1.0(First Edition) 2006XML 1.1 (Second Edition) 2008XML 1.0 (Fifth Edition)

13 XML: Objectifs Créer une technologie universelle pour structurer linformation Adapté à la diffusion et à léchange dinformation Langage extensible dexpressions standardisées Indépendant des plates-formes, et des systèmes dexploitation Séparation du fond et de la forme

14 XML et HTML XML repose sur lutilisation et la création des balises Gaston Lagaffe Date de naissance: 30/03/1976 Adresse: Journal Spirou 355 Paris Cedex France Taille:180 Poids : 70 Représentation dun auteur en HTML et XML ?

15 XML et HTML adresse Gaston Gaston Lagaffe date de naissance 30/03/1976 adresse Journal Spirou bp 355 F Paris Cedex taille : kg : XML crée librement des balises pour marquer les éléments … Gaston Lagaffe 30/03/1976 Journal Spirou 355 Paris Cedex

16 XML : Les données Informations -> structure arborescente auto descriptive Deux éléments Structure des données Données auteur compagnie taillepoidsadresse Boite-postale ville Code_postal pays naissance

17 HTML: Description physique et structurelle mélée HTML Balises physiques : représentation fixe quel que soit loutil de génération de document h1, h2..h6 center b i small … Balise logique : signification sur le nature de leur contenu mais leur représentation dépend de loutil de génération title, dl, blockquote… XML Balises structurelles et logiques : Représentation dépend de leur feuille de style associée

18 Document XML : syntaxe (1/3) Arbre déléments (balise de fin obligatoire) … Element vide

19 Document XML : syntaxe (2/3) Contenu une donnée textuelle Attributs et valeurs Sensibilité à la casse incorrect!

20 Document XML : syntaxe (3/3) Section CDATA Commentaires Caractères Jeu de caractères international UNICODE Exemple dencodage UTF-8 ou UTF-16

21 eXtensible HyperText Markup Language Le XHTML est un langage identique au langage HTML mais respectant la syntaxe définie par XML. HTML5 Vocabulaire et API associées pour HTML et XHTML

22 II) Langages darbres : plan Validité DTD Syntaxe Entités Schéma XML

23 Document XML valide Conforme à une DTD (Document Type Definition) à un schéma XML à un schéma REALAX NG définissent un type de structure Une DTD XML est associée à une DTD SGML conforme Passerelles existantes entre formalismes (Trang, XSD to RelaxNG, NekoDTD…)

24 DTD & Schémas : Avantages Validité assurée Intégration facilitée Aide à la rédaction Normalisation

25 XML valide Gaston Lagaffe

26 XML valide incluant une DTD Gaston Lagaffe

27 XML valide pour une dtd (privée) distante Gaston Lagaffe

28 XML valide pour une dtd publique Gaston Lagaffe Premier argument : Informatif Par convention identifiant:proprietaire//description//langue

29 DTD : Règles de nommage des identifiants Au moins une lettre : a à z ou A à Z Peut commencer par _ ou : La 1ère lettre peut être suivie par une ou plusieurs lettres, chiffres, tirets, underscores, points, et l'ensemble des caractères Unicode. Pas d'espaces ni de tabulations Seuls signes de ponctuation autorisés : tiret et point

30 DTD : Déclaration déléments Contenu vide Contenu quelconque Contenu sous-éléments Contient des éléments Utilisation dexpression régulière Contenu mixte

31 DTD : Expressions régulières Séquence, Choix| 0 à N* 1 à N+ 0 à 1?

32 DTD : Déclaration dattributs Syntaxe Type représente le type de donnée de l'attribut : littéral: il permet d'affecter une chaîne de caractères à un attribut. l'énumération: permet de définir une liste de valeurs possibles pour un attribut donné, afin de limiter le choix de l'utilisateur. Pour définir une valeur par défaut il suffit de faire suivre l'énumération par la valeur désirée entre guillemets :

33 DTD : Déclaration dattributs Syntaxe atomique: il permet de définir un identifiant unique pour chaque élément grâce au mot clé ID. IDREF, IDREFS : type prédéfini pour lister la ou les références associées à un document

34 DTD : Déclaration dattributs Chacun de ces types d'attributs peut être suivi d'un mot clé particulier permettant de spécifier le niveau de nécessité de l'attribut : #IMPLIED signifie que l'attribut est optionnel, c'est-à- dire non obligatoire #REQUIRED signifie que l'attribut est obligatoire #FIXED signifie que l'attribut sera affecté d'une valeur par défaut s'il n'est pas défini. Il doit être immédiatement suivi de la valeur entre guillemets Ainsi on pourra avoir une déclaration d'attribut du type

35 DTD : Déclaration dentités Entité générale interne (appel dentité dans le document &titre; ) Entité paramètre (uniquement dans la DTD) : interne externe générale externe

36 DTD : exemple dentités Entité générale références Entité paramètre cd3.dtd

37 Exemple dentités (2) Revolver, top two &bestever; Eleanor Rigby 2:45 &favourite; cd3.xml Entité locale référence

38 XML NameSpaces Collection didentificateurs (élément ou attribut) Identifié par un préfixe et une URI Déclaration Exemple Le premier namespace (html) est celui par défaut.

39 Schémas XML Recommandation du W3C (mai 2001) Types de données prédéfinis ou définis par lutilisateur Supporte espace de noms, XPath Contraintes sur les éléments et attributs Contrôle sur les occurrences Héritage et extension Restriction sur des patterns

40 Schéma XML : exemple

41 Schéma XML : exemple (suite)

42 Référencer un schéma : exemple Mon titre ESSAI A1 A2...

43 Référencer un schéma Adresse.xml Corto Maltese Adresse-schema.xsd Adresse.xml avec la référence au schéma Corto Maltese

44 Schémas XML : Types simples anyURI base64Binary boolean byte (valeur entre -128 et 127) dateTime (date+heure), duration(en année, mois…) types dattributs XML.0 (ID, IDREF,…) integer language name (nom XML) string (chaîne UNICODE), normalizeString (+fin de ligne…) token (pas despace avant et après)

45 Schémas XML : Attributs Pour rajouter des attributs à cet élément : type complexe

46 Schémas XML : Goupes d'attributs … …

47 Schémas XML : sequence, choice

48 Schémas XML : all chaque élément enfant peut apparaître 0 ou 1 fois (équivalent de ? dans une DTD) ordre des éléments indifférent

49 Schémas XML : Indicateurs d'occurrence

50 Les Schémas XML permettent Les imports De définir de nouveaux types simples La création de type complexe à partir de type simple La restriction (par facettes, unicité…) La création de type par dérivation, de groupe de substitution …

51 Schémas XML : Pour approfondir

52

53 III) Requêtes et manipulation 1) XPATH 2) XSLT 3) DOM et SAX 4) Et aussi XLink, XPointer, XQuery, XQL

54 1) Xpath Un langage utilisé par XSLT pour localiser des éléments et/ou attributs dans un document XML

55 XPath XPath est un langage non-XML dexpression utilisé pour Identifier des parties (chemin de localisation) de documents XML Tester des conditions booléennes Manipuler les chaînes de caractères Effectuer des calculs numériques. Communément utilisé dans les attributs match et select des éléments XSLT : …

56 Chemin de localisation Les chemins de localisation sont interprétés par rapport à un contexte Ou plus simplement le nœud de l'arbre à partir duquel l'expression est évaluée. L'évaluation de l'expression définit l'ensemble des nœuds qui correspondent à la condition Cela peut être l'ensemble vide s'il n'y a pas de correspondance Un chemin de localisation consiste en une suite de localisation séparée par / ou // Un chemin peut être relatif ou absolu.

57 Chemins de localisation simples Le nœud racine Le slash / dénote le nœud racine L'ensemble des nœuds enfants Le joker * permet de sélectionner l'ensemble des éléments nœuds du contexte courant

58 Sélection d'un élément Le point (.) indique le nœud courant Le double point (..) indique le parent du nœud courant

59 Autres Axes de selection

60 Composition de chemins Utiliser / pour séparer des éléments hiérarchiques Utiliser // pour indiquer qu'un ou plusieurs éléments peuvent exister entre les slashs

61 Filtres Utiliser […] comme prédicat pour sélectionner un contexte de nœud particulier. Le prédicat est évalué comme une expression booléenne. Si le résultat est vrai, le nœud est sélectionné.

62 Filtre par attributs Utiliser le suivi d'un nom d'attribut pour sélectionner un nœud particulier

63 Opérateurs logiques Utilisation des opérateurs de comparaison > <= != Utilisation des opérateurs and et or et la fonction not(). Attention : remplacer par < et > dans les documents XML ! "//profession[.='musicien']" sélectionne les éléments profession dont le contenu est musicien localise les éléments personne ayant un attribut naissance dont la valeur est inférieure à "//nom[prénom='Richard' and not(particule='M')]" sélectionne les éléments nom ayant un sous-élément prénom de valeur Richard mais pas de sous-élément particule de valeur M.

64 Prédicats numériques Opérateurs +, -, *, div, mod Fonctions round(), etc.. "round(6+1.1)" retourne 7. mod 100)) div 100)" détermine le siècle dans lequel une personne est née, avec naissance est un attribut numérique contenant la date de naissance

65 2) XLST : eXtensible Stylesheet Language Transformation

66 Processeur XSLT Effectue des transformations darbres sur un source XML 66 Processeur XSLT Le but de … Fichier XML/XHTML …. Le but de cet exercice... … Fichier XML

67 Structure d'une feuille XSLT Prologue http://www.w3.org/1999/XSLT/Transform Corps : suite de règles (templates) de transformation Epilogue :

68 Template XSLT Chaque règle (template) possède deux parties: Un motif (XPath) qui identifie le/les noeud(s) XML du document qui est/sont concerné(s) par la règle et sur le(s) quel(s) il faut appliquer une action Une action qui effectue la transformation et/ou spécifie les caractéristiques de la présentation [action]

69 Template XSLT : exemple

70 Pseudo élément racine 70 Le processeur XSLT considère que l'élément de plus haut niveau du document XML a un parent désigné par "/"

71 Templates Cause le traitement successif de chacun des nœuds enfants de l'élément courant par le template approprié L'ordre des enfants est respecté Extrait une chaîne de caractère du document, habituellement dans l'élément courant select="." retourne la valeur textuelle de l'élément courant retourne la valeur d'un attribut de l'élément courant.

72 Production de texte On génère un nœud texte dynamiquement dans l'arbre résultant avec l'instruction select : expression XPath de type chaîne qui produit la valeur du nœud texte

73 Apply templates Fait traiter certains enfants spécifiques (répondant au critère de sélection). Cas simple : expression=identifiant élément. Permet de faire un "réarrangement" des sous éléments

74 Autres Commandes XSLT, définir un traitement itératif, définir un traitement conditionnel, définir un choix,, Déclarer et appeler des fonctions avec paramètres, générer un élément, générer un attribut, permet de trier

75 Condition(s) de branchement Linstruction xsl:if permet d'exécuter ou non certaines parties du code Le spécialiste XML L'instruction xsl:choose permet d'exécuter différents code selon des conditions Le spécialiste XML L'infographiste Un inconnu

76 Tri Instruction xsl:sort

77 Variable globale Nom : nom de la variable Expression : valeur calculée de la variable Pour utiliser la variable dans la partie expression d'un template, la précéder d'un $

78 Exemple Xml (1/3) Alan Turing informaticien cryptographe Gaston Lagaffe archiviste

79 Exemple Xslt (2/3) Liste de personne

80 Exemple Résultat (3/3) Liste de personne Alan Turing Gaston Lagaffe 1957

81 3) DOM et SAX Modèles de traitement Modèle événementiel (Event-based model) – Standard de facto : SAX (Simple API for XML) (http://www.saxproject.org)http://www.saxproject.org Modèle arborescent (Tree-based model) – W3C standard : DOM (Document Object Model) (http://www.w3.org/DOM)http://www.w3.org/DOM Les processeurs SAX et DOM existent pour presque tous les langages de programmation: – Java, C, C++, Perl, TCL Tk, VB, Prolog, …

82 SAX : Modèle événementiel … … … … Start of Document End of Document Start of Element End of Element Text Element Événements

83 Arbre DOM DOC A BC B1B2 Text 1Text 2 Text 3 Parent Sibling Child Node Document Element Text

84 Comparaison SAX et DOM Avantages SAX le traitement du document par le programme se fait en cours danalyse (efficacité) seuls les éléments pertinents sont traités Inconvénients SAX écriture plus complexe des fonctions de callback pour traiter des structures imbriquées Inconvénients DOM construction d un arbre en mémoire multitude de petits objets (efficacité des new et du GC en Java) très grand documents tous les éléments sont représentés le traitement du document par le programme se fait après lanalyse Avantages DOM navigation dans un arbre déléments

85 IV)Applications Exemple Parseurs et interfaces de programmation Langages de représentation Langages de programmation Protocoles d'échanges

86 XML XSLT xml InDesign InDesign xhtml site web reader debook télé phone xslfo/pdf Epub, mobipocket Txt/mp3 Tout support de lecture mp3 Xslfo/pdf Papier ou pdf ebook microsite Source Moteur de transformation Format cible Support cible XML TEI/Docbook Entrée systèmes informatiques © LIGARAN 2010

87 Parseurs et interfaces de programmation (API) MSXMLMSXML - Microsoft Core XML Services, le parseur XML Microsoft, , intégré au système d'exploitation Windows, accessible aux langagesMicrosoftsystème d'exploitationWindows MicrosoftMicrosoft, notamment en JavaScript sur le navigateur Internet Explorer.JavaScriptInternet Explorer libxml2libxml2 - Le processeur XML libre du système d'exploitation linux, accessible en C, Python, PHP, et en Rubysystème d'exploitationlinuxCPythonPHPRuby XercesXerces - XML Java Parser, le parseur XML par défaut d'une machine virtuelle Java, accessible en JavaJavamachine virtuelle Java ExpatExpat - Le parseur XML de James Clark, notamment embarqué par les navigateurs mozilla (firefox).James Clarkmozillafirefox VTD-XML

88 Langages de représentation OpenDocumentOpenDocument - tous les documents bureautiques, OpenOffice.org, 2001.OpenOffice.org WordWord - le format natif de Microsoft Word est en XML depuis sa version 2003.Microsoft Word XSL-FOXSL-FO - eXtensible Stylesheet Language - Formatting Objects, langage extensible de stylage - formatage d'objets, W3C, 2001.W3C SVGSVG - Scalable Vector Graphics, graphiques vectoriels 2D, W3C, 2003.W3C MathMLMathML - formules mathématiques, W3C, 1999, 2001, 2003.W3C SMILSMIL - Synchronized Multimedia Integration Language, Intégration multimédia, W3C, 1998, W3C X3DX3D - 3D multimédia, consortium Web3D.de documents XML côté serveur.consortium Web3D

89 Langages de programmation XQueryXQuery - requête et transformation XML, W3C, 2005.W3C MXMLMXML, Flex - définition d'interface, Macromedia.FlexMacromedia Apache XSP - eXtensible Server Pages - génération de documents XML côté serveur. XULXUL - XML-based User interface Language, définition d'interface, Mozilla, Mozilla ANTANT - scripts de compilation, ASF.ASF ServletServlet - serveur d'application Java, configuration et logique fonctionnelle, Sun Microsystems.JavaSun Microsystems Log4jLog4j - log for Java, configuration d'une bibliothèque d'historique, 1996, © , ASF.logJavaASF UIMLUIML - User Interface Markup Language, définition d'interface, OASIS, 1997.interfaceOASIS XAMLXAML - définition d'interface, Windows Vista, 2006.Windows Vista

90 Protocoles d'échanges XFormsXForms - formulaires web (W3C)W3C OAIOAI - Open Archive Initiative Protocole Archives ouvertes, 2000, 2002 (OAI) SOAPSOAP - RPC par HTTP (W3C)RPCHTTPW3C WSDLWSDL - Services web (W3C)W3C WebDAVWebDAV - Lecture/Écriture distante par HTTP (IETF)HTTPIETF JabberJabber/XMPP - Messagerie instantanée et présence, multimédia (IETF)XMPPIETF


Télécharger ppt "Langage de structuration des données: XML Adrien Vieilleribière 2010.05.21."

Présentations similaires


Annonces Google