Docstoc

CNAM-XML-2

Document Sample
CNAM-XML-2 Powered By Docstoc
					XML
origine - concept - techniques



        Tuyêt Trâm DANG NGOC

                Laboratoire PRiSM
       Université de Versailles-Saint-Quentin
               <dntt@prism.uvsq.fr>

                                                Cours 2/2
Récapitulatif XML



  Résumé des concepts du cours précédent
  XML (1/3)

     un standard défini par l'organisme de
      normalisation W3C (World Wide Web Consortium)
     dérivé des standards HTML et SGML
     séparation du fond et de la forme (du
      contenu et de la présentation)
     semi-structuré
            arborescent
            structure plus ou moins définie

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   3
  XML (2/3)

     un langage balisé
   Déclaration format XML       <?xml version="1.0" encoding="ISO-8859-1"?>
   Déclaration schéma associé <!DOCTYPE biblio SYSTEM "bibliot_1.dtd">
   Déclaration feuille de style <?xml-stylesheet type="text/xsl" href="style.xsl"?>
    Elements                                  <bibliotheque>
    Balise ouvrante                               <livre isbn="2-212-08932-5">
          Contenu
                                                       <titre>Programmation Linux 2.0</titre>
          Attribut
                                                       <prix devise="EUR">28.88</prix>
             Nom d'attribut
             Valeur d'attribut                    </livre>
                                              </bibliotheque>
     Balise fermante


Tuyêt Trâm DANG NGOC - Université de Versailles              mercredi 24 août 2011              4
  XML (3/3)

     Plus strict que HTML, moins que SGML
     Un document XML DOIT être bien formé :
            une seule racine
            balises correctement imbriquées
            attributs correctement spécifiés
            caractères XML valides
     un document XML PEUT être valide :
            structure et les contenus du document conformes à des
             règles spécifiées par un "vocabulaire (DTD ou XML-
             Schéma)

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   5
  Standards connexes à XML - résumé

     Décrire la structure d'un document XML
             DTD : anciennement
             XML-Schema : intègre typage et contraintes
     Présenter un document XML
             XSL/XSLT Transformation d'un document XML en un autre
              document XML ou un document dans un autre format (HTML, PDF)
     Se repérer dans un document XML
             XPath Navigation dans un document XML à l'aide d'expressions et de
              prédicats simples
     Différencier les documents XML
             XML Namespace Distinction de vocabulaires différents



Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011            6
Standards XML émergents

 Normalisé et produits existants, mais peu
 d'utilisation industrielle encore ou alors
 très spécialisée
 En cours de normalisation
 Etudes de quelques normes
    XQuery
    XLink
    RDF
  Langages d’interrogation

     Besoins :
            Opérateurs standards de requêtes sur bases de données
            Navigation dans les données
            Recherche par motifs
            Interrogation du schéma et des données
            Construction du résultat
     Type de langages
            Extension de langages classiques : SGMLQL, HyOQL,
             LOREL/OEM-QL
            Conçus pour le semi-structuré : XML-QL, XQL, QUILT
            Normalisation : XPath, XQuery

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   8
  Langage de requête sur XML : XQuery

                                                                   for $var in expr
     •Collection d’arbres utilisés
     •Equivalent du FROM de SQL                             F

    •Mémorisation d’arbres                                  L      let $var := expr
    •Affectation de variables locales
                                                           W       where expr
    •Condition (élagage)
    •Equivalent du WHERE de SQL                             O      order-by $var
    •Ordonnancement
    •Equivalent de ORDER-BY de SQL
                                                            R      return expr

                                  •Sous-arbres sélectionnés
                                  •Présentation des sous-arbres
                                  •Equivalent du SELECT de SQL avec une reconstruction
Tuyêt Trâm DANG NGOC - Université de Versailles     mercredi 24 août 2011                9
                                                                        <hotel>
          Exemple XQuery (1)                                             <nom>Le Loir</nom>
                                                                         <adresse>
                                                                          <rue>Nid</rue>
       Lister la liste des hôtels de Paris,                              <ville>Paris</ville>
                                                                         </adresse>
        et les trier par nom descendant                                  <telephone>0112345678</telephone>
            for $h in collection (« hotels »)/hotel                      <commentaire>On y dort bien !</>
                                                                        </hotel>
            where $h/adresse/ville = « Paris »
Requête




            return                                                     <hotel>
                                                                        <nom>La Marmotte</nom>




                                                              Données
                 <hotelparisien>                                        <adresse>
                             {$h/nom}                                     <rue>Terrier</rue>
                                                                          <ville>Versailles</ville>
                 </hotelparisien>                                       </adresse>
            order-by (nom descending)                                   <telephone>0124680246</telephone>
                                                                        <telephone>01642086421</telephone>
     Collection "hotels"                                               </hotel>
                                          <hotelparisien>
            hotel                                                      <hotel>
                                               La Marmotte
                                 Résultat
Schéma




                 nom                      </hotelparisien>              <nom>La Marmotte</nom>
                                                                        <adresse>
                 adresse                  <hotelparisien>                 <rue>Terrier</rue>
                      rue                      Le Loir                    <ville>Paris</ville>
                      ville               </hotelparisien>              </adresse>
  Tuyêt Trâm DANGtelephone
                  NGOC - Université de Versailles                       <telephone>0187654321</telephone>
                                                           mercredi 24 août 2011                             10
  Exemples XQuery (2)

 Noms de tous les restaurants sous forme de fragments XML
   collection (« restaurants »)/restaurant/nom
 Lister l’adresse des restaurants dans le 20eme arrondissement
  de Paris                                            Collection "restaurants"
   for $r in collection (« restaurant »)/restaurant       restaurant
   where $r/adresse/codepostal = « 75020 »                     nom
                                                               adresse
   return $r/adresse
                                                                    rue
                                                                   codepostal
   for $r in collection                                        menu
     (« restaurants »)/restaurant[adresse/codepostal=«75020 »]
   return $r/adresse


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011    11
  Exemples XQuery (3)

     Lister les noms des hôtels, le nom et le menu des
      restaurants dans la même rue         Collection "hotels"
            for $r in collection (« restaurants »)/restaurant               hotel
            for $h in collection (« hotels »)/hotel                             nom
            where $h/adresse/rue = $r/adresse/rue                               adresse
            return                                                                   rue
                                                                                     ville
               <hotelresto>                                                     telephone
                 {$h/nom}
                                                                          Collection "restaurants"
                 {$r/nom}
                 {$r/menu}                                                    restaurant
               </hotelresto>                                                       nom
                                                                                   adresse
                                                                                        rue
                                                                                        codepostal
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011            menu              12
  XQuery - fonctionnalités

      Expression de chemin XPath : /a//b[c = 5]
      Expressions FLWR : FOR ... LET ... WHERE ... RETURN
      Constructeurs d'éléments : <a> ... </a>
      Variables et constantes: $x, 5
      Operateurs et appels de fonctions: x + y, -z, foo(x, y)
      Expressions conditionnelles : IF ... THEN ... ELSE
      Quantifieurs: EVERY var IN expr SATISFIES expr
      Expressions d'ordonnancement : expr ORDER-BY (expr
       ASCENDING , ... )
      Quelques propositions pour INSERT, REPLACE, DELETE


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   13
  XLink

     Exprimer des liens entre fragments XML
     Aller au delà du simple usage des
      identificateurs
     Différents types de liens
     Généricité




Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   14
  Xlink : exemple

     [ ... ] <livre id="z42">
        <titre>The Design of the UNIX Operating System</titre>
        <chapitre>General overview of the system</chapitre>
        <chapitre>Introduction to the kernel</chapitre>
        <chapitre>The buffer cache</chapitre>
        [...]
     </livre> [...]

     http://.../fichier_livre.xml#ID(z42),CHILD(3,CHAPTER)



Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   15
  RDF

     RDF (Ressource Description Framework) : cadre
      permettant de décrire et d’échanger les
      métadonnées.
            Une ressource (Ressource) est tout ce qui peut
             avoir une URI.
             ex : http://www.w3.org/index.html
            Un Type de propriété (Property Type) est une
             ressource qui a un nom et peut être utilisé comme
             propriété. ex : Auteur, Titre

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   16
  RDF

            Une propriété (Property) est une combinaison
              d’une ressource, d’un type de propriété et d’une
              valeur.
            ex : W3C Ressource Description Framework comme titre
                pour http://www.w3.org/RDF


               <RDF: Description href=‘http://www.w3.org/RDF’>
               <Titre>W3C Ressource Description Framework</Titre>
               <Home-Page RDF: href=‘http://www.w3.org’>
               </RDF:Description>
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   17
Outils de programmation XML


      DOM
      SAX
      SOAP
  Outils de programmation XML

     Interfaces de programmation spécifiées par le
      W3C
     Interfaces de programmation XML en Java,
      C++, Perl, ...
     Implémentation diverses
            Apache
            IBM
            ...

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   19
  Document XML – Flux SAX – Arbre DOM
                                            startDocument ()
 <personne>                                 startElement (personne)
   <nom>                                    startElement (nom)
                                            characters (Cover)               personne
     Cover
                                            endElement (nom)                      nom
   </nom>                                                                            #text: Cover
   <prenom>                                 startElement (prenom)
                                            characters (Harry)                    prenom
     Harry
                                            endElement (prenom)                      #text: Harry
   </prenom>
                                            startElement (adresse)                adresse
   <adresse>
                                            startElement (rue)                          rue
     <rue>                                                                                  #text: Stendhal
        Stendhal                            characters (Stendhal)
                                            endElement (rue)                            ville
     </rue>                                                                                 #text: Paris
     <ville>                                startElement (ville)
        Paris                               characters (Paris)
     </ville>                               endElement (ville)
   </adresse>                               endElement (adresse)
 </personne>                                endElement (personne)
                                                          ()
                                            endDocumentmercredi 24 août 2011
Tuyêt Trâm DANG NGOC - Université de Versailles                                                          20
  SAX (Sample API for XML)

     Modèle simplifié d'événement.
     Types d'événement :
            début et fin de document ;
            début et fin d'éléments ;
            attributs, chaîne de caractères.
     Utilisé dans les implémentations des parseurs
      XML du domaine public.


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   21
  SAX

Fonctionne sur le principe des callbacks (rétro-appels)
Au fur et à mesure de la lecture document XML, le parseur
 appelle des fonctions correspondants aux évènements
 rencontrés avec les paramètres appropriés
Ces fonctions sont définies par une interface standards et
 doivent être implémentées de telle sorte à répondre aux
 besoins de l'application
                   startDocument                  début du document
                   endDocument                    fin de document
                 startElement                     début element
                 endElement                       fin élément
                 characters
Tuyêt Trâm DANG NGOC - Université de Versailles   contenu d'élément
                                                   mercredi 24 août 2011   22
<livre isbn="2-212-08932-5"                                                 Application Handler
date="1995">
<titre>                                                                 startDocument () {
   Linux Kernel 2.0                                                     Afficher "Debut -"}
</titre>
<auteur id="1">                                                         startElement (nom_balise,
        <nom>                                                                        tableau_attributs){
          Card                                                          Afficher nom_balise
       </nom>
</auteur>
                                                                        Afficher attributs entre crochets
</livre>                                                                Afficher ':'
              XML                                                       Ouvrir parenthèse}
                                                                        characters (contenu,
 startDocument ()                            Parseur SAX                debut, longueur){
 startElement ("livre", [isbn="2-212-08932-5",                          Afficher contenu en bleu}
                        date="1995">])
 startElement ("titre", [])                                             endElement (nom_balise){
 characters ("Linux Kernel 2.0", 0, 16)                                 Fermer parenthèse}
 endElement ("titre")
 startElement ("auteur", [id="1"])                                      endDocument () {
 startElement ("nom", [])
 characters ("Card", 0, 4)                                              Afficher "- Fin"}
endElement ("nom")                                    Résultat
endElement ("auteur")                             Debut - livre [2-212-089-5, 1995]: (
 endElement ("livre")
 endDocument ()                                   titre [] : ( Linux Kernel 2.0 ) auteur [1] : (
Tuyêt Trâm DANG NGOC - Université de Versailles                Card ) ) Fin
                                                  nom [] : (mercredi 24)août-2011                     23
  DOM (Document Object Model)

     API d'accès aux documents XML
     Interfaces d'accès en IDL
     Modèle de traitement d'arbres pour l'accès et
      la mise à jour
     API de manipulation d'arbres, d'objets typés
      avec des attributs
            parcours
            ajout
            suppression

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   24
  Modèle DOM

     Dans le modèle DOM, toute les classes dérivent du
      type Node.
     La classe Document représente le document XML
     La classe Element représente les éléments du
      document XML.
     Document ne peut posséder qu’un seul fils de type
      Element (XML n'a qu'une seule racine du document)
     Attribute représente les attributs d'un élément
     La classe Text représente le contenu textuel d'un
      Element ou d'un Attribute

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   25
                         Document                                Attribute                  Text
                     nodeValue : []                         name : isbn                  Value : "2-212-08932-5"
                                                            nodeValue : []
                                     Element
                                                                              Attribute              Text
                                 nodename : livre
                                 nodevalue : []                          name : date               Value : "1995"
                                                                         nodeValue : []
                                                  Element
                                             nodename : titre                        Text
                                             nodevalue : []                         Value : "Linux Kernel 2.0"
<livre isbn="2-212-08932-5"
date="1995">
<titre>                                           Element                           Attribute           Text
   Linux Kernel 2.0                                                           name : id              Value : "1"
</titre>                                     nodename : auteur
<auteur id="1">                              nodevalue : []                   nodeValue : []
        <nom>
          Card
                                                              Element                            Text
       </nom>
</auteur>                                               nodename : nom
</livre>                                                                                     Value : "Card"
Tuyêt Trâm DANG NGOC - Université de Versailles
                                                        nodevalue : []
                                                            mercredi 24 août 2011                                26
  Invocation de services

     Invocations d'objets                               service                              service
            RPC (1980)
                                                                publier
            CORBA                                                              service       publier

            Java RMI                                                               publier
            Microsoft DCOM                                       publier                 Services
                                                  service
     Format spécifique                                                                   registry
                                                                          requete
     Protocole de transport                                                     reponse
      spécifique                                                                      chercher


                                                                            Application
                                                                              cliente
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011                                 27
  Invocation de services
    Format XML ?
           Système de typage                            service                              service
            (XML-Schema)                                        publier
                                                                                service       publier
           Format de codage                             WSDL
            universel
                                                                                       WSDL
                                                                                    publier
                                                                                    WSDL
           Sécurisation                                          publier                 Services
                  Authentification, Gestion      service
                                                              WSDL                        registry
                   de clef                                                requete                UDDI
                  Chiffrement, Signature                                        reponse
       Contrôle de transaction                                             SOAP      chercher
     Protocole
            HTTP : protocole web                                           Application
            SMTP : protocole de mail                                         cliente
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011                                 28
  SOAP (Simple Object Access Protocol)

     Défini par le W3C
     Envoi de message formaté en XML en
      utilisant HTTP pour les véhiculer
            Pour invoquer des services web
            Pour récupérer des réponses en XML
     Utilisation de XML comme format universel
      d'encodage
     Possibilités de contrôles (transaction,
      sécurité)

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   29
  WSDL, USSDI

     WSDL (Web Service Description Language) :
            description d'une API en XML
            récupérable par l'intermédiaire d'un registry UDDI
     UDDI (Universal Description, Discovery and
      Integration)
            répertoire de services (spécifiés en documents
             XML)
            défini en WSDL


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   30
  Protocole SOAP
                                                                             Serveur Web

                                                                          Port de
                                                  <requete/>              connexion

                     Traducteur                                                              Serveur
                                                  HTTP
                     SOAP                                                                    d'application
Application                                       <réponse/>                               RPC local
cliente
                                                                                 Parseur
                                                                                 XML

                                                    Internet

                                          Pare-feux (firewall)
Tuyêt Trâm DANG NGOC - Université de Versailles                mercredi 24 août 2011                         31
  Composition d'un message SOAP



                             En-tête du protocole
                             (HTTP, SMTP)


                                  En-tête SOAP

                                Corps du message




Tuyêt Trâm DANG NGOC - Université de Versailles     mercredi 24 août 2011   32
  Requête SOAP

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
  <m:chercherAuteur xmlns:m="http://livre.com">
    <titre>La Huitieme Couleur</titre>
    <edition>Atalante</edition>
  </m:chercherAuteur>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   33
   Réponse SOAP


<SOAP-ENV:Envelope
 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
 SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
 <SOAP-ENV:Body>
  <m:chercherAuteurReponse xmlns:m="http://ns.livre.com">
   <auteur>Terry Pratchett</auteur>
  </m:chercherAuteurReponse>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>



 Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   34
...                                               Definition WSDL
<wsdl:types>
   <xsd:element name="chercherAuteur">
  <xsd:complexType>
    <xsd:sequence>
     <xsd:element name="titre" type="string"/>
       <xsd:element name="edition" type="string"/>
    </xsd:sequence>
  </xsd:complexType>
   </xsd:element>
   <xsd:element name="chercherAuteurReponse">
  <xsd:complexType>
    <xsd:all>
     <xsd:element name="auteur" type="string"/>
    </xsd:all>
  </xsd:complexType>
   </xsd:element>
...
Tuyêt Trâm DANG NGOC - Université de Versailles    mercredi 24 août 2011   35
Langages XML


     VML
     MathML
     SMIL
     XHTML
  Langages XML

     XML est un méta-langage
     Chacun peut créer son propre langage à l'aide
      de XML
     Certains langages basés sur XML sont
      standardisés et spécialisés




Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   37
  VML (Vector Markup Language)

    XML et les données spatiales
  <v:shape type="#downArrow"
     style='position: absolute; left: 77; top: 16; width: 64; height: 128'
    />
    <v:shape type="#downArrow"
     style='position: absolute; left: 149; top: 16; width: 64; height: 128'
     adj=", 9450"
    />

                               <v:shape style='top: 0; left: 0; width: 250; height: 250'
                                     stroke="true" strokecolor="red" strokeweight="2" fill="true"
                                     fillcolor="green" coordorigin="0 0" coordsize="175 175">
                                 <v:path v="m 8,65
                                  l 72,65,92,11,112,65,174,65,122,100,142,155,92,121,42,155,60,100
                                  x e"/>
                                 </v:shape>
Tuyêt Trâm DANG NGOC - Université de Versailles       mercredi 24 août 2011                          38
  MathML (Math Markup Language)
                                                  <reln>
                                                   <eq/>
  •Recommandation W3C                              <ci>A</ci>
  depuis avril 1998                                <matrix>

  •Approche mixte                                     <matrixrow>
                                                            <ci>x</ci> <ci>y</ci>
  présentation / sémantique                           </matrixrow>

  •exploitable par des                                <matrixrow>
                                                            <ci>z</ci> <ci>w</ci>
  logiciels mathématiques                            </matrixrow>

  très utilisés.                                   </matrix>
                                                  </reln>
  ex. Mathematica, Maple
                                                         <apply><plus/>
                                                           <apply><power/>
                                                             <ci>x</ci>
                                                             <cn>2</cn>
                                                           </apply>
                                                                                    x2 + 4x + 4 =0
                                                           <apply> <times/>
                                                             <cn>4</cn>
                                                             <ci>x</ci>
                                                           </apply>
                                                           <cn>4</cn>
Tuyêt Trâm DANG NGOC - Université de Versailles          </apply>
                                                        mercredi 24 août 2011                        39
   SMIL (Synchronized Multimedia Integration Language)

         Format basé sur XML pour la présentation multimédia (audio, vidéo,
            image, texte, etc.).

             <smil xmlns="http://www.w3.org/2001/SMIL20/Language">
             <head>
                     <meta name="base" content="rtsp://helixserver.example.com/"/
                     ...layout information...
             </head>
             <body>
                     <par>
synchronisation :             <audio src="titre1.rm"/>
en parallèle                  <textstream src="lyrics/paroles1.rt" .../>
                              <img src="http://www.musique.com/images/album3.gif"
                     </par>
    sons </body>
             </smil>
 affichage textuel

   image
 Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011      40
  XHTML (eXtendel Hyper-Text Markup Language)

     Langage HTML rendu conforme à XML
     Un XML-Schéma a été associé à XHTML
          Mon CV                  <html>                         <!DOCTYPE html PUBLIC "-
                                   <head>                        //W3C//DTD html 4.0 transitional//fr">
     Voici ma photo                  <title>Mon CV</title>       <html>
                                   </head>                         <head>
                                   <body>                            <title>Mon CV</title>
                                    <p>Voici ma photo<br>          </head>
                                     <img src="photo.jpg">         <body>
     C'est tout                    <p>C'est tout                    <p>Voici ma photo
                                                                     <br/>
                                                                     <img src="photo.jpg"></img>

       Rendu                             HTML                      </p>
                                                                   <p>C'est tout</p>
                                                                 </body>
                                                                 </html>


Tuyêt Trâm DANG NGOC - Université de Versailles         mercredi 24 août 2011   XHTML                     41
Déploiement d'un site web avec
XML
  Scénario courant
           Navigateur                             Navigateur


    HTTP                      HTML
                                                                                     PDF      PDF
 (GET, POST)                 "public"                              HTML             public   interne
                                                                  "interne"

                                                  Serveur Web
Serveur Web
                              Script1                interne
   public
                          (CGI-BIN, MS                                 Script2   Script3     Script4
                          ASP, Servlet,...)

               SQL
      (ODBC, PLSQL...)                        TUPLES


                     Base de données existante relationnelle
                          (postgres, oracle, sybase, ...)
Tuyêt Trâm DANG NGOC - Université de Versailles          mercredi 24 août 2011                     43
  Scénario avec XML
           Navigateur                              Navigateur


    HTTP                      HTML                           HTML
                                                            "interne"                    PDF      PDF
 (GET, POST)                 "public"
                                                                                        public   interne
                                                                              XSL
                                                   Serveur Web
Serveur Web                                                                       XSL
                                                      interne                              XSL
   public                   XSL
                                                        Processeur XML
                                                  XML
                                    Programme d'interrogation et récupération XML

                     SQL                                                          TUPLES


                     Base de données existante relationnelle
                          (postgres, oracle, sybase, ...)
Tuyêt Trâm DANG NGOC - Université de Versailles           mercredi 24 août 2011                        44
  Pages web dynamiques

     JSP, ASP et PHP : des portions de code de
      programmation sont incluses dans le document
      HTML
     Servlets ou CGI : le document HTML est construit et
      renvoyé dans un flux HTTP
     Cocoon : le processus de production d'un document
      Web peut se décomposer en 3 logiques particulières
            Logiques                                                         Acteurs
            I. Document (statique, requête SQL)                              Rédacteur
            II. Traitements (filtrage, ajout, ...)                           Programmeur
            II. Présentation (HTML, PDF, WML)                                Web designer.
Tuyêt Trâm DANG NGOC - Université de Versailles      mercredi 24 août 2011                   45
  Cocoon

     Permet de séparer le contenu et la présentation
      de sites Web
     Accepte de nombreuses sources de données.
      fichiers, SGBD, LDAP, et des bases de données
      XML natives.
     Nombreux formats de sortie : HTML, WML,
      PDF, RTF, etc.
     Doit être installé au sein d'un moteur de
      Servlets pour fonctionner (ex : Jakarta Tomcat).

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   46
  Cocoon (caractéristiques)

     Aucune ligne de code Java n'est nécessaire
     Souplesse et réutilisabilité grâce à la séparation totale
      entre contenu du document et sa présentation
     Implémentation de XSL pour le format PDF
     Gestion des documents dynamiques et les outils
      disponibles
     Solutions simples aux incompatibilités entre
      browsers
     Authentification
     Administration du portail par une interface web
     Open-source, maintenu et de plus en plus utilisé
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   47
  Environnement classique/cocoon : statique


  <HTML/>
  <HTML/>
   <HTML/>                                                                <HTML>




   <XML/>
   <XML/>                                                    Transform.
    <XML/>                                                                <HTML>
                                                                XSL



                                                            <XSLT>
                                                            <XSLT>
                                                             <XSL>

           I                             II                 III
   Documents                     Traitement
Tuyêt Trâm DANG NGOC - Université de Versailles
                                                        Présentation
                                                  mercredi 24 août 2011            48
  Environnement classique/cocoon : dynamique


  <HTML/>
  <HTML/>
   <HTML/>                     Processeur                                 <HTML>
                           Perl
                                  Shell
                                          Tcl


   <XML/>
   <XML/>                      Processeur                    Transform.
    <XML/>                                                                <HTML>
                                  XSP                           XSL


                           Java
                                                            <XSLT>
                                                            <XSLT>
                                  XSP tags                   <XSL>

           I                             II                 III
   Documents                     Traitement
Tuyêt Trâm DANG NGOC - Université de Versailles
                                                        Présentation
                                                  mercredi 24 août 2011            49
Outils XML
  Outils d'édition XML

     XML Spy
     L'éditeur XML le plus complet. Gère les fichiers XML, les DTD, XSL, XMLSchéma
         (.xsd). Version d'évaluation de 30 jours.
     http://www.xmlspy.com/download.html

     Microsoft XML Notepad
     Editeur simple de documents XML-based data. Freeware.
     http://msdn.microsoft.com/xml/notepad/download.asp

     XML Pro
     Editeur XML assez complet. Shareware
     http://www.vervet.com/demo.html

     XMetal

     FrameMaker


Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011              51
Conclusion


      Qu'est ce que XML ?
      Quand est-ce que ça sert ?
      Quand est-ce que ça ne sert pas ?
  Résumé : Qu'est que XML ?

     XML est une méthode pour mettre des données
      structurées dans un fichier texte
     XML N'EST PAS HTML
     XML est textuel, mais n'est pas fait pour être lu tel
      quel
     XML est une collection de technologies
     XML est verbeux, mais ce n'est pas le problème
     XML est nouveau, mais pas tant que ça
     XML est license-free, indépendant de toute
      plateforme et bien supporté

Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   53
  Quand utiliser XML ?

     Quand on veut échanger des informations à
      travers des applications très différentes
     Si on a un site web qui va évoluer très souvent
      dans son fond et sa forme
     Si on crée un nouvel outil et une nouvelle
      application




Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   54
  Quand NE PAS utiliser XML ?

     Si l'on n'en n'a pas besoin...
     Si les logiciels qu'on utilise pour l'instant
      fonctionnent correctement et qu'on n'envisage
      pas d'évolution
     Si c'est juste pour frimer 




Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   55
Références XML
  XML

      La page web de référence du W3C (documentations,
       spécifications et références)
       http://www.w3.org/
      Les implémentations d'Apache sur la technologie XML (open-
       source)
       http://xml.apache.org
      Les travaux d'Apache sur COCOON (open-source) :
       http://cocoon.apache.org/2.0/
      Articles et travaux d'IBM sur XML (logiciels souvent en
       Open-Source)
       http://www-106.ibm.com/developerworks/xml/
      Documentation XML en francais (article et actualité +
       traductions de certains documents de référence du W3C)
       http://xmlfr.org/
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   57
  XML et les bases de données

     Document sur XML et les bases de données :
          http://www.rpbourret.com/xml/XMLAndDatabases.htm
     Document répertoriant tous les produits sur XML et
      les bases de données, et en particulier dans la section
      "middleware" tous les produits se "greffant" sur une
      BD classique et permettant de récupérer du XML.
          http://www.rpbourret.com/xml/XMLDatabaseProds.htm




Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   58
  XQuery

     W3C XQuery
          http://www.w3.org/TR/xquery.html
     W3C XML Query Use Cases
          http://www.w3.org/TR/xmlquery-use-cases.html
     W3C XML Query Requirements
          http://www.w3.org/TR/xmlquery-req.html
     W3C XML Query Data Model
          http://www.w3.org/TR/query-datamodel.html
     W3C XML Query Algebra
          http://www.w3.org/TR/query-algebra.html
Tuyêt Trâm DANG NGOC - Université de Versailles   mercredi 24 août 2011   59

				
DOCUMENT INFO
Shared By:
Categories:
Stats:
views:14
posted:8/24/2011
language:Vietnamese
pages:59