Cours 1.2 : Introduction au langage XML

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

Données structurées et XML
Introduction aux Web Services Partie 1. Technologies XML
XML.
XML eXtensible Markup Language
Transformation de documents XML
Xavier Blanc Web Services Xavier Blanc
DTD Sylvain Salvati
JXDVDTEK – Une DVDthèque en Java et XML
Les espaces de nommage XML par Philippe Poulard 1
Données structurées et XML
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Domaines nominaux XSLT
Nicolas Singer Maître de conférence, université Champollion
TP 3-4 BD21.
Manipulation d’XML avec XSL
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
JOME, un Composant Logiciel pour le Télé-Enseignement des Mathématiques via le WEB, Compatible OpenMath et MathML Laurent DIRAT OVE / I3S-UNSA.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Introduction aux Web Services Partie 1. Technologies HTML-XML
Adamou Mahamane Sidi Maman Bachir
Développement d’applications web
XML eXtensible Markup Language
Langage de structuration des données: XML
Etude des Technologies du Web services
XML-Family Web Services Description Language W.S.D.L.
Vuibert Systèmes dinformation et management des organisations 6 e édition R. Reix – B. Fallery – M. Kalika – F. Rowe Chapitre 1 : La notion de système.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
XML: Syntaxe XML, DTD et Schémas
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.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Introduction au XML Choopan Rattanapoka Université Louis-Pasteur, Starsbourg.
<XML/> Bruno GRILHERES (EADS CASSIDIAN)
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.
Représentation des systèmes dynamiques dans l’espace d’état
1. 2 PLAN DE LA PRÉSENTATION - SECTION 1 : Code HTML - SECTION 2.1. : CSS (Méthode 1) - SECTION 2.2. : CSS (Méthode 2) - SECTION 3 : JavaScript - SECTION.
An Introduction to distributed applications and ecommerce 1 1 Les services Web, XML et les places de marchés.
Initiation aux bases de données et à la programmation événementielle
Initiation à la conception des systèmes d'informations
Initiation à XML Sebti Foufou.
8 - XML Cours XML.
1 Programmation Web II 2 ème année Licence Appliquée IAG Faculté des Sciences Economiques et de Gestion de Nableul Université 7 novembre à Carthage Années.
Le langage XHTML 420-S4W-GG Programmation Web Client
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
Le langage XML.
1 Formation à l’usage éco-performant de votre pc 1 ère Partie.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
Seminaire XML B. Rothenburger A. Nouvel XML XSD XSL IRIT Toulouse Disponible Consultable dans l'équipe 21...
SMIL Synchronized Multimedia Integration Language
Introduction à XML Yves Bekkers. Plan Introduction - structurer l’information Les langages à balises - un peu d’histoire XML - concepts de base Outils.
Soutenance du mémoire de synthèse
Module : Langage XML (21h)
Modélisation des documents: DTD et Schéma
1. Introduction 2. DTD 3. Schémas
XSD XML Schema Definition Année universitaire UP web.
Page 1 © Expert-IT s.a. - Développer des projets en XML Pratique.
Document Type Definition (DTD) Plan 2.1Introduction 2.2Déclaration de Document Type 2.3Déclaration d’élément Type 2.3.1Séquences, Choix, indicateurs d’Occurrence.
eXtensible Markup Language. Généralités sur le XML.
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
Vers la modularisation des données du web XHTML. Qu'est-ce que XHTML ? ● XHTML est une famille de types de documents futurs et actuels et de modules :
Initiation aux bases de données et à la programmation événementielle
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.
XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement.
INF2005– Programmation web– A. Obaid Variantes de HTML.
DTD - Y. Bekkers - IFSIC1 DTD Document Type Definition Yves Bekkers Mise à jour : 31 mai 2016.
Transcription de la présentation:

Cours 1.2 : Introduction au langage XML Les technologies XML Cours 1.2 : Introduction au langage XML (XML, DTD, XML-Schema) Janvier 2009 (-)

PRESENTATION DU COURS 1/2 0 : Rappel du HTML : pages statiques, styles, Javascript 1 : Introduction au langage XML : XML DTD XML-Schema 2 : XHTML 3 : Transformation de documents XML : XPath XSLT 4 :Présentation de documents XML : XSL Fo 5 : Langages XML Xquery XMI XUL

PROBLEMATIQUE 1/2 Informations et documents dans l’entreprise Constat : Inflation du volume d’informations Coût et difficulté : Difficultés à retrouver un document Coût induit par la gestion de documents

PROBLEMATIQUE 2/2 1986 : SGML 1991 : HTML 1998 : XML Objectifs adaptabilité, intelligence, gestion des liens simple, portable, gestion de liens puissance de SGML, simplicité du HTML Inconvénients complexe, difficilement portable non adaptable, non intelligent Définition de SGML

W3C Accès universel (internationalisation, web mobile…) Le WORLD WIDE WEB Consortium crée des standards pour le Web. Le W3C en 7 points… Accès universel (internationalisation, web mobile…) Web sémantique (RDF, XML…) Confiance (signatures électroniques, collaboratif…) Intéropérabilité (consensus industriel) Evolutivité (simplicité, modularité, compatibilité…) Décentralisation (systèmes répartis, tolérance aux erreurs) Multimédia (SVG, SMIL…) Pour plus d’informations : www.w3c.org

CARACTERISTIQUES Richesse sémantique de SGML Compatible SGML Dédié au traitement des données Soutenant une grande variété d’applications Assurant un entretien aisé Intelligent Facilité de mise en œuvre de HTML Simple et lisible Portable et facilement utilisable sur Internet Assurant un développement aisé

DEFINITION 1/2 eXtensible Markup Language 2 concepts fondamentaux Recommandation (norme) du W3C Spécifiant un langage Constitué d’un ensemble d’éléments appelés balises Utilisable pour créer d’autres langages 2 concepts fondamentaux Structure, contenu et présentation sont séparés Les balises ne sont pas figées

DEFINITION 2/2 Conséquences : XML est un format de document XML est un format de données XML est un mode de structuration de l’information XML est un méta-langage

Exemple (1) <dd> Ma chanson (identification de la définition d'un terme) <ul> <li> par l'auteur</li> <li> Producteur : Dupond</li> <li> Editeur : Maison edition</li> <li> Duree : 6:20</li> <li> Date : 1978</li> <li> Artiste : Toto</li> </ul> </body> </html> ExHTML6.html

Exemple (2) XML <SONG> <TITLE> Ma chanson </TITLE> <COMPOSER> par l’auteur</COMPOSER> <PRODUCER> Dupond</PRODUCER> <EDITOR> Maison edition</EDITOR> <DURATION> 6:20</DURATION> <DATE> 1978</DATE> <ARTIST> Toto</ARTIST> </SONG> Balises “propriétaires” compréhensibles à la profession, dérivation des langages proprétaires. XML sépare le contenu de son aspect ( à la différence de HTML ou tout peut être mélangé)

APPLICATIONS 1/2 GED et Gestion de Contenu : EDI : GED traditionnelle : statique, redondante, lourde Apports d’XML : dynamique, cohérence, intelligence EDI : Exploitation des données : complexe, rigide Apports d’XML : simplicité, flexibilité, intelligence Documentum Hummingbird Définition EDI

APPLICATIONS 2/2 Interopérabilité de SI hétérogènes : Architectures existantes : complexité, dépendances Apports d’XML : simplicité, flexibilité, indépendance Commerce électronique : Exploitation de l’information : complexe, statique Apports d’XML : relation client personnalisée Normalisation des échanges Technique et Fonctionelle

STRUCTURE D’UN DOCUMENT XML

SPECIFICATIONS DU LANGAGE XML Résumé des spécifications : Un document doit commencer par une déclaration XML Toutes les balises avec un contenu doivent être fermées Toutes les balises sans contenu doivent se terminer par les caractères /> Le document doit contenir un et un seul élément racine Les balises ne doivent pas se chevaucher Les valeurs d’attributs doivent être entre guillemets La casse doit être respectée pour toutes les occurrences de noms de balise (MAJUSCULES ou minuscules). Un document respectant ces critères est dit “bien formé”

DEFINITIONS DE TYPES DE DOCUMENT 1/5 DTD = Document Type Definition La DTD fournit : la liste des éléments, la liste des attributs, des notations et des entités du document XML associé ainsi que les règles des relations qui les régissent.

DEFINITIONS DE TYPES DE DOCUMENT 2/5 La DTD est déclarée dans le document XML par la balise !DOCTYPE Elle peut être : incluse dans le code source du fichier XML, ou DTD interne : <!DOCTYPE élément-racine [déclaration des éléments]> décrite dans un fichier externe, ou DTD externe : <!DOCTYPE élément-racine SYSTEM "nom_fichier.dtd">

DEFINITIONS DE TYPES DE DOCUMENT 3/5 Exemple de DTD interne <?xml version="1.0" standalone="yes"?> <!DOCTYPE parent [ <!ELEMENT parent (garcon,fille)> <!ELEMENT garcon (#PCDATA)> <!ELEMENT fille (#PCDATA)> ]> <parent> <garcon>François</garcon> <fille>Elisabeth</fille> </parent> Comme vous définissez une DTD interne, votre fichier est indépendant (standalone). Début de la DTD interne avec parent comme élément de racine. L’élément racine parent contiendra les sous-éléments garcon et fille. #PCDATA indique au Parser XML que l'élément garcon contient des données exprimées en chiffres ou en lettres. Idem pour l'élément fille. Fin de la DTD Racine du document XML. Fin du document XML.

DEFINITIONS DE TYPES DE DOCUMENT 4/5 Exemple de DTD externe : reprise de l’exemple précédent, en version DTD externe <?xml version="1.0" standalone="no"?> <!DOCTYPE parent SYSTEM "parent.dtd"> <parent> <garcon>François</garcon> <fille>Elisabeth</fille> </parent> Fichier XML. Comme vous définissez une DTD externe, votre fichier n’est plus indépendant (standalone). Déclaration de la DTD externe dans le Fichier parent.dtd. Racine du document XML. Fin du document XML. <!ELEMENT parent (garcon,fille)> <!ELEMENT garcon (#PCDATA)> <!ELEMENT fille (#PCDATA)> Fichier parent.dtd L’élément racine parent contiendra les sous-éléments garcon et fille. #PCDATA indique au Parser XML que l'élément garcon contient des données exprimées en chiffres ou en lettres. Idem pour l'élément fille.

DEFINITIONS DE TYPES DE DOCUMENT 5/5 La DTD contient : Une ou plusieurs définitions d’éléments introduites par la balise !ELEMENT : <!ELEMENT nom-élément valeur> Une ou plusieurs listes d’attributs introduites par la balise !ATTLIST : <!ATTLIST nom-élément attribut type défaut> Une ou plusieurs définitions d’entité introduites par la balise !ENTITY : <!ENTITY nom-entité "valeur"> ou <!ENTITY nom-entité SYSTEM "nom_fichier">

DTD : ELEMENTS 1/4 Chaque balise d’un document XML valide doit être déclarée à l’aide d’un élément dans la DTD associée. Un élément est défini par la balise !ELEMENT : <!ELEMENT nom-élément valeur-élément> Où : nom-élément est une balise du document XML valeur-élément prend l’une des trois formes: (contenu) Déclaration d’un élément à contenu explicite. Exemple : <!ELEMENT sujet (#PCDATA)> EMPTY Déclaration d’un élément vide. Utilisé en HTML pour les sauts de ligne (BR), image, filet horizontal (HR) etc. Exemple : <!ELEMENT br EMPTY> ANY Déclaration d’un élément pouvant contenir tout type de donnée. Exemple : <!ELEMENT note ANY>

DTD : ELEMENTS 2/4 Contenu explicite : Combinaison d’un ou plusieurs items : Mot-clé #PCDATA (Parsed Character Data) : le contenu est une chaîne de caractères Nom d’un autre élément de la DTD Chaque item peut être suivi par un caractère facultatif d’occurrence : ? : l’item apparaît zéro ou au plus une fois + : l’item apparaît au moins 1 fois * : l’item apparaît zéro fois ou plus Les items sont séparés par : Le caractère virgule « , » si les 2 items sont tous deux inclus dans le contenu Le caractère pipe « | » si le contenu est un choix entre les 2 items Les items peuvent être regroupés à l’aide de parenthèses pour définir des ordres de priorité ou d’occurrence

DTD : ELEMENTS 3/4 Exemples <!ELEMENT agenda (contact*)> <!ELEMENT contact (nom, prenom?, telephone+)> <!ELEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT telephone (#PCDATA)> <!ELEMENT image EMPTY> Définition d’un élément agenda composé de zéro ou plus éléments contact. Définition d’un élément contact, composé de trois éléments : nom, prenom (facultatif), telephone (au moins 1 fois) Définition d’un élément nom contenant une chaîne de caractères Idem pour élément prenom Idem pour élément telephone Définition d’un élément image de contenu vide

DTD : ELEMENTS 4/4 Exemples

DTD : ATTRIBUTS 1/3 Les balises ouvrantes et les balises vides peuvent contenir des couples nom-valeur des attributs XML : <GREETING LANGUAGE = “English”> Hello everybody </GREETING> Les attributs possibles d’un élément du document XML sont déclarés dans la DTD associée. nom valeur

DTD : ATTRIBUTS 2/3 Déclaration dans la DTD par la balise !ATTLIST : <!ATTLIST nom-élément nom-attribut type valeur-défaut> Où : nom-élément est le nom d’un élément défini dans la DTD par la balise !ELEMENT attribut est le nom de l’attribut présentement défini pour l’élément nom-élément type peut prendre l’une des valeurs: CDATA : la valeur correspond au contenu de l’élément (choix1|choix2|…) : la valeur doit être l’une des choix énumérés ID : la valeur est un identifiant unique ENTITY : la valeur est une entité valeur-défaut prend l’une des valeurs : valeur : valeur par défaut donnée à l’attribut #REQUIRED : attribut obligatoire, sans valeur par défaut #IMPLIED : attribut optionnel, sans valeur par défaut #FIXED valeur : valeur fixe

DTD : ATTRIBUTS 3/3 Définition d’un carré et de son attribut largeur : Exemples : <!ELEMENT GREETING (#PCDATA)> <!ATTLIST GREETING LANGUAGE CDATA “English”> Définition d’un carré et de son attribut largeur : DTD : <!ELEMENT carre EMPTY> <!ATTLIST carre largeur CDATA “0”> XML : <carre largeur=“100”> Liste de moyens de paiement: DTD <!ATTLIST paiement moyen (especes|cheque|CB) “CB”> XML <paiement moyen=“cheque”> <!-- ... --> <paiement moyen=“CB”>

DTD : ENTITES 1/3 Définition et rappel d’une entité XML Une entité est une variable utilisée pour définir du texte. L'intérêt d'une entité consiste à pouvoir remplacer autant de fois que nécessaire dans le document XML l'entité par le texte qui lui est associé. Dans le document XML, la référence à une entité est introduite par le caractère "&" suivi du nom de l’entité, et terminée par le caractère ";". Il existe 5 entités prédéfinies en XML : lt, gt, amp, apos et quot (caractères < > & ' ") Une entité est définie avec la balise !ENTITY, et dite: Interne si sa valeur est donnée dans la DTD <!ENTITY nom-entité "valeur"> Externe si sa valeur est fournie dans un fichier externe à la DTD <!ENTITY nom-entité SYSTEM "nom_fichier">

DTD : ENTITES 2/3 Exemple de document XML avec DTD interne et entité interne "titre" : <?xml version="1.0"?> <!DOCTYPE introduction [ <!ENTITY titre "Introduction au language XML" > <!-- . . . --> ]> <introduction > &titre; </introduction >

DTD : ENTITES 3/3 Exemple de document XML avec DTD interne et entité externe "chapitre1" : <?xml version="1.0" ?> <!DOCTYPE livre [ <!ENTITY chapitre1 SYSTEM "chapitre1.xml"> ]> <livre> <titre>Titre du livre</titre> &chapitre1; </livre> Contenu du fichier "chapitre1.xml" : <chapitre> <titre>titre du chapitre 1</titre> <section>1ère section</section> <section>2ème section</section> </chapitre>

DEFINITIONS DE TYPES DE DOCUMENT 1/2 Résumé des spécifications : Une DTD (grammaire) permet de déclarer : un type d’élément, une liste d’attribut d’un élément, une entité Chaque balise du langage doit faire l’objet d’une et d’une seule déclaration Un document XML est dit “valide” s’il possède une DTD et si sa syntaxe est conforme aux règles de la DTD Un document “valide” est obligatoirement “bien formé”

DEFINITIONS DE TYPES DE DOCUMENT 2/2 Espaces de nom XML Namespaces est une recommandation permettant d’utiliser le vocabulaire (les balises) de 2 DTD distinctes sans risque d’ambigüité. Inconvénients des DTD : Une DTD est difficile à lire Une DTD est non extensible (ce n’est pas un document XML). Une DTD ne permet pas de typer les données Une DTD ne peut prendre en compte qu’un seul espace de nom (Namespace).

XML-SCHEMA 1/4 En réponse aux lacunes des DTD, une alternative a été proposée comme recommandation : il s’agit de XML-Data dont XML-Schema est un sous-ensemble. Cette nouvelle norme achève de faire d’XML un format pivot… La version 1.1 de XML Schema (datée de mai 2001) se compose de 3 normes : XML Schema tome 0 : Introduction XML Schema tome 1 : Structures XML Schema tome 2 : Types de données

XML-SCHEMA 2/4 Les documents XML-Schema sont des documents : respectant la syntaxe XML, permettant de décrire la structure d’un document XML d’une façon beaucoup plus complète que les DTD. XML-Schema permet en effet de : spécifier la typologie des données que va contenir le document XML décrit par le XML-Schema, gérer une quarantaine de types de données simples, gérer des types complexes, gérer les occurrences des données.

XML-SCHEMA 3/4 Exemple de document XML-Schema : Attention entête faux <xsd:schema xmlns=« http://www.w3.org/2001/XMLSchema »>

XML-SCHEMA 4/4 Référence à un XML-Shema dans un document XML : L’espace de nommage xsi correspond aux instances de documents XML respectant les contraintes définies dans un document XML-Schema. Le W3C a défini une librairie de balises et attributs pouvant être utilisés par ces documents. Dans un document XML on a donc une balise entrée qui peut être validée sur le schéma entree.xsd défini précédemement

Constituants d’un XML-SCHEMA 1/8 Déclaration de l’entête : L’élément <xsd:schema> permet de déclarer un document XML-Xchema. L’attribut targetNamespace permet de préciser l’espace de nommage de ce type de documents. L’attribut elementFormDefault précise si les documents XML respectant cette grammaire doivent référer à cet espace de nommage. <?xml version="1.0" encoding="ISO-8859-1" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--balise schema obligatoire -->

Constituants d’un XML-SCHEMA 2/8 Déclaration des types de données : Il est possible de déclarer un type de données soit dans la déclaration d’un élément (local) soit hors de la déclaration de l’élément (global) XML-Schema permet d’utiliser des données : de type prédéfini (string, int…) de type complexe dont le type est une restriction de type dont le type est une extension de type

Constituants d’un XML-SCHEMA 3/8 Déclaration des types de données : Types prédéfinis : byte, unsignedByte, hexBinary, integer, positiveInteger, negativeInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double… string, NormalizedString, token boolean, anyURI, language time, dateTime, duration, date, gMonth, gYear, gYearMonth, gDay, gMonthDay ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATIN, NMTOKEN, NMTOKENS Exemple : <xsd:element name="comment" type="xsd:string"/>

Constituants d’un XML-SCHEMA 4/8 Déclaration des types de données : Types complexes : Exemple : le type de données TypeAdresse se compose de 6 éléments Numero, Rue1, Rue2, Ville, CP et Pays :

Constituants d’un XML-SCHEMA 5/8 Déclaration des types de données : Restriction de type existant : Exemple : le type de données string comprend 6 attributs optionnels : pattern, enumeration, length, minlength, maxlength, whitespace. Si on désire représenter un choix Oui/Non (restriction sur l’attribut enumeration) :

Constituants d’un XML-SCHEMA 6/8 Déclaration des types de données : Extension / dérivation de type existant : Exemple : si l’on souhaite créer un type Personne contenant en plus du nom et du prénom, un élément de type Adresse (extension du type Adresse vu précédemment) :

Constituants d’un XML-SCHEMA 7/8 Déclaration des éléments :

Constituants d’un XML-SCHEMA 8/8 Déclaration des attributs :

Conclusion : DTD versus XML-SCHEMA La DTD permet de définir facilement et rapidement des grammaires simples. XML-Schema permet de définir de manière plus formelle et complète une grammaire mais c’est au prix d’une complexité accrue. Un document XML-Schema respecte la syntaxe XML. Un document XML-Schema est généralement plus volumineux et plus difficile à lire qu’une DTD (pour un opérateur humain).

Exemple de XML-XSD <?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> <cave xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation='td2.xsd'> <appellation id="01" nom="Saint Estèphe"> <chateau id="0101"> <nom> Chateau Bellevue</nom> <adresse> 12 Rue du Pont</adresse> <téléphone> 0556124321</téléphone> </chateau> <chateau id="0102"> <nom> Chateau Le Bernadot</nom> <adresse> 21 Avenue du Cygne</adresse> <téléphone> 0556324231</téléphone> </appellation> </cave>

XSD <?xml version="1.0" encoding="ISO-8859-1"?> <xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <xsd:element name="cave"> <xsd:complexType> <xsd:sequence> <xsd:element ref="appellation" minOccurs='1' maxOccurs='unbounded'/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="appellation"> <xsd:element ref="chateau" minOccurs='0' maxOccurs='unbounded'/> <xsd:attribute name="id" type="xsd:integer" use='required'/> <xsd:attribute name="nom" type="xsd:string"/>

<xsd:element name="chateau"> <xsd:complexType> <xsd:sequence> <xsd:element ref="nom" minOccurs='1' maxOccurs='1'/> <xsd:element ref="adresse"/> <xsd:element ref="téléphone"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:integer" use='required'/> </xsd:complexType> </xsd:element> <xsd:element name="nom" type="xsd:string"/> <xsd:element name="adresse" type="xsd:string"/> <xsd:element name="téléphone" type="xsd:decimal"/> </xsd:schema>