820 likes | 939 Views
Chap III - XML Présentation ("Basic"). Chap VIII - XML Processeurs "Advanced". http://www.polytech.unice.fr/~pfz/LANGDOC/COURS 10 chapitres en 2 versions .ppt et .pdf accès distant mais sans les exemples ou après téléchargement du répertoire COURS accès local avec les exemples.
E N D
Chap III - XML Présentation ("Basic") Chap VIII - XML Processeurs "Advanced" http://www.polytech.unice.fr/~pfz/LANGDOC/COURS 10 chapitres en 2 versions .ppt et .pdf accès distant mais sans les exemples ou après téléchargement du répertoire COURS accès local avec les exemples www.polytech.unice.fr/~pfz pfz@polytech.unice.fr
Sommaire du Cours • Chap I - Documents: Historique, Modèles, Standards et Références • Chap II - HTML: voir le cours CIP1-CMD & HTML5 • Chap III- XML: "eXtensible Markup Language", les Bases • Chap IV- DTD: "Document Type Definition" • Chap V- CSS: Feuilles de Styles en Cascades& CSS3 • Chap VI - DOM, DHTML: "Domain Object Model "& Programmation Dynamique en HTML & SPRY & JQuery • Chap VII - XSD: Schémas XML • Chap VIII -XML "Advanced" Processeurs et Dialectes: XPath, Xlink • Chap IX -XSLT: Transformations XML • Chap X -RDF: "Resource Description Framework" • Chap IX -AJAX: "Asynchronous JavaScript And XML" • Savoir-Faire: BasicAdvanced State of the Art • Etat de l'Art: HTML5CSS3SPRYJQuerySVGMathMLRDFAJAX 29/10/2014 Transparent 2
Web EPU courses (in French) Création & Manipulltion de Document http://www.polytech.unice.fr/~pfz/cmd.html Introduction to Internet http://rainbow.i3s.unice.fr/iai/ Langages & Documents http:www.polytech.unice;fr/~pfz/document.html W3C tutorial : http://www.w3schools.com/ Mozilla Development Center http://developer.mozilla.org/en/docs/Main_Page W3C, http://www.w3.org/ Web Developer's Bookmarkshttp://antriksh.com/resources/ XML Wiki Book http://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange Biblio: many issues at EPU's lib Some References 29/10/2014 Transparent 3
Documentation et Manuels Documents du web liste de balises HTML code des couleurs RVB code HTML des caractères ISO liste des extensions de fichiers (formats) Expressions Rationnelles Manuels. Expressions régulières sous Emacs Recherche et remplacement sous Emacs compléments Emacs grep sous Unix 29/10/2014 Transparent 4
Web Reference Browser metadata .xml de XML vers HTML5+CSS3 29/10/2014 Transparent 5
Doc Example Browser metadata .xml de XML vers HTML5+CSS3+JS 29/10/2014 Transparent 6
API – Application Programming Interface ANSI – American National Standards Institute ASCII – American Standard Code for Information Interchange (128 car.) AJAX – Asynchronous JavaScript & XML CSS – Cascading Style Sheets DHTML – DynamicHTML DOM – Document Object Model DTD – Document Type Definition HTML – HyperText Markup Language HTTP – HyperText Transfer Protocol ISO - International Standards Organization Mozilla - Fondation (global community for free and open Internet software)) MVC - Model View Controler RDF - Resource Description Framework REST - Representational State Transfer RIA - Rich Internet Application RSS - Really Simple Syndication SGML - Standard Generalized Markup Language SOAP - Simple Access Object Protocol SPRY - Extensions JS pour HTML - Adobe Lab. SVG - Scalable Vector Graphics UNICODE – World wide Code (16 bits) UTF-8 – Unicode version 8 bits URL / URI – Uniform Resource Locator / Identifier XML – eXtensible Markup Language XBL – XML Binding Language (Mozilla) XForms – XML Forms XHTML – HTML 4 en XML XLink – XML Linking Language XPath – XML Path Language XPointer – XML Pointer Language XSL - eXtensible Stylesheet Language XSLT – XSL Transformations XSL-FO – XSL Formatting Objects XSD – XML Schémas Définition Language XUL – XML User Language (Mozilla) W3C – World Wide Web Consortium Web2.0 – Web dit "sémantique" WHATWG - Web Hypertext Application Technology Working Group WSDL - Web Service Description Language Lexique 29/10/2014 Transparent 7
Chap III - XML Présentation ("Basic") Génèse de XML MetaLangageNorme LexicaleNorme SyntaxiqueEspaces de noms - NamespacesDialectes : XHTML, MathML, SVG, etc Techniques XML
XML - La Génèse et les Recommandations (W3C) XML should be compatible with SGML XML should be easy to use in the Internet The number of optional characteristics should be minimized XML-documents should be easy to generate and human-readable XML should be supported by a variety of application It should be easy to write programs for XML XML should be put into practice on time In 1996 a team under the guidance of Jos Bosak attending the W3C-consortium was established to make SGML web-suitable. The result was a 30-page specification, which received in February 1998 the status of a "W3C-recommendation" and was named "Extensible Markup Language (XML)". XML Information content Extensible set of tags Data exchange language Greater hypertext linking HTML Information presentation Fixed set of tags Data presentation language Limited hypertext linking 29/10/2014 Transparent 9
XML - Applications Publication: Database content can be converted into XML and afterwards into HTML by using an XSLT stylesheet. Making use of this technique, complex websites as well as print media like PDF files can be generated. Information no longer has to be stored in different formats (i.e. RTF, DOC, PDF, HTML). Content can be stored in the neutral XML format and then, using appropriate layout style sheets and transformations, brochures, websites, or datalists can be generated (see more in Chapter 17.) Interaction:XML can be used for accessing and changing data interactively. This man<->machine communication usually happens via a web browser (see Chapter 12) . Integration:Using XML, homogenous and heterogenous applications can be integrated. In this case, XML is used to describe data, interfaces, and protocols. This machine-machine communication helps integrate relational databases (i.e. by importing and exporting different formats). Transaction: XML helps to process transactions in applications like online marketplaces, supply chain management, and e-procurement systems. http://www.emimusic.de: This website contains approximately 20,000 pages with profiles of the artists, their products and the titles of the songs. These pages are generated using a XSLT script. ( catalog in PDF format.) 29/10/2014 Transparent 10
10 reasons to use XML XML is a widely accepted open standard. XML allows to clearly separate content from form (appearance). XML is text-oriented. XML is extensible. XML is self-describing. XML is universal; meaning internationalization is no problem. XML is independent from platforms and programming languages. XML provides a robust and durable format for information storage. XML is easily transformable. XML is a future-oriented technology. 29/10/2014 Transparent 11
XML - eXtensible Marked up Langage XML est une recommandation W3C (1998) pour le transport et le stockage de données XML est un métalangage (ou méta-modèle) les balises ne sont pas limitées (user-defined) le balisage est associé à une structure logique Arborescente (enracinée dessinée) API DOM, SAX le principe de formatage est celui des boites rectangulaires bien emboîtées (parenthèsées) XML bien formé une DTD ou un Schéma XSD (non obligatoire) définit une structure logique générique (modèle SGML) XML valide le Style est toujours séparé CSS, XSL, XSL-FO XML supporte: des processeurs dédiés: XPath, XLink, XQuery, XForms la définition de dialectes: SVG, MathML, RDF, SMIL, RSS… des transformations & échanges XSLT 29/10/2014 Transparent 12
Les exemples du W3C <?xml version="1.0" encoding="ISO-8859-1" ?> <!– ou "UTF-8" --> <note date='09/2011' auteur='PFZ'><to>SI4</to><from>Le Prof</from><sujet cours='LANGDOC' >Reminder</sujet><message>Don't forget your TP!</message></note> Une note (message) 29/10/2014 Transparent 13
Les exemples du W3C <?xml version="1.0" encoding="ISO-8859-1" ?> <breakfast_menu> <food> <price>$5.95</price> <name>Belgian Waffles</name> <description>two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food><food><price>$7.95</price> <name>Strawberry Belgian Waffles</name> <description>light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food><food><price>$8.95</price> <name>Berry-Berry Belgian Waffles</name> <description>light Belgian waffles covered with an assortment of … and whipped cream</description> <calories>900</calories> </food><food><price>$4.50</price> <name>French Toast</name> <description>thick slices made from our homemade sourdough bread</description> <calories>600</calories> </food> </breakfast_menu> Une carte de Menu 29/10/2014 Transparent 14
XML - Objectifs XML propose un "modèle syntaxique" (de type Entité-Relation) pour le transport et l'échange des Données Data Storage Data Sharing Data Exchange Platform Change XML permet la création de nouveaux Langages pour le Web XHTML WSDL for available web services WAP and WML for handheld devices RSS for news feeds RDF and OWL for resources and ontology SMIL for multimedia for the web XML (contrairement à HTML) ne fait rien par lui-même XML ne traite pas le "layout" (style) du format des données 29/10/2014 Transparent 15
l'Univers XML … CSS CSS CSS XHTML SVG MATHML SMIL XSD WSDL XPath XML Processors SOAP XLink XML based Languages XSL RSS XSL-FO RDF XQuery XForms DOM <?xml ?> … un metamodèle "pivot" universel … des processeurs compatibles XUL … en pleine expansion 29/10/2014 Transparent 17
XML - Le rôle des balises Délimiter le texte (ou éléments) Ordonner les éléments entre eux Hiérarchiser par imbrication Créer des liens et autre relations entre données Associer une fonction logique <sujet> Rappel </sujet> <note> <from > </from> <to> </to> </note> <version auteur='PFZ' date=' 2011' /> 29/10/2014 Transparent 18
Les exemples du W3C Un catalogue de CD • xml <?xml version="1.0" encoding="ISO-8859-1" ?> <!– pour les accents --> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> </CATALOG> => CSS
XML - Norme Lexicale les commentaires sont de la forme <!- - tout_sauf - - - - > les balises "xml" (Prologue) sont de la forme <?xml tout_sauf < > &?> les DTD internes sont de la forme <?DOCTYPE tout_sauf >> les autres balises (Eléments) sont de 3 formes: <NOM attribs > <NOM attribs /> </NOM > les CHAINES sont de la forme " tout_sauf " < > &" ou 'tout_sauf ' < > &' les NOMs sont de la forme [a-zA-Z_-][a-zA-Z0-9_-]* éventuellement précédé d'un préfixe (qualification de "Namespace") de la même forme séparé par : les NOMs sont sensibles à la casse les Attributs sont de la forme NOM = chaines les sections <![CDATA[ ... ]]> pour du texte non analysé (sauf ]] ) le format est "libre" : les " " \t \r \n sont permis partout sauf dans les balises entre < ou </ et NOM le reste (le texte pur) ne comprend pas < > & codés par < > & 29/10/2014 Transparent 20
XML - Norme Syntaxique Un source XML est dit "Bien Formé" (syntaxe) ssi il est structuré suivant le schéma: un Prologue une Arborescence d'Eléments des Commentaires et Instructions de Traitement (facultatifs) dans le prologue ou l'Arborescence le Prologue se compose: d'une balise de déclaration <? xml ?> puis en option : d'Instructions de Traitement (stylesheet, par ex) d'une déclaration de Type de Document (DTD) de commentaires <!-- --> le source forme un système de textes, de balises, de commentaires et d'instructions de traitement bien parenthèsé et enraciné Bien Formé # Valide 29/10/2014 Transparent 21
XML - Validation Un source XML est dit "Valide" ssi il est "Bien Formé" il est conforme aux règles définies par: une DTD ou un schéma XSD Des erreurs dans la syntaxe XML stoppent le processus d'exécution de l'application associée au source XML (affichage, transformations, etc.) (contrairement à HTML) Outils de validation: IE, FF, DW, Nvu Via loadXML()(script) et le DOM Divers environnements(voir le Web) Valide => Bien Formé 29/10/2014 Transparent 22
Navigateurs ("Web Browsers") Historiques: Mosaîc, I.E. Netscape liste de navigateurs sur Wikipédia Internet Explorer 6 => 9 ss Win, Linux HTML 4.01, XHTML 1.0, XML, CSS2, DOM Safari 3 => 5 ss Mac OS, Win HTML 4.01, XHTML 1.0, XML, CSS2, DOM Mozilla ss Win, Mac OS, Linux Firefox => 3.6.22 => 4.0 => ?.0 HTML 4.01, XHTML 1.0, XML, CSS2+, DOM Opera 11 ss Win, Mac OS, Linux Konqueror ss KDE Google Chrome13 Un navigateur supporte la consultation du Web (affichage des ressources). Il comporte: une couche réseau avec des protocoles: http: https: ftp:d'accès à des adresses URL. un moteur de rendu: interpréteur html, css, xml, xsl, script, java, etc. une interface utilisateur: menus, "widgets", historique, signets un gestionnaire de "plugins" pour divers formats 29/10/2014 Transparent 23
Espaces de Noms "Namespaces" Un mécanisme qui répond à 2 objectifs résoudre les conflits potentiels issus de sources multiples (documents XML et HTML): Noms surchargés (cf Compilation: Visibilité & Portée) regrouper (logiquement) des définitions à réutiliser Modules ou Classes Importation: Masquage & Héritage <?xml version="1.0" ?> <!-- Doc 2 --> <table> </table> <?xml version="1.0" ?> <!-- Doc 1 --> <table> </table> =>préfixes <?xml version="1.0" ?> <!-- fusion de Doc 1 & 2 --> <table> <!-- ?? --> </table> <table> </table> <table> </table> =>U.R.I. 29/10/2014 Transparent 24
Conflits de Noms Par Importations Multiples <?xml version="1.0" ?> <!-- style HTML --> <table> <tr> <td> ROUGE </td> <td> VERT </td> <td> BLEU</td> </tr> </table> <?xml version="1.0" ?> <!-- pour un EDT --> <table> <cours> <jour> Lundi </jour> <cren> 8h30-9h30</cren> </cours> </table> <?xml version="1.0" ?> <!-- fusion de documents --> <table> <!-- ?? --> </table> =>préfixes 29/10/2014 Transparent 25
Nom Préfixé ou Qualifié ("QName") Résolution des Conflits par des Préfixes <?xml version="1.0" ?> <!-- style HTML: préfixe h --> <h:table> <h:tr> <h:td> ROUGE </h:td> <h:td> VERT </h:td> <h:td> BLEU</h:td> </h:tr> </h:table> <?xml version="1.0" ?> <!-- pour EDT: préfixe e --> <e:table> <e:cours> <e:jour> Lundi </e:jour> <e:cren> 8h30-9h30</e:cren> </e:cours> </e:table> <?xml version="1.0" ?> <!-- fusion de documents --> <h:table> … </h:table <e:table> … </e:table> =>namespaces 29/10/2014 Transparent 26
Espaces de Noms & URI "Uniform Resource Identifier" (Clé universelle) "lexical" de type URL pour nommer un Espace de Noms chaque préfixe de nom qualifié est associé à un URI unique Espaces de Noms des dialectes XML <!-- pour XHTML & MathML http://www.w3.org/1999/xhtml http://www.w3.org/1998/Math/MathML--> xs: <!-- préfixe des schémas XSD http://www.w3.org/2001/XMLSchema--> xsl: <!-- préfixe des transformations XSL http://www.w3.org/1999/XSL/Transform/--> xlink: <!-- préfixe de XLink http://www.w3.org/1999/xlink/--> Portée Pas vraiment un espace URL optionelles # préfixes lexicaux <?xml version="1.0" ?> <h:table xmlns:h= "http://www.w3.org/TR/html4/" > </h:table> "table" compris 29/10/2014 Transparent 27
Espaces de Noms "Namespace" Attribut xmlns avec prefix xmlns:namespace-prefix="namespaceURI" • url (url optionelles) • préfixes lexicaux <?xml version="1.0" ?> <!-- en XHTML: préfixe xh --> <xh:table xmlns:xh= "http://www.w3.org/1999/xhtml"> <xh:tr> <xh:td> ROUGE </xh:td> <xh:td> VERT </xh:td> <xh:td> BLEU</xh:td> </xh:tr> </xh:table> <?xml version="1.0" ?> <!-- pour EDT: préfixe e --> <e:table xmlns:e= "http://www.essi.fr/edt" > <e:cours> <e:jour> Lundi </e:jour> <e:cren> 8h30-9h30</e:cren> </e:cours> </e:table> la "vraie" balise <table> de (X)HTML 29/10/2014 Transparent 28
Espaces de Noms "Namespace" préfixes lexicaux ajoutés implicitement par le parseur XML • Attribut xmlns par défaut • xmlns = "namespaceURI" • Utilisations: XHTML, XLINK, XSD, XSL et dialectes • Attribut xmlns par défaut • xmlns = "namespaceURI" • Utilisations: XHTML, XLINK, XSD, XSL et dialectes <?xml version="1.0" ?> <!-- en XHTML --> <table xmlns= "http://www.w3.org/1999/xhtml"> <tr> <td> ROUGE </td> <td> VERT </td> <td> BLEU</td> </tr> </table> <?xml version="1.0" ?> <!-- pour EDT --> <table xmlns= "http://www.essi.fr/edt"> <cours> <jour> Lundi </jour> <cren> 8h30-9h30</cren> </cours> </table> 29/10/2014 Transparent 29
Uniform Resource Identifier (URI) a URI is a string of characters which identifies an Internet Resource. The most common URI is the Uniform Resource Locator (URL) which identifies an Internet domain address. les URI sont des clés "syntaxiques" (les URL permettent de définir une clé universelle). les URI peuvent avoir un sens pour une application (interprétation à l'exécution pour un Navigateur, par ex.) les préfixes sont purement "lexicaux" (libres et sans signification) XSD – <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> XSLT – <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> XHTML – <html xmlns:"http://www.w3.org/1999/xhtml"> SVG – <svg xmlns:"http://www.w3.org/2000/svg"> XLINK – <liens xmlns:xlink="http://www.w3.org/1999/xlink"> SOAP – <soap xmlns:soap="http://schemas.xmlsoap.org/soap/envelope"> XLINK – <liens xmlns:xlink="http://www.w3.org/1999/xlink"> Dublin-Core – <dc:title xmlns:dc="http://purl.org/dc"> 29/10/2014 Transparent 30
Espaces de Noms par Défaut Scalable Vector Graphics <?xml version="1.0" ?> <!-- Scalable Vector Graphics --> <svg xmlns= "http://www.w3.org/2000/svg/" width="10cm" height="8cm" > <rect x="100" y="100" width="50" height="70" /> <ellipse rx="100" ry="200"/> </svg> Par défaut (de préfixe) svg, rect, ellipse sont dans l'URI mais les attributs: x, y, width, height, rx, ry, restent dans l'espace local 29/10/2014 Transparent 31
Portée des Espaces de Noms Multiples <?xml version="1.0" ?> <!-- SVG + XHTML + XLink --> <html xmlns= "http://www.w3.org/1999/xhtml" xmlns:xlink= "http://www.w3.org/1999/xlink" > <body> <h1> Rectangle et Ellipse </h1> <svg xmlns= "http://www.w3.org/2000/svg" width="21cm" height="29cm"> <rect x="10" y="10" width="50" height="70" /> <ellipse rx="100" ry="200"/> </svg> <p xlink:type="simple" xlink:href="svgDoc.html" > Pour en savoir plus sur SVG </p> </body> </html> URI "SVG" URI "XHTML" URI "XLink" ici les attributs préfixés sont dans l'espace Xlink 29/10/2014 Transparent 32
Quelques Dialectes, parmi des centaines SMIL – pour le Multimédia CML – pour les formules chimiques ATOM, RSS – pour les flux (syndication) RDF – pour les ressources WML – pour les mobiles (Wap) MusicML – pour la musique SVG – pour les graphiques vectoriels MathML – pour les formules mathématiques XUL – pour les Interfaces Mozilla WordML – pour Office KML – Google Earth & Maps http://code.google.com/apis/earth/kml-samples.googlecode.com Un dialecte XML définit un ensemble (Langage) de documents XML valides par rapport à une DTD ou un schéma XSD (les documents sont donc bien formés) 29/10/2014 Transparent 33
SVG - Scalable Vector Graphics <?xml version="1.0" ?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <ellipse cx="240" cy="100" rx="220" ry="30" style="fill:purple"/> <ellipse cx="220" cy="70" rx="190" ry="20" style="fill:lime"/> <ellipse cx="210" cy="45" rx="170" ry="15" style="fill:yellow"/> </svg> URI "SVG" ici sans prefix 29/10/2014 Transparent 34
MathML: insertion dans XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/css" href="monMathML.css"?> <Racine> <Titre> Formule sous MathML </Titre> <Math xmlns = " http://www.w3.org/1998/Math/MathML "> <mroot> <msup> <mfrac> <mi>A*B</mi> <mi>b</mi></mfrac> <mn> 10 </mn> </msup> <mi>x</mi> </mroot> </Math> </Racine> Espace de noms "Namespace" ici sans prefix avec XSL 29/10/2014 Transparent 35
XHTML - Introduction Une version « Xmlisée » de HTML 4.0 Recommandation W3C (Janvier 2000) au remplacement de HTML <html xmlns=‘‘http://www.w3.org/1999/xhtml’’> XHTML 1.0: Compatibilité (presque) totale avec HTML 4.0 les documents doivent être « bien formés » au sens XML racine <html> </html> unique marqueurs de fermeture obligatoires: </p> </li> </td> ou <b /> et <img ….. />, avec un espace devant / balises bien emboîtées (parenthèsées) nom et attribut de balise en minuscule (sensibilité à la casse) valeurs d’attributs entre ‘‘ ’’ et valeurs explicites l’attribut id remplace name XHTML 1.0: Trois DTDs de validation strict transitional framseset DOCTYPE obligatoire ss IE sinon Mode QUIRK ! => DTD 29/10/2014 Transparent 36
XHTML- format Source requis en XHTML1.0 Conseils d’utilisation protéger tous les caractères spéciaux: & < > séparer les scripts et les styles <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> le Titre du Document </title> <!-- les styles et les scripts (externalisés, c'est mieux) --> </head> <body> le Corps du Document </body> </html> DOCTYPE obligatoire ss IE sinon Mode QUIRK ! 29/10/2014 Transparent 37
XHML: insertion dans XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/css" href="xhtml.css"?> <racine> <titre> XHTML et XML</titre> <html xmlns = " http://www.w3.org/1999/xhtml " > <body> <h1> Liens sous XHTML</h1> <p> <a href=" http://www.w3schools.comz "> Visit W3C Tutorial </a> </p> <p> <a href=" http://www.essi.fr/~pfz ">chez Moi </a> </p> </body> </html> </racine> namespaces sous la balise, sans prefix .xhtml obligatoire pour I.E. 29/10/2014 Transparent 38
XML "Basic Know Hows" XML Basics XML & Styling: CSS XML Dialects: MathML, SVG Document Definition: DTD, XSD .xml .css .dtd .dtd .dtd .xsd 29/10/2014
Chap VIII - XML Processeurs "Advanced" Tree structure of XML XPathXPointerXLinkXInclude, XForms, XQuery Techniques XML XML & CSS multilpes XML & DTD CDATADOMXML & AJAX MetaDatss
Tree Structure of an XML Document 7 types of Nodes The root node Element nodes Text nodes Attribute nodes Comment nodes Processing instruction nodes Namespace nodes from XMLinanutshell - CDATA, DOCTYPE, are NOT in the tree - attributes are NOT children - Namespaces are not selectable 29/10/2014 Transparent 41
XML & XPath– Modèle Arborescent de Document Les documents XML sont traités comme des arborescences avec 7 types de nœuds et dont la racine est la balise "root" du document: nœud Racine – unique & obligatoire racine de l'arborescence du document nœud Elément délimité par les balises nœud Attribut attaché à un Nœud Elément, mais sans relation nœud Commentaire délimité par <!-- et --> nœud "xmlns" - déclaration d'Espace de Noms un pour chaque Espace de Nom actif (déclaré ou défaut) nœud "processing-instruction" délimité par <? et ?> nœud Texte de type #PCDATA XPath cours Carton 29/10/2014 Transparent 42
XPath - Exemple d'expressions Les expressions XPath permettent de sélectionner un ensemble de nœuds (ou un noeud) dans un document Xml Node Set <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <title lang="eng"> Harry Potter </title> <price>29.99</price> </book> <book> <title lang="eng"> Learning XML </title> <price>39.95</price> </book> </bookstore> Path Expression Sélection bookstore All the child nodes of the "bookstore" element /bookstore The root element "bookstore" Note: If the path starts with a slash ( / ) it always represents an absolute path to an element! bookstore/book All "book" elements that are children of "bookstore" //book All "book" elements no matter where they are in the document bookstore//book All "book" elements that are descendant of the "bookstore" element, no matter where they are under the "bookstore" //@lang All attributes that are named "lang" 29/10/2014 Transparent 43
XPath – Indicateurs de Relation - "axis" 29/10/2014 Transparent 44
XPath – Axes et Abréviations 29/10/2014 Transparent 45
XPath – Filtres (ou Déterminants) 29/10/2014 Transparent 46
XPath – Prédicats 29/10/2014 Transparent 47
XPath – Interrogations sur une Base Documentaire 29/10/2014 Transparent 48
XPath + DOM avec JavaScript mozxpath .js <script type="text/javascript"> //xpathune expression de chemin XPATH // I.E var xmlDoc=new ActiveXObject ("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load ("cdcatalog.xml") ; firstFit=xmlDoc.selectNodes(xpath)[0]; // Mozilla xmlDoc=document.implementation.createDocument("","",null); xmlDoc.async=false; xmlDoc.load("cdcatalog.xml") firstFit= document.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null)[0]; attValue=firstFit.getAttribute('someAtt'); //exemple </script> I.E. only Code Partiel 29/10/2014 Transparent 49
XLink – Xml Linking Language Standard W3C d'expression de liens dans un document Xml avantages comparés aux liens Html tout élément d'un document XML peut se comporter comme un lien les liens Xlink utilisent XPointer et XPath pour référencer un emplacement spécifique (fragment) à l’intérieur d’un document peuvent importer du texte ou balisage XLink supporte des liens simples (type HTML) et des liens étendus (multiples) pour lier plusieurs ressources ensemble. 29/10/2014 Transparent 50
XLink – Exemples Lien sur le Web <ref xmlns:xlink=‘‘http://www.w3.org/1999/xlink’’ xlink: type=‘‘simple’’ xlink: href=‘‘http://www.essi.fr/~pfz/LANGDOC/doc.xml#w3c’’ xlink: show=‘‘ new’’ xlink: actuate=‘‘onRequest ’’ /> W3C </ref> Lien local <schema xmlns:xlink=‘‘http://www.w3.org/1999/xlink’’ xlink: type=‘‘simple’’ xlink: href=‘‘Schemas/schema1.png’’ xlink: show=‘‘ embed’’ xlink: actuate=‘‘onLoad ’’ /> 3 mais pas 4 ? prefix optionnel Espace de noms "Namespace" 29/10/2014 Transparent 51