1 Les technologies XML Cours 6 : Quelques langages XML Janvier Version 1.0 -
2 SOMMAIRE DE PRESENTATION DE QUELQUES LANGAGES XML Présentation de quelques langages XML XQueryXMIXUL Typologie des outils XML
3 INTERACTION XML et AUTRES TECHNOLOGIES Nécessité dinteragir avec des technologies existants : XML + SQL XQuery XML + UML XMI XML + IHM XUL
4 XQUERY 1/8 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 un langage XML de requête qui ressemble à SQL et qui est représentée sous la forme dune expression.
5 XQUERY 2/8 Les composantes du langage XQuery : expression de cheminement (XPath) litéraux (Entiers, Flottants, Doubles, Chaînes…), variables (Notation $nom), opérateurs définition et appel de fonctions expressions FLWR expressions conditionnelles conditions «Some» et «Every» constructeur délément
6 XQUERY 3/8 Exemple de document XML : Exemple de requête Xquery : Exemple de résultat : Evaluation de {…} Harold and the Purple Crayon Crockett Johnson Here is a query. $i//title Here is the result of the above query. { $i//title } Here is a query. $i//title Here is the result of the above query. Harold and the Purple Crayon
7 XQUERY 4/8 XQuery fournit des opérateurs sur les éléments Logiques : and or Arithmetiques : + - * div mod Comparaison : > = Comparaison sur les nœuds : == !== Ordre sur les nœuds : > XQuery intègre des listes déléments Exemple : [$A, $B, $C] Operateurs : union, intersect, except Commentaires XQuery {-- Ceci est un commentaire pour XQuery --}
8 XQUERY 5/8 Expression FLWR (FLoWeR) : FOR…LET…WHERE…RETURN… Exemple : for $b in $input//book where $b/author = $a return $b/title Classement : SORTBY … ASCENDING/DESCENDING Exemple : //book[price > 100] sort by ((author[1], title) ascending)
9 XQUERY 6/8 Conditions : IF … THEN … ELSE … Exemple : if ($widget1/unit-cost < $widget2/unit-cost) then $widget1 else $widget2 Typeswitch… case… default… Exemple : typeswitch ($animal) case element duck return quack($animal) case element dog return woof($animal) default return "No sound"
10 XQUERY 7/8 Fonctions Exemple : define function summary(element employee* $emps) returns element dept* { for $d in distinct-values($emps/deptno) let $e := $emps[deptno = $d] let $e := $emps[deptno = $d] return {$d} {count($e)} return {$d} {count($e)} {sum($e/salary)} {sum($e/salary)} } summary(document("acme_corp.xml")//employee [location = "Denver"])
11 XQUERY 7/8 Sélection SOME (il existe) Exemple : {-- Retourner les titres des livres où --} {-- Sailing et Windsurfing sont dans le même paragraphe --} FOR $b IN //book FOR $b IN //book WHERE SOME $p IN $b//para SATISFIES contains($p, "sailing") AND contains($p, "windsurfing") RETURN $b/title Sélection EVERY (pour tout) Exemple : {-- Retourner les book où sailing est mentionné --} {-- dans tous les paragraphes --} FOR $b IN //book FOR $b IN //book WHERE EVERY $p IN $b//para SATISFIES contains($p, "sailing") RETURN $b/title
12 XMI (XML Metadata Interchange) Standard OMG Permet de sauvegarder des données UML en XML Objectifs de XMI Indépendance des applications Indépendance de la visualisation Les Outils qui implémentent XMI Rational Rose Together IBM VisualAge for Java, WebSphere Oracle Designer… XML + UML = XMI 1/2
13 Exemple de document XMI : Exemple de document XMI : <XMI.metamodel name="UML" version="1.3" href="UML.xml"/> <XMI.model name="vehicule" version="1" href="vehicule.xml"/> XML + UML = XMI 2/2
14 XUL (XML-based User Interface Language, prononcé zool) est un langage de description d'interfaces homme/machine : Sa puissance de description est telle qu'elle permet de définir une application aussi complexe qu'un navigateur web (XUL est au cœur de Mozilla et de Netscape 6). Certains voient en XUL le concurrent de java sur le poste client : il existe des interpréteurs pour toutes les plates-formes, XUL est donc un langage de descriptions d'interface portable. De plus XUL étant un dialecte XML il ne nécessite pas de compétences en informatique pointues. XUL 1/2
15 Exemple de document XUL : Exemple de document XUL : XUL 2/2
16 TYPOLOGIE DES OUTILS XML Les éditeurs : pour documents XML, pour feuilles de style XSL (XSLT et XSL FO), pour les DTD et/ou les schémas, pour XLink et XPointer ils sont wysiwig ou non ils sont wysiwig ou non ils sont validants ou non ils sont validants ou non Quelques produits : Emacs avec sxml-mode, xslide et tdtd Stylus Studio, XML Spy Visual XML de IBM…
17 TYPOLOGIE DES OUTILS XML Les visualisateurs : Navigateurs : Internet Explorer 5.x+, Netscape 6+, Mozilla, Amaya, InDelv XML Browser, Opera… ils intègrent plus ou moins les différentes normes (XML, XSLT, DTD, Schémas, XSL FO…) ils intègrent plus ou moins les différentes normes (XML, XSLT, DTD, Schémas, XSL FO…) Les convertisseurs : DTD Schémas, HTML XML + XSL : WH2FO de Open Source HP RTF FO : RTF2FO de Novosoft Modèle Rational XMI : XMI Add-in …
18 TYPOLOGIE DES OUTILS XML Les API XML : DOM XML (Document Objet Model) SAX (Simple API for XML) JAXP (Java API for XML Parsing) SAXON Les parseurs XML : Xerces de Apache XML Project (XML 1.0, DOM 1 et 2, SAX 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 à 1.2) 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, JDK 1.1)... MSXML parser 4.0 de Microsoft
19 TYPOLOGIE DES OUTILS XML Les processeurs XSLT et formatteurs XSL FO : Xalan de Apache XML Project Fop de Apache XML Project XT de James Clarck XSL:P de Keith Visco MSXML parser 4.0 de Microsoft Xslt Compiler de Sun... Koala XSL engine Les bases de données : SQL Server 2000 de Microsoft DB2 UDB V7.2 dIBM : XML Extenders
20 TYPOLOGIE DES OUTILS XML Les plate-formes de développement : WSAD JBuilder 5.1+ VB.NET 1.0 Les serveurs dapplications : WebSphereWebLogicCocoonJonasJBoss
21 RESUME : LES OUTILS XML Principaux 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 …