XML, DTD. Dan VODISLAV. Université de Cergy-Pontoise. Licence Informatique L3. Plan



Documents pareils
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

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

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

XML : documents et outils

Gestion Électronique de Documents et XML. Master 2 TSM

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

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

SII Stage d informatique pour l ingénieur

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

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

Master d Informatique Corrigé du partiel novembre 2010

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

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

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

Bases de données avancées Introduction

L'essentiel de XML. Cours XML. Olivier Carton

XML et recherche d information

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

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

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

NFE204 Bases de données avancées

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

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

Gestion documentaire (Extraits du CCI version 1.2)

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

BASE DE DONNÉES XML NATIVE

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

<?xml version="1.0" encoding="iso " standalone="yes"?>

Module http MMS AllMySMS.com Manuel d intégration

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Plateforme PAYZEN. Définition de Web-services

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

Programmation Internet Cours 4

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

Petite définition : Présentation :

4. SERVICES WEB REST 46

Catalogue des formations Edition 2015

les techniques d'extraction, les formulaires et intégration dans un site WEB

Devenez un véritable développeur web en 3 mois!

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

XML et travail collaboratif : vers un Web sémantique

PROSOP : un système de gestion de bases de données prosopographiques

FileMaker Server 12. publication Web personnalisée avec XML

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

SQL Parser XML Xquery : Approche de détection des injections SQL

Document Object Model (DOM)

Architectures d'intégration de données

Les outils de création de sites web

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Manuel d intégration API FTP SMS ALLMYSMS.COM

BD et XML : Exercices

BES WEBDEVELOPER ACTIVITÉ RÔLE

L architecture des services Web

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

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

Programmation Web. Madalina Croitoru IUT Montpellier

Définition des Webservices Ordre de paiement par . Version 1.0

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Couches 4 à 7 : Traitement des données

UE 8 Systèmes d information de gestion Le programme

TD3 - Facturation avec archivage automatisé

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

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

From supply chain to demand chain

VOLÉE Master of Advanced Studies RAPID APPLICATION DEVELOPMENT.

Systèmes d'informations historique et mutations

Métadonnées, ontologies et documents numériques

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

Introduction à Microsoft InfoPath 2010

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Séance 1 Introduction aux bases de données

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Parcours FOAD Formation EXCEL 2010

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

< Atelier 1 /> Démarrer une application web

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Adobe Technical Communication Suite 5

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Livre Blanc WebSphere Transcoding Publisher

Comment récupérer un document OOo corrompu. Distribué par Le projet OpenOffice.org

Formation : WEbMaster

Groupe Eyrolles, 2004 ISBN :

Hébergement de site web Damien Nouvel

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

Systèmes d Information (SI) Zohra Zelfani

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

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

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

Présentation du langage et premières fonctions

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

Plan du cours. Historique du langage Nouveautés de Java 7

! Text Encoding Initiative

OPEN DATA : CHALLENGES ET PERSPECTIVES D ENTREPOSAGE

A QUOI SERVENT LES BASES DE DONNÉES?

Cours 1: Java et les objets

BASE DE DONNÉES XML NATIVE

Introduction aux concepts d ez Publish

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Transcription:

XML, DTD Dan VODISLAV Université de Cergy-Pontoise Licence Informatique L3 Plan XML: pourquoi et comment Principes et caractéristiques de base Comparaison avec HTML et les BD relationnelles Le format XML Structure des documents XML Documents bien formés et valides Détails de syntaxe Schémas XML de base: les DTD Éléments, attributs, entités, notations Le monde XML UCP, Licence L3: XML, DTD 2

XML: extensible Markup Language Langage de description de documents structurés Utilisation de balises (balisage structurel) Standard pour l échange / la publication de données sur le web Héritage: HTML: documents publiés sur le web SGML: documentation technique (documents structurés) HTML est une grammaire spécifique de SGML Données structurées: bases de données relationnelles, objet XML 1.0: recommandation du W3C (1998) Actuellement XML 1.0 5 ème révision (2008) XML 1.1 réduit la dépendance du codage des caractères, reste marginal UCP, Licence L3: XML, DTD 3 Pourquoi XML? HTML: documents sur le web Langage de présentation pour les documents du web Ensemble de balises et grammaire fixes, mélange d éléments de structure de document et de mise en page Difficile de déduire la signification du contenu Données structurées: bases de données Décrivent le contenu, pas la présentation qu on peut en faire Structure régulière basée sur des types simples: string, int, boolean, Les documents du web sont mal adaptés à cette structuration rigide Texte, structure variable Conclusion: on a besoin de décrire le contenu (indépendamment de la présentation), mais à l aide d une structuration flexible, adaptée aux documents textuels du web UCP, Licence L3: XML, DTD 4

Exemple Bibliographie G. Gardarin, XML : des bases de données aux services web, Dunod, 2003 S. Abiteboul, N. Polyzotis, The Data Ring, CIDR, 2007 HTML <h1>bibliographie</h1> <ul><li>g. Gardarin, <i>xml : Des Bases de Données aux Services Web</i>, Dunod, 2003 <li>s. Abiteboul, N. Polyzotis, <i>the Data Ring</i>, CIDR, 2007 </ul> Base de données relationnelle «Bibliographie» Auteur Titre Éditeur Conférence Année G. Gardarin XML : des bases de données aux services web Dunod NULL 2003 S. Abiteboul The Data Ring NULL CIDR 2007 N. Polyzotis The Data Ring NULL CIDR 2007 UCP, Licence L3: XML, DTD 5 Exemple (suite) XML <bibliographie> <ouvrage année="2003"> <auteur>g. Gardarin</auteur> <titre>xml : Des Bases de Données aux Services Web</titre> <éditeur>dunod</éditeur> </ouvrage> <ouvrage année="2007"> <auteur>s. Abiteboul</auteur> <auteur>n. Polyzotis</auteur> <titre>the Data Ring</titre> <conférence>cidr</conférence> </ouvrage> </bibliographie> UCP, Licence L3: XML, DTD 6

XML orienté données et orienté texte XML est très flexible peut représenter à la fois des données très structurées et du texte très peu structuré XML orienté données <inventaire> <produit code="az320"> <nom>ordinateur</nom> <prix>750</prix> </produit> <produit code="lm208"> <nom>chaise</nom> <prix>63</prix> </produit> </inventaire> inventaire code nom prix AZ320 Ordinateur 750 LM208 Chaise 63 XML orienté texte <description>dans la boutique <nom>le Bureau</nom>, située <adresse>25 rue de l'oise</adresse> on peut acheter tout ce dont on a besoin pour son bureau: <produit> ordinateur </produit>, <produit> chaise </produit>, etc. </description> UCP, Licence L3: XML, DTD 7 Syntaxe XML Un document XML contient: Un prologue: présence facultative, mais fortement conseillée Décrit: la version du langage XML, le codage des caractères (par défaut UTF-8), l'existence de déclarations extérieures au document <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> Une déclaration de type de document (DTD) - facultatve <!DOCTYPE exemple [ déclarations ]> <!DOCTYPE exemple SYSTEM "exemple.dtd"> Un arbre d éléments: obligatoire <document> <salutation>bonjour!</salutation> </document> Des commentaires et des instructions de traitement: facultatifs <! - Ceci est un commentaire --> <?xml-stylesheet type="text/xsl" href="style.xsl"?> UCP, Licence L3: XML, DTD 8

Arbre d éléments Un document est formé d une hiérarchie (arbre) d éléments L arbre a un élément racine unique Le contenu d un élément est délimité par des balises Tout élément fils est inclus dans son père : <a><b></a></b> n est pas correct Un élément est de la forme: <nom attr='valeur'> contenu </nom> <nom> : balise d'ouverture </nom> : balise de fermeture, obligatoire (sauf pour les éléments vides <nom/>) nom formé de lettres, chiffres, _, -,., : (signification spéciale) commence par une lettre ou par _ et ne commence pas par les caractères «xml» contenu : contenu d'un élément vide, texte, autres éléments, imbrication de texte et d autres éléments instructions de traitement, commentaires attr='valeur' : ensemble éventuellement vide d'attributs la valeur doit être délimitée par des apostrophes ou des guillemets <livre langue='fr' editeur="o'reilly"/> UCP, Licence L3: XML, DTD 9 Sections CDATA Le contenu texte (#PCDATA) peut contenir des caractères réservés (par exemple < ou > ) On peut les «protéger» en utilisant des sections CDATA Exemple <program> if(i<5) return i; </program> incorrect <program> <![CDATA[if(i<5) return i;]]> </program> correct UCP, Licence L3: XML, DTD 10

Documents bien formés et documents valides Document XML bien formé : document correct sans DTD le prologue ne contient pas de déclaration de type de document (DTD) contient un arbre d'éléments correct <?xml version="1.0" standalone="yes"?> <document> <salutation>bonjour!</salutation> </document> Document XML valide : document correct avec DTD son prologue contient une déclaration de type de document (DTD) son arbre d'éléments respecte la structure définie par la déclaration de type <?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <!DOCTYPE document [ <!ELEMENT document (salutation)> <!ELEMENT salutation (#PCDATA)> ]> <document> <salutation>bonjour!</salutation> </document> UCP, Licence L3: XML, DTD 11 Formes sérialisée et arborescente Forme sérialisée d un document/élément Chaîne de caractères (texte) incluant balises et contenu textuel Exemple <lettre type='court'><salutation>bonjour!</salutation><fin>au revoir</fin></lettre> ou avec un peu de mise en forme <lettre type='court'> <salutation>bonjour!</salutation> <fin>au revoir</fin> </lettre> Forme arborescente Utilisée par les applications, modèle DOM (W3C) lettre type court salutation Bonjour! fin Au revoir UCP, Licence L3: XML, DTD 12

Utilisation des formes sérialisée et arborescente Les documents XML : forme sérialisée Les applications : transformation en forme arborescente Plus simple à manipuler, parcourir, transformer Application Forme sérialisée parseur Forme arborescente sérialisation Forme sérialisée UCP, Licence L3: XML, DTD 13 Les DTD DTD = grammaire pour la structure des documents Facultative, interne ou externe au document Contient des déclarations pour les éléments, attributs, entités, notations utilisés Avantages de l utilisation de DTD Partage d une même structure entre plusieurs documents, structures «standard» pour une communauté Vérification stricte et automatisable de la correction des documents Document DTD <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE document SYSTEM "accueil.dtd"> <document type='exemple'> <salutation> Bonjour! </salutation> </document> <! - fichier accueil.dtd. Exemple de DTD simple --> <! - Définition de l'élément racine --> <!ELEMENT document (salutation)> <! - Définition de l attribut type pour l élément document --> <!ATTLIST document type CDATA #IMPLIED> <! - Un élément salutation ne contient que du texte --> <!ELEMENT salutation (#PCDATA)> UCP, Licence L3: XML, DTD 14

Déclaration d éléments <!ELEMENT nom modèle> ELEMENT est un mot-clé (en majuscules!) nom est un nom valide d'élément modèle est le modèle de contenu de cet élément Modèles de contenu éléments : l élément est composé d autres éléments (fils) données : l élément contient du texte mixte : mélange de texte et de sous-éléments libre : contenu quelconque bien formé vide : pas de contenu, seuls les attributs sont importants UCP, Licence L3: XML, DTD 15 Modèles de contenu pour les éléments Sous-éléments : plusieurs façons de les combiner séquence : <!ELEMENT chapitre (titre,intro,section)> Remarque: l ordre des éléments est important alternative : <!ELEMENT chapitre (titre,intro,(section sections))> indicateurs d'occurrence: * (0-n), + (1-n),? (0-1) <!ELEMENT chapitre (titre,intro?,section+)> <!ELEMENT section (titre-section,texte-section)> <!ELEMENT texte-section (p f)*> Données : texte <!ELEMENT p (#PCDATA)> Mixte : une seule façon de mélanger texte et sous-éléments est acceptée <!ELEMENT p (#PCDATA em exposant indice renvoi)*> UCP, Licence L3: XML, DTD 16

Modèles de contenu pour les éléments (suite) Libre : contenu bien formé, mais sans restrictions <!ELEMENT p ANY> Vide : pas de contenu, seuls les attributs sont importants <!ELEMENT p EMPTY> Exemple <!ELEMENT p (#PCDATA bibref)* > <!ELEMENT bibref EMPTY> <!ATTLIST bibref ref IDREF #REQUIRED> utilisation: <p> consulter <bibref ref='ref-19980210'/> </p> UCP, Licence L3: XML, DTD 17 Déclaration d attributs <!ATTLIST nom-élém nom-attr type-attr décl-défaut nom-attr type-attr décl-défaut > Pour un élément donné on décrit la liste de ses attributs Chaque attribut: un nom, un type et une valeur par défaut Remarque: l ordre des attributs n est pas important Ex. <!ELEMENT ex (#PCDATA)> <!ATTLIST ex xml:lang NMTOKEN #IMPLIED cible ID #REQUIRED nb (1 2 3) '1' propriétaire CDATA #FIXED 'moi' > Valeur par défaut d'un attribut La valeur en question #REQUIRED : attribut obligatoire, valeur à être précisée dans le document #IMPLIED : attribut facultatif, valeur à être précisée dans le document #FIXED (suivi de la valeur) : valeur de l attribut fixée pour tout élément instance UCP, Licence L3: XML, DTD 18

Attributs de type ID et IDREF Permettent de créer des renvois à l'intérieur d'un document ID: identifie l élément référencé, IDREF: crée le renvoi Transforment la structure d arbre du document en graphe Exemple DTD <!ELEMENT personne (nom, )> <!ATTLIST personne num ID #REQUIRED> <!ELEMENT livre (titre, auteur+, )> <!ELEMENT auteur EMPTY> <!ATTLIST auteur ref IDREF #REQUIRED> Document <personne num= p1 ><nom>gardarin</nom></personne> <personne num= p2 ><nom>valduriez</nom></personne> <livre> <titre>bases de données</titre> <auteur ref= p1 /> <auteur ref= p2 /> </livre> Remarque: les renvois ne sont pas typés, rien ne garantit qu on référence une personne En fait ref= p1 renvoie vers n importe quel élément qui a un attribut ID de valeur p1 UCP, Licence L3: XML, DTD 19 Question: attribut ou sous-élément? On a le choix de représenter les composantes d un élément: Par des attributs: <livre titre="xml pour les nuls"> </livre> Par des sous-éléments: <livre><titre>xml pour les nuls</titre> </livre> Quand utiliser des sous-éléments? Si le contenu est complexe (composé de plusieurs parties) S il y a plusieurs instances de la composante Si l ordre des composantes est important Si les espaces dans le contenu sont importants (ex. programme, vers) L avantage des attributs: meilleure lisibilité Une règle sémantique: Éléments ~ données Attributs ~ metadonnées UCP, Licence L3: XML, DTD 20

Déclaration d entités Entité: raccourci, macro Définie par un nom d entité et une valeur On utilise une entité de nom A en écrivant &A; Effet: remplacer dans le document &A; avec la valeur de A Types d'entités: prédéfinies, internes, externes Entités prédéfinies: caractères réservés en XML ou absents sur le clavier lt (<), gt (>), quot ("), amp (&), apos (') Ex: pour dire "i < 5" on écrit "i < 5" #code-unicode (caractère spécifié par son code Unicode) Ex: le caractère de code hexa 00A9 est écrit UCP, Licence L3: XML, DTD 21 Entités internes et externes Entités internes : valeur définie explicitement dans la DTD Définies dans la DTD: <!ENTITY nom-entité "valeur"> Entités externes XML : valeur définie dans un fichier externe Référencées par URL (mot-clé SYSTEM) Doivent être des documents bien formés <?xml version='1.0'?> <!DOCTYPE bouquin [ <!ENTITY chapitre1 SYSTEM "chap1.xml"> <!ENTITY chapitre2 SYSTEM "chap2.xml"> <!ENTITY auteur "Toto"> ]> <bouquin> <titre> Les joies de XML </titre> <auteur> &auteur; </auteur> <intro> Il était une fois </intro> &chapitre1; &chapitre2; </bouquin> UCP, Licence L3: XML, DTD 22

Entités paramètre Utilisées dans la DTD, pas dans le document Entités: utilisées dans les documents, appel par &nom; Entités paramètre: utilisées dans les DTD, appel par %nom; Définition: <!ENTITY % nom "valeur"> ou <!ENTITY % nom SYSTEM url> Exemple Dans la DTD <!ENTITY % genres (policier aventures)> <!ENTITY book "Le dahlia noir"> <!ELEMENT titre (#PCDATA)> <!ATTLIST titre genre %genres; #REQUIRED> Dans le document <titre genre='policier'> &book; </titre> produit <titre genre='policier'> Le dahlia noir </titre> UCP, Licence L3: XML, DTD 23 Limitations des DTD Peu de types de contenu et d attributs Essentiellement du texte Vérifications limitées sur la validité du contenu Conclusion Les DTD ne sont pas suffisantes pour l échange de données structurées dans les applications (commerce électronique, intégration de données, ) Mais elles sont encore très utilisées pour des applications simples Autre inconvénient: les DTD ne sont pas en format XML Standard pour les schémas XML plus avancés XML Schema Format XML Une large palette de types (entiers, réels, dates, booléens, etc.) Contraintes d intégrité: notions de clé, unicité Espaces de noms Héritage de types UCP, Licence L3: XML, DTD 24

Le monde XML Dialectes XML: DTD spécifique pour une utilisation précise RSS, Atom : pour les fils d actualités, blogs, podcasts RDF, OWL : pour des annotations sémantiques, ontologies WML : sites web pour téléphone mobile (protocole WAP) SVG : graphique 2D animée MathML : formules mathématiques SMIL : présentations multimédia XHTML : HTML qui respecte les règles XML Standards XML DOM : représentation arborescente des documents XML SAX : API pour XML vu comme une séquence de «tokens» XML Schema: schémas XML plus évolués XPath, XQuery : langages d interrogation pour XML XSL (XSLT, XSL-FO) : feuilles de style pour XML XLink : liens en XML Services Web : communication entre machines basée sur XML UCP, Licence L3: XML, DTD 25 Le monde XML (suite) Outils Éditeurs XML, éditeurs de schémas Visualiseurs XML Validateurs de schéma Bases de données (XPath, XQuery, XQuery Update) Processeurs XSL API de programmation Gestionnaires de services web UCP, Licence L3: XML, DTD 26

Bibliographie spécifique Le site W3C http://www.w3.org/xml/core A. Michard, XML - Langage et applications, Eyrolles UCP, Licence L3: XML, DTD 27