CSI 3540 - Laboratoire 2 solution * Objectifs - Savoir créer des DTDs simples - Comprendre le DTD de XHTML - Développer les pages à l'aide du langage de balisage XHTML - Se familiariser avec Glassfish, un environnement intégré, entre autres, pour des conteneurs de servlets, de services et de pages statiques * Contenu du laboratoire - Définition de type de document (DTD) Voici une description en français des documents DTD : http://www.la-grange.net/w3c/html4.01/intro/sgmltut.html#h-3.3 - Étant donné le DTD suivant: <!ELEMENT tableau (entete?, (ligne+), propr?)> <!ELEMENT entete (#PCDATA)> <!ELEMENT ligne (#PCDATA)> <!ELEMENT propr EMPTY> <!ATTLIST propr num ID #REQUIRED> Pour chacun des exemples qui suivent, dites si le code XML est syntaxiquement correct, et donnez une brève description de l'erreur s'il y lieu, en vous référant au DTD. <tableau> <ligne>Un</ligne> <ligne>Deux</ligne> <ligne>Trois</ligne> </tableau> <tableau> <ligne>Un</ligne> <entete>Nombres</entete> </tableau> <tableau> <entete>Nombres</entete> </tableau> <tableau> <entete>Nombres</entete> <ligne>Un</ligne> <propr num="1"></propr> </tableau> - Concevoir un DTD Je souhaite sauvegarder en format XML des informations sur les démonstrateurs qui travaillent pour moi. Veuillez m'aider et concevoir un DTD, fichier demo.dtd, selon les spécifications suivantes: - L'élément racine est démonstrateurs - L'élément démonstrateurs a ou plusieurs fils démonstrateur - L'élément démonstrateur a un fils nom, suivi d'un fils courriel, suivi de zéro ou plus éléments url, suivi d'un élément optionnel relation - L'élément démonstrateur a un attribut obligatoire, sid, dont la valeur est un identifiant unique - L'élément démonstrateur a un attribut optionnel, correcteur, dont la valeur est soit vrai ou faux (en français) et la valeur par défaut est faux - L'élément nom a deux formats de contenu possible, dans le premier cas, le format est patronyme, suivi du prénom, suivi d'une liste, possiblement vide, d'initiales. Le second format est prénom, suivi d'une liste, possiblement vide, d'initiales, c'est-à-dire zéro ou plusieurs éléments initiale, finalement suivi du patronyme - L'élément patronyme ne contient que du texte - L'élément prénom ne contient que du texte - L'élément initiale ne contient que du texte - L'élément courriel ne contient que du texte - L'élément url n'a pas de balise fermante - L'élément url possède un attribut href - L'élément relation n'a pas de balise fermante - L'élément relation peut avoir un attribut chef dont la valeur est un identifiant existant du document - L'élément relation peut avoir un attribut subordonnés dont la valeur est une liste identifiants existants du document Voici deux documents valides et un document contenant plusieurs erreurs: demo1.xml (faites 'Save as' pour voir le contenu XML) demo2.xml (faites 'Save as' pour voir le contenu XML) demo4.xml (faites 'Save as' pour voir le contenu XML) Pour faciliter votre travail, voici un programme Java pour la validation de fichiers XML (le contenu du programme sera discuté en classe après l'examen partiel): Validator.java > java Validator demo1.xml (ne produit rien sur la sortie) > java Validator demo2.xml (ne produit rien sur la sortie) > java Validator demo4.xml (produit une liste de messages d'erreurs) - Conception de documents XHTML Les documents doivent être des documents valides XHTML Strict ou Frameset, de version 1.0 ou 1.1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org—xhtml1-strict.dtd <http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>"> Utilisez le site suivant pour la validation des pages : http://validator.w3.org Utilisez Glassfish pour servir les pages créées pour ce laboratoire (ou tout simplement Explorer). Si vous utilisez Glassfish, les pages doivent être disponibles à l'URL qui suit : http://localhost:8080/laboratoire/01 URL pour HTML 4.01 (la base de XHTML 1.0 et 1.1) http://www.la-grange.net/w3c/html4.01/cover.html -- Exercises 2.30 de la page 118 du livre. Essentiellement, vous devez créer des pages HTML pour quelques éléments du langage. --- Le premier document est un index global et comprend une liste ayant deux items: lien vers un index d'éléments et lien vers un index d'attributs. --- L'index d'éléments est composé d'un tableau à 2 colonnes: 1ere colonne est le nom de l'élément, 2ième colonne pour la liste des attributs. Il doit y avoir un attribut par ligne et le nom de l'élément doit couvrir toutes ces lignes. La table devrait être facile à lire. Il faut donc contrôler l'emplacement du texte à l'intérieur de la cellule. Voir page 118 pour plus de détails. Suggestion pour la liste des éléments : meta, a, div et span (a) élément meta Nous avons vu en classe l'utilisation de meta et de l'attribut http-equiv pour ajouter une déclaration de jeu de caractères. - Complémente cette discussion avec une présentation de meta et de l'attribut ROBOTS : Section B.4 'Remarques pour aider les moteurs de recherche à indexer votre site Web' http://www.la-grange.net/w3c/html4.01/appendix/notes.html#h-B.4 (b) élément a Cet élément joue deux rôles: source et destination d'un lien. Présente un exemple ou a sert de destination. Par exemple, <a name="h-B.4">B.4</a> de la page qui suit: http://www.la-grange.net/w3c/html4.01/appendix/notes.html#h-B.4 (c) div et span seront utiles pour la discussion sur les feuilles de styles en cascade - Exercises 2.31 des pages 118 et 119 du livre. - Installation de GlassFish et exploration de l'environnement -- Qu'est-ce que GlassFish Un environnement intégré pour des conteneurs de servlets, de services, un serveur de pages statiques, et même une banque de données. -- Téléchargez et installez glassfish.dev.java.net -- Démarrer l'application bin/asadmin start-domain domain1 --- Survol des fonctionnalités Explorer le côté serveur et le côté administration de l'application. http://localhost:8080 http://localhost:4848 -- Éditer ou changer la page de départ par défaut domains/domain_name/docroot/index.html -- Déployer une application Votre démonstrateur vous donnera de brèves explications sur le format .war. Archive, en format .jar, ayant une structure de fichiers (partiellement) prédéfinie, ... -- Explorer les diverses façons de déployer une application Web. hello.war echo.war snipsnap.org --- Nous revisiterons, en profondeur, certaines façons plus tard, par exemple, l'utilisation de asant. --- La façon d'installer les applications Web et librairies de méthodes présentées dans le livre n'est pas très élégante et demandera un certain effort lors des mises à jour de TOMCAT/GlassFish. Il est préférable de définir des variables d'environnement qui pointent vers des répertoires contenant les librairies locales. Ce problème est presque inexistant avec GlassFish (qui fournit sa propre version de ant). Suggestion: déploiement de hello.war à l'aide d'autodeploy et de snipsnap à l'aide de la console d'administration. 1. répertoire autodeploy cp hello.war domains/domain1/autodeploy 2. déploiement à l'aide du menu Web Application de la console http://localhost:4848/ 3. ant (présenté plus tard dans le semestre) Regarder le résultat http://localhost:8080/hello/ http://localhost:8080/snipsnap Pour compléter l'installation, il faut consulter domains/domain1/logs/server.log (chercher 'Your installation key is ...') --- Quelques tests à l'aide de telnet localhost 8080 --- Stopper GlassFish