Chapite 01 & 02
Chapite 01 & 02
Chapite 01 & 02
2
1. Rappels sur les bases de données
3
2. Premiers apports du Web
5
2 Premiers apports du Web
Le HTML est un langage déclaratif come le SGML :
Un langage déclaratif: on décrit le quoi, c'est-à-dire le problème. Par exemple,
les pages HTML décrivent ce que contient une page (texte, titres, paragraphes,
etc.) et non pas comment
Un langage impératif: on décrit le comment, c'est-à-dire la structure de
contrôle correspondant à la solution. (le C ou Java)
Des langages impératifs ont été employé pour écrire et échanger des
documents sur le Web de façon figé et précis:
• TeX pour écrire des documents
• PostScript pour échanger des documents
Ils affichent ou impriment le document sous la forme exacte.
6
2 Premiers apports du Web
7
3 L'arrivée de XML
8
3 L'arrivée de XML
11
4 Structure et traitements
12
4 Structure et traitements
Parseur XML
• Pour réaliser des applications XML, il faut avoir un analyseur
syntaxique comme les langages de programmation classiques (Java,
Perl, C++, Python...).
• Un analyseur syntaxique XML (ou parseur) est un outil qui analyse
un document XML pour vérifier sa syntaxe et extraire des éléments.
• Il existe deux types de parseurs :
• les analyseurs non-validants, qui contrôlent simplement que le
document XML est bien formé.
• les analyseurs validants, qui vérifient que le document XML est
valide.
13
5 Multimédia
14
5 Multimédia
15
6 Hypermédia
16
7 Données structurées, non structurées et semi-structurées
• Les données structurées: leurs éléments sont organisés, selon une structure
permettant à chacun d'être traité, afin de mieux exploiter les informations. (les
bases de données)
• Les données non structurées ne sont pas organisées dans un format qui permet
d'y accéder et de les traiter plus facilement. ( Les commentaires et les
publications sur les réseaux sociaux )
• Les données semi-structurées
• constituent une forme intermédiaire. Elles sont des données qui n'ont pas été
organisées en référentiel spécialisé, mais qui comportent néanmoins des
informations associées, des métadonnées par exemple, qui les rendent plus
faciles à traiter.(Le langage XML)
( Une métadonnée est une donnée servant à définir ou décrire une autre
donnée).
17
Chapitre 2 :
18
1. Structure des documents XML
l'entête XML
Elément racine
• Remarque:
La casse des caractères dans
un document XML est
importante.
19
20
1. Structure des documents XML
21
1 Structure des documents XML
Les commentaires
• Il est possible d'insérer des commentaires dans les documents
XML, en utilisant la syntaxe suivante:
<!-- Voici le commentaire -->
22
1 Structure des documents XML
24
1. 1 Prologue
25
1. 1 Prologue
• La version : soit 1.0 ou 1.1 (la majorité des documents sont en version 1.0).
• encoding : indique Le jeu de caractères employé (XML s’appuie sur des
standards ISO et Unicode).
• Standalone: précise si le fichier est autonome (complet, indépendant ). La
valeur de cet attribut peut être yes ou no. Dans le cas ou il est affecté a yes,
aucun fichier externe (DTD) n’est référencé c’est à dire qu’il est complet.
27
1.1.2 Déclaration de type de document
28
1.1.2 Déclaration de type de document
30
1.1.2 Déclaration de type de document
32
1.2 Corps du document
33
1.2.1 Éléments
35
Exemple:
cours : élément acine contenant
<?xml version="1.0" trois éléments fils : intervenant,
encoding="ISO-8859-1"?> separateur et chapitre ;
<cours>
<intervenant>
Phileas intervenant : élément contenant du
</intervenant> texte ;
<separateur/>
<chapitre> separateur : élément sans contenu ;
Formation XML
<para>Un paragraphe</para> chapitre : élément contenant du
<para>Autre paragraphe</para> texte et des éléments fils para ;
</chapitre>
</cours> para : élément contenant du texte.
36
1.2.1 Éléments
37
1.2.1 Éléments
Élément racine :
• Un élément racine est le premier élément déclaré dans un
document XML, qui contient tous les autres éléments.
• Un seul élément racine est autorisé par document.
38
2. Les attributs, Les nœuds textes, Déclaration et référence
39
2.1 Les attributs
40
2.1 Les attributs
43
2.1 Les attributs
44
2.1 Les attributs
45
2.1 Les attributs
46
2.2 Les nœuds textes (Sections littérales, Sections CDATA )
47
2.2 Les nœuds textes (Sections littérales, Sections CDATA )
Entités prédéfinies:
Les caractères spéciaux '<', '>' et '&' ne peuvent pas être
inclus directement dans le contenu d'un document. Ils
peuvent être inclus par l'intermédiaire des entités
prédéfinies.
Elles servent à lever une ambiguïté syntaxique pour le
parseur.
Elles peuvent être utilisées dans un élément, pour du texte,
ou dans un attribut, pour sa valeur.
48
2.2 Les nœuds textes
52
2.3 Déclaration et référence
53
3. Quelques règles de syntaxe
55
4. Document bien forme et document valide: la dtd
56
4. Document bien forme et document valide: la dtd
57
5. Validation des documents XML (DTD)
• Une DTD peut être interne ou externe au document XML (la forme
externe est la plus recommandée pour des raisons de maintenance et
de facilité d’accès).
• La forme externe:
Le parseur XML trouvera une référence dans chaque document XML
vers la DTD externe par l’instruction d’en-tête DOCTYPE.
<personne> <personne>
<nom_prenom>Brillant <nom>Brillant</nom>
Alexandre</nom_prenom> </personne>
</personne> 61
5.1 La syntaxe d’une DTD (élément)
Exemple
<!ELEMENT personne(prenom,nom)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<personne>
<prenom>Alexandre</prenom>
<nom>Brillant</nom>
</personne> 62
5.1 La syntaxe d’une DTD (élément)
63
5.1 La syntaxe d’une DTD (élément)
Exemples
<!ELEMENT plan (introduction?,chapitre+,conclusion?)>
L’élément plan contient un
élément introduction optionnel,
suivi d’au moins un élément
chapitre et se termine par un
<!ELEMENT chapitre (auteur*,paragraphe+)> élément conclusion optionnel
également.
65
5.1 La syntaxe d’une DTD (La définition d’un attribut)
• Le TYPE peut être principalement :
₋ CDATA : du texte (Character Data) ;
Ce type est le plus général. Il n'impose aucune contrainte à la valeur
de l'attribut. Celle-ci peut être une chaîne quelconque de caractères.
₋ ID : un identifiant unique (combinaison de chiffres et de lettres) ;
₋ Un attribut de type ID permet d'identifier de façon unique un
élément du document.
Les éléments ainsi identifiés peuvent alors être référencés par
d'autres éléments grâce aux attributs de types IDREF et IDREFS.
Ces attributs créent ainsi des liens entre des éléments ayant les
attributs de types IDREF ou IDREFS et des éléments ayant les
attributs de type ID. Ce mécanisme permet uniquement de créer
des liens entre des éléments d'un même document. 66
• XML distingue deux types d'identificateurs: les NMTOKEN (jetons)
pour name token et les noms XML. La seule différence est que les
noms XML doivent commencer par certains caractères particuliers.
• Les caractères autorisés dans les identificateurs sont tous les
caractères alphanumériques, c'est-à-dire les lettres minuscules [a-z],
majuscules [A-Z] et les chiffres [0-9] ainsi que le tiret '-', le point '.' ,
les deux points ':' et le tiret souligné '_' . Un NMTOKEN est une suite
quelconque de ces caractères. Un nom XML est un NMTOKEN qui, en
outre, commence par une lettre [a-zA-Z], le caractère ':' ou le
caractère '_'. Les deux caractères '-' et '.' ainsi que les chiffres ne
peuvent pas apparaître au début des noms.
67
• Le caractère ':' est réservé à l'utilisation des espaces de noms. De fait,
il ne peut apparaître qu'une seule fois pour séparer un préfixe du
nom local dans les noms des éléments et des attributs. Les espaces
de noms amènent à distinguer les noms ayant un caractère ':',
appelés noms qualifiés et les autres, appelés par opposition noms
non qualifiés.
• Les noms commençant par les trois lettres xml en minuscule ou
majuscule, c'est-à-dire par une chaîne de [xX][mM][lL] sont réservés
aux usages internes de XML. Ils ne peuvent pas être utilisés librement
dans les documents mais ils peuvent cependant apparaître pour des
utilisations spécifiques prévues par la norme.
68
• Quelques exemples d'identificateurs sont donnés ci-dessous.
Noms XML valides :
• name, id-42, xsl:template, sec.dtd-3.1 et _special_
• Noms réservés :
xml:id et xml-stylesheet
69
₋ IDREF : une référence vers un ID ;
₋ IDREFS : une liste de références vers des ID (séparation par un blanc) ;
₋ NMTOKEN : un mot (donc pas de blanc) ;
₋ NMTOKENS : une liste de mots (séparation par un blanc) ;
₋ NOTATION: La valeur de l'attribut est une notation
Les notations permettent d'identier par un nom le format des entités
non-analysées par le parseur XML. Elles permettent de définir le format
des données et les applications qui permettent de les traiter.
70
-ENTITY
La valeur de l'attribut une entité externe non XML
-ENTITIES
La valeur de l'attribut une liste d'entités externes non XML
71
5.1 La syntaxe d’une DTD (La définition d’un attribut)
• L’OBLIGATION:
₋ #REQUIRED : attribut obligatoire.
₋ #IMPLIED : attribut optionnel.
₋ #FIXED : attribut toujours présent avec une valeur. Cela peut
servir, par exemple, à imposer la présence d’un espace de
noms.
• La VALEUR_PAR_DEFAUT : présente pour l’énumération ou
lorsque la valeur est typée avec #IMPLIED ou #FIXED.
72
5.1 La syntaxe d’une DTD (La définition d’un attribut)
Exemples :
<!ATTLIST crayon
L’élément crayon possède un attribut
couleur (rouge|vert|bleu) "bleu">
couleur dont les valeurs font partie
de l’ensemble rouge, vert, bleu.
73
5.1 La syntaxe d’une DTD (La définition d’une entité)
74
5.1 La syntaxe d’une DTD (La définition d’une entité)
75
5.1 La syntaxe d’une DTD (La définition d’une entité)
76
5.1 La syntaxe d’une DTD (La définition d’une entité)
77
5.1 La syntaxe d’une DTD (La définition d’une entité)
<![Valeur[
Partie de DTD
]]>
78
5.1 La syntaxe d’une DTD (La définition d’une entité)
79
5.1 La syntaxe d’une DTD (La définition d’une entité)
Remarque
Il est possible d’utiliser plusieurs instructions ATTLIST pour un même
élément, le parseur effectuant la synthèse de tous les attributs définis.
80
5.1 La syntaxe d’une DTD (Les sections internes et externes )
81
5.1 La syntaxe d’une DTD (Les sections internes et externes )
Exemple : Fichier sectionExterne.dtd
< !ELEMENT catalogue (stage)* >
< !ELEMENT stage (intitule, description, session*) >
< !ELEMENT intitule (#PCDATA) >
< !ENTITY % planning SYSTEM « planning.dtd » >
%planning ;
Fichier planning.dtd
< !ELEMENT session (debut, fin) >
< !ELEMENT debut (#PCDATA) >
< !ELEMENT fin (#PCDATA) >
82
5.1 La syntaxe d’une DTD (Les sections internes et externes )
Exemple : Fichier SectionExterne.xml
< ?xml version= « 1.0 » encoding « ISO-8859-1 » ?>
< ?xml : stylesheet href= « SectionExterne.xsl » type= « text/xsl » ?>
< !DOCTYPE catalogue SYSTEM « SectionExterne.dtd »>
<catalogue>
<stage>
<intitule>XML – Présentation</intitule>
<description>exemple</description>
<session>
<debut>15/11/2002</debut>
<fin>13/12/2002</fin>
83
</session>
5.1 La syntaxe d’une DTD (Les sections internes et externes )
(SUITE)
<session>
<debut>10/01/2003</debut>
<fin>19/04/2003</fin>
</session>
</stage>
<stage>
<intitule>XML et bases de données</intitule>
<description>exemple</description>
</stage>
</catalogue> 84
6. Les espaces de noms
85
6. Les espaces de noms
86
6. Les espaces de noms
Attention
• Un espace de noms par défaut ne concerne que les éléments. Les
attributs et les textes n’y appartiennent pas. Le texte d’un élément n’est
jamais dans un espace de noms puisqu’il représente la donnée.
2. L’espace de noms explicite
• L’espace de noms par défaut présente l’inconvénient d’être peu
contrôlable sur un document de taille importante. En effet, tout ajout ou
modification d’un tel espace va se répercuter sur la totalité du contenu.
• Pour disposer de davantage de souplesse dans ces espaces et pouvoir
également les appliquer aux attributs et valeurs d’attributs, la syntaxe
introduit la notion de préfixe.
89
6. Les espaces de noms
90
6. Les espaces de noms
Attention
• Lorsqu’un élément est préfixé, son contenu doit l’être aussi si l’on souhaite
que l’espace de noms s’applique également.
• On peut déclarer et utiliser plusieurs espaces de noms grâce aux préfixes.
• Exemple :
Le premier élément res est
<p:res
dans l’espace de noms
xmlns:p="http://www.masociete.com"
http://www.masociete.com.
xmlns:p2="http://www.autresociete.com">
L’élément res à l’intérieur est
<p2:res>
dans l’espace de noms
</p2:res>
http://www.autresociete.com
</p:res>
91
6. Les espaces de noms
Attention
On ne peut pas utiliser plusieurs préfixes en même temps sur un
élément, attribut ou valeur d’attribut (exemple à ne pas faire p:p2:res)
92
6. Les espaces de noms
95
6. Les espaces de noms
Dans cet exemple, nous avons
• Exemple : qualifié l’attribut quantité
ainsi que les valeurs d’attribut
50lots et A4.
<livre
xmlns:p="http://www.imprimeur.com"
p:quantite="p:50lots">
<papier type="p:A4"/>
</livre>
96