Chap III - XML Présentation ("Basic")

Slides:



Advertisements
Présentations similaires
Transformation de documents XML
Advertisements

DTD Sylvain Salvati
eXtensible Markup Language
HTML5, CSS3, PHP5, Javascript, AJAX
Chap III - XML Présentation ("Basic")
Lexique Langages & Documents Réfs Techs Smmaire Paul Franchi SI /01/2014 Transparent - 1 Chap IX - XSL Transformations XSL: Programmation.
SommaireLexique Langages & Documents Réfs Paul Franchi SI Techs 13/01/2014 Transparent - 1 Chap IV DTD "Document Type Definition" Chap VII XML.
Les espaces de nommage XML par Philippe Poulard 1
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
le langage les éléments
Les fonctions de XPath et XSLT
SVG: Scalable Vector Graphics. Dialecte dXML pour la représentation de graphique vectoriel 2D Tracés de base en vectoriel (courbes, lignes, rectangles,…)
SVG: Scalable Vector Graphics Exemple: Vienne Christine Potier, INF347, 20 juin 2008.
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
Format dannotations génériques, multi-annotations, multi- documents Présentation ASP navigation 11 avril 2002.
Manipulation d’XML avec XSL
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
Nouveau blog. WordPress connexion Nommez votre blog.
XML-Family Web Services Description Language W.S.D.L.
UNIVERSITE CHOUAIB DOUKKALI Département des mathématiques
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Web Structurel
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Notions sur le XML Réfs : manuel p 149. Introduction Le XML (eXtensible Markup Language) est un standard d'échange de données. Il fait partie comme le.
Introduction au XML Choopan Rattanapoka Université Louis-Pasteur, Starsbourg.
Xpath XML Path language par Yves Bekkers
XML : concours d’acronymes ou futur standard ?
STAF 2X XSL/FO Glaus & Ruckstuhl Mars © Glaus & Ruckstuhl TECFA Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et.
Les feuilles de style CSS
Données sous XML Stéphane Marchand-Maillet Groupe Viper Vision par Ordinateur et Multimédia CUI – Université de Genève
8 - XML Cours XML.
Le Langage XML Belkhir Abdelkader Laboratoire LSI USTHB
Le langage XHTML 420-S4W-GG Programmation Web Client
Les outils de base : XPath, XSL, XLink, XForms
PROGRAMMATION WEB FRONT-END.
XSL eXtensible Stylesheet Language Historique 1999: XSLT 1.0 et XPATH 1.0 : versions supportées par la plupart des outils depuis février 2007 XSLT 2.0.
JavaScript.
Le langage XML.
Cours de programmation web
Créer des packages.
Programmation Web : Introduction à XML
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Publication et Traitement avec XSL
Acquisition d’information sur internet
S'initier au HTML et aux feuilles de style CSS Cours 5.
MJ. Blin et M. CsernelPoleInfo31 XML et ses environnements Documents XML bien formés Prologue Arbre d'éléments Attributs Commentaires Entités internes.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
HTML Cours 3. Plan du cours Les feuilles de styles CSS Mise en forme du texte et des paragraphes.
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
Composants graphiques en ACube Framework client riche SVG.
 G. Gardarin Les outils de base: Publication avec XML 1. XPATH 2. XSLT 3. XSLFO 4. XLink, XForms, RSS, … 5. XML et la bureautique.
S'initier au HTML et aux feuilles de style CSS Cours 5.
Soutenance du mémoire de synthèse
Initiation au JavaScript
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
Introduction à CSS Généralités. Introduction Beaucoup de documents XML sont destinés à être présentés. Les information du fichier seul (avec ou sans DTD)
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
eXtensible Markup Language. Généralités sur le XML.
Introduction à MathML Par Katia Larrivée UQO Le 18 mars 2004.
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
SOAP et les RPC XML SOAP WSDL RPC. Rappels sur le XML Langage avec des balises Très lisible Pour stocker des données Séparation entre contenu et présentation.
XML : un métalangage pour la description de documents structurés XML a été défini par le consortium W3 en fonction de 2 objectifs: Compenser les limitations.
Introduction au HTML Qu’est ce que le HTML ?
XSLT. Les documents XML peuvent avoir dans leur prologue une instruction de traitement xml-stylesheet. Cette instruction de traitement indique au navigateur.
INF2005– Programmation web– A. Obaid Variantes de HTML.
Extensions à la spécification XML Le "plus petit cercle" XML Yves Bekkers Mise à jour : 9 octobre 2003.
XML Introduction. Langage XML eXtensible Markup Language XML permet de créer des documents Avec des balises propres au document Langage «extensible» Représentant.
Préparé par : Marouane FELJA
Transcription de la présentation:

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

17/04/2017 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: Basic Advanced State of the Art Etat de l'Art: HTML5 CSS3 SPRY JQuery SVG MathML RDF AJAX 17/04/2017 Transparent 2 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 2

Some References Web EPU courses (in French) 17/04/2017 Some References 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 Bookmarks http://antriksh.com/resources/ XML Wiki Book http://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange Biblio: many issues at EPU's lib 17/04/2017 Transparent 3 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

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 17/04/2017 Transparent 4 ESSI - 2 – 2004-05 - Paul Franchi

Web Reference Browser de XML vers HTML5+CSS3 metadata .xml de XML vers HTML5+CSS3 17/04/2017 Transparent 5 ESSI - 2 – 2004-05 - Paul Franchi 5

de XML vers HTML5+CSS3+JS Doc Example Browser metadata .xml de XML vers HTML5+CSS3+JS 17/04/2017 Transparent 6 ESSI - 2 – 2004-05 - Paul Franchi 6

Lexique API – Application Programming Interface 17/04/2017 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 – Dynamic HTML 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 17/04/2017 Transparent 7 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Chap III - XML Présentation ("Basic") Génèse de XML MetaLangage Norme Lexicale Norme Syntaxique Espaces de noms - Namespaces Dialectes : XHTML, MathML, SVG, etc Techniques XML

XML - La Génèse et les Recommandations (W3C) 17/04/2017 XML - La Génèse et les Recommandations (W3C) 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 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 XML Document Layout and Syntax An XML document contains a hierarchy of data values wrapped inside XML elements and includes various other entries to assist in processing this information. The data structure and processing entries must conform to exacting rules. Standards and specifications for designing XML documents are maintained by the World Wide Web Consortium (W3C) and can be found at www.w3.org/TR/REC-xml/. These recommendations give the structural and syntactical rules for creating XML documents and standards for testing their validity. An XML document contains two major sections -- the prolog and data structure sections. The prolog identifies the document as an XML document and includes other optional entries for specialized processing. The data structure section includes the hierarchy of data elements representing the document's information content. The Prolog The prolog section of an XML document contains three optional elements: XML declaration Processing instruction Document type definition HTML Information presentation Fixed set of tags Data presentation language Limited hypertext linking 17/04/2017 Transparent 9 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML Document Layout and Syntax 17/04/2017 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.) XML Document Layout and Syntax An XML document contains a hierarchy of data values wrapped inside XML elements and includes various other entries to assist in processing this information. The data structure and processing entries must conform to exacting rules. Standards and specifications for designing XML documents are maintained by the World Wide Web Consortium (W3C) and can be found at www.w3.org/TR/REC-xml/. These recommendations give the structural and syntactical rules for creating XML documents and standards for testing their validity. An XML document contains two major sections -- the prolog and data structure sections. The prolog identifies the document as an XML document and includes other optional entries for specialized processing. The data structure section includes the hierarchy of data elements representing the document's information content. The Prolog The prolog section of an XML document contains three optional elements: XML declaration Processing instruction Document type definition 17/04/2017 Transparent 10 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 10

XML Document Layout and Syntax 17/04/2017 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. XML Document Layout and Syntax An XML document contains a hierarchy of data values wrapped inside XML elements and includes various other entries to assist in processing this information. The data structure and processing entries must conform to exacting rules. Standards and specifications for designing XML documents are maintained by the World Wide Web Consortium (W3C) and can be found at www.w3.org/TR/REC-xml/. These recommendations give the structural and syntactical rules for creating XML documents and standards for testing their validity. An XML document contains two major sections -- the prolog and data structure sections. The prolog identifies the document as an XML document and includes other optional entries for specialized processing. The data structure section includes the hierarchy of data elements representing the document's information content. The Prolog The prolog section of an XML document contains three optional elements: XML declaration Processing instruction Document type definition 17/04/2017 Transparent 11 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 11

XML - eXtensible Marked up Langage 17/04/2017 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 XML Document Layout and Syntax An XML document contains a hierarchy of data values wrapped inside XML elements and includes various other entries to assist in processing this information. The data structure and processing entries must conform to exacting rules. Standards and specifications for designing XML documents are maintained by the World Wide Web Consortium (W3C) and can be found at www.w3.org/TR/REC-xml/. These recommendations give the structural and syntactical rules for creating XML documents and standards for testing their validity. An XML document contains two major sections -- the prolog and data structure sections. The prolog identifies the document as an XML document and includes other optional entries for specialized processing. The data structure section includes the hierarchy of data elements representing the document's information content. The Prolog The prolog section of an XML document contains three optional elements: XML declaration Processing instruction Document type definition 17/04/2017 Transparent 12 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 12

Une note (message) Les exemples du W3C 17/04/2017 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> The XML Declaration The XML declaration, if included, must appear as the first line of the document. The declaration consists of a mandatory version number, an optional encoding declaration specifying the character set used, and an optional indication of the stand-alone nature of the document. <?xml version="1.0" [encoding="UTF-8"] [standalone="yes"] ?> The current version is 1.0 and must be included. An encoding declaration is needed only when using a non-Latin (non-English) character set. The default character set is UTF-8 and does not need to be coded. The standalone="no" attribute is required when reference is made to an external file containing additional declarations for the current document (see "Document Type Definition" below). The default value is standalone="yes" (this is a stand-alone document) and the attribute can be omitted. An XML declaration is optional, but it is always a good idea to include it since W3C recommendations state that a "well-formed" document begins with an XML declaration. Une note (message) 17/04/2017 Transparent 13 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Une carte de Menu Les exemples du W3C 17/04/2017 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> </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> Processing Instructions A processing instruction is a reference to a supporting document containing processing instructions relevent to the XML document. Most likely, this processing instruction refers to an external style sheet used to transform the document in some fashion, normally to format the XML data content for Web page display. A processing instruction that links to an external style sheet appears as shown below. <?xml-stylesheet type="text.xsl" href="url" ?> Working with XML style sheets to perform transformations of XML documents into Web pages and into other XML documents is consider later in these tutorials. Document Type Declaration A document type (DOCTYPE) declaration is required if the XML document is to be validated against a Document Type Definition (DTD). A DTD is a set of rules for interpreting the data elements and their relationships. For example, DTD entries can indicate proper names and valid data types for data elements in the document. The general formats for DOCTYPE declarations are shown below. <!DOCTYPE root node [ <!ELEMENT declaration> ... ]> <!DOCTYPE root node SYSTEM "url"> An internal DTD can be coded as part of the XML document, or an external DTD can be coded in a separate document. If DTD specifications are in an external document linked by the url, then the attribute standalone="no" must be coded in the XML declaration. An XML document that satisfies DTD specifications is said to be "valid" in addition to being well-formed. DTD validation is considered later in these tutorials. Une carte de Menu 17/04/2017 Transparent 14 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

17/04/2017 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 The Data Section Following the prolog is the XML data structure for the information content of the document. Appearing here are the XML tags signifying the data nodes and data elements that compose the hierarchy of information. Although there is great flexibility in naming and organization XML tags, there are fixed rules for doing so. Opening/Closing Tags One of these syntactical rules is that all XML elements must have opening and closing tags. This rule can be followed in two ways. For XML elements that enclose data or enclose child elements there must be an opening tag along with a paired closing tag. These tags are in the following format, <tagname>   ... </tagname> where the closing tag includes the forward slash character (/) preceding the tag name. You are probably familiar with this syntax from XHTML where, for example, a paragraph is enclosed inside <p>...</p> tags. For XML elements that do not enclose data or child elements a single start/end tag can be used. These empty tags are in the format, <tagname/> where the single tag includes a forward slash following the tag name. Again, you are familiar with this format in XHTML through the <br/> tag and other similar non-paired tags. Empty tags are often used as "markers" to indicate a point in the data structure where special processing is to take place. It is unlikely, though, that you will use empty tags in the normal course of XML data structuring, where elements nearly always enclose other elements. 17/04/2017 Transparent 15 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

l'Univers XML … … en pleine expansion <?xml ?> CSS DOM 17/04/2017 l'Univers XML … XML based Languages XHTML SVG MATHML SMIL WSDL SOAP RSS RDF <?xml ?> CSS DOM … un metamodèle "pivot" universel  XSD XPath XLink XSL Processors XML XSL-FO XQuery XForms … des processeurs compatibles The Data Section Following the prolog is the XML data structure for the information content of the document. Appearing here are the XML tags signifying the data nodes and data elements that compose the hierarchy of information. Although there is great flexibility in naming and organization XML tags, there are fixed rules for doing so. Opening/Closing Tags One of these syntactical rules is that all XML elements must have opening and closing tags. This rule can be followed in two ways. For XML elements that enclose data or enclose child elements there must be an opening tag along with a paired closing tag. These tags are in the following format, <tagname>   ... </tagname> where the closing tag includes the forward slash character (/) preceding the tag name. You are probably familiar with this syntax from XHTML where, for example, a paragraph is enclosed inside <p>...</p> tags. For XML elements that do not enclose data or child elements a single start/end tag can be used. These empty tags are in the format, <tagname/> where the single tag includes a forward slash following the tag name. Again, you are familiar with this format in XHTML through the <br/> tag and other similar non-paired tags. Empty tags are often used as "markers" to indicate a point in the data structure where special processing is to take place. It is unlikely, though, that you will use empty tags in the normal course of XML data structuring, where elements nearly always enclose other elements. … en pleine expansion 17/04/2017 Transparent 16 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 16

l'Univers XML … … en pleine expansion CSS DOM <?xml ?> 17/04/2017 l'Univers XML … DOM CSS XML based Languages XHTML SVG MATHML SMIL WSDL SOAP RSS RDF <?xml ?> … un metamodèle "pivot" universel  … des processeurs compatibles XSD XPath XLink XSL Processors XML XSL-FO XQuery XForms The Data Section Following the prolog is the XML data structure for the information content of the document. Appearing here are the XML tags signifying the data nodes and data elements that compose the hierarchy of information. Although there is great flexibility in naming and organization XML tags, there are fixed rules for doing so. Opening/Closing Tags One of these syntactical rules is that all XML elements must have opening and closing tags. This rule can be followed in two ways. For XML elements that enclose data or enclose child elements there must be an opening tag along with a paired closing tag. These tags are in the following format, <tagname>   ... </tagname> where the closing tag includes the forward slash character (/) preceding the tag name. You are probably familiar with this syntax from XHTML where, for example, a paragraph is enclosed inside <p>...</p> tags. For XML elements that do not enclose data or child elements a single start/end tag can be used. These empty tags are in the format, <tagname/> where the single tag includes a forward slash following the tag name. Again, you are familiar with this format in XHTML through the <br/> tag and other similar non-paired tags. Empty tags are often used as "markers" to indicate a point in the data structure where special processing is to take place. It is unlikely, though, that you will use empty tags in the normal course of XML data structuring, where elements nearly always enclose other elements. XUL … en pleine expansion 17/04/2017 Transparent 17 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 17

XML - Le rôle des balises 17/04/2017 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' /> 17/04/2017 Transparent 18 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Un catalogue de CD xml Les exemples du W3C => CSS <?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> <TITLE>Hide your heart</TITLE> <ARTIST>Bonnie Tyler</ARTIST> <COUNTRY>UK</COUNTRY> <COMPANY>CBS Records</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CATALOG> => CSS

XML - Norme Lexicale 17/04/2017 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 < > & 17/04/2017 Transparent 20 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

17/04/2017 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 ( <!|CDATA[ ... ]]> ) 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 17/04/2017 Transparent 21 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Valide => Bien Formé 17/04/2017 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 ou grammaires NG Relax 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, Editix Via loadXML()(script) et le DOM xmllint/libxml Valide => Bien Formé 17/04/2017 Transparent 22 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

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 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 Chrome 13 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 17/04/2017 Transparent 23 ESSI - 2 – 2004-05 - Paul Franchi

Espaces de Noms "Namespaces" 17/04/2017 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. 17/04/2017 Transparent 24 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

=>préfixes Conflits de Noms Par Importations Multiples 17/04/2017 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 17/04/2017 Transparent 25 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Nom Préfixé ou Qualifié ("QName") 17/04/2017 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 17/04/2017 Transparent 26 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Pas vraiment un espace Espaces de Noms & URI URL optionelles # 17/04/2017 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 17/04/2017 Transparent 27 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Espaces de Noms "Namespace" 17/04/2017 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 17/04/2017 Transparent 28 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

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> 17/04/2017 Transparent 29

Uniform Resource Identifier (URI) 17/04/2017 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"> Dublin-Core – <dc:title xmlns:dc="http://purl.org/dc"> 17/04/2017 Transparent 30 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Espaces de Noms par Défaut 17/04/2017 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 17/04/2017 Transparent 31 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Portée des Espaces de Noms Multiples 17/04/2017 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 17/04/2017 Transparent 32 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Quelques Dialectes, parmi des centaines 17/04/2017 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) 17/04/2017 Transparent 33 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

SVG - Scalable Vector Graphics 17/04/2017 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 17/04/2017 Transparent 34 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

MathML: insertion dans XML 17/04/2017 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 17/04/2017 Transparent 35 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

DOCTYPE obligatoire ss IE sinon Mode QUIRK ! 17/04/2017 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 17/04/2017 Transparent 36 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

DOCTYPE obligatoire ss IE sinon Mode QUIRK ! 17/04/2017 XHTML- format Source requis en XHTML1.0 Conseils d’utilisation protéger tous les caractères spéciaux: &amp &lt &gt 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 ! 17/04/2017 Transparent 37 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XHML: insertion dans XML 17/04/2017 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> <a href=" http://www.essi.fr/~pfz ">chez Moi </a> </body> </html> </racine> namespaces sous la balise, sans prefix .xhtml obligatoire pour I.E. 17/04/2017 Transparent 38 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

.xml .css .dtd .dtd .dtd .xsd XML "Basic Know Hows" XML Basics 17/04/2017 XML "Basic Know Hows" .xml XML Basics XML & Styling: CSS XML Dialects: MathML, SVG Document Definition: DTD, XSD .css .dtd .dtd .dtd .xsd 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 39

Chap VIII - XML Processeurs "Advanced" Tree structure of XML XPath XPointer XLink XInclude, XForms, XQuery Techniques XML XML & CSS multilpes XML & DTD CDATA DOM XML & AJAX MetaDatss

Tree Structure of an XML Document 17/04/2017 from XML in a nutshell 7 types of Nodes The root node Element nodes Text nodes Attribute nodes Comment nodes Processing instruction nodes Namespace nodes - CDATA, DOCTYPE, are NOT in the tree - attributes are NOT children - Namespaces are not selectable 17/04/2017 Transparent 41 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML & XPath– Modèle Arborescent de Document 17/04/2017 XML & XPath– Modèle Arborescent de Document Les documents XML sont traités comme des arborescences avec 7 types de nœuds: nœud Racine de l'arborescence du document # racine du XML a comme fille la racine du source XML 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 17/04/2017 Transparent 42 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath - Exemple d'expressions 17/04/2017 XPath - Exemple d'expressions Node Set XPath 1.0 vs 2.0 Les expressions XPath permettent de sélectionner un noeud (ou un ensemble) dans un document Xml <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="eng"> Harry Potter </title> <price>29.99</price> </book> Learning XML <price>39.95</price> </bookstore> Path Expression Sélection / la racine du document # bookstore 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" 17/04/2017 Transparent 43 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath – Indicateurs de Relation - "axis" 17/04/2017 XPath – Indicateurs de Relation - "axis" relativement au Nœud Courant  child:: les nœuds fils (axe par défaut) attribute:: les attributs parent:: le nœud parent descendant:: les descendants - ni attributs, ni NS ancestor:: les ascendants - ni attributs, ni NS self:: le nœud courant lui-même preceding-sibling:: les frères gauches following-sibling:: les frères droits preceding:: les précédants ds l'ordre - ni asc, ni attr following:: les suivants ds l'ordre - ni desc, ni attr descendant-or-self:: le nœud contexte et ses descendants ancestor-or-self:: le nœud contexte et ses ascendants namespace:: les espaces nominaux 17/04/2017 Transparent 44 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath – Axes et Abréviations 17/04/2017 XPath – Axes et Abréviations . self::node() .. parent::node() Axe par défaut child:: /A /child::A A/* child::A/child::* @att attribute::att @* attribute::* A/@* child::A/attribute::* Etape par défaut descendant-or-self:: // /descendant-or-self::node()/ .// self::node()/descendant-or-self::node()/ A//B child::A/descendant-or-self::node()/child::B 17/04/2017 Transparent 45 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath – Filtres (ou Déterminants) 17/04/2017 XPath – Filtres (ou Déterminants) text() les nœuds de type Texte comment() les nœuds de type Commentaire * les nœuds de type Element (sauf axe attribute & namespace) node() tous les types de nœuds processing-instruction() un nœud de type "instruction" exemples //comment() les commentaires du document /comment() les commentaires de la racine /A/descendant::text() les textes d'un descendant de /A /A//text() les textes sous /A/ 17/04/2017 Transparent 46 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath – Prédicats /A/B/child::node()[position()=1] 17/04/2017 XPath – Prédicats /A/B/child::node()[position()=1] les premiers fils de /A/B /A/B/child::node()[1] idem /A/B [ @att1 ] les B avec un attribut att1 /A/B [ @att1='a1' ] idem avec att1='a1' /A/B [ @att1='a1' and position()=last() ] Idem avec B en dernière position Et d'autres fonctions XPath 1.0 & 2.0 … communes à XSLT, XQuery /A/B [ contains(@att1, 'a1') ] att1 qui contient 'a1' /A/B [ starts-with(@att1, 'a1') ] att1 qui commence par 'a1' 17/04/2017 Transparent 47 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath – Interrogations sur une Base Documentaire 17/04/2017 XPath – Interrogations sur une Base Documentaire //TITRE tous les titres du document /FILMs/FILM [TITRE='Alien'] tous les FILM à titre"Alien" /bookstore/book[ price>35 ]/title tous les 'title' des 'book' de 'bookstore' avec un 'price' > 35 Et d'autres fonctions XPath 1.0 & 2.0 … communes à XSLT, XQuery 17/04/2017 Transparent 48 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPath + DOM avec JavaScript 17/04/2017 XPath + DOM avec JavaScript mozxpath .js <script type="text/javascript"> //xpath une 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.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 17/04/2017 Transparent 49 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XLink – Xml Linking Language 17/04/2017 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. 17/04/2017 Transparent 50 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XLink – Exemples Lien sur le Web Lien local prefix optionnel 17/04/2017 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 xlink: href=‘‘Schemas/schema1.png’’ xlink: show=‘‘ embed’’ xlink: actuate=‘‘onLoad ’’ /> 3 mais pas 4 ? prefix optionnel Espace de noms "Namespace" 17/04/2017 Transparent 51 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XLink: un exemple d'insertion dans XML 17/04/2017 XLink: un exemple d'insertion dans XML <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/css" href="xlink.css"?> <racine> <titre> Des Liens sous XML avec Xlink </titre> <homepages xmlns:xlink = " http://www.w3.org/1999/xlink " > --------------------------- <homepage xlink:type="simple" xlink:href=" http://www.w3schools.com ">Visit W3Schools</homepage> xlink:href=" http://www.essi.fr/~pfz ">Visit Paul Franchi</homepage> </homepages> </racine> namespaces sous la balise, avec prefix 3 mais pas 4 ? 17/04/2017 Transparent 52 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XPointer – Xml Pointer Language 17/04/2017 XPointer – Xml Pointer Language Une extension des URL pour préciser un élément dans un document Xml (parties spécifiques ou fragments) en utilisant des XPath expressions version Html ancre interne <a name= "XPointer" ..cette page..</a> <a id= "XPointer" ..cette page..</a> référence externe <a href="http://www.essi.fr/~pfz/LANGDOC/doc.html#XPointer"> version Xml localisation des éléments du document via XPath syntaxe d’un pseudo chemin http://www.essi.fr/~pfz/LANGDOC/doc.xml#xpointer/1/2 http://www.essi.fr/~pfz/LANGDOC/doc.xml#xpointer(id('Balise')/ avec /1/2 correspondant au chemin Xpath: /child::*[1]/ child::*[2] 17/04/2017 Transparent 53 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML – XQuery What is XQuery? 17/04/2017 XML – XQuery What is XQuery? XQuery is the language for querying XML data XQuery for XML is like SQL for databases XQuery is built on XPath expressions XQuery is supported by all major databases XQuery is a W3C Recommendation for $x in doc("books.xml")/bookstore/book where $x/price>30 order by $x/title return $x/title 17/04/2017 Transparent 54 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

17/04/2017 XML – XForms <xforms> <model> <instance> <person><fname/><lname/> </person> </instance> <submission id="form1" method="get" action="submit.asp"/> </model> <input ref="fname"> <label>First Name</label> </input> <input ref="lname"> <label>Last Name</label> </input> <submit submission="form1"> <label>Submit</label> </submit> </xforms> What Is XForms? XForms is the next generation of HTML forms XForms is richer and more flexible than HTML forms XForms will be the forms standard in XHTML 2.0 XForms is platform and device independent XForms separates data and logic from presentation XForms uses XML to define form data XForms stores and transports data in XML documents XForms contains features like calculations and validations of forms XForms reduces or eliminates the need for scripting XForms is a W3C Recommendation 17/04/2017 Transparent 55 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML – Autres Technologies (W3C et al.) 17/04/2017 XML – Autres Technologies (W3C et al.) XPointer Point, Intervalle: pour spécifier des fragments de document XML XInclude pour "assembler" des documents XML ATOM RSS WSDL etc. 17/04/2017 Transparent 56 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Techniques XML Style SVG DTD XSLT AJAX XSD as MetaData 17/04/2017 Techniques XML Style CSS multiples DTD interne externe validation XSD DOM & JS & CDATA parsing & validation programmation DOM styleSheets[] XPath Fragments & XSLT SVG animation XSLT AJAX as MetaData RDF SPRY PHP XUL 17/04/2017 Transparent 57 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 57

XML & CSS multiples title Obligatoire 17/04/2017 XML & CSS multiples title Obligatoire <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet title="Style de base" href="cd_catalog.css" type="text/css"?> <?xml-stylesheet title="Planche" rel="alternate" href="cd_catalog_2.css" type="text/css"?> <?xml-stylesheet title="Spirale" rel="alternate" href="cd_catalog_3.css" type="text/css"?> <CATALOG> ... / ... </CATALOG> 17/04/2017 Transparent 58 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 58

XML & DTD interne <?xml version="1.0" encoding="iso-8859-1"?> 17/04/2017 XML & DTD interne <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE note[ <!ENTITY nbsp " " ><!ENTITY eacute "é" ><!ENTITY egrave "è" > <!ELEMENT note (to+, from, heading?, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <!- -<!ELEMENT note ANY> --> <note> <!-- <erreur> ERREUR de balise: BIEN FORMé, mais non VALIDE </erreur> <to>Vous</to><to>Lés       Autrès</to> <from>Moi</from> <heading>Rappel</heading> <body> N'oubliez pas de rendre vos TPs !</body> </note> 17/04/2017 Transparent 59 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 59

XML & DTD externe <!DOCTYPE note SYSTEM "note.dtd"> 17/04/2017 XML & DTD externe <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <!-- <erreur> ERREUR de balise: BIEN FORMé, mais non VALIDE </erreur> --> <to>Vous</to><to>Lés       Autrès</to> <from>Moi</from> <heading>Rappel</heading> <body> N'oubliez pas de rendre vos TPs ! </body> </note> <!ELEMENT note (to+, from, heading?, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> <!ENTITY nbsp " " > <!ENTITY eacute "é" > <!ENTITY egrave "è" > 17/04/2017 Transparent 60 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 60

DTD – Validation => DOM Avec le W3C Validator on-line 17/04/2017 DTD – Validation Avec le W3C Validator on-line Avec xmllint ss libxml Avec le parseur XML sous DOM load(), loadXML() pour fichiers, chaînes XML <!-- script sous IE 5.0 et + --> <script type="text/javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.validateOnParse="true" xmlDoc.load("note_dtd_error.xml") document.write("<br>Error Code: ") document.write(xmlDoc.parseError.errorCode) document.write("<br>Error Reason: ") document.write(xmlDoc.parseError.reason) document.write("<br>Error Line: ") document.write(xmlDoc.parseError.line) </script> => DOM 17/04/2017 Transparent 61 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML & XSD <note xmlns="si4/langDoc" 17/04/2017 XML & XSD <?xml version="1.0" encoding="iso-8859-1"?> <note xmlns="si4/langDoc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="si4/langDoc note.xsd"> <!-- <erreur> BIEN FORMé, mais non VALIDE </erreur> --> <to>Vous</to> <to>Les Autres</to> <from>Moi</from> <heading>Rappel</heading> <body> N'oubliez pas de rendre vos TPs ! </body> </note> <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace= "si4/langDoc" xmlns="si4/langDoc" elementFormDefault="qualified" > <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string" maxOccurs="unbounded"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string" minOccurs="0"/> <xs:element name="body" type="xs:string"/> <xs:element name="erreur" type="xs:string"/> <!– <xs:element name="erreur" type="xs:string"/> --> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> 17/04/2017 Transparent 62 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 62

DOM - Document Object Model 17/04/2017 DOM - Document Object Model "The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document." La spécification Dom définit une interface abstraite (type API Java) pour standardiser les fonctionnalités d’accès et de manipulation d’un document vu comme une arborescence («tree structure»). Création d’éléments Parcours et accès aux éléments Edition: déplacer, copier, supprimer, etc. Modification des attributs Dom (level 1/2/3): Core DOM , XML DOM, HTML DOM, Sax : une implémentation (light) évènementielle du Dom W3SChools XML DOM Doc Parseur XML Application Dom 17/04/2017 Transparent 63 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

DOM - "Parser" un document XML(1) 17/04/2017 DOM - "Parser" un document XML(1) Script en HTML sous I.E. : http://www.w3schools.com/dom <html> <head> <script type="text/javascript"> var xmlDoc function loadXML() { //load a xml file // code for IE if (window.ActiveXObject) { xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async = false; xmlDoc.validateOnParse = "false" // "true" pour valider avec une DTD xmlDoc.load("note.xml"); getmessage() } // continue sur le suivant 17/04/2017 Transparent 64 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

DOM - "Parser" un document XML(2) 17/04/2017 DOM - "Parser" un document XML(2) Script en HTML sous Mozilla : http://www.w3schools.com/dom // suite du précédent // code for Mozilla, etc. else if (document.implementation && document.implementation.createDocument) { xmlDoc = document.implementation.createDocument("","",null); xmlDoc.load("note.xml"); xmlDoc.onload =getmessage(); } else { alert('Your browser cannot handle this script'); } } // fin de loadXML() // continue sur le suivant 17/04/2017 Transparent 65 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Exemple: viewNote.html 17/04/2017 DOM - Programmation http://www.w3schools.com/dom Exemple: viewNote.html function getmessage() { document.getElementById("to").innerHTML = xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValue document.getElementById("from").innerHTML = xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValue document.getElementById("message").innerHTML = xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue } // fin de getmessage() </script> </head> <body onload="loadXML()"> <div id="to" style="background-color:pink"> ……. </div> <div id="from" style="background-color:pink"> ……. </div> <div id="message" style="background-color:pink"> ……. </div> </body> </html> 17/04/2017 Transparent 66 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML & CDATA (script JS interne) 17/04/2017 XML & CDATA (script JS interne) <?xml version="1.0" standalone="no"?> <dateur> <titre> Date/Time: JS en XML</titre> <script xmlns=http://www.w3.org/1999/xhtml type="text/javascript" > <![CDATA[ function ANIM(){ .. ./ ..... } function INIT() { .... / ....} ]]> </script> <body xmlns="http://www.w3.org/1999/xhtml" onload='INIT()'> <box id="date">jeudi 10 avril 2008</box> <box id="heures">9</box> <box id="minutes">43</box> <box id="secondes">17</box> </body> </dateur> protège le script utilise le DOM pour exécuter le script 17/04/2017 Transparent 67 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 67

DOM + styleSheets[ ] <script type="text/javascript"> 17/04/2017 DOM + styleSheets[ ] <script type="text/javascript"> <![CDATA[ function style(n) { var out = "Stylesheet " + n + "<br />"; out += "title = '"+ document.styleSheets[n].title + "'<br />"; out += "href = '" + document.styleSheets[n].href + "'<br />"; out += "type = '" + document.styleSheets[n].type + "'<br />"; out += "disabled = '" + document.styleSheets[n].disabled + "'<br />"; document.getElementById('OUT').innerHTML+="<p>"+out+"</p>" ; } function dis() { document.styleSheets[0].disabled = !document.styleSheets[0].disabled; document.styleSheets[1].disabled = !document.styleSheets[1].disabled; ]]> </script> 17/04/2017 Transparent 68 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

SVG+ JS+DOM - Animation: "Clock" 17/04/2017 SVG+ JS+DOM - Animation: "Clock" <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" > <script type="text/javascript"> <![CDATA[ function $(id) {return document.getElementById(id)}; var centre=$("small"); function ANIM() { // mise à l'heure a=new Date(); h=a.getHours()%12; m=a.getMinutes(); s=a.getSeconds(); m+=s/60; h+=m/60; // ring centre.setAttribute("fill", "grey"); if (s%5==0) {centre.setAttribute("fill", "green");} if (s%15==0) {centre.setAttribute("fill", "red");} // aiguilles $("heures").setAttribute("x2", Math.cos((h-3)/6*pi)*25+50); $("heures").setAttribute("y2", Math.sin((h-3)/6*pi)*25+50); $("minutes").setAttribute("x2", Math.cos((m-15)/30*pi)*35+50); $("minutes").setAttribute("y2", Math.sin((m-15)/30*pi)*35+50); $("secondes").setAttribute("x2", Math.cos((s-15)/30*pi)*45+50); $("secondes").setAttribute("y2", Math.sin((s-15)/30*pi)*45+50); setTimeout("ANIM()", 900); // <1000 = 1 sec } ANIM(); // appel de l\'animation ]]> </script> </svg> <!-- le décor de l'horloge --> . <g stroke="black"> <line x1="50" id="secondes" /> <line x1="50" id="minutes" /> <line x1="50" id="heures" /> </g> <g stroke="black" id="marques"> <circle cx="50" cy="50" r="9" id="small"/> </g> Code Partiel 17/04/2017 Transparent 69 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Code Partiel XPath + DOM avec JS 17/04/2017 XPath + DOM avec JS <html> <body> <script type="text/javascript"> //xpath une expression de chemin XPATH // I.E var xmlDoc=new ActiveXObject ("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.load ("cdcatalog.xml") ; firstFit=xmlDoc.selectNodes(xpath)[0]; // Mozillla xmlDoc=document.implementation.createDocument("","",null); xmlDoc.load("cdcatalog.xml") firstFit=document.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null)[0]; attValue=firstFit.getAttribute('someAtt'); //exemple </script> </body> </html> Code Partiel 17/04/2017 Transparent 70 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Code Partiel JS + DOM + XSLT <script type="text/javascript"> 17/04/2017 JS + DOM + XSLT function transform (xml, xsl, id) { try { // navigateur basé sur Gecko if (window.XSLTProcessor) { var fragment; var xsltProcessor = new XSLTProcessor(); xsltProcessor.importStylesheet(xsl); fragment = xsltProcessor.transformToFragment(xml, document); var target = document.getElementById(id); target.innerHTML = fragment.firstChild.innerHTML ; // pfz //target.appendChild(fragment); //orig //document.replaceChild(target, fragment); //orig // ActiveX pour Internet Explorer } else if (window.ActiveXObject) { target.innerHTML = xml.transformNode(xsl); } } catch (e) {return e;} <script type="text/javascript"> var XML= loadXML(xmlURL); var XSL= loadXML(xslURL); function theJobTe() { transform (XML, XSL, 'ICI'); .... } </script> Code Partiel 17/04/2017 Transparent 71 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML + AJAX <script type="text/javascript"> <![CDATA[ 17/04/2017 <script type="text/javascript"> <![CDATA[ var xmlhttp; function loadXMLDoc(path) { xmlhttp=null; if (window.XMLHttpRequest) {// code for IE7, Firefox, Mozilla, etc. netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); xmlhttp=new XMLHttpRequest(); } else if (window.ActiveXObject) {// code for IE5, IE6 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null) { xmlhttp.onreadystatechange=onResponse; xmlhttp.open("GET", path, true); xmlhttp.send(null); } else { alert("Your browser does not support XMLHTTP."); } } // à suivre XML + AJAX 17/04/2017 Transparent 72 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

Code Partiel XML + AJAX // suite du précédent function onResponse(){ 17/04/2017 XML + AJAX // suite du précédent function onResponse(){ if(xmlhttp.readyState!=4) return; if(xmlhttp.status!=0 && xmlhttp.status!=200) { alert("Problem retrieving XML data"); return; } } // traitement du texte source var SOURCE = xmlhttp.responseText ; … // traitement du xml var XML =xmlhttp.responseXML ; ]]> </script> Code Partiel 17/04/2017 Transparent 73 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

SMIL pour le Multimédia RDF XML et PHP/SQL XML/RDF et SPRY, XUL, 17/04/2017 XML as MetaData XMI pour UML WSDL pour SOAP/RSS SMIL pour le Multimédia RDF XML et PHP/SQL XML/RDF et SPRY, XUL, 17/04/2017 Transparent 74 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 74

XML metadata pour EXEMPLES/ 17/04/2017 XML metadata pour EXEMPLES/ <?xml version='1.0' encoding='ISO-8859-1'?> <?xml-stylesheet href="docExShow.xsl" type="text/xsl" ?> <Doc base ="../"> ****************** BIB *********** <Exemples dossier='BIB' base='BIB/' auteur='pfz' version='2009'> <Ex cle="BIB"> <Path>bib1.html</Path> <Title>bib1</Title > <Style></Style> </Ex> <Path>bib2.html</Path> <Title>bib2</Title> <Style></Style> <Ex cle="CSS BIB"><Path>bib.html</Path><Title>bib</Title> <Style> <Css><href>bib.css</href></Css> </Style> </Exemples> ****************** SPRY *********** <Exemples dossier='SPRY' base='SPRY/' auteur='pfz' version='2009'> <Ex cle="SPRY CSS"> <Path>spry.html</Path><Title>spry</Title> Code Partiel 17/04/2017 Transparent 75 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi

XML as metadatas SPRY (Adobe Labs) from RDF, XML to PHP/SQL 17/04/2017 XML as metadatas SPRY (Adobe Labs) using XML to describe "contents" using JS & DOM to generate wIdgets & "contents" using AJAX to access/modify "contents" from RDF, XML to PHP/SQL using XML/RDF to describe "contents" using XSLT from XML to SQL exporting from SQL to XML XSLT using XSLT to generate wIdgets (DHTML, JS) using XSLT to generate/modify "contents" (HTML) using XSLT to generate/modify style (CSS) XUL (Mozilla Foundation) using RDFL to describe "contents" using XUL to generate WIdgets & "contents" using AJAX to access "contents" using JASON, XML-RPC, WSDL for "networking" and "web services" 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 76

R.I.A. - XML as metadatas & SPRY 17/04/2017 R.I.A. - XML as metadatas & SPRY XML rdf Rich Client XML rdf HTML SPRY CSS, XSL JS DHTML AJAX DHTML 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 77

XML as metadatas & PHP/SQL 17/04/2017 XML as metadatas & PHP/SQL 3-tier Client/Server Architecture uses a Wamp Server XML rdf Lex JS XSL CSS, XSL XSLT HTML SQL XML AJAX PHP XML contourner un bug Office 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 78

XSL JS CSS XSLT HTML XML rdf XML 17/04/2017 XML as metadatas & XSLT XSL JS CSS XSLT HTML XML rdf XML 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 79

xml dtd xsd html css css via xsl Web Reference Browser metadata .xml de XML vers HTML5+CSS3 17/04/2017 Transparent 80 ESSI - 2 – 2004-05 - Paul Franchi 80

dtd xsd html css css css js metadata xml via xsl Doc Example Browser de XML vers HTML5+CSS3+JS 17/04/2017 Transparent 81 ESSI - 2 – 2004-05 - Paul Franchi 81

XML (meta) modèle de données (ERD ) <Show version > uses: n,m used_by: n,m <Categorie type path > 1,* <Code titre keywords file version > <Description libellé* img? > 1,* 1,? n,m <Auteur> Type Keyword Keyword Path Keyword Keyword Aut Keyword 17/04/2017 Transparent 82 ESSI - 2 – 2004-05 - Paul Franchi 82

XML Processing: XSLT, XPath, XLink 17/04/2017 XML: "State of the Art" XML Processing: XSLT, XPath, XLink Dynamic XML using XSL/JS XML as metadata: RDF, SPRY, XUL XML rdf .xsl XML rdf 17/04/2017 Langages & Documents ESSI - 2 – 2004-05 - Paul Franchi 83