21
1 Les technologies XML Les technologies XML Cours 6 : Cours 6 : Quelques langages XML Quelques langages XML Janvier 2009 Janvier 2009 - Version 1.0 - - Version 1.0 -

1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

Embed Size (px)

Citation preview

Page 1: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

1

Les technologies XMLLes technologies XML

Cours 6 : Cours 6 : Quelques langages XMLQuelques langages XML

Janvier 2009 Janvier 2009

- Version 1.0 - - Version 1.0 -

Page 2: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

2

SOMMAIRE DE PRESENTATION DE QUELQUES SOMMAIRE DE PRESENTATION DE QUELQUES LANGAGES XMLLANGAGES XML

Présentation de quelques langages XMLPrésentation de quelques langages XML

XQueryXQuery

XMIXMI

XULXUL

Typologie des outils XMLTypologie des outils XML

Page 3: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

3

INTERACTION XML et AUTRES TECHNOLOGIESINTERACTION XML et AUTRES TECHNOLOGIES

Nécessité d’interagir avec des technologies Nécessité d’interagir avec des technologies existants :existants :

XML + SQL XML + SQL XQuery XQuery

XML + UML XML + UML XMI XMI

XML + IHM XML + IHM XULXUL

Page 4: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

4

XQUERY XQUERY 1/81/8

Objectifs du groupe de travail XML Query :Objectifs du groupe de travail XML Query :

trouver un modèle de données pour les documents XML,

des opérateurs de requêtes pour ce modèle de données,et un langage de requêtes basé sur ces opérateurs de requêtes.

XQuery est une spécification du W3C.XQuery est une spécification du W3C.

XQuery est un langage XML de requête qui XQuery est un langage XML de requête qui ressemble à SQL et qui est représentée sous ressemble à SQL et qui est représentée sous la forme d’une expression.la forme d’une expression.

Page 5: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

5

XQUERY XQUERY 2/82/8

Les composantes du langage XQuery :Les composantes du langage XQuery :

expression de cheminement (XPath)expression de cheminement (XPath)

litéraux (Entiers, Flottants, Doubles, Chaînes…),litéraux (Entiers, Flottants, Doubles, Chaînes…),

variables (Notation variables (Notation $nom$nom),),

opérateursopérateurs

définition et appel de fonctionsdéfinition et appel de fonctions

expressions FLWR expressions FLWR

expressions conditionnellesexpressions conditionnelles

conditions «Some» et «Every»conditions «Some» et «Every»

constructeur d’élémentconstructeur d’élément

Page 6: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

6

XQUERY XQUERY 3/83/8

Exemple de Exemple de document XML :document XML :

Exemple de Exemple de requête Xquery :requête Xquery :

Exemple de Exemple de résultat :résultat :

Evaluation de Evaluation de {…}{…}

<book isbn="isbn-0060229357"> <title>Harold and the Purple Crayon</title> <author> <first>Crockett</first> <last>Johnson</last> </author> </book>

<example> <p> Here is a query. </p> <eg> $i//title </eg> <p> Here is the result of the above query. </p> <eg>{ $i//title }</eg> </example>

<example> <p> Here is a query. </p> <eg> $i//title </eg> <p> Here is the result of the above query. </p> <eg> Harold and the Purple Crayon </eg> </example>

Page 7: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

7

XQUERY XQUERY 4/84/8

XQuery fournit des opérateurs sur les élémentsXQuery fournit des opérateurs sur les éléments

Logiques : Logiques : and orand or

Arithmetiques : Arithmetiques : + - * div mod + - * div mod

Comparaison : Comparaison : > < = <= >=> < = <= >=

Comparaison sur les nœuds : Comparaison sur les nœuds : == !==== !==

Ordre sur les nœuds : Ordre sur les nœuds : << >><< >>

XQuery intègre des listes d’élémentsXQuery intègre des listes d’éléments

Exemple : Exemple : [$A, $B, $C][$A, $B, $C]

Operateurs : Operateurs : union, intersect, exceptunion, intersect, except

Commentaires XQueryCommentaires XQuery{--{-- Ceci est un commentaire pour XQuery Ceci est un commentaire pour XQuery --}--}

Page 8: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

8

XQUERY XQUERY 5/85/8

Expression FLWR (FLoWeR) :Expression FLWR (FLoWeR) :FOR…LET…WHERE…RETURN…FOR…LET…WHERE…RETURN…

Exemple :Exemple :

forfor $b $b inin $input//book $input//book

wherewhere $b/author = $a $b/author = $a

returnreturn $b/title $b/title

Classement :Classement : SORTBY…ASCENDING/DESCENDINGSORTBY…ASCENDING/DESCENDING

Exemple :Exemple :

//book[price > 100] //book[price > 100]

sort bysort by (((author[1], title)(author[1], title) ascendingascending))

Page 9: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

9

XQUERY XQUERY 6/86/8

Conditions : Conditions : IF…THEN…ELSE…IF…THEN…ELSE…

Exemple :Exemple :

ifif ($widget1/unit-cost < $widget2/unit-cost) ($widget1/unit-cost < $widget2/unit-cost)

thenthen $widget1 $widget1 elseelse $widget2 $widget2

Typeswitch… case… default…Typeswitch… case… default…Exemple :Exemple :

typeswitchtypeswitch ($animal) ($animal) casecase element duck return quack($animal) element duck return quack($animal) casecase element dog return woof($animal) element dog return woof($animal)defaultdefault return "No sound" return "No sound"

Page 10: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

10

XQUERY XQUERY 7/87/8

FonctionsFonctionsExemple :Exemple :

define function summarydefine function summary(element employee* $emps) (element employee* $emps)

returns elementreturns element dept* dept*

{{ for $d in distinct-values($emps/deptno) for $d in distinct-values($emps/deptno)

let $e := $emps[deptno = $d] let $e := $emps[deptno = $d]

return <dept> {$d} <headcount> {count($e)} return <dept> {$d} <headcount> {count($e)} </headcount> </headcount>

<payroll> {sum($e/salary)} </payroll></dept><payroll> {sum($e/salary)} </payroll></dept>

}}

summarysummary(document("acme_corp.xml")//employee(document("acme_corp.xml")//employee

[location = "Denver"]) [location = "Denver"])

Page 11: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

11

XQUERY XQUERY 7/87/8

Sélection SOME (il existe)Sélection SOME (il existe)Exemple :Exemple :

{--{-- Retourner les titres des livres où --} Retourner les titres des livres où --}{--{-- SailingSailing et et WindsurfingWindsurfing sont dans le même paragraphe sont dans le même paragraphe --}--}FOR $b IN //book      FOR $b IN //book     

WHERE WHERE SOMESOME $p IN $b//para $p IN $b//para SATISFIES contains($p, "sailing")SATISFIES contains($p, "sailing")AND contains($p, "windsurfing")AND contains($p, "windsurfing")RETURN $b/title RETURN $b/title

Sélection EVERY (pour tout)Sélection EVERY (pour tout)Exemple :Exemple :

{--{-- Retourner les Retourner les bookbook où où sailingsailing est mentionné --} est mentionné --}{--{-- dans tous les paragraphes dans tous les paragraphes --}--}FOR $b IN //book      FOR $b IN //book     

WHERE WHERE EVERYEVERY $p IN $b//para $p IN $b//para SATISFIES contains($p, "sailing")SATISFIES contains($p, "sailing")RETURN $b/title RETURN $b/title

Page 12: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

12

XMI (XML Metadata Interchange)XMI (XML Metadata Interchange)

Standard OMGStandard OMGPermet de sauvegarder des données UML en XMLPermet de sauvegarder des données UML en XML

Objectifs de XMIObjectifs de XMIIndépendance des applicationsIndépendance des applications

Indépendance de la visualisationIndépendance de la visualisation

Les Outils qui implémentent XMILes Outils qui implémentent XMIRational RoseRational Rose

TogetherTogether

IBM VisualAge for Java, WebSphereIBM VisualAge for Java, WebSphere

Oracle Designer…Oracle Designer…

XML + UML = XMI XML + UML = XMI 1/21/2

Page 13: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

13

Exemple de document XMI :Exemple de document XMI :

<XMI xmi.version="1.1" xmlns:UML="org.omg/standards/UML"> <XMI.header> <XMI.metamodel name="UML" version="1.3"

href="UML.xml"/> <XMI.model name="vehicule" version="1" 

href="vehicule.xml"/> </XMI.header> <XMI.content> <UML:Class name="Voiture"> <UML:Classifier.feature> <UML:Attribute name="immatriculation" visibility="private"/> </UML:Classifier.feature> </UML:Class> </XMI.content></XMI>

XML + UML = XMI XML + UML = XMI 2/22/2

Page 14: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

14

XUL (XML-based User Interface Language, XUL (XML-based User Interface Language, prononcé prononcé zoolzool) est un langage de) est un langage de description d'interfaces homme/machine :description d'interfaces homme/machine :

Sa puissance de description est telle qu'elle permet Sa puissance de description est telle qu'elle permet de définir une application aussi complexe qu'un de définir une application aussi complexe qu'un navigateur web (XUL est au cœur de Mozilla et de navigateur web (XUL est au cœur de Mozilla et de Netscape 6). Netscape 6).

Certains voient en XUL le concurrent de java sur le Certains voient en XUL le concurrent de java sur le poste client : il existe des interpréteurs pour toutes poste client : il existe des interpréteurs pour toutes les plates-formes, XUL est donc un langage de les plates-formes, XUL est donc un langage de descriptions d'interface portable.descriptions d'interface portable.

De plus XUL étant un dialecte XML il ne nécessite De plus XUL étant un dialecte XML il ne nécessite pas de compétences en informatique pointues.pas de compétences en informatique pointues.

XUL XUL 1/21/2

Page 15: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

15

Exemple de document XUL :Exemple de document XUL :

XUL XUL 2/22/2

Page 16: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

16

TYPOLOGIE DES OUTILS TYPOLOGIE DES OUTILS XMLXML

Les éditeurs :Les éditeurs :pour documents XML,pour documents XML,

pour feuilles de style XSL (XSLT et XSL FO),pour feuilles de style XSL (XSLT et XSL FO),

pour les DTD et/ou les schémas, pour les DTD et/ou les schémas,

pour XLink et XPointerpour XLink et XPointer

ils sont wysiwig ou nonils sont wysiwig ou non ils sont validants ou nonils sont validants ou non

Quelques produits :Quelques produits :Emacs Emacs avec sxml-mode, xslide et tdtdavec sxml-mode, xslide et tdtd

Stylus Studio, XML SpyStylus Studio, XML Spy

Visual XML de IBM… Visual XML de IBM…

Page 17: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

17

TYPOLOGIE DES OUTILS TYPOLOGIE DES OUTILS XMLXML

Les visualisateurs :Les visualisateurs :Navigateurs : Internet Explorer 5.x+, Netscape 6+, Navigateurs : Internet Explorer 5.x+, Netscape 6+, Mozilla, Amaya, InDelv XML Browser, Opera…Mozilla, Amaya, InDelv XML Browser, Opera…

ils intègrent plus ou moins les différentes normes ils intègrent plus ou moins les différentes normes (XML, XSLT, DTD, Schémas, XSL FO…)(XML, XSLT, DTD, Schémas, XSL FO…)

Les convertisseurs :Les convertisseurs :DTD DTD Schémas, Schémas,

HTML HTML XML + XSL : WH2FO de Open Source HP XML + XSL : WH2FO de Open Source HP

RTF RTF FO : RTF2FO de Novosoft FO : RTF2FO de Novosoft

Modèle RationalModèle Rational XMI : XMI Add-in XMI : XMI Add-in

……

Page 18: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

18

TYPOLOGIE DES OUTILS TYPOLOGIE DES OUTILS XMLXML

Les API XML :Les API XML :DOM XML (Document Objet Model)DOM XML (Document Objet Model)

SAXSAX ( (Simple API for XMLSimple API for XML))

JAXP JAXP (Java API for XML Parsing) (Java API for XML Parsing)

SAXONSAXON

Les parseurs XML :Les parseurs XML :Xerces de Apache XML Project (XML 1.0, DOM 1 et 2, SAX Xerces de Apache XML Project (XML 1.0, DOM 1 et 2, SAX 1.0, JDK 1.1.x pour la version Java)1.0, JDK 1.1.x pour la version Java)

ProjectX de Sun (XML 1.0, DOM 1 et 2, Sax 1.0 et 2.0, JDK ProjectX de Sun (XML 1.0, DOM 1 et 2, Sax 1.0 et 2.0, JDK 1.1.6 à 1.2)1.1.6 à 1.2)

XML for Java de IBM (XML 1.0, DOM 1 et 2, SAX 1.0)XML for Java de IBM (XML 1.0, DOM 1 et 2, SAX 1.0)

XML parser for Java de Oracle (XML 1.0, DOM 1, SAX1.0, XML parser for Java de Oracle (XML 1.0, DOM 1, SAX1.0, JDK 1.1) ...JDK 1.1) ...

MSXML parser 4.0 de MicrosoftMSXML parser 4.0 de Microsoft

Page 19: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

19

TYPOLOGIE DES OUTILS TYPOLOGIE DES OUTILS XMLXML

Les processeurs XSLT et formatteurs XSL FO :Les processeurs XSLT et formatteurs XSL FO :Xalan de Apache XML Project Xalan de Apache XML Project

Fop de Apache XML Project Fop de Apache XML Project

XT de James ClarckXT de James Clarck

XSL:P de Keith ViscoXSL:P de Keith Visco

MSXML parser 4.0 de MicrosoftMSXML parser 4.0 de Microsoft

Xslt Compiler de Sun ...Xslt Compiler de Sun ...

Koala XSL engine Koala XSL engine

Les bases de données :Les bases de données :SQL Server 2000 de MicrosoftSQL Server 2000 de Microsoft

DB2 UDB V7.2 d’IBM : XML ExtendersDB2 UDB V7.2 d’IBM : XML Extenders

Page 20: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

20

TYPOLOGIE DES OUTILS TYPOLOGIE DES OUTILS XMLXML

Les plate-formes de développement :Les plate-formes de développement :

WSAD WSAD

JBuilder 5.1+JBuilder 5.1+

VB.NET 1.0VB.NET 1.0

Les serveurs d’applications :Les serveurs d’applications :

WebSphereWebSphere

WebLogicWebLogic

CocoonCocoon

JonasJonas

JBossJBoss

Page 21: 1 Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -

21

RESUME : LES OUTILS XMLRESUME : LES OUTILS XML

Principaux outils pour XML et XSLTPrincipaux outils pour XML et XSLT : :

Editeurs : Emacs, Stylus Studio, Morphon XML Editor, XML Notepad

Navigateurs : IE6, Netscape 6, Mozilla, Amaya

API de parsing : SAX, DOM, JDOM, JAXP

Parsers XML : Xerces …

Processeurs XSLT : XT, Xalan, Saxon

Serveurs XML : Cocoon …