NFE204 - Bases documentaires et NoSQL



Documents pareils
NFE204 Bases de données avancées

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Programmation des Applications Réparties. Parsers XML DOM et SAX

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Introduction aux concepts d ez Publish

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

SII Stage d informatique pour l ingénieur

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Outils logiciels pour l'ingénierie documentaire

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Document Object Model (DOM)

XML : documents et outils

Les services usuels de l Internet

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Programmation Internet Cours 4

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Master d Informatique Corrigé du partiel novembre 2010

4. SERVICES WEB REST 46

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

Production de documents avec XSLT. Production de documents p.1/??

Les outils de création de sites web

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

Systèmes d information et bases de données (niveau 1)

Logiciels de référencement

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Bibliothèque numérique de l enssib

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Learning Object Metadata

Gestion documentaire (Extraits du CCI version 1.2)

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

L'essentiel de XML. Cours XML. Olivier Carton

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Merging Interactif des Documents XML

Programmation Web. Madalina Croitoru IUT Montpellier

Centre Génie Industriel et Informatique (G2I) RECHERCHE D INFORMATION DANS LES DOCUMENTS XML RAPPORT DE RECHERCHE

XML et Bases de données. Les bases de données XML natives.

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Cours Bases de données

Formation HTML / CSS. ar dionoea

Gestion Électronique de Documents et XML. Master 2 TSM

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

Organiser les informations ( approche technique )

Évaluation et optimisation de requêtes

XML et travail collaboratif : vers un Web sémantique

Notes pour l utilisation d Expression Web

BD et XML : Exercices

Systèmes d'informations historique et mutations

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

IMPORTATION ARTICLES DANS LA BASE DE DONNEES

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Les architectures 3-tiers Partie I : les applications WEB

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

XML et recherche d information

BASE DE DONNÉES XML NATIVE

PARAMETRAGE CONSOLE ADMINISTRATION DE MESSAGERIE "VENDOME.EU" NOTICE UTILISATION

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

A. Architecture du serveur Tomcat 6

La base de données XML exist. A. Belaïd

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Initiation à html et à la création d'un site web

API FTP SMSENVOI V1.1

SOAP Concepts Application à Glassfish

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

Optimisation des échanges et traitements XML

Tutoriel QSOS. Version /02/2013

Annexe C Spécification pour les fichiers importés en format XML

Créer une base de données vidéo sans programmation (avec Drupal)

Pelleas : Le projet XML pour le systeme d information documentaire du polytechnicum de Marne- la Vallée

Bases de données documentaires et distribuées Cours NFE04

Algorithmique et langages du Web

Bases de données documentaires et distribuées Cours NFE04

Je catalogue, tu FRBRises, il/elle googlise. L évolution des catalogues et les bibliothécaires Vendredi 29 mars 2013 Manufacture des tabacs

< _155_0>

Bases de données et sites WEB Licence d informatique LI345

TP1. Outils Java Eléments de correction

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Installation de DocBook sur un système Linux

Système de gestion de contenu

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.

La base de données dans ArtemiS SUITE

Gestion d identités PSL Exploitation IdP Authentic

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Master Technologies numériques appliquées à l'histoire Deuxième année

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Bernard Lecomte. Débuter avec HTML

Les structures de données. Rajae El Ouazzani

From supply chain to demand chain

Plan. Contexte technologique. Introduction. Environnement réseauté. Documents structurés. L écrit électronique. Introduction.

Transcription:

NFE204 - Bases documentaires et NoSQL Partie XML Enseignant : Philippe Rigaux Équipe Vertigo Laboratoire CEDRIC Conservatoire National des Arts & Métiers, Paris, France

Structuration de documents : XML Plan du cours 1 Structuration de documents : XML 2 3 Syntaxe XML : compléments

Structuration de documents : XML Quelques généralités XML en bref XML est un standard défini par le World-Wide-Web Consortium (W3C). Les documents XML peuvent être sérialisés dans un encodage normalisé (typically iso-8859-1, ou utf-8), et transmis sur le réseau sans perte d information. XML est un format générique qui peut être spécialisé en dialectes conçus pour des domaines spécifiques (e.g., XHTML). Le W3C normalise des standards associés : DOM le modèle XML), XSchema (typage), XPath (chemins), XSLT (restructuration), XQuery (interrogation), et beaucoup d autres. Remarque 1. XML est une version simplifiée de SGML, utilisé depuis longtemps pour les documents techniques. 2. HTML, jusqu à la version 4.0, est aussi une variante de SGML. XHTML est un dialecte XML.

Structuration de documents : XML Quelques généralités Forme sérialisée, forme arborescente Une application reçoit typiquement un document sous forme sérialisée, l analyse (parsing) pour le en forme arborescente, puis le sérialise pour le sauvegarder. serialized form parser Application tree form serializer serialized form FIGURE 1: Parcours d un document XML La forme sérialisée est un codage séquentiel de l arbre qui obéit à une syntaxe particulière. La forme arborescente est définie par un modèle, le DOM. Remarque Dans ce qui suit, on s attache à l essentiel. L accessoire sera découvert ensuite quand l occasion se présentera.

Structuration de documents : XML Quelques généralités Les documents XML sont des arbres Les applications manipulent les documents XML comme des arbres ordonnés. entry name work purpose fn ln INRIA address email like to teach Jean Doe city zip j@inria.fr Cachan 94235 Remarque Une exception : le parseur SAX (Simple Api for XML)

Structuration de documents : XML Quelques généralités Représentation sérialisée d un document XML La forme sérialisée est la plus connue pour XML : <entry><name><fn>jean</fn><ln>doe</ln></name><work>inria<adress><city> Cachan</city><zip>94235</zip></adress><email>j@inria.fr</email> </work><purpose>like to teach</purpose></entry> La structure hiérarchique est partiellement rendue par l indentation : <entry> <name> <fn>jean</fn> <ln>doe</ln> </name> <work> INRIA <adress> <city>cachan</city> <zip>94235</zip> </adress> <email>j@inria.fr</email> </work> <purpose>like to teach</purpose> </entry>

Structuration de documents : XML Quelques généralités XML describes structured content Un texte sans aucune stucture est difficile à interpréter pour une application. The book Fundations of Databases, written by Serge Abiteboul, Rick Hull and Victor Vianu, published in 1995 by Addison-Wesley XML permet d introduire de la structure. <bibliography> <book> <title> Foundations of Databases </title> <author> Abiteboul </author> <author> Hull </author> <author> Vianu </author> <publisher> Addison Wesley </publisher> <year> 1995 </year> </book> <book>...</book> </bibliography> On peut accéder aux auteurs, réorganiser le contenu, etc.

Plan du cours 1 Structuration de documents : XML 2 3 Syntaxe XML : compléments

Un document XML <?xml version="1.0" encoding="utf 8"?> <! Auteur : M. Philippe Rigaux > <cours code="nfe204"> <formation name="cnam Paris"></formation> <titre> NFE204 Bases de données documentaires </titre> <notion>xml</notion> <notion>dtd</notion> <notion>xslt</notion> <notion>dox</notion> </cours> Listing 1 Un simple fichier XML

Un document XML (suite) Un document XML est composé de : 1 Un prologue 1 déclaration de document XML <?xml version = "1.x" [encoding = "norme" ]? > 2 suivie éventuellement (sans contrainte d ordre) 2 Un corps : d une déclaration ou (exclusif) une référence à une DTD <!DOCTYPE element racine [schema racine ] > ou <!DOCTYPE element racine SYSTEM "uri schema racine" > de commentaires <!-- texte --> d instructions de traitement (par ex. appel à XSLT) <?instruction attribut1 = "valeur"... attribut n ="valeur"? > une imbrications d éléments et de textes des commentaires

Quelques exemples de base Remarque : les retours à la ligne n ont aucune signification. <document/> <document> Hello World! </document> <document> <salutation> Hello World! </salutation> </document> <?xml version="1.0" encoding="utf-8"?> <document> <salutation color="blue"> Hello World! </salutation> </document> Le dernier exemple est le seul complètement correct : il comprend le prologue.

Forme hiérarchique des documents : le modèle DOM Un document XML est interprété comme un arbre. Cette interprétation est fixée par un modèle, le DOM (Document Object Model) normalisé par le W3C. Dans le DOM, chaque nœud de l arbre a un type, et une description. Par exemple : 1 le nom du nœud, 2 la valeur du nœud. 3 le contenu d un nœud. Remarque La description exacte dépend du type du nœud.

Principaux types : Element et Text Les nœuds de type Element correspondent au balisage dans la forme sérialisée. 1 ils définissent la structure du document. 2 ils ont un nom mais pas de valeur. 3 ils ont un contenu : le sous-arbre dont ils sont racine. Les nœuds de type Text correspondent au contenu du document. 1 ils constituent les feuilles de l arborescence (un nœud Text n a pas de fils) et n ont donc pas de contenu. 2 ils ont une valeur mais pas de nom

Correspondance forme sérialisée - forme DOM Ce document représenté en DOM : chaque nœud a un type, soit Document soit Text. Voici un élément contenant du texte. <monel> Le contenu textuel. </monel> Element monel Text Contenu textuel

Imbrication des élémennts Le contenu d un élément est 1 tout ce qui est compris entre la balise ouvrante et la balise fermante (dans la forme sérialisée). 2 le sous-arbre dont le nœud est la racine (dans la forme DOM). Ce contenu comprend d autres élément, des nœuds Text, et autres gadgets de moindre importance (commentaires, etc.) Element elt1 Exemple d éléments imbriqués <elt1> Contenu texte <elt2> Autre contenu </elt2> </elt1> Text Contenu texte Element elt2 Text Autre contenu

Encore un exemple Un autre document, pas beaucoup plus compliqué. 1 <les_genies> 2 <genie> 3 Alan Turing 4 </genie> 5 <genie> 6 Kurt Godel 7 </genie> 8 </les_genies> Le vocabulaire à employer : <genie> est une balise ouvrante (tag ouvrant) </genie> est une balise fermante (tag fermant) Kurt Godel est un contenu texte <genie>alan Turing</genie> est un élément et un sous-élément de les_genies Test 1 Donnez la forme arborescente de ce document. 2 Quel est le contenu de l élément les_genies? 3 Quel est le contenu textuel de l élément les_genies?

Quelques remarques en vrac (anecdotique) Les sous-éléments sont ordonnés. Pas de caractères spéciaux (mais -,_,.,/ autorisés) dans les noms des éléments, pas d espaces. Un élément peut être vide : <nom_elt></nom_elt> Notation abrégée : <nom_elt/> (Exemples d éléments vides (XHTML) : <br/> ou <img width="100" height="57" src="logocnam.jpg"/>) (Contrairement à HTML,) XML est case sensitive donc <genie> <Genie> Les caractères spéciaux non autorisés peuvent être remplacés par une référence : & doit être remplacé par sa référence & (version numérique : &#28;) < devient < (ou <) > devient > (ou >) " devient " (ou &#39;) devient &apos; (ou ")

Un peu plus loin : les attributs Les attributs sont des paires clé/valeur attachées à un élément. 1 on les place dans la balise ouvrante (forme sérialisée) ; 2 ce sont des noeud-fils spéciaux du nœud Element dans la forme DOM. Un attribut a une valeur : un chaîne de caractères. Un élément avec deux attributs. <elt1 att1= 12 att2= fr > Du texte </elt1> Element elt1 Les attributs ne sont par ordonnés, et on ne peut pas avoir deux attributs avec le même nom dans un élément. Attr. att1 : 12 Attr. att2 : fr Text Du texte

Autre exemple 1 <les_genies> 2 <genie date_naiss="1912 06 23" date_deces="1954 06 07"> 3 Alan Turing 4 </genie> 5 <genie date_naiss="1906 04 28" date_deces="1978 01 14"> 6 Kurt Godel 7 </genie> 8 </les_genies> date_naiss est un attribut du premier élément <genie> 1912-06-23 est sa valeur On aurait très bien pu utiliser des noeuds Text plutôt que des attributs. Remarque Les attributs sont (en principe) utilisés pour des "méta-données" qualifiant le contenu (auteur, date de création). Peu important.

Pour compléter l essentiel : la racine du doument Un document XML sous forme sérialisée commence toujours par un prologue : <?xml version="1.0"encoding="utf 8"?> et le contenu d un document est toujours contenu dans un unique élément, appelé l élément racine. Un document avec son prologue et l élément racine. <?xml version="1.0" \end{remark} encoding="utf-8" Document?> <elt> Contenu du document. </elt> Remarque Le prologue peut contenir d autres informations (DTD, etc.) Dans la représentation DOM, le prologue est représenté par un nœud Document a Document node, called the root node. Element elt Text Contenu du document

Résumé de l essentiel Forme sérialisée Un document débute par un prologue Le contenu est enclos dans une unique balise ouvrante/fermante. Chaque balise ouvrante <nom> doit avoir une balise fermante </nom> ; tout ce qui est entre les deux est soit du texte, soit du balisage correctement ouvert/fermé. Forme arborescente (DOM) Un document est un arbre avec une racine (du document) de type Document La racine du document a un seul élément fils, de type Element, appelé l élément racine. Chaque Element est un sous-arbre représentant du contenu structuré.

Document bien formé Un document est bien formé s il respecte la syntaxe XML. à tout tag ouvrant est associé un tag fermant, les éléments sont imbriqués (pas de superposition), présence d un seul élément racine, etc (se référer à la syntaxe XML). Un document XML se doit d être bien formé (sinon inexploitable). i Pour tester si l un de vos documents est bien formé : un vérificateur syntaxique est disponible à l adresse http://www.w3schools.com/xml/xml_validator.asp. Vous pouvez également ouvrir votre fichier XML avec un navigateur web, intégrant généralement un parser XML (pour pouvoir être parsé, un document doit être bien formé).

Une petite mise en jambes : structuration d information Voici quelques informations en vrac : Le britannique Alan Turing est né le 23 juin 1912 à Londres (au Royaume-Uni). Il obtient sa thèse effectuée sous la direction d Alonzo Church en 1938 à l université de Princeton, thèse intitulée Systems of logic defined by ordinals. Il est célèbre pour ses travaux sur le problème de l arrêt, les machines de Turing, la Cryptanalyse d Enigma (pendant la seconde guerre mondiale), le test de turing, la conception et la réalisation de l ACE (Automatic Computing Engine) réalisé entre 1945 et 1948, au National Physical Laboratory, situé à Teddington au Royaume-Uni. Il reçu d ailleurs deux distinctions : l ordre de l Empire britannique (en 1945, au rang d officier, officiellement pour ses travaux scientifiques, officieusement pour le décryptage de Enigma), il a est également membre de la Royal Society (élu en 1951, pour ses travaux sur les machines de turing). Il est à l origine du prix Turing (informatique), attribué tous les ans depuis 1966. Il est décédé le 7 juin 1954 (à 41 ans) d un empoisonnement au cyanure, à Wilmslow (Royaume-Uni). Kurt Gödel est né le 28 avril 1906 à Brno (Autriche-Hongrie). Il était de nationalité austrau-américaine. Il obtient son doctorat en philosophie en 1930. Il y prouve la complétude de la logique classique du premier ordre. Il est particulièrement célèbre pour son théorème d incomplétude publié en 1931. Il est à l origine du prix Gödel (informatique théorique), attribué tous les ans depuis 1992. Il est décédé le 14 janvier 1978 de cachexie, à Princeton (états-unis). Test Réorganisez ces informations afin de les structurer et les présenter sous la forme d un arbre (ou d un fichier) XML.

Syntaxe XML : compléments Plan du cours 1 Structuration de documents : XML 2 3 Syntaxe XML : compléments

Syntaxe XML : compléments Les entités et les références Les entités sont des symboles qui désignent des fragments. Utile pour réutiliser du contenu, sans le répéter. Une entité est déclarée (dans le prologue), puis référencée. <?xml version="1.0" encoding="iso 8859 1"?> <!DOCTYPE a [ <!ENTITY monnom "Charles Martel"> <!ENTITY masignature SYSTEM "signature.xml"> ]> <a> Mon nom est &monnom;. &masignature; </a>

Syntaxe XML : compléments Entités prédéfinies Tout un ensemble de symboles qui sont interprétées comme du marquage / balisage si on les utilise directement. Si on les veut littéralement, il faut utiliser des références d entités. Déclaration Référence Symbole. <!ENTITY lt "<"> < < <!ENTITY gt ">"> > > <!ENTITY amp "&"> & & <!ENTITY apos "&#39;"> &apos; <!ENTITY quot """> " "

Syntaxe XML : compléments Commentaires et instructions de traitement Les commentaires peuvent être placés n importe où dans la forme sérialisée. <! C est un commentaire > Ils apparaissent dans l arbre DOM comme des nœuds de type Comment. Remarque Très peu d intérêt : on n est pas censé lire un document XML. Peut être remplacé par un élément de type element et de nom comment. Instructions de traitements : commandes spécifiques à une application particulière. Typiquement, on demande à un processeur XSLT d utiliser un programe prog.xslt : <?xml stylesheet href="prog.xslt"type="text/xslt"?>

Syntaxe XML : compléments Sections litérales Un analyseur (parseur) XML cherche à analyser tout le contenu pour détecter du marquage structurel. Problème : et si on ne veut pas que le contenu soit analysé? <?xml version= 1.0?> <program> if ((i < 5) && (j > 6)) printf("error"); </program> Solution : soit on utilise des entités (lourd), soit on insère la texte à protéger dans une section littérale. <?xml version= 1.0?> <program> <![CDATA[if ((i < 5) && (j > 6)) printf("error"); ]]> </program>

Syntaxe XML : compléments C est tout pour l instant! Ce qui précède suffit pour produire et comprendre à peu près tout les documents XML. Autres aspects qui peuvent (quand même) s avérer importants : 1 Validation d un document. Comme déclarer qu un document doit être conforme à une structure donnée? Comment le vérifier? typage de documents XML, avec les DTD ou XML Schéma (horreur!) 2 Conflits de nom. Comment bien interpréter une balise (nom d élément) quand on assemble plusieurs documents? les namespaces (espaces de noms). 3 et autres aspects exotiques...