TECHNOLOGIE XML. Pr. Younès EL BOUZEKRI EL IDRISSI

Documents pareils
XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

XML : documents et outils

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

SII Stage d informatique pour l ingénieur

Master d Informatique Corrigé du partiel novembre 2010

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

<?xml version="1.0" encoding="iso " standalone="yes"?>

PIVOT. Pivot/Querier Documentation technique XML/XSD/XSLT

Qu'est-ce que XML? XML : Extensible Markup Language. Exemple de document SGML SGML

Faculté Polytechnique de Mons. Le processus d Extraction, Transformation et Load (ETL) dans des entrepôts de données XML

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

L'essentiel de XML. Cours XML. Olivier Carton

Production de documents avec XSLT. Production de documents p.1/??

Programmation Internet Cours 4

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

BD et XML : Exercices

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

BIRT (Business Intelligence and Reporting Tools)

Gestion Électronique de Documents et XML. Master 2 TSM

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

Les outils de création de sites web

Optimiser moteur recherche

Module BD et sites WEB

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Outils logiciels pour l'ingénierie documentaire

Pack Fifty+ Normes Techniques 2013

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Programmation Web TP1 - HTML

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Création et Gestion des tables

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Les services usuels de l Internet

Formation : WEbMaster

Design et implémentation d un logiciel de validation et de génération de configurations réseaux

Couches 4 à 7 : Traitement des données

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

Guide de création de site web optimisé

INTRODUCTION AU CMS MODX

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

creer votre site internet en html/css

Approche Contract First

LES GRANDES ETAPES DE CREATION D UN WEB DESIGN

XML et DOM. Matériel de cours. mars 1999 version 0.3 dernière modification: 24/3/99

Créer une base de données vidéo sans programmation (avec Drupal)

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Bernard Lecomte. Débuter avec HTML

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Les architectures 3-tiers Partie I : les applications WEB

Initiation à html et à la création d'un site web

SECTION 5 BANQUE DE PROJETS

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Intégrateur Web HTML5 CSS3

Gestion documentaire (Extraits du CCI version 1.2)

Structure fonctionnelle d un SGBD

Systèmes d'informations historique et mutations

4. SERVICES WEB REST 46

SYSTÈMES D INFORMATIONS

Introduction aux concepts d ez Publish

Formation HTML / CSS. ar dionoea

Le Web de Données Dan VODISLAV Université de Cergy-Pontoise Master Informatique M2 Plan

Programmation des Applications Réparties. Parsers XML DOM et SAX

Web Application Models

HTML. Notions générales

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

XML et travail collaboratif : vers un Web sémantique

Installation de DocBook sur un système Linux

Séance 1 Introduction aux bases de données

Plateforme PAYZEN. Définition de Web-services

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Nom de l application

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Normes techniques 2011

Le codage informatique

LES TECHNOLOGIES DU WEB APPLIQUÉES AUX DONNÉES STRUCTURÉES

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Catalogue des formations Edition 2015

FileMaker Server 12. publication Web personnalisée avec XML

DMP1 DSFT des Interfaces DMP des LPS Annexe : complément de spécification sur l impression des documents à remettre au patient

Utiliser un CMS: Wordpress

La mémoire. Un ordinateur. L'octet. Le bit

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ech-0148 Motifs d annonce Entreprises - taxes de domaine

OCL - Object Constraint Language

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Devenez un véritable développeur web en 3 mois!

Programmation de services sensibles au contexte en téléphonie sur IP

Tutoriel : Feuille de style externe

PHP 5.4 Développez un site web dynamique et interactif

Transcription:

TECHNOLOGIE XML Pr. Younès EL BOUZEKRI EL IDRISSI y.elbouzekri@gmail.com AU 2014/2015

RÉFÉRENCES Technologie XML Cours pour cycle des ingénieurs ENSIAS Préparée par Pr. Rachida AJHOUN XML: A Manager's Guide Kevin Dick XML : Cours et exercices Alexandre Brillant 2 Y.ELBOUZEKRI EL IDRISSI

PLAN DU COURS Part I Introduction de la technologie XML Structure des documents XML Validation des documents XML Part II Publication d un document XML Programmation par XML 3

OBJECTIFS Présenter la technologie XML Savoir utiliser les outils associés Pour quelles circonstances puis-je l utiliser? Utilisation de la technologie XML 4

PART I: INTRODUCTION DE XML Historique des langages du Web Besoin du langage XML HTML Vs XML 5

LANGAGE ORIENTÉ WEB SGML: Standard Generalized Markup Language (ISO 8879), 1974 Description de la structure d un type de document Les documents de ce type respecte la structure DSSSL: Document Style Semantics and Specification Language Feuille de style est associe à un type de document SPDL: Standard Page Description Langage Formatage des documents SGML +(DSSSL) 6

HISTORIQUE DES LANGAGES DU WEB Diffusion du Web (1990) Faciliter l accès à l information Naissance de HTML Web évolue et HTML montre ses limites Utiliser la technologie pour d autres fins Naissance de XML (1997) Janvier 1998, adoption de la première version de XML par le W3C 7

BESOIN DU XML Le traitement et le stockage de l ensemble des informations de l entreprise durant toutes les étapes de production Formalisme pour les informations; Une représentation unique afin d être bien exploitées; Prévoir des documents pour un traitement manuel et automatique: Script XML orientées document et données; Besoin d échange de données (BUS) Les caractères Unicode constituent également un moyen de garantir la neutralité des données transportées 8

BESOIN DU XML Structure et validation des documents Afin d adapter un document à une structure bien définie, exemple base donnée (relationnelle); Transformation et adaptation Besoin de transformer les données d un fichier vers une représentation bien définie, et selon les contraintes de l entreprise; 9

XML XML : extensible Markup Language permet de décrire les informations de façon à : les présenter les transmettre les transformer Le domaine d'application de XML va de l'échange de documents à la gestion de contenu, le commerce électronique ou même l'interopérabilité de systèmes d'information hétérogènes. 10

APERÇU GÉNÉRAL Que signifie XML? extensible: une infinité de balises; Markup: identifier les # éléments d un document au moyen de balises; Language: respecter un certain nombre de règles. XML est un standard de création de langages; XML décrit la structure et la sémantique, par l aspect; 11

HTML VS XML Exemple code HTML: les données sur un ordinateur <BODY> <UL> <LI> Toshiba Satellite</LI> <LI> A 100</LI> <LI> AMD sempron 3 Ghz</LI> <LI> 3 Mo </LI> <LI> 250 Go</LI> </UL> </BODY> 12

HTML VS XML Document XML.. <constructeur> Toshiba Satellite</constructeur> <modele proc= > A 100 </modele> <processeur> AMD sempron 3 Ghz </processeur > <ram unite="go">3 </ram> <ddr> 250 Go</dde> Lisibilité: données auto-documentées Séparation entre l information et la présentation Traitement par d autres applications 13

COMPARAISON ENTRE XML ET HTML HTML possède un jeu de balises fixes; XML n'a pas de balises prédéfinies mais permet de se définir ses propres balises; HTML mélange le contenu et la présentation améliorations possibles cependant avec CSS); Des liens trop simples; XML ne décrit que du contenu pur; Pour la présentation on pourra utiliser du XSL ou générer du HTML+CSS grâce à des outils comme XSLT; 14

XML EST UNE COLLECTION DE SPÉCIFICATIONS XML est en fait une collection de spécifications et de "vocabulaires" associés, basés sur la même syntaxe. Les trois parties les plus importantes sont les suivantes : XML 1.0 Recommendation : c'est la spécification de base du langage extensible de balisage XML qui décrit en détail la syntaxe du métalanguage; XML Linking Language (XLink) et Xpointer: ces deux documents du W3C décrivent différentes façons, assez complexes, d'exprimer les schémas de relations entre documents et sections de documents; Extensible Style Language (XSL): XSL décrit comment les documents XML peuvent être présentés sur différents périphériques d'affichage et plus généralement transformés. 15

CYCLE DE VIE D UN DOCUMENT XML Schéma I DTD XSL XML transformé Application XML Document XML schéma CSS API HTML Navigateur Text/PDF Utilisation 16 Structure Transformation Résultats

17 STRUCTURE D UN DOCUMENT XML

COMMENT? Diviser un document XML en différentes parties afin de les étudier en détail; Selon le schéma I: Le document est composé: Un contenu Une partie de structure ou type de document Une partie de transformation 18

EXEMPLE SIMPLE <?xml version="1.0" encoding="iso-8859-1"?> <! Fiche technique --> Commentaire <laptop constructeur=«toshiba"> <serie ref = " Satellite "> </serie> < description> Toshiba professional series AMD prossesor 2Ghz 4Go memory </description> </laptop> Les éléments Prologue 19

COMPOSANTES D UN DOCUMENT XML Partie I Prologue: Une déclaration d un document XML Commentaires (facultatif) Les différents éléments du document Partie II Définition optionnelle de type de document Instructions de traitements: fournissent de l information à une application XML Références aux entités 20

LE PROLOGUE: ENTÊTE <?xml version="1.0" encoding="utf-8" standalone="no"?> Version="1.0" : version de la spécification XML utilisée. Il existe aussi la version 1.1, mais la version 1.0 est la plus utilisée; Le jeu de caractères employé (encoding), afin de permettre au analyseur (parser) du fichier XML de mieux interpréter le jeu des caractère; Encoding="UTF-8": le jeu de caractères utilisé Standalone: indiquant la présence de déclaration externes nécessaires au traitement du document. 21

LES NŒUDS ÉLÉMENTS Sont le contenu du document, identifiés par un nom; Composantes de base d un document XML Un nom XML valide est composé de chiffres, lettres, tirets, blancs soulignés, deux points et un point. Un nom XML doit commencer par une lettre ou un blanc souligné Contenu: Textuel: <nom>windows</nom> Éléments: <systeme> gggggg<nom>windows</nom> <version>2000profesional</version> </systeme> Une hiérarchie d éléments comme l organisation des répertoire; Mixte: textuel + éléments Vide: <ip/> 22 Références à des entités, des sections littérales et des IT

LES BALISES Servent à décrire un élément: <nom>windows</nom> Toute balise rencontrée est analysée: Contrairement à HTML qui ignore les balises non valides; Les balises XML sont sensibles à la Casse: Contrairement à HTML. 23

ATTRIBUTS Contient des informations sur l élément; = paires nom/valeur associées à un élément: <ram UNITE="Mo" >256 </ram> Un élément peut avoir plusieurs attributs: <auteur NE="1910" MORT="2000 "> les valeurs d attributs: Un nombre, une chaîne de caractères, une adresse, Attributs prédéfinis: xml:lang, xml:space 24

CHOIX ENTRE ATTRIBUTS ET ÉLÉMENTS <client nom= " ahmed" prenom= "ahmed"/> <client> <nom> </nom> <prenom> </prenom> </client> <clients> <nom> </nom> <nom></nom> <prenom> </prenom> </client> 25

COMMENTAIRES Ce sont les mêmes qu en HTML. Ils se positionnent n importe où après le prologue et peuvent figurer sur plusieurs lignes <! Ordinateur en promotion 20% --> 26

LES RÈGLES SYNTAXIQUES DU LANGAGE XML R1: le document doit commencer par une déclaration XML; R2: attention à la capitalisation des noms et des attributs; R3: les valeurs des attributs doivent être quottées " " ; R4: les balises non vides doivent être appariées; R5: les balises vides doivent être fermées; R6: les éléments ne doivent pas se chevaucher; R7: un élément principal doit enfermer tous les autres; R8: ne pas utiliser les caractères < et & seuls. 27

DOCUMENT BIEN FORMÉ ET VALIDE Il existe deux types de document XML Bien formé: respecte les règles syntaxiques du langage XML Valide: bien formé + conforme à une grammaire (DTD ou schéma) 28

EXERCICE I (AVEC EDITIX) Création d un livre en XML On souhaite écrire un livre en utilisant le formalisme XML. Le livre est structuré en sections (au moins 2), en chapitres (au moins 2) et en paragraphes (au moins 2). Le livre doit contenir la liste des auteurs (avec nom et prénom). Tous les éléments doivent posséder un titre, sauf le paragraphe qui contient du texte. Proposez une structuration XML de ce document (avec 2 auteurs, 2 sections, 2 chapitres par section et 2 paragraphes par chapitre). Vérifiez, à l aide de l éditeur, que votre document est bien formé. Attention : ne pas utiliser d attributs 29

SECTION CDATA: SECTION LITTÉRALE CDATA signifie "Character data" = données textuelles Intérêt: Insérer du texte non interprété par le processeur XML Exemple de codes XML La syntaxe: <! [CDATA [ Texte non analysé, ]]> NB: on ne peut pas imbriquer deux sections CDATA 30

LES ENTITÉS DU DOCUMENT Les éléments contenus dans la racine peuvent prévenir de différentes sources (fichiers, SGBD, ); Les unités de stockage pour les composants du document sont des entités; L élément racine et ses sous-éléments peuvent contenir des références à d autres entités; Le processeur XML regroupe toutes les entités formant le document pour un traitement de l ensemble. 31

DÉFINITION DU TYPE DE DOCUMENT Sert à lier une grammaire de type DTD (Document Type Definition) à votre document XML. Elle est introduite avant la première balise (racine) de votre document sous cette forme : <!DOCTYPE racine SYSTEM "URI vers la DTD"> racine est le premier élément (la première balise). URI peut être absolue ou relative au document. Il est généralement préférable soit d utiliser une URI relative, pour pouvoir déplacer le document XML et sa grammaire sans difficulté. <!DOCTYPE fiche technique SYSTEM "fiche.dtd"> 32

LES ENTITÉS DU DOCUMENT Entités se subdivisent en deux catégories: Analysables: contiennent un texte XML bien formé Non-analysables: contiennent du texte non-xml ou des données binaires. Ils sont de deux types: Internes : définies dans l entité document elle-même Externes: elles dépendent d une source de données externe au document XML 33

ENTITÉS INTERNES Entité interne correspond à une version abrégée d un texte long ou difficile à saisir <!ENTITY nom "texte associé" > Exemple: <!ENTITY email "NOM@ufr.ac.ma" > La référence se fait par le préfixe & et en rajoutant à la fin du nom un point-virgule : &email; Entités prédéfinies: lt, gt, amp, apos et quot représentent respectivement les caractères <, >, &, ", '. 34

ENTITÉ INTERNE: EXEMPLE <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE livre [ <!ENTITY auteur "Nom et prénom de l étudiant"> ]> <livre> <auteur> Cours réalisé par &auteur; </auteur> </livre> 35

ENTITÉS EXTERNES Entités externes sont définies à l intérieur de la DTD au moyen de la déclaration <!ENTITY.> Exemple: <!ENTITY nom SYSTEM "URI"> <!DOCTYPE parc-machine [ <!ENTITY lab01 SYSTEM "http://www.ufr.ma/lab01.xml" > ]> Une référence à l entité lab01 l inclusion du fichier lab01.xml dans le document principal. La référence : &lab01; 36

ENTITÉS EXTERNES: EXEMPLE <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE livre [ <!ENTITY auteur "Nom et prénom de l étudiant"> <!ENTITY chap1 SYSTEM "chapitre1.xml"> ]> <livre> <auteur> Cours réalisé par &auteur; </auteur> &chap1; </livre> 37

ENTITÉS NON-XML Déclaration du format de l entité: NOTATION Pour spécifier un format de données non-xml (MIME) Référence se fait dans une valeur d attribut Exemple: <!DOCTYPE exemple [ <!NOTATION real SYSTEM " /usr/local/bin/realplayer.exe"> <!ENTITY labyrinthe SYSTEM "./modeles/chanson.mp3 NDATA real> ]> <exemple> <graph3d att= labyrinthe /> </exemple> 38

ENTITÉS PRÉDÉFINIE S lt: caractère '<' gt: caractère '>' amp: caractère 'é' quot: caractère '"' (guillement double) apos: caractère "'" (quillement simple ou apostrophe) 39

LES INSTRUCTIONS DE TRAITEMENT Des informations supplémentaire n ont pas de rôle lié aux données ou à la structuration de votre document; Des informations qui visent les applications afin de mieux traiter les données du document XML; Pas d emplacement exigé dans le document; Exemple: <?xml-stylesheet type="text/xsl" href= "display.xsl"?> NB : Encadrée des caractères <? et?> 40

RÉFÉRENCE À LA FEUILLE DE STYLE <?xml-stylesheet type="text/xsl" href="comp.xsl"?> La feuille de style XSL est référencée par le URL en utilisant l attribut href; Un processeur XSL sur le client ou le serveur reçoit les documents XML et XSL en entrée et génère le document de sortie (HTML, XML modifié, ). 41

ESPACES DE NOMS Problème: des noms d éléments ou des noms d attributs identiques ambiguïtés Les espaces de noms (namespaces) permettent: De mélanger du vocabulaire XML provenant de plusieurs grammaires D identifier de manière unique les balises XML Recommandation: www.w3.org/tr/rec-xmlnames 42

ESPACES DE NOMS La définition d un espace de noms peut se faire dans n importe quelle balise ouvrante d éléments d un document XML Syntaxe: xmlns:prefixe= URI Exemple : xmlns:reseau= "http://www.ufr.com/xml/reseau" 43

ESPACES DE NOMS: PAR DÉFAUT Un premier usage consiste à utiliser simplement l espace de noms par défaut. Ce dernier est précisé par un pseudo-attribut xmlns; L espace de noms par défaut s applique à l élément où se situe sa déclaration et à tout son contenu. <livre xmlns="http://www.emsi.ac.ma"> <section>... </section> </livre> 44

L ESPACE DE NOMS EXPLICITE Pour plus de souplesse dans les documents de grande taille, d où l utilisation de plusieurs espaces de nom est courante, on utiliser un préfixe Un préfixe est un raccourci vers l URL de l espace de nom. <es:livre xmlns:es="http://www.hhhh.ac.ma"> </es:resultat> 45

EXERCICE2: ENTITÉS PRÉDÉFINIES Utilisation des entités prédéfinies On se propose de créer un nouveau document livrebis.xml reprenant l exercice précédent (livre.xml). Placez dans 2 paragraphes un bloc de texte contenant l extrait suivant : <paragraphe> a > b </paragraphe> Pour le premier paragraphe, employez les entités prédéfinies. Pour le deuxième paragraphe, employez une section CDATA. 46

EXERCICE 3 (ENTITÉS) Reprendre l exemple du livre Utiliser une entité interne pour l auteur Utiliser une entité externe pour les paragraphes 47

EXERCICE4: ESPACES DE NOM Retravailler l exemple du livre, en définissant deux espaces de nom. 48

49 DTD: Document Type Definition

PRINCIPE Une déclaration de type de document définit: Le nom des types d éléments, leur contenu et dans quel ordre d autres éléments peuvent y apparaître; Les attributs éventuels et leur valeurs par défaut; Le nom des entités qui peuvent être utilisées. DTD peut être interne ou externe; Les documents XML valides doivent respecter les règles données dans la DTD; Dans une DTD, tout ce qui n est pas expressément autorisé est interdit; Une DTD peut contenir des commentaires. 50

CONSIGNES AVANT L UTILISATION La DTD est un texte simple qu on peut crée par n importe quel éditeur de texte; Bien qu'ils ressemblent un peu cryptique au premier lieu, ils demeurent faciles une fois que vous vous habituez à eux; 51

DÉCLARATION D UNE DTD Déclaration de type de document: <!DOCTYPE ElementRacine Et se termine par > Cette déclaration contient la DTD (DTD interne) ou une adresse URL (DTD externe) DTD interne: <!DOCTYPE parc-machine [ <! declarations -- > ]> 52

ELÉMENTS DE DOCUMENT Toujours dans une DOCTYPE on déclare un type de document avec le mot clé ELEMENT: <!ELEMENT nom d élément (les fils+nombre ou le type)> Exemple: <!ELEMENT livre (auteur+)> 53

LES ÉLÉMENTS FILS Lors de la définition d un élément fils, il est possible de spécifier le nombre d apparition du fils par l ajout d un modificateur (modifier) après le nom du fils. Si le modificateur n est mentionné, signifie que le fils va apparaitre une et une seule fois. Les autres options sont décrits dans le tableau suivant : Modificateur Description Rien Une seule fois? Zero ou une seule fois + Une ou plusieurs fois * Zero ou plusieurs fois 54

LES ÉLÉMENTS FILS La déclaration des éléments fils est similaire que les éléments parents, et ils ont le même niveau dans la DOCTYPE: <!ELEMENT titre (titre principal)> Le sous élément fils titre doit avoir un seul fils qui est titre principal. 55

LES ÉLÉMENTS FILS II <!ELEMENT auteur (nom, prénom)> L élément auteur contient deux sous éléments qui apparaitront une seule fois 56

LES ÉLÉMENTS FILS III <!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> Parfois, les éléments contiennent que du texte. Il est déclaré dans la DTD comme #PCDATA. PCDATA est Character DATA, du texte analysé par le moteur XML. 57

ORDRE DES ÉLÉMENTS <!ELEMENT chapitre (titre, paragraphe, paragraphe)> On peut indiquer l ordre de l apparition des éléments fils. En précisant dans les parenthèse l ordre par les virgules. Dans l exemple, c est le titre qui doit apparaitre le premier, suivi de deux paragraphes. 58

LE CHOIX DES ÉLÉMENTS <!ELEMENT auteur (nom prenom)> Dans le cas où il y a un choix d élément, le caractère signifie que l un des éléments peut apparaitre, ou les deux ensembles. 59

DES ÉLÉMENTS SPÉCIAUX <!ELEMENT img EMPTY> l élément est vide. Il ne peut contenir ni souséléments ni données textuelles, mais il peut avoir des attributs. <!ELEMENT img EMPTY> l élément peut contenir des données textuelles ou tout autre élément défini dans la DTD. 60

UN CONTENU MIXTE <!ELEMENT paragraphe (#PCDATA sousparagraphe)> Parfois, les éléments peuvent contenir des valeurs textuelles, et en addition des sous éléments. Il est possible de définir ce cas par l utilisation du caractère et les définitions du type associées. 61

L EMPLACEMENT DES MODIFICATEURS L emplacement des modificateurs est très important dans la définition du type de document. Si le modificateur est en dehors des parenthèses, signifie qu il est appliqué sur l ensemble des sous éléments. S il est à coté d un élément, il sera appliqué qu au niveau de ce dernier. <!ELEMENT auteur (nom prénom)*> <!ELEMENT auteur (nom prénom*) > <!ELEMENT auteur (nom, prénom) * > <!ELEMENT auteur (nom, prénom*) > 62

COMPLEXE DÉCLARATION La déclaration des éléments peut être complexe que les derniers exemple. Dans ce cas, l utilisation des parenthèse est importante pour plus de précision. Par exemple, on peut spécifier que l auteur est composé d un nom_complet, ou de nom et prénom: <!ELEMENT auteur (nom_complet (nom, prénom))> 63

DÉCLARATIONS DES ATTRIBUTS La déclaration des attributs se fait par le mot clé ATTLIST, suivi par le nom de l élement. <!ATTLIST nomelement nomattribut typeattribut Etat Valaurrpardefaut? nomattribut typeattribut Etat Valaurrpardefaut? nomelement est l élémnt qui contient l attribut; nomattribut est le nom de l attribut; typeattribut est le type de l attribut; Valeurpardefaut c est la valeur par défaut que peut prendre un attribut; 64 Etat, il y a trois valeurs possibles: #REQUIRED, #FIXED (mettre valeur), et #IMPLIED (optionnel).

TYPES D ATTRIBUTS CDATA: des données textuelles <!ATTLIST ram unite CDATA #REQUIRED> <ram unite= Mo >...</ram> NMTOKEN: un nom XML valide <!ATTLIST photo Nom NMTOKEN #REQUIRED> <photo Nom= terre...>...</photo> NMTOKENS: plusieurs noms XML séparés par des espaces <!ATTLIST photo Nom NMTOKENS #REQUIRED> <photo Nom= la terre...>...</photo> (val1 val2 ): une liste des valeurs possibles pour l attribut, chaque valeur doit correspondre à un nom XML valide. <!ATTLIST photo Type (GIF JPEG PNG) GIF > <photo Type= GIF...>...</photo> ID: un identificateur unique d un élément. C est un nom XML valide <!ATTLIST machine idf ID #REQUIRED > 65

TYPES D ATTRIBUTS IDREF: l attribut peut prendre comme valeur la valeur d un attribut de type ID d un élément du document. <!ATTLIST personne ref IDREF #IMPLIED > <machine idf="mach001"> </machine> <personne ref="mach001" > </personne> IDREFS: l attribut peut prendre comme valeur une liste de valeurs d attributs ID de plusieurs éléments du document. <!ATTLIST personne ref IDREFS #IMPLIED > <machine idf="mach001"> </machine> <machine idf="mach002"> </machine> <personne ref="mach001 mach002" > </personne> 66

TYPE D ATTRIBUT ENTITY: l attribut peut prendre comme valeur le nom d une entité générale externe non-analysable. Ce type d attribut sert à référencer des données binaires externes (images, fichiers sons, ) ENTITIES: l attribut peut prendre comme valeur les noms de plusieurs entités générales externes non-analysables. NOTATION (N1 N2 ): l attribut peut prendre comme valeur le nom d une notation. <!NOTATION GIF SYSTEM "image/gif" > <!ATTLIST CD IMAGE NOTATION GIF #REQUIRED 67

VALEURS PAR DÉFAUT DES ATTRIBUTS Il est possible de donner une valeur par défaut à un attribut <!ATTLIST edition type (papier electronique) "papier" > La signification de ces mots clés est la suivante: #REQUIRED: l attribut doit être tjs présent lorsque l élément est utilisé. Il n y a pas de valeur par défaut <!ATTLIST edition date CDATA #REQUIRED> #IMPLIED: l attribut correspondant est optionnel. Celui ci ne prendra aucune valeur par défaut <!ATTLIST edition version CDATA #IMPLIED> #FIXED valeur: l attribut correspondant est optionnel. Cela revient à définir une valeur constante. <!ATTLIST edition new NMTOKEN #FIXED "yes"> 68

XML SCHÉMA 69

XML SCHÉMA: INTRODUCTION XML schéma est un langage basé sur XML pour la création des langages et des modèles de données basées sur XML; Pour la définition des éléments et les attributs pour une classe des documents XML; Un langage spécifique aux documents XML, qui permet de créer des structures avec plus de précision. 70

XML SCHÉMA VS DTD Les DTDs et le XML schéma ont le même objectif, sauf que les DTDs sont plus anciennes (SGML/HTML). DTD n a pas des types de données prédéfinies; DTD n offre pas la possibilité à l utilisateur de créer son propre type d élément et/ou contenu; Limitations lors de la définition des cardinalités avec les DTDs; DTD ne supportent pas les espaces de noms, et aucune manière pour importer et réutiliser autres structures. 71

STRUCTURE DES ÉLÉMENTS PAR XML SCHÉMA Source: www.webeducator.com 72

EXPLICATION DU SCHÉMA Un élément peut avoir deux types: Simple composé: Un élément simple: Prédéfini: Prémitives: decimal, float, String Dérivé: des primitives qui respectent un modèle (email) Défini par l utilisateur Atomique; string, entiers Non atomique: liste Un élément composé: 73

EXPLICATION DU SCHÉMA 2 Un élément composé: Contient; fils et/ attributs ou texte Limité: seulement texte et attribut, ou vide (seulement des attributs) mixte 74

SYNTAXE Un schéma est contenu dans un élément de genre: <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > </xs:schema> Il faut introduire un préfixe, xs ou xsd sont généralement utilisés (XML-Schema Definition); Pour chaque élément et attribut, il faudra définir l élément correspondant dans le schéma. 75

DESCRIPTION DES ÉLÉMENTS Chaque élément du document XML est décrit par la balise xsd:element; L attribut name de xsd:element contient le nom de l élément: <xs:element name= machine > </xs:element> Il reste maintenant à définir le type d élément: Simple ou complexe. 76

TYPE SIMPLE Primitives (19) string boolean decimal float double duration datetime time date gyearmonth gyear gmonthday gday gmonth hexbinary base64binary anyuri QName NOTATION Défini par l utilisateur liste XML schéma offre plus de 44 types prédéfinis prédéfini Les types utilisés 77

DÉRIVÉS DES PRÉDÉFINIS normalizedstring token language NMTOKEN NMTOKENS Name NCName ID IDREF IDREFS ENTITY ENTITIES integer nonpositiveinteger negativeinteger long int short byte nonnegativeinteger unsignedlong unsignedint unsignedshort unsignedbyte positiveinteger 78

EXEMPLE: AUTEUR.XSD <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name= "auteur"> <xs:complextype> <xs:sequence> <xs:element name= "Nom" type = "xs:string"/> <xs:element name= "Prenom" </xs:sequence> </xs:complextype> </xs:element> </xs:schema> type = "xs:string"/> 79

DESCRIPTION DES ÉLEMENTS Dans la balise xs:complextype, la liste des sous éléments sera décrit à l intérieur d un des éléments suivants compositeur : xs:sequence définit une liste ordonnée de sous éléments xs:choice définit un groupe d éléments dont un seul devra être présent xs:all définit un ensemble non ordonné d éléments A l intérieur de ces balises, chaque sous-élément est décrit par une balise xs:element 80

TYPE SIMPLE DÉRIVÉ PAR L UTILISATEUR Définir des types personnels par restriction ou extension: Simples Complexes Démarche: On peut développer le schéma auteur par la définition d un type simple personnalisé en utilisant la balise: <xs:simpletype> qui sera par la suite utilisée pour la définition de nouveaux éléments. On crée tout d abord un type et on ajoutant une réstriction par la balise <xs:restriction>. Exemple: un password qui ne doit pas dépaser 8 chiffre. 81

EXEMPLE DE CRÉATION D UN TYPE <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:simpletype name="password"> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpletype> <xs:element name=«utilisateur"> <xs:complextype> <xs:sequence> Facette <xs:element name="pw" type="password"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 82

EXEMPLE DE CRÉATION D UN TYPE <xs:element name=«utilisateur"> <xs:complextype> <xs:sequence> <xs:element name="pw"> <xs:simpletype > <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpletype> </xs:element > </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 83

TYPE SIMPLE: FACETTE Application d une facette au type prédéfini: chaque facette s applique à 1 ou plusieurs types prédéfinis. Le temps: period, Duration Types ordonnés: maxinclusive, mininclusive Tous: enumeration Tous: pattern <xsd:simpletype name=" nom-element"> <xsd:restriction base=" type-predefini"> Définition de la facette <xsd:restriction> </xsd: simpletype> 84

FACETTES length minlength maxlength pattern enumeration whitespace mininclusive minexclusive maxinclusive maxexclusive totaldigits fractiondigits 85

EXEMPLES pour définir un numéro ISBN comme une chaîne de 6 à 10 caractères numériques <xsd:simpletype name= TypeISBN > <xsd:restriction base= xsd:string > <xsd:pattern value= [0-9] {6,10} /> </xsd:restriction> </xsd:simpletype > pour définir un type de données représentant une chaîne de caractères acceptant un maximum de 32 caractères. <xsd:simpletype name= NOM > <xsd:restriction base= xsd:string > <xsd:maxlength value= 32 /> </xsd:restriction> </xsd:simpletype > 86

EXEMPLE AVEC LES CHIFFRES Mins and Maxs : l exemple suivant définit un type salaire qui est un decimal entre 7,000 and 10,000. <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:simpletype name= "salaire"> <xs:restriction base="xs:decimal"> <xs:mininclusive value= "7000"/> <xs:maxinclusive value= "10000"/> </xs:restriction> </xs:simpletype> <xs:element name="employee"> <xs:complextype> <xs:sequence> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> <xs:element name="salary" type= "salaire"/> 87

NOMBRE DE CHIFFRE APRÈS LA VIGULE Utiliser totaldigits et fractiondigits, nous pouvons préciser que le type de salaire devrait être composé de sept chiffres, dont deux viennent après la virgule. Les deux totaldigits et fractiondigits sont des maximums. Autrement dit, si totaldigits est précisé que 5 et fractiondigits est spécifié que deux, un numéro valide pouvait pas avoir plus de cinq chiffres au total et pas plus de deux chiffres après la virgule. 88

CODE <?xml version="1.0"?> <xs:schema xmlns:xs=http://www.w3.org/2001/xmlschema> <xs:simpletype name= "salaire"> <xs:restriction base="xs:decimal"> <xs:mininclusive value="10000"/> <xs:maxinclusive value= "50000"/> <xs:fractiondigits value="2"/> <xs:totaldigits value="7"/> </xs:restriction> </xs:simpletype> <xs:element name= "employé"> <xs:complextype> <xs:sequence> <xs:element name="salary" type= "salaire"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 89

ENUMATION Un type dérivé peut être une liste de valeurs possibles. Par exemple, l'élément JobTitle pourrait être une liste de titres d'emploi prédéfini. 90

CODE <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xml Schema"> <xs:simpletype name= "salaire"> <xs:restriction base="xs:decimal"> <xs:mininclusive value="10000"/> <xs:maxinclusive value="90000"/> <xs:fractiondigits value="2"/> <xs:totaldigits value="7"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="jobtitle"> <xs:restriction base="xs:string"> <xs:enumeration value="sales Manager"/> <xs:enumeration value= "vendeur"/> <xs:enumeration value="receptioniste"/> <xs:enumeration value="developpeur"/> </xs:restriction> <xs:element name= "employé"> <xs:complextype> <xs:sequence> <xs:element name= "salaire" type= "salaire"/> <xs:element name="title" type="jobtitle"/> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 91

EXERCICE: SCHÉMA POUR UNE CHANSON Dans cet exercice, vous allez restreindre davantage le schéma chanson, de sorte que les éléments titre et l'artiste n auront qu un modèle spécifique et l'année sera 1950 ou plus tard. Définir un type simple appelé ProperName qui suit ce modèle: alpha/numérique Changer le titre et l'artiste à un du type ProperName. Définir un autre type simple appelé An, qui est dérivé de gyear et n'accepte que les années entre 1950 et 2010, inclusivement. Changer l élément année à un type An. 92

EXERCICE: SOLUTION <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name= "chanson"> <xs:complextype> <xs:sequence> <!-- Add three simple-type elements: 1. Titre 2. 2. année 3. 3. Artiste --> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 93

EXEMPLE <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="author"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string" /> <xs:element name="lastname" type="xs:string" /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 94

TYPE COMPOSÉ (COMPLEXE TYPE) 95

EXEMPLE <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="employee"> <xs:complextype> <xs:sequence> <xs:element name="name"> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> <xs:complextype> <xs:choice> </xs:choice> </xs:complextype> <xs:element name="firstname"/> <xs:element name="lastname"/> 96

NOMBRE D OCCURRENCE Pour spécifier le nombre d apparition des éléments, on utilise les primitives: minoccurs maxoccurs? : minoccurs="0" maxoccurs="1" + : minoccurs="1" maxoccurs="unbounded" ; * : minoccurs="0" maxoccurs="unbounded". 97

EXEMPLE AVEC LES OCCURRENCES <xs:element name="plan"> <xs:complextype> <xs:sequence maxoccurs="3"> <xs:element name="auteur" type="xs:string" minoccurs="2" /> <xs:element name="chapitre" type="xs:string" minoccurs="2" /> </xs:sequence> </xs:complextype> </xs:element> 98

EXEMPLE: LES OCCURRENCES 2 <xs:element name="plan"> <xs:complextype> <xs:sequence minoccurs="2" maxoccurs="3"> <xs:element name="auteur" type="xs:string"/> <xs:element name="chapitre" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> 99

LES ATTRIBUTS L attribut implique la présence d un type complexe. Il est toujours placé en dernière position. L attribut en lui-même, ne contenant que du texte, est un type simple. L attribut peut être global et donc réutilisable au sein de plusieurs définitions de type complexe. <xs:element name="personne" <xs:complextype> <xs:attribute name="nom" type="xs:string"/> </xs:complextype> </xs:element> 100

LES ATTRIBUTS POUR CONTENU COMPOSÉ <xs:element name="name"> <xs:complextype> <xs:sequence> </xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:attribute name="pseudonym" type="xs:boolean"/> <xs:attribute name="homepage" type="xs:anyuri"/> </xs:complextype> </xs:element> 101

VALEUR PAR DÉFAUT D UN ATTRIBUT <xs:element name="firstname"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="full" type="xs:boolean" default="true"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> 102

ATTRIBUTS: RÉUTILISATION Pour créer un attribut réutilisable pour des définitions de type complexe, il faut le rendre global en le positionnant sous la racine schéma. L attribut ref sert à désigner la définition d un attribut global. <xs:schema > <xs:attribute name="nom"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:minlength value="5"/> </xs:restriction> </xs:simpletype> </xs:attribute> <complextype name="montype"> <xs:attribute ref="nom"/> </complexetype> </xs:schema> 103

LIMITATION DES ATTRIBUTS La présence d un attribut peut être définie par l attribut use, qui peut prendre les valeurs suivantes: prohibited : interdire l usage d un attribut par dérivation d un type complexe. optional : l attribut n est pas obligatoirement renseigné (employé par défaut). required : l attribut est obligatoire. 104

EXEMPLE DE CODE <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="a"> <xs:complextype> <xs:attribute name="t1" use="required" type="xs:int"/> <xs:attribute name="t2" use="optional" type="xs:string" default="valeur"/> <xs:attribute name="t3" use="required" type="xs:token" fixed="autre"/> </xs:complextype> </xs:element> </xs:schema 105

LE GROUPE D ATTRIBUTS Des définitions d attributs communes à plusieurs définitions d éléments peuvent être concentrées dans des groupes d attributs. Les groupes d attributs sont définis globalement et sont utilisés par référence. <xs:attributegroup name="rgb"> <xs:attribute name="rouge" type="xs:byte" use="required"/> <xs:attribute name="vert" type="xs:byte" use="required"/> <xs:attribute name="bleu" type="xs:byte" use="required"/> </xs:attributegroup> Pour faire référence à ce groupe d attributs, il suffit d insérer l instruction <xs:attributegroup ref="rgb"/> à l endroit où nous souhaitons utiliser ces trois attributs. 106

RESTRICTION SUR LES VALEURS DES ATTRIBUTS <xs:attribute name= "statut"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="mr."/> <xs:enumeration value="ms."/> <xs:enumeration value="dr."/> </xs:restriction> </xs:simpletype> </xs:attribute> La valeur de l attribut ne prendra comme valeur que les trois titres: Mr, Ms et Dr 107

LA REPRÉSENTATION D UN TYPE COMPOSÉ Pour définir un type composé, la balise complextype permet de définir le contenu: éléments et attributs: Elément composé vide: <xs:element name="img"> <xs:complextype> <xs:attribute name="src" type="xs:string" /> </xs:complextype> </xs:element> 108

TYPE COMPOSÉ: CONTENU MIXTE <xs:element name="elementname"> <xs:complextype mixed="true"> <xs:sequence> <xs:element name="child1" type="xs:string"/> <xs:element name="child2" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> 109

CONTENU SIMPLE AVEC LES ATTRIBUTS <xs:element name="elementname"> <xs:complextype> <xs:simplecontent> <xs:extension base="xs:string"> <xs:attribute name="attname" type="xs:string"/> </xs:extension> </xs:simplecontent> </xs:complextype> </xs:element> 110

EXERCICE: Developper le fichier livre.xml en ajoutant un nouveau élément appelé année de production. Puis ajouter un attribut pour chaque section appelé description. Vers la fin du fichier ajouter un élément compose appelé références ayant comme fils les livre sur lesquels le document est base. Créer dans le schéma une restriction pour obliger que l année de production soit supérieure de 1990; Les titres des sections et les chapitres ne doivent avoir des valeurs numériques; Les attributs description ne dépassent pas 30 caractères. 111

XSL EXTENSIBLE STYLE LANGUAGE 112

XSL: INTRODUCTION Les multiples cas de transformation Formatage Réutilisation de document Adaptation aux appareils de présentation Conversion de format, par exemple XML vers HTML,text,pdf, La transformation est une étape inévitable pour l utilisation du document 113

XSL: DÉFINITION XSL (extensible Style Language) est constitué de deux langages: Un langage de transformation XSLT Un langage de formatage XSL-FO Ces deux langages sont des applications XML. 114

XSLT (XSL TRANSFORMATION) Un document XML bien formé, décrivant comment un autre document XML sera transformé; XSLT a besoin d un document XML est un engin pour la transformation; Les types de fichier visés: XML Texte HTML PDF Autre (selon le besoin, surtout avec les APIs ) 115

XSL (XSLT ET XSLFO) 116

XSLT XSL Transformation XSLT 1.0 Novembre 1999 Permet de transformer un document XML générique en un document XML spécifique S adapte au profil de l utilisateur Degré de confidentialité, langue, précision, intérêts différents, S adapte à l environnement: Type du navigateur, document multimédia, Utilise Xpath pour repérer et manipuler des portions de documents XML. 117

PROCESSUS DE TRANSFORMATION Pour XSLT, un document XML est vu et analysé comme un ensemble: Nœud racine Les éléments nœuds Nœuds attributs Nœud texte Nœuds de traitement Nœuds commentaire 118

PRINCIPE DE FONCTIONNEMENT DE XSLT Convertir un arbre en un autre arbre; Une transformation XSLT consiste en une série de règles; La transformation se fait en associant des motifs (patterns) à des modèles (templates); Pattern: Contexte structural dans l'arbre source Expression Xpath; Template: Un fragment du résultat à produire pour le pattern correspondant; Quand le pattern est reconnu dans le document source, le template correspondant est engendré dans le document résultat. 119

STRUCTURE DE XSLT Toutes les instructions XSL appartiennent à l espace de noms xsl: URI=http://www.w3.org/1999/XSL/Transform L élément racine= xsl:stylesheet Un document XSLT a la forme suivante: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl=http://www.w3.org/1999/xsl/transform version="1.0"> </xsl:stylesheet> N.B: Attribut version est obligatoire. Association entre XML et une feuille de style XSL <?xml-stylesheet type= text/xsl href= URIxsl.xsl?> 120

MODÈLES XSLT Exemple <xsl:template match= "Auteur"> <h1> XML pour les débutants </h1> </xsl:template> Source : <Titre>Introduction</Titre> Résultat : <h1> XML pour les débutants </h1> 121

EXEMPLE DE CODE: XML <?xml version="1.0"?> <?xml-stylesheet href="beatle.xsl»type="text/xsl"?> <auteur> <nomcomplet> <nom>paulo</nom> <prenom>coelho</prenom> </nomcomplet> <livre>alchimiste</type> <genre>fiction</genre> </auteur> 122

EXEMPLE DE CODE: XSLT <?xml version="1.0"?> <xsl:stylesheet version="1.0«mlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html"/> <xsl:template match="child::person"> <html> <head> <title> <xsl:value-of select="descendant::nom" /> <xsl:text> </xsl:text> <xsl:value-of select="descendant::prenom" /> </title> </head> <body> </body> </html> </xsl:template> </xsl:stylesheet> 123

XPATH: PRÉSENTATION LACONIQUE Un chemin xpath a cette forme: axis::node_test[predicate] Axis: présente la relation entre le nœud sélectionné et le nœud de contexte (le premier nœud de l expression template); Node_test: le nœud à référencer; Predicat: pour filtrer d avantage. 124

child::firstname sélectionne l élément firstname fils du noeud contexte; child::* tous les éléments du nœud contexte; child::text() sélection du texte de tous les fils; attribute::name sélection du nom de l attribut; attribute::* tous les attributs descendant::firstname sélection du firstname descendant du nœud de contexte. ancestor::name l ancêtre du nœud de contexte. 125

XSLT: TEMPLATE La balise xsl:template indique au processeur XSL qu est ce qu il faut faire quand il rencontre un élément par l attribut match. La valeur de match une expression Xpath. <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text"/> <xsl:template match=«nom"> Élément trouvé </xsl:template> </xsl:stylesheet> 126

TEMPLATE 2: BEATLE.XML <beatle link="http://www.paulmccartney.com"> <name> <firstname>paul</firstname> <lastname>mccartney</lastname> </name> </beatle> <beatle link="http://www.johnlennon.com"> <name> <firstname>john</firstname> <lastname>lennon</lastname> </name> </beatle> <beatle link="http://www.georgeharrison.com"> <name> <firstname>george</firstname> <lastname>harrison</lastname> </name> </beatle> 127

RÉSULTAT Avec une balise : <xsl:template match="firstname"> We found a first name! </xsl:template> On aura comme résultat: We found a first name! McCartney We found a first name! Lennon We found a first name! Harrison 128

XSL:VALUE-OF xsl:value-of permet d afficher la valeur textuelle d un élément: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text"/> <xsl:template match="firstname"> We found a first name and it's <xsl:value-of select="."/> </xsl:template> </xsl:stylesheet> 129

RÉSULTÂT We found a first name and it's PaulMcCartney We found a first name and it's JohnLennon We found a first name and it's GeorgeHarrison We found a first name and it's RingoStarr We found a first name and it's NatDunn 130

EXPLICATION Select est un attribut pour indiquer quel élément à afficher son contenu. (.) fait référence au nœud courant. NB: le nom aussi est affiché, ceci est dû à un template par défaut dans XSLT. 131

XSL:VALUE-OF 2 <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text"/> <xsl:template match="firstname"> We found a first name and it's <xsl:value-of select="."/> </xsl:template> <xsl:template match="lastname"> We found a last name and it's <xsl:value-of select="."/> </xsl:template> </xsl:stylesheet> 132

RÉSULTAT We found a first name and it's Paul We found a last name and it's McCartney We found a first name and it's John We found a last name and it's Lennon We found a first name and it's George We found a last name and it's Harrison 133

XSL:TEXT Pour bien former l affichage de résultat, il faut bien traiter les espaces entre le valeurs. XSL:TEXT permet d ajouter de l espace entre les valeurs, exemple: <xsl;text> </xsl;text> le nombre d espace exacte <xsl;text> </xsl;text> Saut de ligne 134

EXEMPLE <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text"/> <xsl:template match="name"> <xsl:value-of select="firstname"/> <xsl:text> </xsl:text> <xsl:value-of select="lastname"/> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet> 135

EXERCICE 7 Transformer le fichier chanson.xml à un fichier HTML. 136

Deuxième partie : XML Schéma 1. L attribut type de l ion doit être une valeur binaire Positif/négatif ; 2. Le contenu de l ion doit en mg, et sa forme commence par le nom de l ion, puis la quantité et finalement l unité de mesure ; 3. Le code barre doit être une valeur numérique qui ne dépasse pas 11 chiffres ; 4. Définir un type «complex» composition qui indépendant de tout élément. 5. Définir un type «complex» contenance ayant un attribut appelé unité qui accepte comme valeur cl, et son contenu est numérique ; 6. L élément ph et numérique qui ne dépasse pas 14 et ayant deux chiffres max après la virgule. 137