Beruflich Dokumente
Kultur Dokumente
1
Chapitre 1
2
Introduction
Un exemple d’information
Une carte de visite
3
Introduction
HTML
(visualisé par Mozilla)
4
Introduction
PDF
(visualisé par PDF architect)
5
Introduction
SVG
(Adobe SVG-Viewer)
un format de données conçu pour décrire des ensembles de graphiques vectoriels et basé
sur XML.
6
Introduction
Question
7
Introduction
Réponse
« Documents structurés »
8
Carte Visite en HTML
<html>
<head><title>Carte de visite</title></head>
<body>
<p>Mme LACHHAB Fadwa</p>
<p>Polytechnique agadir - Universiapolis</p>
<p>Bab Al Madina Quartier Tilila</p>
<p>80 000 Agadir</p>
<p>Maroc</p>
<p>bureau 028- 35-35-35</p>
<p>fax 028- 35-35-35</p>
</body>
</html>
9
Carte Visite en SVG
<svg xmlns="http://www.w3.org/2000/svg" width="100%"height="100%">
<defs><path id="MyPath" d="M 100 200
C 200 100 300 0 400 100
C 500 200 600 300 700 200
C 800 100 900 100 900 100"/></defs>
<use xlink:href="#MyPath" fill="none" stroke="red"/>
<text font-family="Verdana" font-size="19" fill="blue">
<textPath xlink:href="#MyPath">
Mme LACHHAB Fadwa, Polytechnique agadir - Universiapolis
,Bab Al Madina Quartier Tilila, 80 000 Agadir , Maroc , bureau
028- 35-35-35, fax 028- 35-35-35
</textPath>
</text>
</svg>
10
Problèmes
document : identification
recherche
applications : portabilité
11
Document XML
12
Historique
HTML
4
XML
XHTML
- Difficilement extensible au Web
13
Historique
SGML
Création : 1989
Tim Berners-Lee - CERN
Rôle : langage à balises pour représenter des documents structurés, HTML
HTML
4
XML
XHTML
- Très lourd et complexe pour la mise en œuvre de documents respectant ce
format
- Une grande rigueur est demandée à l'entrée des documents
- Standard complexe et complet pour le traitement des documents
- Liens hypertextes possibles mais complexes
14
Historique
XHTML
15
Historique
17
Solution
les langages
à balise
échange et publication de données.
les données doivent être représentées indépendamment d’une application (variation des
applications)
les données doivent être représentées indépendamment d’une machine donnée (réseau
hétérogène)
19
XML : Avantages
La lisibilité : aucune connaissance ne doit théoriquement être nécessaire pour comprendre un contenu d'un
document XML.
Autodescriptif et extensible
Intégrabilité : un document XML est utilisable par toute application pourvue d'un parser (c'est-à-dire un
logiciel permettant d'analyser un code XML)
Extensibilité : un document XML doit pouvoir être utilisable dans tous les domaines
20
Structure d’un Document
XML
21
XML : Concept de base
Balise (ou tag ou label)
Marque de début et fin permettant de repérer un élément textuel
Forme: <balise> de début, </balise> de fin
Elément de données
Texte encadré par une balise de début et une de fin
Les éléments de données peuvent être imbriquées
<producteur>
<adresse>
<rue>A. Briand</rue>
<ville>Dijon</ville>
</adresse>
</producteur>
Attribut
22
XML : Structure
<filière>
<nom> med </nom>
<prenom> said </prenom>
<grade> Docteur </grade>
<enseignements>
<cours type=‘CM’>
<titre> Web Dynamique </titre>
<volume> 24 </volume>
</cours>
<cours type=‘TP’>
<titre> TP Web Dynamique </titre>
<volume>18 </volume>
</cours>
</enseignements>
</ filière >
23
XML : Structure
Elément
Un « nom » + un « contenu » + des « attributs » éventuels
Exemple :
Contenu d’élément
<P>
Du texte <p>
Fadwa Lachhab Fadwa Lachhab
</p>
</p>
Des éléments <body>
Nom : p <p>…</p> … <p>…</p>
</body>
Balise Ouvrante : <P>
Contenu mixte <p>
Balise fermante : </p> enseigne
<em>XML</em>
Contenu : Fadwa Lachhab
A universiapolis
</p>
24
XML : Structure
Attribut
un nom + une valeur
Exemple :
Valeur
Nom d’attribut
Nom d’élément d’attribut
26
Document XML
Prologue
Élément racine
Commentaire
Arbre d'éléments et
leurs attributs
27
Exemple
28
Document bien formé
29
Document bien formé
Il existe quelques entités prédéfinies afin de faciliter leur insertion dans un document
XML. Il s’agit notamment des caractères <, >, &, ‘ et «
< <
> >
& &
' ‘
" "
30
Ce document XML est bien formé ??
<?xml version="1.0" encoding="ISO-8859-1"?> déclaration XML
<cartevisite>
<!-- ma carte de visite -->
<nom préfixe="Mme" >Lachhab</nom> La valeur de l’attributs doit être quottée
<prénom> Fadwa </prénom>
<prénom>Fad&wa</prénom> Ne pas utiliser le caractère &
<adresse>
<site>Polytechnique Universiapolis</site>
<rue>Bab Al Madina Quartier Tilila</rue>
<ville>Agadir</ville>
<ville>Agadir</Ville> Balisage sensible à la casse (majuscule)
<code-postal>80 000</code-postal>
<pays>Maroc <pays> manque de tag fermant
</adresse>
<téléphone type="bureau">028- 35-35-35</téléphone>
<téléphone type="fax">028- 35-35-35</téléphone>
</cartevisite>
<cartevisite/> Il doit y avoir une seule racine 31
Application 1
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.
1) Proposer une structuration XML de ce document (avec 2 auteurs, 2 sections, 2
chapitres par section et 2 paragraphes par chapitre).
2) Vérifier à l’aide de l’éditeur, que votre document est bien formé.
3) Attention : ne pas utiliser d’attributs ; l’encodage utilisé est ISO-8859-1
4) Votre document sera nommé livre.xml.
32
LOG710: TECHNOLOGIES WEB II
Responsable Module Dr. FADWA LACHHAB
1
Validation d’un Document
XML
( DTD )
2
Document XML validé
XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe
donnée.
La norme XML définit ainsi une définition de document type appelée DTD (Document Type
Definition), c'est-à-dire une grammaire permettant de vérifier la conformité du document XML.
La norme XML n'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par
contre le respect exact des règles de base de la norme XML.
Document Valide : pour un document XML bien formé, fait référence a une DTD se conforme à elle.
Document Bien Formé : pour un document XML ne comportant pas de DTD mais répondant aux
3
DTD
Elles spécifient
Quels éléments peuvent apparaître dans le document
Quels attributs peuvent/doivent apparaître dans le document
Quels sous-éléments peuvent/doivent apparaître dans le document
Les DTD ne contraignent pas le type de données
Tout est chaîne de caractères
Syntaxe
<!ELEMENT élément (spécification_des-sous-éléments)>
<!ATTLIST élément(attributs)>
4
Utilisation d’un DTD
1. DTD interne
Exemple :
<?xml version="1.0" standalone="yes" ?>
<!DOCTYPE carte [
<!ELEMENT carte (#PCDATA)>
]>
<carte> pique </carte>
5
Utilisation d’un DTD
1. DTD externe
Le document peut aussi faire référence à une DTD stockée dans une entité externe. L'avantage est
alors la réutilisation possible de la DTD.
6
DTD : déclaration des éléments
La syntaxe de déclaration d’un élément est la suivante :
Un élément vide ne contient aucun texte, aucun autre élément, comme les éléments IMG, HR, BR
de HTML.
Exemple :
dans la DTD de XHTML 1.0 l’élément img est déclaré : <!ELEMENT img EMPTY>
7
DTD : déclaration des éléments
Élément non vide
Un élément non vide est formé d’une balise ouvrante, d’un contenu et d’une balise fermante.
Pour décrire ce contenu dans la DTD on utilise un modèle de contenu dans la déclaration
d’éléments
Élément libre
Élément qui peut contenir tout élément déclaré dans la DTD et du texte.
8
DTD : spécification d’éléments
(#PCDATA) Parsed Character DATA ( chaine de caractère)
(val) 1 fois val
(val1,val2) Séquence
(val1|val2|…) Choix
val? 0 ou 1 fois val
val+ au moins 1 fois val
val* 0 ou plusieurs fois val
() groupe de sous éléments
ANY n’importe quoi
EMPTY rien
9
DTD : spécification d’éléments
Exemple
10
Exemple de DTD
<!ELEMENT carteDeVisite (prénom, nom, organisme, adresse)>
<!ELEMENT prénom (#PCDATA) >
<!ELEMENT nom (#PCDATA) >
<!ELEMENT organisme (#PCDATA) >
<!ELEMENT adresse (numéro, voie, ville)>
<!ELEMENT numéro (#PCDATA) >
<!ELEMENT voie (#PCDATA) >
<!ATTLIST voie type (rue | avenue | impasse | cours |
square | boulevard | chemin |
quai | route | passage | place |rondPoint ) 'rue' >
<!ELEMENT ville (#PCDATA) >
11
Application 2
<bibliothèque>
<livre>
<titre>N ou M</titre>
<auteur>Agatha Christie</auteur>
<ref>Policier-C-15</ref>
Proposer une DTD pour ce </livre>
document XML. <livre>
<titre>Le chien des Baskerville</titre>
<auteur>Sir Arthur Conan Doyle</auteur>
<ref>Policier-D-3</ref>
</livre>
<livre>
<titre>Dune</titre>
<auteur>Franck Heckbert</auteur>
<ref>Fiction-H-1</ref>
</livre>
</bibliothèque>
12
DTD : spécification des attributs
13
DTD : spécification des attributs
La valeur par défaut est la valeur prise par l’attribut si aucune valeur n’est précisée dans l’élément.
Cette valeur doit être du même type que celui donné à l’attribut.
Type attribut
- chaînes de caractères CDATA
Le type d'attribut CDATA indique que la valeur de l'attribut sera une chaîne de caractères prise
littéralement, c'est à dire sans reconnaissance et traitement des caractères spéciaux de la syntaxe
XML.
<!ATTLIST element_cible nom_attribut CDATA valeur_par_défaut>
- Énumérations
<!ATTLIST element_cible nom_attribut (val1 | val2 | ... | valN) « valdefaut »>
Ce type d'attribut permet de spécifier la liste des valeurs qu'il peut prendre dans un document. Il
est également possible d'indiquer une valeur par défaut.
15
DTD : spécification des attributs
Exemple
<!ELEMENT carnet (personne+)>
<!ATTLIST personne
16
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
-Identificateurs ( ID / IDREF)
Les types ENTITY et ENTITIES représentent un nom / une liste de noms d’entités séparées par des
blancs, non-XML précédemment déclarées dans la DTD.
C’est utilisé par exemple pour établir un lien avec une image.
Exemple :
<!ATTLIST image source ENTITY #REQUIRED>
<!ENTITY vacances SYSTEM " plage.gif" >
qui sera utilisé dans le document XML :
<image source="vacances"/>
19
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
-Attribut ENTITY ou ENTITIES
Fichier entity.dtd
<!ELEMENT Element EMPTY>
Fichier entity.xml
<!ATTLIST Element EntityTest ENTITY #REQUIRED>
<Element EntityTest="EntityA"/> <!ENTITY EntityA "Entity_A">
<!ENTITY EntityB "Entity_B">
or
<Element EntityTest="EntityA EntityB "/>
20
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
-Attributs NMTOKEN ou NMTOKENS
Le type d'attribut NMTOKEN permet d'indiquer que l'attribut de l'élément peut prendre comme
valeur un nom symbolique composé uniquement de caractères alphanumériques. NMTOKENS
c’est une liste de caractères alphanumériques séparer par des espaces
Exemple :
<-- Dans une DTD -->
<!ELEMENT livre EMPTY>
<!ATTLIST livre code_editeur NMTOKEN #REQUIRED>
<!ATTLIST livre codes_Group NMTOKENS #IMPLIED>
<-- Dans le corps du document XML -->
<livre code_editeur="G09052" codes_Group="G09 G10 G11 "/>
21
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
-Attribut NOTATION
NOTATION signifie que l’attribut attend une notation qui apparaît dans la DTD dans une
déclaration NOTATION
Si une liste de valeurs est préfixée par le mot NOTATION les notations listées comme des valeurs
possibles doivent toutes avoir déjà été déclarées :
Exemple :
22
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
23
DTD : spécification des attributs
<!ATTLIST element_cible nom_attribut type_attribut valeur_par_défaut>
Type attribut
Elles permettent de faire référence à des fichiers qui se trouve à une certaine URL :
Cette référence permet à chaque fois que l'on tape &chapitre-1; dans le document XML d'y
insérer le contenu du fichier chap1.xml.
Il est également possible de définir des entités caractères pour n'importe quel caractère en
utilisant le code hexadécimal du caractère :
26
Les entités paramètres
Elles fonctionnent comme les entités générales, mais ne sont utilisables que dans la DTD où elles
sont déclarées.
27
Valide ! Non Valide!
<book>
<entry id="id-234">
<!ATTLIST entry id ID #REQUIRED> <entry id="Hello World!">
<entry>
<rule style="libre">
<!ATTLIST rule style CDATA #FIXED "free">
<rule style="free">
<rule>
28
Vocabulaire
XML eXtensible Markup Language
W3C World Wide Web Consortium
DTD Définition de Type de Document
XSD XML Schema Document
XPATH XML Path
XSLT eXtensible Style Language Transformation
CSS Cascading Style Sheet
URI Universal Ressource Information
XSL-FO eXtensible Style Language Formatting Objects
XLINK XML Link
XPOINTER XML Pointer
API Application Programming Interface
DOM Document Object Model
IDL Interface Definition Language
29
Application 3
Proposer une DTD qui valide le document XML que vous avez créer dans la 1ere
application ( livre. xml ).
30
Application 4
Créez un document XML qui soit valide par rapport à cette DTD.
31
Chapitre 1: Partie 2
Schéma XML
1
DTD …. Inconvénients
Pas de types de données
Seul type de données possible pour les contenu textuel des éléments est #PCDATA
Syntaxe dédiée
Un élément a une seule déclaration qui décrit ses contenus possibles pour toutes ses
occurrences dans un document
2
Schéma XML
Un schéma d'un document définit:
les éléments possibles dans le document
les attributs associés à ces éléments
la structure du document et les types de données ( string, integer, date)
Le schéma est spécifié en XML
pas de nouveau langage
balisage de déclaration
domaine spécifique xsd: ou xs:
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
3
Schéma XML : Objectifs
Reprendre les acquis des DTD
Plus riche et complet que les DTD
Permettre de typer les données
Attributs simples
Permettre de définir des contraintes
Patterns, ...
S'intégrer à la galaxie XML
4
Schéma XML : Syntaxe
Espace de nom
Un espace de noms XML est une recommandation du W3C qui permet d'employer
des éléments et des attributs nommés dans une instance XML. Une instance XML peut
contenir des noms d'éléments ou d'attributs de plus d'un vocabulaire XML.
Identifier un espace de noms
Un espace de noms est identifié par une URI (Uniform Resource Identifier).
Une URL permet d'identifier de manière unique une ressource, dans notre cas, un vocabulaire,
sur un réseau.
Voyons quelques exemples d'URL permettant d'identifier des vocabulaires et donc des espaces
de noms sur le réseau Internet :
Schéma XML : http://www.w3.org/2001/XMLSchema
DocBook : http://docbook.org/ns/docbook
5
Schéma XML : Syntaxe
1. Sans espace de nom
Les schémas peuvent être utilisés avec ou sans espace de nom. Sans espace de nom associé,
l'élément racine d'un schéma a la forme suivant :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
</xs:schema>
l'assignation de ce type de document Schema dans un document XML de racine Root afin de le
valider se fait comme suit :
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceschemaLocation="modele.xsd">
</Root>
où modèle est le nom du fichier contenant le schéma.
6
Schéma XML : Syntaxe
2. Avec espace de nom
Si un schéma définit un espace de nom, son élément racine définit les attributs suivants :
-targetNamespace="URI", pour définir l'espace de nom dans lequel le schéma définit ses
éléments
-xmlns="URI", l'espace de nom par défaut (souvent identique à targetNamespace)
-elementFormDefault et attributeFormDefault pour déterminés si les éléments (resp. les
attributs), par défaut, sont qualifiés
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.com"
elementFormDefault="qualified">
</xs:schema>
7
Schéma XML : Syntaxe
2. Avec espace de nom
l'assignation de ce type de document Schema dans un document XML de racine Root afin de le
valider se fait comme suit :
<Root xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.w3schools.com note.xsd">
………
</Root>
8
Schéma XML : déclaration des éléments
element : association d'un type à une balise
attributs name, type, ref, minOccurs, maxOccurs, ...
9
Schéma XML : déclaration des éléments
type simple : les multiples types de base d’un élément
Prédéfini : entier, réel, string, time, date, ID, IDREF, …,
10
Type Simple prédéfini
Les éléments peuvent avoir un contenu simple de l'un des tes types prédéfinis suivants :
string, Boolean, byte, integer, long, float, double, date, time, Name (un nom conforme à XML),
anyURI
Exemple 1 :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="titre" type="xs:string"/>
<xs:element name="numchapitre" type="xs:int"/>
</xs:schema>
Exemple 2 : schema et XML
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="DateNaissance" type="xs:date"/>
</xs:schema>
<DateNaissance xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Untitled3.xsd">1923-12-05</DateNaissance>
11
Type Simple prédéfini
12
Type Simple prédéfini : exemples
string integer boolean
14
Type Simple personnalisé
15
Type des éléments
xs=:Type
xs:TypeSimple xs:TypeComplexe
xs:restriction
xs:séquence
xs:list xs:choice
xs:union xs:all
16
Type Simple personnalisé
Les types simples peuvent être étendus pour créer de nouveaux types. Il existe trois possibilités de
création :
caractéristiques (par exemple, la longueur d’une chaîne). Les limitations sont définies avec des
facettes.
L’union : l’union sert à autoriser plusieurs types, ce qui permet d’offrir des alternatives, comme
La liste : il s’agit d’un ensemble de valeurs de même type séparées par un blanc. Il est également
possible d’appliquer une restriction sur une liste, notamment pour en borner la taille
17
Type Simple personnalisé
1. Restriction
Une restriction limite les valeurs possibles d'un type donné (appelé type de base) et est
définie sur certaines propriétés du type de base, appelées facettes de contraintes dont les
valeurs les plus utilisés sont :
length (longueur de chaîne) ou minLength et maxLength (bornes inf. et sup. de la
langueur)
pattern (expression régulière)
enumeration (ensembe de valeurs)
minInclusive, maxInclusive , minExclusive, maxExclusive (bornes des valeurs)
totalDigits (nombre de chiffres d'un nombre entier)
fractionalDigits (nombre de chiffres significatifs pour la partie décimale)
18
Type Simple personnalisé
Restriction : Pattern
la facette pattern permet de contraindre la forme lexicale à l'aide d'une expression régulière (en perl)
Le langage des expressions régulières comprend
[abc] désigne les lettres a, b, c également des classes de caractères :
[a-z] désigne les lettres allant de a à z
•\s : blanc ;
^[abc] signifie toutes les lettres sauf a, b, c
E? signifie 0 ou 1 fois •\S : tout sauf un blanc ;
E* signifie 0 ou plusieurs fois •\d : un chiffre ;
E+ signifie 1 ou plusieurs fois •\D : tout sauf un chiffre ;
E{n,m} signifie entre n et m fois •\w : caractère alphanumérique plus "–" ;
•\W : tout sauf un caractère alphanumérique plus "–"
<xs:element name="letter">
<xs:simpleType>
Exemples : <xs:restriction base="xs:string">
<xs:pattern value="[a-n]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
19
Type Simple personnalisé
1. Restriction : Exemples
20
Type Simple personnalisé
Enumeration
1. Restriction : Exemples <xsd:simpleType name="JourDeSemaine">
Pattern <xsd:restriction base="xsd:string">
<xsd:enumeration value="lundi" />
<xs:element name="letters">
<xsd:enumeration value="mardi" />
<xs:simpleType> <xsd:enumeration value="mercredi" />
<xs:restriction base="xs:string"> <xsd:enumeration value="jeudi" />
<xs:pattern value="([a-z])*"/> <xsd:enumeration value="vendredi" />
</xs:restriction> <xsd:enumeration value="samedi" />
</xs:simpleType> <xsd:enumeration value="dimanche" />
</xs:element> </xsd:restriction></xsd:simpleType>
<xsd:element name="AA" type="JourDeSemaine"/>
<AA> lundi </AA>
21
Type Simple personnalisé
2. Liste
<xs:simpleType>
La liste permet de définir un nouveau type <xs:list>
à partir d'un type de base, où une valeur <xs:simpleType>
du nouveau type correspond à plusieurs <xs:restriction base="xs:int">
valeurs de type de base séparées par un <xs:minInclusive value="40"/>
espace. Exemple : <xs:maxInclusive value="50"/>
</xs:restriction>
Dans cet exemple, nous
</xs:simpleType> autorisons une liste
d’entiers bornés entre 40
</xs:list>
et 50 (par exemple 40 43
</xs:simpleType> 50 44).
22
Type Simple personnalisé
3. Union
<xs:simpleType>
24
Type Complexe
Un type complexe est défini à l'aide de l'élément <xs:complexType name="..."> qui pourra
contenir, entre autres, une séquence d'éléments, une série d'attributs, etc. On définit d'abord les
sous-éléments, puis les attributs.
Un type complexe est définit à l'aide de compositeurs (règles de composition), il existe trois
sortes de compositeurs :
<xs:sequence> : les sous-éléments énumérés doivent être tous présents dans l'ordre indiqué
<xs:choice> : un seul des sous-éléments énumérés doit être présent au minimum
<xs:all> : les sous-éléments énumérés doivent être tous présents au plus une fois, dans
n'importe quel ordre. Les attributs minOccurs et maxOccurs doivent valoir 0 ou 1.
25
Type Complexe
Les attributs minOccurs et maxOccurs contrôlent les occurrences d'apparition d'un élément, par
défaut, minOccurs="1" et maxOccurs="1
En particulier minOccurs="0" signifie qu'il est optionnel et maxOccurs="unbouded" signifie qu'il
est répétitif.
Ces attributs peuvent être utilisés dans une définition d'élément <element ...> et aussi dans les
compositeurs (sequence, choice, all)
26
Type Complexe
1. Séquence
27
Type Complexe
2. Choix
document XML valide
<xs:complexType name="EnteteType" >
<entete>
<xs:choice>
<titre>...</titre>
<xs:element name="titre" type="xsd:string" />
<xs:element name="auteur" type="xsd:string </entete>
</xs:choice> <auteur>...</auteur>
</xs:complexType> <auteur>...</auteur>
<xs:element name="entete" type="EnteteType" /> </entete>
28
Type Complexe
3. All
<xsd:complexType name="EnteteType" > document XML valide
<xsd:all>
<entete>
<xsd:element name="titre" type="xsd:string" />
<auteur>...</auteur>
<xsd:element name="auteur" type="xsd:string"/>
<titre>….</titre>
</xsd:all>
</entete>
</xsd:complexType>
<entete>
<xsd:element name="entete" type="EnteteType" />
<titre>….</titre>
</entete>
29
Définir des attributs pour un type Complexe
Pour illustrer la définition d'attributs, reprenons l'exemple suivant d’un document XML :
<article titre="Un journaliste accuse, un policier dément" auteur="Alain Connu" date="14 juin 1972"
lieu="banquise">...</article>
31
Définir des attributs pour un type Complexe
Exemple :
<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> document XML valide ??
</xs:element>
<a t3="autre" t1="10"/>
</xs:schema>
<a t2= "val" t1= "22"/>
<a t1="a" t2="100" t3= "autre"/>
<xs:attributeGroup name="books">
<xs:attribute name="publisher" type="xs:string">
<xs:attribute name="isbn" type="xs:string">
</xs:attributeGroup>
33
Représentations
La représentation de l’élément vide ou de contenu simple
L’élément vide n’a pas de contenu ; sa définition est donc sans typage. On l’écrit, par exemple :
<xs:element name="br"/>
34
Représentations
La représentation de l’élément vide avec attributs
L’attribut rend la structure de l’élément plus complexe. Son typage est donc également sous
cette forme.
Voici un exemple :
Cette balise s’exprimera donc dans un document XML sous cette forme :
<img src="..."/>
35
Représentations
La représentation de l’élément avec contenu complexe et attributs
Ce cas est plus homogène, puisque le contenu complexe et l’attribut imposent un typage complexe
<xs:element name="auteur">
<xs:complexType>
Dans ce cas, l’élément auteur
<xs:sequence> contient un élément nom suivi d’un
<xs:element name="nom" type="xs:string"/> élément prénom et possède un
attribut id
<xs:element name="prenom" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:token"/>
<xs:complexType>
</xs:element>
36
Représentations
La représentation d’un contenu mixte
37
Application
Donner le Schema du DTD suivant :
38
Fin chapitre 1
39