220 likes | 375 Views
Les technologies XML. Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -. SOMMAIRE DE PRESENTATION DE QUELQUES LANGAGES XML. Présentation de quelques langages XML XQuery XMI XUL Typologie des outils XML. INTERACTION XML et AUTRES TECHNOLOGIES.
E N D
Les technologies XML Cours 6 : Quelques langages XML Janvier 2009 - Version 1.0 -
SOMMAIRE DE PRESENTATION DE QUELQUES LANGAGES XML • Présentation de quelques langages XML • XQuery • XMI • XUL • Typologie des outils XML
INTERACTION XML et AUTRES TECHNOLOGIES • Nécessité d’interagir avec des technologies existants : • XML + SQL XQuery • XML + UML XMI • XML + IHM XUL
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 d’une expression.
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
XQUERY 3/8 • Exemple de document XML : • Exemple de requête Xquery : • Exemple de résultat : • 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>
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 --}
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)
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"
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] return <dept> {$d} <headcount> {count($e)} </headcount> <payroll> {sum($e/salary)} </payroll></dept> } summary(document("acme_corp.xml")//employee [location = "Denver"])
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 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 WHERE EVERY $p IN $b//para SATISFIES contains($p, "sailing") RETURN $b/title
XML + UML = XMI 1/2 • 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 2/2 • 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>
XUL 1/2 • XUL (XML-based User Interface Language, prononcé zool) est un langage dedescription 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 2/2 Exemple de document XUL :
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 validants ou non • Quelques produits : • Emacs avec sxml-mode, xslide et tdtd • Stylus Studio, XML Spy • Visual XML de IBM…
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…) • 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 • …
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.1.6 à 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
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 d’IBM : XML Extenders
TYPOLOGIE DES OUTILS XML • Les plate-formes de développement : • WSAD • JBuilder 5.1+ • VB.NET 1.0 • Les serveurs d’applications : • WebSphere • WebLogic • Cocoon • Jonas • JBoss
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 …