les technologies xml
Post on 18-Jan-2016
36 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 -
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
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
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.
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
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>
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 --}--}
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))
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"
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"])
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
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
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
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
15
Exemple de document XUL :Exemple de document XUL :
XUL XUL 2/22/2
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…
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
……
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
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
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
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 …
top related