Introduction & Mise en oeuvre

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

SII Stage d informatique pour l ingénieur

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

XML : documents et outils

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

Programmation Internet Cours 4

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

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

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

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

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

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

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

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

Les outils de création de sites web

Gestion Électronique de Documents et XML. Master 2 TSM

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

Systèmes d'informations historique et mutations

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

Installation de DocBook sur un système Linux

BD et XML : Exercices

Formation : WEbMaster

Manuel d intégration API FTP SMS ALLMYSMS.COM

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

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

Couches 4 à 7 : Traitement des données

L'essentiel de XML. Cours XML. Olivier Carton

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

Les services usuels de l Internet

From supply chain to demand chain

FileMaker Server 12. publication Web personnalisée avec XML

4. SERVICES WEB REST 46

XML et travail collaboratif : vers un Web sémantique

Formation HTML / CSS. ar dionoea

Les architectures 3-tiers Partie I : les applications WEB

Adobe Technical Communication Suite 5

Petite définition : Présentation :

Optimiser moteur recherche

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

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

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

Programmation de services sensibles au contexte en téléphonie sur IP

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Gestion documentaire (Extraits du CCI version 1.2)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Master d Informatique Corrigé du partiel novembre 2010

Document Object Model (DOM)

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

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

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

«Expertise de ressources «pour l édition de revues numériques

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

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

Module http MMS AllMySMS.com Manuel d intégration

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Agence Web innovatrice

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

Architecture Orientée Service, JSON et API REST

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

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

Information utiles. webpage : Google+ : digiusto/

7.0 Guide de la solution Portable sans fil

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

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

Module BD et sites WEB

HTML. Notions générales

BES WEBDEVELOPER ACTIVITÉ RÔLE

Glossaire. ( themanualpage.org) soumises à la licence GNU FDL.

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

< _155_0>

Bibliothèque numérique de l enssib

Les types de fichiers

MISE EN PLACE DES PRÉLÈVEMENTS SEPA PAR LES REMETTANTS HORS CLIENTÈLE DFT

TP1. Outils Java Eléments de correction

Les Web Services. Rapport de TE. Étudiants Cyrielle Lablanche Florens Seine Sébastien Gastaud. Encadrant Hervé Chang

Quelques formats de fichiers courants

Cahier des charges Site Web Page 1 sur 9

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

Logiciel de gestion de caisse et d ardoises

Intégrateur Web HTML5 CSS3

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

Audit SEO. I / Les Tranquilles d Oléron

Référencement & Positionnement

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

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

novatis Agence Web innovatrice

Architectures web/bases de données

Master Information et communication spécialité Produits et services multimédia

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

Webmaster / Webdesigner / Wordpress

Créateur de sites Internet. Développeur de logiciels.

Systèmes d Information (SI) Zohra Zelfani

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Du livre enrichi et de l EPUB 3

Hébergement de site web Damien Nouvel

Modules Prestashop - ExportCatalogue / EXPORT IMPORT POUR MODIFICATIONS EN MASSE DANS PRESTASHOP VERSION Optim'Informatique

Transcription:

Langages de l Internet : XML Introduction & Mise en oeuvre Taha Zerrouki Taha.zerrouki@gmail.com 1

Cours XML : Plan Introduction Historique, champ d applications, but du cours Mise en œuvre Syntaxe, structure, rédiger un document XML Rédaction sommaire Exercice de syntaxe Premiers éléments de DTD 2

Au commencement SGML Standard Generalized Markup Language Langage à balises pour représenter des documents structurés Complexe, difficile à apprendre Réservé aux professionnels de la documentation Difficilement extensible au Web HTML! (dérive de SGML) Conçu dans l optique d afficher des «pages Web» C est ce qui a fait son succès 3

Les limites de HTML Balises prédéfinies Extensibilité réduite Décrit la forme et non le contenu <b>, <i>, <center> Lié à la problématique des «pages web» La sémantique du contenu est perdue Pas de vérification syntaxique 4

XML extensible Markup Language [W3C, 98] Langage normalisé de description Création libre des balises Structure hiérarchique vérifiable Langage simple, documents «lisibles» Facilite le traitement des données Sépare le contenu et la forme Indépendant des plateformes 5

Le format XML Données hiérarchiques (arbre) Élément/Attribut/Texte Élément description My Favorite Zoo zoo monkeys monkey name=roger monkey name=mike lion teeth=2 Texte Élément <zoo> Attribut <description> My favorite Zoo </description> <monkeys> <monkey name= roger /> <monkey name= mike /> </monkeys> <lion teeth= 2 /> </zoo> 6

Typage du XML Une DTD ou un Schéma défini la grammaire d un fichier XML <zoo> <description> My favorite Zoo </description> <monkeys> <monkey name= roger /> <monkey name= mike /> </monkeys> <lion teeth= 2 /> </zoo> fichier XML <!DOCTYPE zoo [ <!ELEMENT zoo (description,monkeys,lion)> <!ELEMENT description (#PCDATA)> <!ELEMENT monkeys (monkey+)> <!ELEMENT monkey EMPTY> <!ATTLIST monkey name CDATA #REQUIRED> <!ELEMENT lion EMPTY> <!ATTLIST lion teeth CDATA> ]> <xs:element name= zoo' type= zoo'/> DTD <xs:complextype name= zoo'> <xs:sequence> <xs:element name= monkeys schéma XML type= monkeys'/> <xs:element name= lion' 7

XML appliqué Systèmes d informations Format de requête auto-descriptif «je te parle comme ceci, parle-moi comme cela» APIs standardisées Formation réduite, expression générique Recherche d informations On sait directement où chercher (plus ou moins) Corpus de données structurées Ex: contenus MPEG7 (vidéos, sons, images) 8

XML pour le Web HTML est un «sous-xml» Séparation Forme / Contenu Feuilles de Styles (CSS, XSL) Transformations de données (XSLT) Adaptation à différents supports PDA, téléphones portables Adaptation à différents utilisateurs préférences utilisateurs, malvoyants 9

Perspectives du cours Maîtriser le langage XML (évidemment) Rédiger un document XML Définir une grammaire de génération (DTD, XML Schema) Présenter un document XML sur le Web Feuilles de styles (CSS, XSL) Transformations de documents (XSLT) Faire lire du XML par un programme SAX / DOM AJAX 10

Cours XML Introduction Historique, champ d applications, but du cours Mise en œuvre Syntaxe, structure, rédiger un document XML Rédaction sommaire Exercice de syntaxe Premiers éléments de DTD 11

Mise en oeuvre Syntaxe XML Écriture par balises (éléments) Structure hiérarchique Attributs Données Définir une grammaire structurelle Rédiger un document XML 12

Écriture par balises (éléments) <enseignant> <nom>abdellah</nom> <prenom>benkadour</prenom> <grade>consultant</grade> <enseignements> <cours type= CM > </cours> <titre>xml</titre> <volume>24</volume> <cours type= TD > <volume>30</volume> </cours> </enseignements> </enseignant> <titre>websemantic</titre> 13

Écriture par balises (éléments) Syntaxe: <element> contenu de l élément </element> «element» doit commencer par une lettre Peut comporter : Des chiffres Des lettres Moins «-», souligné «_», point «.», deux-points «:» 14

Écriture par balises (éléments) Syntaxe: <element> contenu de l élément </element> Attention à la casse! («element»!= «Element») Pas de «XMLfoo» ou «xmlbar» Élément vide <element></element> ou <element/> 15

Structure hiérarchique <enseignant> <nom>abdelah</nom> <prenom>ben Kadour</prenom> <grade>consultant</grade> <enseignements> <cours type= cm > <titre>xml</titre> <volume>24</volume> </cours> <cours type= td > <titre>websemantic</titre> <volume>30</volume> </cours> </enseignements> </enseignant> enseignant nom «abdelah» prenom «Ben Kadour» grade «consultant» enseignements Cours type= cm Cours type= td titre volume titre volume 16

Structure hiérarchique Chaque élément peut avoir un ou plusieurs «enfants» (ou du texte) <nom> est enfant* de <enseignant> <enseignant> est parent* de <nom> Chaque élément n a qu un seul parent Il existe un unique «ancêtre» Le seul élément qui est l ancêtre de tous les éléments = l élément racine* (ici <enseignant>) * child, parent, root 17

Attributs Utilisation <element attribut= valeur > Mêmes règles pour «attribut» que pour «element» La valeur ne peut contenir les caractères ^, % et & 18

Données Chaînes de caractères Caractères spéciaux < pour < > pour > & pour & &apos; pour " pour & ou & pour & (numéro dans la page UNICODE) 19

Mise en oeuvre Syntaxe XML Écriture par balises (éléments) Structure hiérarchique Attributs Données Définir une grammaire structurelle Rédiger un document XML 20

Définir une grammaire structurelle enseignant nom «Abdelah ««Tayeb?»» prenom «Ben «? Mohamed» Kadour» <enseignant> <nom>abdelah</nom> <nom>tayeb</nom> <prenom>ben <prenom>mohamed</prenom> Kadour</prenom> <grade>consultant</grade> <grade>mdc</grade> <enseignements> <cours type= CM > type= td > </cours> <titre>xml</titre> <titre>data-mining</titre> <volume>24</volume> <volume>30</volume> </enseignements> <cours type= TD > </enseignant> <titre>websemantic</titre> <volume>30</volume> </cours> </enseignements> </enseignant> grade enseignements «consultant «MdC?»»» Cours type= cm type= td type=? Cours type= td type=? titre volume titre volume ««? XML Data-Mining»»» ««? 2430»»» 21

Définir une grammaire structurelle «DTD» (Document Type Definition) La DTD définit la filiation des éléments Quelle est la racine du document? Qui doit/peut avoir quels enfants? Combien d enfants? Qui peut contenir du texte? Qui a des attributs particuliers? Quelles sont les valeurs de ces attributs? 22

DTD Indiquée dans le document XML On parle de : Document bien formé Respect de la syntaxe XML Document valide Respect de la DTD spécifiée 23

Mise en oeuvre Syntaxe XML Écriture par balises (éléments) Structure hiérarchique Attributs Définir une grammaire structurelle Rédiger un document XML 24

Document XML <?xml version= 1.0 encoding= UTF-8 standalone= yes?> <?xml-stylesheet type= text/xsl href= test.xsl?> Prologue <!DOCTYPE enseignant [ <!ELEMENT enseignant (nom, prenom, grade, enseignements) > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT grade (#PCDATA) > <!ELEMENT enseignements (cours+) > <!ATTLIST cours type CDATA #REQUIRED> <!ELEMENT cours (titre, volume) > <!ELEMENT titre (#PCDATA) > <!ELEMENT volume (#PCDATA) > ] > Déclaration <enseignant> <nom>abdelah</nom> <prenom>ben KAdour</prenom> <grade>consultant</grade> <enseignements> <cours type= cm > <titre>xml</titre> <volume>24</volume> </cours> <cours type= td > <titre>data-mining</titre> <volume>33</volume> </cours> </enseignements> </enseignant> Corps 25

Document XML Prologue Précise qu il s agit d un document XML Instructions de traitement Déclaration DTD qui définit la grammaire du document Corps du document Les données elles-mêmes 26

Prologue La déclaration XML <?xml version= 1.0 encoding= UTF-8 standalone= yes?> version : 1.0! encoding : type d encodage de caractères UTF-8, ISO-8859-1 standalone : si le fichier fait référence à des fichiers externes, no, sinon, yes 27

Prologue Les instructions de traitement <?xml-stylesheet type= text/xsl href= test.xsl?> Précise une application ou une fonction que l on appelle en lui passant des paramètres <?nom param1= val1 param2= val2?> Destiné à être utilisé par l application qui lit le document (stylesheet de mise en forme) 28

Déclaration DTD (Document Type Definition) Interne : en toutes lettres dans le fichier Externe : dans un fichier extérieur [standalone= no ] Définit comment le document sera rédigé dans un langage standard propre à la DTD Une DTD «n est pas obligatoire» Si on ne cherche pas à vérifier la validité du document (risqué) 29

Document XML simple <?xml version= 1.0 encoding= ISO-8859-1?> <enseignant> <nom>abdelah</nom> <prenom>ben KAdour</prenom> <grade>consultant</grade> <enseignements> <cours type= cm > <titre>xml</titre> <volume>24</volume> </cours> <cours type= td > <titre>data-mining</titre> <volume>33</volume> </cours> </enseignements> </enseignant> Pas de DTD Simple respect de la syntaxe : <element attribut= valeur > contenu </element> 30

FireFox Bonne syntaxe Syntax Error 31

Cours XML : Plan Introduction Historique, champ d applications, but du cours Mise en œuvre Syntaxe, structure, rédiger un document XML Rédaction sommaire Exercice de syntaxe Premiers éléments de DTD 32

Exercice de syntaxe Créez un document XML annuaire1.xml Construisant un annuaire Comportant des entités de type personne Chaque personne a une identite L identite stipule : un nom, un prenom, et une adresse Une adresse est donnée par : une rue, un code-postal, une ville et un ou plusieurs numéros de telephone On précise que le telephone peut être de type «mobile» ou «fixe» 33

Correction <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE annuaire SYSTEM "annuaire.dtd"> <annuaire> <personne> <identite> <nom>achour</nom> <prenom>hamza</prenom> <adresse> <rue>25 avenue de 05 juillet 1962 </rue> <cp>16000</cp> <ville>alger</ville> <tel>071002500</tel> </adresse> </identite> </personne> <personne> <identite> <nom>aomar</nom> <prenom>ahmed</prenom> <adresse> <rue>18 avenue du Ibn Badis</rue> <cp>10000</cp> <ville>bouira</ville> <tel>026942525</tel> </adresse> </identite> </personne> </annuaire> 34

Document XML <?xml version= 1.0 encoding= UTF-8 standalone= yes?> <?xml-stylesheet type= text/xsl href= test.xsl?> Prologue <!DOCTYPE enseignant [ <!ELEMENT enseignant (nom, prenom, grade, enseignements) > <!ELEMENT nom (#PCDATA) > <!ELEMENT prenom (#PCDATA) > <!ELEMENT grade (#PCDATA) > <!ELEMENT enseignements (cours+) > <!ATTLIST cours type CDATA #REQUIRED> <!ELEMENT cours (titre, volume) > <!ELEMENT titre (#PCDATA) > <!ELEMENT volume (#PCDATA) > ] > Déclaration <enseignant> <nom>abdelah</nom> <prenom>ben Kadour</prenom> <grade>consultant</grade> <enseignements> <cours type= cm > <titre>xml</titre> <volume>24</volume> </cours> <cours type= td > <titre>data-mining</titre> <volume>33</volume> </cours> </enseignements> </enseignant> Corps 35

Déclaration DTD (Document Type Definition) Interne : en toutes lettres dans le fichier Externe : dans un fichier extérieur [standalone= no ] Définit comment le document sera rédigé dans un langage standard propre à la DTD 36

Rédaction Sommaire Spécifier la DTD Définir les éléments Enfants Ordre Quantité Définir les attributs 37

Fichier exemple.xml DOCTYPE : DTD interne = [ ] <?xml version= 1.0 encoding= ISO-8859-1?> <!DOCTYPE racine [ <!ELEMENT racine (contenu)> <!ELEMENT contenu (#PCDATA)> ]> <racine> <contenu>blablabla</contenu> </racine> «DTD» 38

DOCTYPE : DTD externe SYSTEM Fichier exemple.xml <?xml version= 1.0 encoding= ISO-8859-1?> <!DOCTYPE racine SYSTEM exemple.dtd > <racine> </racine> <contenu>le contenu</contenu> Fichier exemple.dtd <!ELEMENT racine (contenu)> <!ELEMENT contenu (#PCDATA)> 39

DOCTYPE : DTD externe PUBLIC Il est possible de spécifier une DTD «publique» quand celle-ci est largement diffusée (standard particulier) ou accessible sur le web <!DOCTYPE racine PUBLIC url > 40

Syntaxe (simple) de DTD Déclaration des éléments <!ELEMENT elm > <!ELEMENT elm EMPTY> <!ELEMENT elm ANY> <!ELEMENT elm (#PCDATA)> Élément vide <elm/> Peut contenir n importe quoi Elément de données <elm>blablabla</elm> 41

Syntaxe (simple) de DTD Déclaration des sous-éléments obligatoires <!ELEMENT element > <!ELEMENT bar (foo)> <bar> contient un seul élément <foo> <!ELEMENT enfant (age,sexe)> <!ELEMENT enfant (garcon fille)> <enfant> contient deux éléments <age> et <sexe> DANS CET ORDRE <enfant> contient obligatoirement l un ou l autre des éléments <garcon>,<fille> 42

Syntaxe (simple) de DTD Déclaration des occurrences <!ELEMENT bar > <!ELEMENT bar (foo)> <!ELEMENT eleve (email?)> <!ELEMENT livre (chapitre+)> <!ELEMENT personne (tel*)> Contient UN SEUL élément <foo> (obligatoire) <eleve> contient UN OU AUCUN élément <email> <livre> contient UN OU PLUS éléments <chapitre> <personne> contient N IMPORTE QUEL NOMBRE d éléments <tel> 43

Syntaxe (simple) de DTD Cascade de déclarations <!ELEMENT personne (age,sexe,profession)> On peut bien sûr étendre le nombre d éléments obligatoires <!ELEMENT eleve (nom,prenom,email?)> <eleve> contient un <nom>, un <prenom>, et peut-être un <email> <!ELEMENT recueil (titre,(auteur,chapitre)+)> <recueil> contient un <titre>, puis un certain nombre non nul de couples <auteur>,<chapitre> 44

Définir une grammaire structurelle enseignant <!ELEMENT enseignant (nom,prenom,grade,enseignements?)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> nom prenom grade «?» «?» «?» <!ELEMENT grade (#PCDATA)> <!ELEMENT enseignements (cours+)> enseignements Cours type=? titre volume «?» «?» <!ELEMENT cours (titre, volume)> Cours titre <!ATTLIST cours type CDATA #REQUIRED> <!ELEMENT titre (#PCDATA)> type=? volume <!ELEMENT volume (#PCDATA)> 45

Syntaxe (simple) de DTD Spécifier le type des attributs <!ATTLIST element attribut > <!ATTLIST cours type CDATA #REQUIRED> Spécifie que l attribut est une chaîne de caractères <!ATTLIST client dossier ID #REQUIRED> <!ATTLIST cours niveau (debutant intermediaire confirme) #REQUIRED> La valeur donnée à l attribut doit être unique L attribut prend une des valeurs specifiées 46

Syntaxe (simple) de DTD Spécifier les attributs (ex: de type chaîne) <!ATTLIST element attribut > <!ATTLIST cours type CDATA #REQUIRED> Spécifie que l attribut doit toujours être fourni <!ATTLIST cours type CDATA #IMPLIED> l attribut peut ne pas être fourni, dans ce cas l application se charge de lui choisir une valeur <!ATTLIST cours type CDATA #FIXED CM > L attribut a toujours la même valeur CM 47

Syntaxe (simple) de DTD Plusieurs attributs Les uns à la suite des autres <!ATTLIST cours type CDATA #IMPLIED niveau (deb int conf) #REQUIRED> 48

Exercice de syntaxe DTD Construisez la DTD de l annuaire de tout à l heure Y ajouter que la rue peut être une simple chaîne ou un composé num-rue, nom-rue 49

Correction <!ELEMENT annuaire (personne*)> <!ELEMENT personne (identite)> <!ELEMENT identite (nom,prenom,adresse)> <!ELEMENT adresse (rue,cp,ville,tel)> <!ELEMENT rue (#PCDATA)> <!ELEMENT cp (#PCDATA)> <!ELEMENT ville (#PCDATA)> <!ELEMENT tel (#PCDATA)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> 50

Références Jean-François OMHOVER (à venir) http://webia.lip6.fr/~omhover/cours/ jean-francois.omhover@lip6.fr 51

Contact Taha Zerrouki http://tahadz.com http://infobouirauniv.wordpress.com Taha.zerrouki@gmail.com 52