Langages POUR LE WEB L3 MIAGE PL Université Joseph Fourier Celine.Fouard@imag.fr
Copyright c 2010 2016 Céline Fouard, PhD Ce cours a été rédigé par Céline Fouard. Il est très largement inspiré du cours d Emmanuel Promayon, PhD donné à Polytech Grenoble Certains chapitres sont inspirés de XML Cours et exercices, AlexandreBrillant,éditionsEyrollesetXSLT, Mastering XML Transformations, DougTidwell,O Reillyeditions. Les références des exercices sont donnés dans le texte. Si vous souhaitez utiliser ce document, merci de contacter Celine.Fouard@imag.fr
Table des matières Organisation du cours 1 1 Objectifs du cours... 1 2 Contrat Pédagogique... 1 3 Évaluation... 2 I Introduction 3 1 Langages informatiques... 3 2 Le langage xhtml... 4 II Le "langage" Xml 9 1 Introduction : les problèmes liés au HTML... 9 2 Exemple... 9 3 Éléments et attributs... 10 4 Les 8 points clés de XML... 10 5 Document bien formé... 13 III XPath 15 1 Node-set... 16 2 Les axes de recherche... 16 3 Sélectionner des parties de l arbre... 17 IV Modélisation de données 21 1 Objectifs... 21 2 Schéma et Instance... 21 3 Example... 23 4 Élément racine... 24 5 Types de Données... 24 6 Attributs... 31 7 Occurrences et Cardinalités... 31 8 Conventions de nommage du cours... 32 V Vocabulaire et espace de noms 33 1 Rappel... 33 2 Exemple des températures... 33 3 Définition du vocabulaire et de son nom... 34 4 Contraindre un document XML à un schema... 37 5 A qui appartiennent les éléments/attributs?... 38 VI XSLT: transformations en XML 39 1 Principes de fonctionnement... 40 2 Mécanisme Push... 41 3 Mécanisme Pull... 43 iii
iv TABLE DES MATIÈRES 4 Mécanisme de navigation... 44 5 Programmation... 47 VIIDe la modélisation aux traitements Introduction à Java 49 1 Statique/Dynamique... 49 2 La classe Java... 50 3 Algorithme... 51 4 Programme principal en Java... 51 5 Mise en place... 52 6 Équivalence XML Schema Java... 53 VIIIDu Statique au Dynamique : l Instanciation 55 1 Exemple : un nombre complexe... 55 2 Explication ligne par ligne... 56 IX Types primitifs en Java 61 1 Introduction... 61 2 Booléens en Java: boolean... 61 3 Les entiers: byte, short, int, long... 62 4 Les Réels: float et double... 63 5 Les Caractères : char... 63 6 Conversions automatiques... 64 7 Les Chaînes de Caractère en Java: le type non primitif String... 64 X Java : la classe! 67 1 Introduction... 67 2 Attributs / les champs... 67 3 Actions... 68 4 Constructeurs et Initialisation... 70 5 Autoréférence... 70 XI Vie de famille : héritage et polymorphisme 71 1 Introduction... 71 2 Principe de l héritage... 72 3 Héritage en Java... 72 4 Exemple d héritage... 73 5 Conséquences de l héritage... 74 6 Polymorphisme... 75 7 Accès aux membres de la superclasse... 76 XIIClasses Abstraites et Interfaces 79 1 Introduction... 79 2 Classes Abstraites... 79 3 Interface... 84 XIIIDOM/SAX/StAX: Analyser un document XML 87 1 Document Object Model: DOM... 88 2 Simple Api for Xml: SAX... 96 3 STreaming Api for Xml: StAX...100 4 Résumé des di érents parsers...103
Chapitre Organisation du cours 1 Objectifs du cours Ce cours explique comment: Formaliser des informations Organiser et décrire des données (typage et représentation) Structurer la représentation et les programmes grâce aux concepts de la programmation orientée objet Ce cours utilise la norme XML pour stocker les données. UML et XMLSchema sont utilisés pour décrire et organiser les données. En se basant sur UML et XMLSchema, le lien avec la Programmation Orientée Objet (POO) est simplifié. Le titre de ce cours peut être un peu déroutant car nous n étudieront pas ici les langages comme HTML, PHP, Javascript, etc. Si vous souhaitez en savoir plus sur tous ces langages, voyez votre cours d IHM. Ce site 1 peut également vous aider. Si vous souhaitez savoir pourquoi nous nous tournons plutôt vers le XML que les langages précédents, la réponse est dans un court métrage du Kansas State University 2. 2 Contrat Pédagogique Le cours de Langages pour le Web prend cette année une forme un peu particulière. Il est composé d un travail préparatoire que vous devez faire AVANT de venir aux sessions de CTD. En e et, chaque semaine, vous devez aller sur le site Chamilo 3 pour récupérer le polycopier de cours (au format pdf) et les éventuelles animations / exemples à étudier pour le prochain CTD. Vous devez, pour chaque CTD: 1. Lire et Apprendre les chapitres de cours fournis au format pdf. 2. Écouter / Regarder / Comprendre / Connaître les éventuels exemples / animations fournis avec le cours 3. Vérifier vos connaissances en faisant Le QCM correspondant aux chapitres sur Chamilo 4 L exercice corrigé du polycopier de TD (sans regarder la correction avant de l avoir fait) et vérifier vos réponses 1 http://www.commentcamarche.net/contents/1275-langages-du-web 2 https://www.youtube.com/watch?v=nllgopyxt_g 3 http://chamilo1.grenet.fr/ujf/courses/algorithmiqueampprogrammationobjet 4 http://chamilo1.grenet.fr/ujf/courses/algorithmiqueampprogrammationobjet 1
2 CHAPITRE. ORGANISATION DU COURS 4. Préparer d éventuelles questions à poser en CTD Le CTD commencera systématiquement par un QCM noté sur la partie de cours à voir. Ce QCM pourra reprendre des questions du QCM Chamilo et/ou des exercices corrigés. 3 Évaluation La note finale de l UE Langages pour le Web sera composée pour 2/3 de la note de l examen final pour 1/3 de la note de contrôle continu, elle-même composée de de la moyenne des notes des QCM de CTD de la note du mini-projet TUX de la note de la partie LW du Projet Applicatif Intégrateur