XML. XSL(T) - extensible Stylesheet Language XSD XML Schema



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

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

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

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

Master d Informatique Corrigé du partiel novembre 2010

Web Application Models

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

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

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

XML : documents et outils

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

Formation HTML / CSS. ar dionoea

SII Stage d informatique pour l ingénieur

Livre Blanc WebSphere Transcoding Publisher

L architecture des services Web

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

XML et Bases de données. Les bases de données XML natives.

Formation : WEbMaster

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

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

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

Petite définition : Présentation :

BASE DE DONNÉES XML NATIVE

Gestion documentaire (Extraits du CCI version 1.2)

Document Object Model (DOM)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

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

les techniques d'extraction, les formulaires et intégration dans un site WEB

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

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

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

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

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

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

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

Introduction aux «Services Web»

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

Gestion Électronique de Documents et XML. Master 2 TSM

BASE DE DONNÉES XML NATIVE

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

Introduction aux concepts d ez Publish

Les types de fichiers

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

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

4. SERVICES WEB REST 46

Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML

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

Module BD et sites WEB

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Plateforme PAYZEN. Définition de Web-services

Outils logiciels pour l'ingénierie documentaire

PHP 5.4 Développez un site web dynamique et interactif

.. CSS. Damien Nouvel. Damien Nouvel (Inalco) CSS 1 / 15

RESPONSIVE WEB DESIGN

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

BES WEBDEVELOPER ACTIVITÉ RÔLE

Les services usuels de l Internet

Introduction à Microsoft InfoPath 2010

L'essentiel de XML. Cours XML. Olivier Carton

Les outils de création de sites web

7.0 Guide de la solution Portable sans fil

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Programmation Internet Cours 4

OCL - Object Constraint Language

SQL Parser XML Xquery : Approche de détection des injections SQL

Présentation du Framework BootstrapTwitter

as Architecture des Systèmes d Information

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

1 INTRODUCTION ET OBJECTIFS GÉNÉRATION DE PDF AVEC.NET LES SOLUTIONS DE BI AVEC.NET...13

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Introduction à. Oracle Application Express

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

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

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

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

Survol des nouveautés

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

CONSERVATOIRE NATIONAL DES ARTS ET METIERS. Centre Régional Associé de Nantes. Mémoire présenté en vue d obtenir l examen probatoire en informatique

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Web. Madalina Croitoru IUT Montpellier

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

HTML. Notions générales

BIRT (Business Intelligence and Reporting Tools)

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Sage CRM. Sage CRM 7.3 Guide du portable

Tutoriel : Feuille de style externe

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Définition des Webservices Ordre de paiement par . Version 1.0

1 ère Université WEB. Courbevoie Samedi 21 octobre Votre site interactif sur internet.

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

1. Considérations sur le développement rapide d'application et les méthodes agiles

Structurer ses données : les tableaux. Introduction à la programmation

Transcription:

XML Les documents semi-structurésst XML - extensible Markup Language g XSL(T) - extensible Stylesheet Language XSD XML Schema DTD Document Type Definition Ivan Madjarov, IUT-R&T, 2006-2008

XML extensible Markup Language g XML dérive d'un langage développé dans les années 80, le SGML. SGML est très complexe à apprendre et à utiliser quotidiennement. Une version allégée du SGML, le HTML a été développée les années 90; Le HTML malgré de nombreuses adaptations, ti ne pouvait pas être étendu à l'infini, avec l'augmentation des besoins des développeurs. C'est alors ao que fut créé le XML. IvMad, 2008 2

XML extensible Markup Language g XML - langage extensible de balisage Standardisé par W3C 1.0 du 10 février 1998 1.1 février 2004 mise à jour pour utiliser Unicode 3 format public métalangage - un langage qui permet de définir d'autres langages sous-ensemble de SGML pour une utilisation sur le Web IvMad, 2008 3

XML extensible Markup Language g XML permet de concevoir votre langage de balisage personnalisé pour un ensemble de classes de documents un langage défini par XML est appelé vocabulaire XML ou application XML le langage de balisage créé est défini par une définition de type de document (DTD) ou XML Schema. XML est utilisé pour échanger des données entre applications, stocker les préférences d'applications, créer des documents pour le Web IvMad, 2008 4

XML extensible Markup Language g Le web est confronté à deux problèmes: HTML n'est pas extensible, il ne peut pas répondre aux besoins spécifiques de tous les domaines (mathématiques, chimie, musique, astronomie...) et ne définit plus le contenu du document SGML qui permettrait de définir de nouveaux langages de balisage spécifiques est très complexe IvMad, 2008 5

XML extensible Markup Language g Les applications XML IvMad, 2008 6

La galaxie de standards XSchema Schémas de documents XSL Feuilles de styles SAX API de programmation événementielle DOM API de programmation objet SOAP Protocole Web Services RDF Description de ressources Web ebxml Standards de e-commerce Xxx Standards par métiers Xxx ebxml XSchema RDF XSL XML XQuery DOM SAX SOAP IvMad, 2008 7

XML extensible Markup Language g XML permet de séparer le fond de la forme. Par exemple: pour produire un document HTML à partir de données en utilisant le format XML, il est nécessaire d'écrire au moins deux fichiers, le premier contenant les données à mettre en forme, le second les informations nécessaires à cette mise en forme. IvMad, 2008 8

XML extensible Markup Language g Un document XML peut ainsi prévoir plusieurs cibles: l'écran d'un téléphone portable, l'écran d'un ordinateur de bureau, Collection dans une base de données, Une application logicielle Échange d'informations sur le Web, etc. Effectuer des sélections par tri, Générations automatiques de tables des matières et bien d'autres fonctions. IvMad, 2008 9

XML extensible Markup Language g L'environnement technologique XML est composé de trois fichiers: un fichier pour définir les balises auxquelles le document XML pourra avoir recours (DTD ou Schema). Le document contenant les données elles- mêmes, c'est-à-dire le document XML. Le document contenant les informations de mise en forme, permettant de produire un fichier dans le format de sortie voulu: une feuille XSLT (extensive Stylesheet Language g Transformations). ) IvMad, 2008 10

XML extensible Markup Language g XML est destiné à décrire le contenu du document, pas son affichage (les feuilles de style CSS et XSL gèrent l'affichage). XML est flexible, on peut définir ses balises, et les utiliser dans un ou plusieurs documents. le XML document ne sera affiché que s'il est bien formé et validé par une DTD ou XML Schema. IvMad, 2008 11

XML extensible Markup Language g IvMad, 2008 12

XML extensible Markup Language g Les technologies XML CSS, permet de définir l'affichage d'un document XML. XSL 3 parties : XSLT, langage évolué pour transformer des documents XML en des documents sous différents formats de sortie XPath, langage pour désigner des parties d'un document XSL-FO, langage pour produire un document imprimable et en format PDF Xlink pour créer des liens entre fichiers XML XPointer pour pointer sur des parties d'un document XML. XML Base pour définir l'url de base d'un document. IvMad, 2008 13

XML extensible Markup Language g DOM (Document Object Model), définit des interfaces pour manipuler des documents XML structurés. namespaces (domaines de noms) pour distinguer les noms utilisés dans les documents XML. XForms pour décrire des formulaires Web. XQuery, langage pour extraire des données de documents XML ou de collections de fichiers XML comme on interroge des bases de données. Schema, alternatives aux DTD qui permettent de décrire un document de manière plus détaillée (types de données pour les dates, les entiers,..., possibilité de donner des bornes aux valeurs). IvMad, 2008 14

XML extensible Markup Language g MathML (Mathematical Markup Language) notation mathématique sur le web CML (Chemical Markup Language) pour la publication Internet des formules chimiques, de molécules, des équations. SVG (Scalable Vector Graphics) langage de balisage d'information graphique vectorielle. SMIL (Synchronized Multimedia Integration Language) pour la création multimédia, il spécifie comment et quand des éléments multimédia peuvent apparaître dans une page web. Par exemple on peut dire que sur la page le texte apparaît suivi d'une série d'images qui sont accompagnées d'une musique. WML (Wireless Markup Language) le langage de balisage pour l'internet mobile. IvMad, 2008 15

XML extensible Markup Language g Un document XML est composé d'éléments ou blocs qui représentent t la structure logique du document. Ces éé éléments peuvent être: non vides : une balise ouvrante, un contenu, et/ou d'autres éléments et se terminent par une balise fermante. <titre>mort sur le Nil</titre> vides : ils ne contiennent rien, aucun texte, aucun élément. En XML ils s'écrivent avec un / à la fin de la balise ouvrante ou sous la forme d'une paire de balises vide :<HR/>, <BR/> IvMad, 2008 16

XML extensible Markup Language g Chaque élément présente des caractéristiques appelées attributs : <titre type="policier"> p Mort sur le Nil </titre> <PRODUIT NOM="T-shirt" TAILLE="XL" COULEUR="BLANC" /> IvMad, 2008 17

XML extensible Markup Language g DTD (Document Type Definition) définissent les éléments et les règles d'utilisation (noms des éléments, attributs possibles pour un éé élément, imbrications). Cependant des documents XML peuvent ne pas avoir de DTD. Si un document a une DTD associée et qu'il se conforme à cette DTD, il est dit valide. S'il n'a pas de DTD et qu'il suit les règles définies par XML (par exemple : ses éléments sont correctement t imbriqués) i il est bien formé. IvMad, 2008 18

XML extensible Markup Language g <?xml version="1.0" encoding="iso-8859-1"?> <!-- La ligne ci-dessus est le prologue --> <!-- Élément racine --> <biblio> <!-- Premier enfant --> <livre> <!-- Élément enfant titre --> <titre>les Misérables</titre> <auteur>victor Hugo</auteur> <nb_tomes>3</nb_tomes> </livre> <livre> <titre>l'assomoir</titre> <auteur>émile Zola</auteur> </livre> <livre lang="en"> <titre>david Copperfield</titre> <auteur>charles Dickens</auteur> <nb_tomes>3</nb_tomes> </livre> </biblio> IvMad, 2008 19

XML extensible Markup Language IvMad, 2008 20

XML extensible Markup Language g <?xml version="1.0"?> <bibliotheque> <livre> <titre>n ou M</titre> <auteur> <nom>christie</nom> <prenom>agatha</prenom> </auteur> <ref>policier-c-15</ref> </livre> <livre> <titre>le chien des Baskerville</titre> <auteur> <nom>conan Doyle</nom> <prenom>arthur</prenom> </auteur> <ref>policier-d-3</ref> </livre> </bibliotheque> IvMad, 2008 21

XML extensible Markup Language IvMad, 2008 22

XML extensible Markup Language Un document bien formé (sans DTD) est affiché par le navigateur en visualisant sa structure. Visualisation avec une feuille de style CSS où est définie l interprétation des éléments du document XML. <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="biblio.css"?> <bibliotheque>... </bibliotheque> IvMad, 2008 23

XML extensible Markup Language La feuille de style pour le document livre { } display: block; position: relative; left: 50; top:100; margin-left:10pt; margin-bottom: 5pt; font-family: "Verdana"; font-size: 12pt titre { margin-right:10pt; color:blue; font-family: "Verdana"; } auteur { margin-right:10pt; font-family: "Verdana"; } ref { color:red; font-family: "Verdana"; } IvMad, 2008 24

XML extensible Markup Language IvMad, 2008 25

Structure d'une feuille de style Visualisation avec une feuille de style XSL <?xml version="1.0"?> <?xml-stylesheet type="application/xml" href="biblio.xsl"?> <bibliotheque>... </bibliotheque> IvMad, 2008 26

XML extensible Markup Language <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html"/> html <xsl:template match="/"> <html> <head> <title>ma bibliotheque</title> <style type="text/css"> th {background-color:silver;} td {border-style:solid; border-width:1px;} </style> </head> <body> <H2>Bibliotheque</H2> <table> <tr> <th>titre</th> <th>auteur</th> <th>ref.</th> </tr> <xsl:for-each select="bibliothèque/livre"> <tr> <td><xsl:value-of select="titre"/></td> <td><xsl:value-of select="concat(auteur/nom, ' ', auteur/prénom)"/></td> <td><xsl:value-of select="ref"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> IvMad, 2008 27

XML extensible Markup Language IvMad, 2008 28

XML extensible Markup Language IvMad, 2008 29

Structure d'une feuille de style XSL est une application XML, une feuille de style XSL est donc un document XML. <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/ XSL/Transform"> Modèles </xsl:stylesheet> L'élément racine contient des modèles (templates) pour l'affichage du document XML IvMad, 2008 30

Structure d'une feuille de style Le modèle est appliqué au nœud spécifié par l'attribut match de l'élément lélément template <xsl:template match="noeud_ cible"> action </xsl:template> IvMad, 2008 31

Structure d'une feuille de style Un modèle contient deux types d'éléments des éléments XML bien formés pour représenter les éléments html des éléments XSL xsl:value-of qui permet d'accéder au contenu des éléments du document XML l'attribut select indique le nom de l'élément XML xsl:for-each permet de parcourir tous les éléments qui portent le nom défini dans select xsl:sort permet de définir i l'ordre dans lequel l les éléments seront affichés <xsl:for-each select="bibliotheque/livre"> <xsl:sort select="auteur/nom" order="descending"/> <xsl:sort select="titre" order="ascending"/> IvMad, 2008 32

Structure d'une feuille de style Il est possible de n'extraire qu'une partie du document XML. Dans le select il faut utiliser [expression]. L'expression peut comporter des opérateurs, des fonctions, des chemins d'éléments. Extraire les livres dont le nom de l'auteur est différent de Christie i : <xsl:for-each select="bibliotheque/livre[auteur/nom /!= 'Christie']"> IvMad, 2008 33

Structure d'une feuille de style Il est possible d'utiliser des fonctions XPath pour filtrer starts-with(chaine1, chaine2) : retourne vrai si chaine1 commence par chaine2, ends-with(chaine1, chaine2) : retourne vrai si chaine1 se termine par chaine2, contains(chaine1, chaine2) : retourne vrai si chaine1 contient chaine2, <xsl:for-each select="bibliotheque/livre[contains(titre, 'Le') or contains(titre, 'un')]"> <xsl:for-each select="bibliotheque/livre[@type='policier']"> IvMad, 2008 34

Exercice IvMad, 2008 35

Exercice <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" text/xsl href="catalog.xslt"?> <catalogue xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="catalog.xsd"> <PRODUIT NOM="T T-shirt shirt" TAILLE="XL" COULEUR="BLANC" QUANTITE="2" PRIX="56,43" SOLDE="75%" /> <PRODUIT NOM="T-shirt" TAILLE="L" COULEUR="ROUGE" QUANTITE="3" PRIX="12,45" SOLDE="50%"/> <PRODUIT NOM="Chemise" TAILLE="40" COULEUR="JAUNE" QUANTITE="1" PRIX="20,10" SOLDE="25%"/> <PRODUIT NOM="Chemise" TAILLE="42" COULEUR="BLEUE" QUANTITE="2" PRIX="12,55" SOLDE="50%"/> <PRODUIT NOM="Chemise" TAILLE="40" COULEUR="JAUNE" QUANTITE="4" PRIX="14,99" SOLDE="75%"/> <PRODUIT NOM="Chemise" TAILLE="40" COULEUR="JAUNE" QUANTITE="1" PRIX="15,50" SOLDE="50%"/> <PRODUIT NOM="Blouson" TAILLE="50" COULEUR="MARRON" QUANTITE="1" PRIX="156,50" SOLDE="25%"/> </catalogue> IvMad, 2008 36

Exercice Grammaire XSD (XML Schema) <?xml version="1.0" encoding="utf-8"?> <xsd:schema targetnamespace = "http://localhost/perso/monexemple" xmlns:xsd = "http://www.w3.org/2001/xmlschema"> /2001/XMLS h " <xsd:element name="produit"> <xsd:complextype> <xsd:all> <xsd:attribut name="taille" type="xsd:string" /> <xsd:attribut name="couleur" type="xsd:string" /> <xsd:attribut name="quantite" type="xsd:string" /> <xsd:attribut name="prix" type="xsd:string" /> <xsd:attribut name="solde" type="xsd:string" /> </xsd:all> </xsd:complextype> </xsd:element> </xsd:schema> IvMad, 2008 37

Exercice <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="html"/><xsl:template match="catalogue"> <html><head></head><body> <H2>Liste des articles</h2><table BORDER="1" CELLPADDING="5"> <THEAD><TH>Nom</TH><TH>Taille</TH><TH>Couleur</TH> <TH>Quantite</TH><TH>Prix</TH><TH>Solde</TH></THEAD> <xsl:for-each select="produit"><tr ALIGN="CENTER"> <TD><xsl:value-of select="@nom" /></TD>/ <TD><xsl:value-of select="@taille" /></TD> <TD><xsl:value-of select="@couleur" /></TD> <TD><xsl:value-of l select="@quantite" /></TD> <TD><xsl:value-of select="@prix" /> </TD> <TD><xsl:value-of select="@solde" /></TD> </TR></xsl:for-each></TABLE></body></html></xsl:template> </xsl:stylesheet> IvMad, 2008 38

XML Schema Un schéma d'un document définit: les éléments possibles dans le document les attributs associés à ces éléments la structure t du document et les types de données Le schéma est spécifié en XML pas de nouveau langage balisage de déclaration domaine spécifique xsd: Présente de nombreux avantages structures de données avec types de données extensibilité par héritage et ouverture analysable par un parseur XML standard d IvMad, 2008 39

Objectifs des schémas Reprendre les acquis des DTD Plus riche et complet que les DTD Permettre de typer les données Eléments simples et complexes Attributs simples Permettre de définir des contraintes Existence, obligatoire, optionnel Domaines, cardinalités, références Patterns,... S'intégrer à la galaxie XML Espace de noms Infoset (structure d'arbre logique) IvMad, 2008 40

Le modèle des schémas Déclaration des éléments et attributs Nom Typage similaire à l'objet Spécification de types simples Grande variété de types Génération de types complexes Séquence (Sequence) Choix (Choice) Tas (All) IvMad, 2008 41

Les types simples (1) string integer Confirm this is electric -126789, -1, 0, 1, 126789 normalizedstring positiveinteger Confirm this is electric 1, 126789 token negativeinteger Confirm this is electric -126789, -1 byte nonnegativeinteger -1, 126 0, 1, 126789 unsignedbyte nonpositiveinteger 0, 126-126789, -1, 0 base64binary int GpM7-1, 126789675 hexbinary unsignedint 0FB7 0, 1267896754 IvMad, 2008 42

Les types simples (2) long -1, 12678967543233 unsignedlong 0, 12678967543233 short -1, 12678 unsignedshort 0, 12678 decimal -1.23, 0, 123.4, 1000.00 float -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN double -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN boolean true, false 1, 0 time 13:20:00.000, 13:20:00.000-05:00 datetime 1999-05-31T13:20:00 31T13:20:00.000-05:00 duration P1Y2M3DT10H30M12.3S date 1999-05-31 gmonth --05-- gyear 1999 IvMad, 2008 43

Les types simples gyearmonth 1999-02 gday ---31 gmonthday --05-31 Name shipto QName po:usaddress NCName USAddress anyuri http://www.example.com/, / http://www.example.com/do c.html#id5 language en-gb, en-us, fr ID "A212" IDREF "A212" IDREFS "A212" "B213" ENTITY ENTITIES NOTATION NMTOKEN, NMTOKENS US Brésil Canada Mexique IvMad, 2008 44

Commandes de base xsd: element : association d'un type à une balise attributs name, type, ref, minoccurs, maxoccurs,... attribute t : association d'un type à un attribut t attributs name, type type simple : les multiples types de base entier, réel, string, time, date, ID, IDREF,, extensibles par des contraintes type complexe : une composition de types définit une agrégation d'éléments typés IvMad, 2008 45

Les types complexes Définition d'objets complexes <sequence> : collection ordonnée d'éléments typés <all> : collection non ordonnée d'éléments typés <choice>: choix entre éléments typés Exemple <xsd:complextype name="fraddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" "t t"t type="xsd:string"/> t "/ <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute te name="country" ntr " type="xsd:nmtoken" fixed="fr"/> </xsd:complextype> IvMad, 2008 46

Héritage de types Définition de sous- Exemple : types par héritage Par extension : ajout d'informations i Par restriction : ajout de contraintes Possibilité de contraindre la dérivation <complextype name="adressepays"> <complexcontent> <extension base="adresse"> <sequence> <element name="pays" type="string"/> </sequence> </extension> </complexcontent> t </complextype> IvMad, 2008 47

Les patterns Contraintes sur type simple prédéfini Utilisation d'expression régulières Similaires à celles de Perl Exemple <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> IvMad, 2008 48

Le langage XPATH Syntaxe et sémantique partagées par d autres outils (XSLT, Xpointer ) But : adresser les différentes parties d un document XML Représentation en forme d arbre Type de nœuds : Racine, éléments, texte, attributs, espace de noms, instruction de traitement, commentaires Adressage type système de fichiers IvMad, 2008 49

extensible Style Language g Transformation XSL XML Processeur XSLT XML Ou texte Ou HTML IvMad, 2008 50

Feuille de style XSLT Transformer un arbre Feuille de style = ensemble de règles Association motif / modèles Objectif : Production de texte Personnalisation d un document Réorganisation IvMad, 2008 51

Feuille de style CSS Cascading Style Sheet Langage très simple (non XML) CSS1 : décembre 96 CSS2 : mars 98 Encore mal supporté par les browsers (sauf Opera 4.02) Liste de règles qui décrit les éléments Pour chaque élément Couleurs et image Polices de caractère Textes Boites Classification (style de listes, affichage par bloc ) IvMad, 2008 52

XSL-FO (Formatting Objects) Langage g XML pour formater Finalisé par W3C fin Octobre 2001 Similaire à HTML/CSS mais beaucoup plus puissant Outils permettant de générer PDF (FOP) IvMad, 2008 53

Principe de XSL-FO Découpage par pages Notion de boites Contenu (texte, espace, images, objets ) Type (région, bloc, ligne, boite en-ligne, ) Hiérarchie Caractéristiques (position, fontes ) Pages maîtres Séquences de pages Numérotation IvMad, 2008 54

XLINK Lien externe vers autre document Lien simple HREF classique Lien étendu Personnaliser les liens Localisation des ressources distantes Mécanisme de traversée Texte facilitant l emploi Ressources locales associées En cours de stabilisation IvMad, 2008 55

XPointer But : adresser un fragment de ressource Même arbre que processeur XSL Utilisation de XPath En cours de stabilisation IvMad, 2008 56

API SAX Application Programming g Interface Mécanismes standardisés de manipulation de documents XML API événementielle Processeur analysant le document Association d un gestionnaire de document Activation des méthodes durant l analyse Simple et efficace Implémentations JAVA (Xerces), C, C++ IvMad, 2008 57

API DOM SAX simple mais parfois limité (modification de structure impossible) Analyse puis création d une structure t Adaptable (mais plutôt orienté objet ) Spécification en IDL (OMG) Implémentations en Java, javascript IvMad, 2008 58

XML et le Web Doc XML Feuille XSLT IE Netscape Opera Téléphones WAP HTML +PDF HTML +CSS WML Processeur XSLT Analyseur XML Processeur XSLFO Servlet ou CGI Serveur web Feuille XSLFO IvMad, 2008 59