0% ont trouvé ce document utile (0 vote)
76 vues51 pages

Cours XML Partie1

Transféré par

Nour En
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
76 vues51 pages

Cours XML Partie1

Transféré par

Nour En
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

XML

eXtensible Markup Language

http://j.gs/18042175/msid-s1-xml

1
Plan
• Limites d’HTML
• Apport d’XML
• Structure d’un document XML
• Grammaires XML
– DTD
– XML-Schema
• XSL
• XML Query : Langage d’interrogation pour XML

2
HTML
• Langage à balises
– Balises obligatoires (head, body, …)
– Balises à valeur d’habillage (center, small, ..)
– Nombre fini de balises
– Balises différentes suivant les navigateurs

Pas d’évolution possible pour l’utilisateur

3
HTML (suite)
• Aucune séparation de la forme et du fond
– Balises de fond (Meta, Head, …)
– Balises de forme (center, small, …)
– Balises de fond & forme (h1, h2, …)

Durée de vie limitée à la durée de vie des outils


capables de visionner ces documents.

4
Historique
• XML est un standard du W3C (World Wide
Web Consortium)
• XML est basé sur le standard SGML
• Les travaux de XML ont commencé en
1996
• En 1999, XML est considéré comme étant
le standard d’échange d’information du
futur
5
L’apport de XML
• Ensemble non fini de balises
– L’utilisateur peut créer de nouvelles balises
• Séparation de la forme et du fond
– Un document XML sera constitué d’au moins
deux entités (le fond et la forme)
• Séparation du contenu et de la grammaire
– Permet la validation des documents

6
L’apport de XML (suite)
• Définir ses propres balises
• Pas de limitation d’imbrication des entités
XML
• Validation possible par rapport à une DTD
• Uniquement la structure du document, pas de
format de présentation
• Amélioration du système de liens hypertextes
7
L’apport de XML (suite)
• Réutiliser des informations
• Indépendance par rapport aux vendeurs et aux plates-formes
• Standard pour représenter les données
• Améliorer la recherche d’information sur le Web:
– recherche sur des balises et des DTD spécifiques
– recherche sur le Web comme dans une base de données
– se mettre d’accord sur une DTD
– échanger des données XML, sans la DTD

8
Structure d’un document XML
• Un document XML est constitué de :
– En-tête (prologue) : qui contient un ensemble
d’informations sur le document
– Un ensemble d’éléments avec leurs contenus :
les éléments et leurs contenus sont les données
du document
– Des commentaires qui peuvent être inclus
n’importe où dans le document

9
Structure d’un document XML
(suite)
• Caractéristiques générales
– Un document XML est dépendant de la casse
(comme en Java ou en C++); par exemple, les
noms Membre et membre sont considérés comme
distincts.
– Un document XML peut être rédigé en utilisant un
jeux de caractères particulier; il n’est pas restreint
à l’ASCII.
– Un commentaire débute par la balise <!-- et se
termine par la balise -->
• <!-- Voici un exemple de commentaire -->
• Un commentaire peut être inséré n’importe où dans un
document XML. 10
Constituants d’un document XML

• Le prologue
• La DTD
• Les éléments
• Les balises (tags)
• Les attributs
• Les références aux entités
• Les références aux caractères
• Les sections CDATA
• Les données
11
Document XML (Exemple)
<?xml version=”1.0” encoding=”ISO-8859-1” standalone="no"?>
<! DOCTYPE annuaire SYSTEM “annuaire.dtd”>
<annuaire type=”pages blanches” >
<entree>
<nom>Hicham Momu</nom>
<telephone>06 25 07 86 28</telephone>
</entree>
<entree>
<nom>Brite Troe</nom>
<telephone>06 00 01 02 03</telephone>
</entree> </annuaire>

12
Le prologue

• La déclaration XML
<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
– Permet de préciser la version du document
– Permet de préciser l’encodage utilisé
– Permet de savoir si le document est autonome ou pas
(lien vers d’autres documents)
• standalone="yes" : si le document est indépendant
d’autres documents.
• standalone="no" : si le document est dépendant d’autres
documents (par exemple, le document réfère à une DTD)

13
Le prologue (suite)
• XML permet de définir des types de documents.
• Un type de documents est une sorte de
grammaire, on peut alors valider un document
par rapport à une grammaire.
• Le prologue permet de déclarer le type d’un
document.
<! DOCTYPE livre SYSTEM “http://www-sop.inria.fr/annuaire.dtd”>

14
Ensemble d’éléments

• Les éléments des documents XML sont composés


d’une balise d’ouverture, d’un contenu et d’une
balise de clôture.
Ex: <nom> contenu de l’élément </nom>
• Le nom d’une balise est composé de :
– caractères alphanumériques,
– du souligné,
– il ne faut pas qu’il soit composé d’espaces
– un nom doit commencer par un caractère alphabétique
ou du caractère souligné.
– un nom ne doit pas commencer par XML/Xml/xML/...15
Ensemble d’éléments (suite)
• Une balise d’ouverture peut avoir un ensemble d’attributs.
Ex : <livre date=‘ 01-01-2000 ’> …
<auteur nom="Alexandre" prenom="pp ">
• Un attribut est une paire nom=valeur
• Les noms des attributs suivent les mêmes règles que les
noms des éléments
• La valeur est une chaîne de caractères encadrée par les
caractères guillemets ou apostrophe
• L’attribut xml:lang est prédéfini et sa valeur représente le
langage utilisé dans le document
Ex : <p xml:lang=‘ fr ’> ...
16
Le prologue (suite)
• XML permet de définir des types de documents.
• Un type de documents est une sorte de
grammaire, on peut alors valider un document
par rapport à une grammaire.
• Le prologue permet de déclarer le type d’un
document.
<! DOCTYPE livre SYSTEM “http://www-sop.inria.fr/annuaire.dtd”>

14
Ensemble d’éléments

• Les éléments des documents XML sont composés


d’une balise d’ouverture, d’un contenu et d’une
balise de clôture.
Ex: <nom> contenu de l’élément </nom>
• Le nom d’une balise est composé de :
– caractères alphanumériques,
– du souligné,
– il ne faut pas qu’il soit composé d’espaces
– un nom doit commencer par un caractère alphabétique
ou du caractère souligné.
– un nom ne doit pas commencer par XML/Xml/xML/...15
Ensemble d’éléments (suite)
• Une balise d’ouverture peut avoir un ensemble d’attributs.
Ex : <livre date=‘ 01-01-2000 ’> …
<auteur nom="Alexandre" prenom="pp ">
• Un attribut est une paire nom=valeur
• Les noms des attributs suivent les mêmes règles que les
noms des éléments
• La valeur est une chaîne de caractères encadrée par les
caractères guillemets ou apostrophe
• L’attribut xml:lang est prédéfini et sa valeur représente le
langage utilisé dans le document
Ex : <p xml:lang=‘ fr ’> ...
16
Ensemble d’éléments (suite)
• Les balises de clôture sont composées des
noms correspondant aux balises d’ouvertures
précédés du caractère /
Ex : </livre>
• Un élément peut être vide (sans contenu), dans
ce cas, il n’a qu’une seule balise (composée du
nom suivi du caractère /)
Ex : <Element_vide/>
20
Documents bien formés
• Le plus petit :
<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
<livre/>

• Un autre :
<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
<livre date=‘ 01-01-2000 ’>
<chapitre> XML &amp; HTML </chapitre>
<!-- préciser la version de HTML-->
</livre>

21
Ensemble d’éléments (suite)
• Le contenu d’un élément peut être :
– un ensemble d’éléments
– et/ou des données sous forme de chaînes de
caractères ne contenant pas les caractères & et <
– et/ou des références (=les entités prédéfinies)

17
Ensemble d’éléments (suite)
• Une référence (entité prédéfinie) peut être perçue
comme un raccourci vers une autre valeur (pour
éviter la confusion).
– une référence prédéfinie comme par exemple &amp; ou
&apos; sont deux références vers & et ‘
– Liste des entités prédéfinies:
&amp; équivalent de &
&apos; équivalent de ‘
&gt; équivalent de > (greater than)
&lt; équivalent de < (less than)
&quot; équivalent de "

18
Ensemble d’éléments (suite)
• Un Exemple:
<calcul>
If (a<b et b>c) …
</calcul>

Le texte <b et b> n’est pas une balise mais fait partie des données
liées à l’élément calcul.

Le Même exemple correctement écrit:


<calcul>
If (a &lt; b et b &gt; c) …
</calcul>

19
Ensemble d’éléments (suite)
• Les balises de clôture sont composées des
noms correspondant aux balises d’ouvertures
précédés du caractère /
Ex : </livre>
• Un élément peut être vide (sans contenu), dans
ce cas, il n’a qu’une seule balise (composée du
nom suivi du caractère /)
Ex : <Element_vide/>
20
Documents bien formés
• Le plus petit :
<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
<livre/>

• Un autre :
<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
<livre date=‘ 01-01-2000 ’>
<chapitre> XML &amp; HTML </chapitre>
<!-- préciser la version de HTML-->
</livre>

21
Grammaire XML
• Une grammaire définie la syntaxe d’un langage.
– DTD = Document Type Definition (interne, externe)
– XML-Schema
• Document valide,
• document bien formé
• Un document XML bien formé est un document qui
respecte la syntaxe XML.
• Un document XML valide est un document bien formé
qui se conforme à la définition de la grammaire (DTD
ou Schéma) à laquelle il est associé.
• Ex : le type entreprise précise qu’une entreprise est
composé du personnels, qui est composé
de personnes … 22
Document Type Definition
• Un type de document est défini dans une DTD
(Document Type Definition)
• Une DTD peut être inclue ou référencée par un
document XML
• On peut vérifier la validité d’un document par rapport à
la DTD qu’il référence ou qu’il inclut. On parlera alors
de document XML valide
• Un document XML valide est donc un document XML
bien formé qui a une DTD et qui est conforme à cette
DTD
• Il existe déjà de nombreuses DTD, il est alors possible de
les utiliser pour construire des documents XML valides
23
Ex : La DTD MathML pour les équations
Document Type Definition
(exemple)
• Dans l’exemple ci-dessous, le document XML (1) est valide par
rapport à la DTD (2) :
• 1)
<?xml version=”1.0”?>
<entree>
<nom>Harry Cover</nom>
<telephone>0102030405</telephone>
</entree>
• 2)
<?xml version=”1.0”?>
<!ELEMENT entree (nom,telephone*)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>

26
Document Type Definition
(interne)
<?xml version=”1.0”?>
<!DOCTYPE annuaire [
<!ELEMENT annuaire (entree+)>
<!ELEMENT entree (nom,telephone*)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT telephone (#PCDATA)>
]>
<annuaire>
...
</annuaire> 27
Document Type Definition
(externe)
<?xml version=”1.0” encoding=”ISO-8859-1”?>
<! DOCTYPE annuaire SYSTEM “http://www-sop.inria.fr/annuaire.dtd”>
<annuaire>

</annuaire>

28
Document Type Definition (suite)

32
Document Type Definition (suite)
• On peut déclarer la cardinalité des sous éléments :
– <!ELEMENT element (s1)> signifie que le sous
élément s1 peut avoir une et une seule occurrence.
– <!ELEMENT element (s1*)> signifie que le sous
élément s1 peut avoir 0 à n occurrences.
– <!ELEMENT element (s1?)> signifie que le sous
élément s1 peut avoir 0 ou 1 occurrence.
– <!ELEMENT element (s1+)> signifie que le sous
élément s1 doit avoir au moins 1 occurrence.

33
Document Type Definition
(Attributs)
• Un attribut permet de compléter un élément;
sorte d’adjectif
• Pour que l’attribut d’un élément soit accepté
dans le document par le parser, il est
nécessaire qu’il ait été déclaré dans la DTD.
• Les attributs sont tous décrits dans une
balise <!ATTLIST>.

34
Document Type Definition
(Attributs)
La déclaration d’un attribut doit comporter les
éléments suivants:
– L’élément auquel l’attribut est associé;
– Le nom de l’attribut;
– Le type de l’attribut;
– La valeur par défaut
– Syntaxe:
<!ATTLIST nom_element nom_attribut type
obligation valeur_par_defaut>
35
Document Type Definition
(Attributs)
• Il existe de nombreux types possibles pour
l’attribut. On utilise généralement CDATA
(Character Data, ou chaîne de caractères), ou une
énumération de valeurs possibles
• Les types d’attributs disponibles sont les suivants:
– Une chaîne;
– Une énumération (valeur1|valeur2|valeur3);
– Une entité (ENTITY et ENTITIES);
– Un identifiant (ID, IDREF, IDREFS);
36
Document Type Definition
(Attributs)
Quatre qualificatifs (obligations) sont disponibles:
– Obligatoire (#REQUIRED): ne peut être laissé en blanc
dans le document XML;
– Optionnel (#IMPLIED): le parser indique à
l’application XML que l’attribut peut être laissé à
blanc;
– Fixée (#FIXED): le domaine des valeurs possibles est
inclus dans la déclaration. Prend la première valeur de
la liste par défaut;
– Valeur ("valeur"): indique la valeur prise par défaut
parmi les éléments de la liste, si aucune valeur n’est
saisie dans le document.
37
Document Type Definition (suite)
• Contenu d’une DTD
– Déclarations des entités
– Déclarations des éléments et de leurs contenus
– Déclarations des attributs des éléments
– Commentaires

29
Document Type Definition (suite)
• Types de données
– PCDATA signifie Parsed Character Data (ou chaîne de
caractères parsée).
<element>texte</element>, « texte » est du type
PCDATA.
– CDATA signifie Character Data ou chaîne de
caractères.
<element attribut=”<hello/>”>,
<hello/> est du type CDATA et sera donc traitée comme
une chaîne de caractère, et non une balise XML.
– ID et IDREF : permettent de lier différentes parties
d’un document XML. 30
Document Type Definition (Attributs)
La valeur par défaut permet de spécifier la valeur que prendra
l’attribut s’il n’est pas renseigné par le constructeur du
document XML qui respecte cette DTD. Cette valeur permet
aussi de préciser des options

40
Document Type Definition (Entités)
• Entités
– Une entité associe un nom à une valeur (comme un alias ou
raccourci)
– Les entités peuvent être considérées comme des variables. Elles
peuvent être utilisées dans tout document XML respectant cette
DTD.
– Une entité est en réalité une référence à quelque chose soit un nom
de variable (entité interne), soit un alias (entité externe).
– Il existe plusieurs catégories d’entités:
• Entité générale interne;
• Entité générale externe;
• Entité paramètre externe;
• Entité paramètre interne.
– Leur déclaration est contenue dans l’élément <!ENTITY>.

41
Entité générale interne
• Ce type d’entité est à utiliser dans un document XML
contenant sa grammaire et les données dans le même
fichier.
• Cette entité est référencée dans la partie données
(document XML).
• Utile pour créer des entités comprenant à la fois du texte
ou des éléments.
• Permet de gérer les acronymes, des raccourcis pour des
noms long, etc.
• Sa syntaxe générale est la suivante:
– <!ENTITY nom_entité “valeur “>

42
Entité générale interne
• Nous avons un objet personne pour lequel nous ne souhaitons plus écrire en
toutes lettres les mots Mademoiselle, Madame et Monsieur:

<!DOCTYPE personne [
<!ELEMENT personne (civilite, nom, prenom)>
<!ENTITY MR “Monsieur“>
<!ENTITY MME “Madame“>
<!ENTITY Mlle “Mademoiselle“>
<!ENTITY GC “prospect grand compte“>
<!ENTITY PART “prospect particulier“>
<!ENTITY AUTRE “autre type de prospect“>
<!ELEMENT civilite (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ATTLIST nom type_prospect ENTITY #REQUIRED>
]>

43
Entité générale interne
•Dans la partie document, nous pourrons utiliser les entités définie:
<personne> <personne>
<civilite> <civilite>
&MR; Monsieur
</civilite> </civilite>
<nom type_prospect = “GC“> <nom type_prospect =
DUPONT “prospect grand compte“>
</nom> DUPONT
<prenom> </nom>
Jean-paul <prenom>
</prenom> Jean-paul
</personne> </prenom>
</personne>
44
Entité générale externe
Une entité générale externe permet de déclarer l’existence d’objet externe:
une image, un fichier XML externe.

<!DOCTYPE description_organisation [
<!ENTITY entreprise SYSTEM “entreprise.xml“>
<!ENTITY personnel SYSTEM "personnel.xml “>
<!ELEMENT description_organisation ANY)>]>

<!-- Debut du document XML-->


<description_organisation>
&entreprise;
&personnel;
</description_organisation>

45
Entité paramètre interne
• C’est une entité qui est référencée dans la section DTD d’un document XML

<!DOCTYPE personnes [
<!ENTITY %format_taille “CDATA“>
<!ENTITY %valeur_defaut “#REQUIRED“>
<!ELEMENT personnes (personne+)>
<!ELEMENT personne (#PCDATA)>
<!ATTLIST personne code_taille%format_taille%valeur_defaut>
]>
<personnes>
<personne code_taille = “cm“>180</personne>
</personnes>

Plus généralement, sa syntaxe est la suivante:


<!ENTITY %nom_entite “type_entite“>

46
Entité paramètre externe
• Ce type de déclaration permet de partager
des composants DTD entre plusieurs
documents XML.
• Chaque nouvelle DTD peut ainsi profiter de
la déclaration d’une DTD externe par ce
biais.

47
Entité paramètre externe
<!DOCTYPE clubs [ <!DOCTYPE adresse (numero,
<!ELEMENT clubs (club*)> rue, complement, code_postal,
<!ELEMENT club ville, pays)>
(nom,date_creation, adresse)> <!ELEMENT numero
<!ELEMENT nom (#PCDATA)> (#PCDATA)>
<!ELEMENT date_creation <!ELEMENT rue (#PCDATA)>
(#PCDATA)> <!ELEMENT complement
<!ENTITY %adresse SYSTEM (#PCDATA)>
“adresse.dtd"> <!ELEMENT code_postal
]> (#PCDATA)>
<!ELEMENT ville (#PCDATA)>
<!ELEMENT pays (#PCDATA)>
]>
48
Document Type Definition (Attributs)
La valeur par défaut permet de spécifier la valeur que prendra
l’attribut s’il n’est pas renseigné par le constructeur du
document XML qui respecte cette DTD. Cette valeur permet
aussi de préciser des options

40
Document Type Definition
(identifiants)
• Un attribut de type ID permet d’attribuer un
identifiant à un élément d’un document XML.
• Cet élément peut être ensuite référencé dans une
autre partie du même document en utilisant un
attribut de type IDREF.
• Les identifiants permettent donc de lier différentes
parties d’un document XML.
• Par exemple, la DTD suivante décrit une
grammaire permettant de définir des personnes et
leurs relations de parenté :
50
Document Type Definition
(identifiants)
<!ELEMENT personne (#PCDATA)>
<!ELEMENT parent (fils*)>
<!ELEMENT fils EMPTY>
<!ATTLIST personne identifiant ID #REQUIRED>
<!ATTLIST parent identifiant IDREF #REQUIRED>
<!ATTLIST fils identifiant IDREF #REQUIRED>
Exemple de document XML respectant cette DTD. On y définit deux
personnes (Adam et Karim) à qui on attribue un identifiant
(respectivement « A » et « B »), et on précise que A est parent de B :
<personne identifiant=”A”>Adam</personne>
<personne identifiant=”B”>Karim</personne>
<parent identifiant=”A”>
<fils identifiant=”B”/>
</parent>
51

Vous aimerez peut-être aussi