Structure d`un document xml Structure d un document

Transcription

Structure d`un document xml Structure d un document
XML
Structure d’un
Structure d
un document xml
document xml
DTD
Le schéma XSD
Structure d’un
Structure d
un document XML
document XML
• Un document XML contient les éléments suivants:
U d
XML
i
l élé
i
– Le prologue
• <?xml version="1.0" encoding="ISO‐8859‐1"?>
version "1 0" encoding "ISO 8859 1"?>
– Un arbre contenant les éléments du document qui forment les nœuds de l’arbre
– Des commentaires
• <!– commentaire ‐‐> • Les éléments: un élément xml est tout ce qui est contenu entre une balise ouvrante et une balise f
fermante.
t
– Un élément peut contenir d’autres éléments et du texte.
Document XML bien formé
Document XML bien formé
•
•
•
•
•
TTout élément doit avoir une balise fermante
t élé
t d it
i
b li f
t
Les balises sont sensibles à la casse.
Les éléments XML doivent être correctement imbriquées
Un document xml doit avoir un élément racine
Les valeurs des attributs xml doivent être entre guillemets " " ou ‘ ‘ • Les entités: 5 entités prédéfinies en xml: – Uniquement les caractères < et & sont strictement interdits dans un d
document xml
t l
&lt;
<
&gt;
>
&amp;
&
&
&apos;
'
&quot;
"
Remarques
• En xmll les espaces sont préservés
l
é
é
• Dans un document xml le caractère LF représente un saut de ligne.
• Règles de nommage des éléments: g
g
– Le nom d’un élément peut contenir des lettres, des chiffres et d’autres caractères.
– Le nom ne doit pas commencer par un chiffre ou un caractère de ponctuation
– Un nom ne doit pas commencer par xml.
– Un nom ne doit pas contenir d’espace.
DTD
• Un document xml valide est un document p
pp
bien formé et valide par rapport à une DTD (Document Type Definition)
• Une déclaration DTD peut être interne ou Une déclaration DTD peut être interne ou
externe à un document XML.
• Déclaration interne:
Déclaration interne
Déclaration interne
<?xml version="1.0"?>
version "1 0"?>
<!DOCTYPE note [
<!ELEMENT note (A,DE,Titre,Corps)>
<!ELEMENT A (#PCDATA)>
(
)
<!ELEMENT DE (#PCDATA)>
<!ELEMENT Titre (#PCDATA)>
<!ELEMENT Corps(#PCDATA)>
]>
<note>
<A>Timah</A>
<DE>Hatim</DE>
<Titre>Rappel</Titre>
<Corps>Votre commande a été expédiée</Corps>
</note>
Déclaration externe
Déclaration externe
• D
Dans le document xml, ajouter la déclaration l d
t l j t l dé l ti
suivante:
– <!DOCTYPE elt_racine
<!DOCTYPE elt racine SYSTEM SYSTEM "definition
definition.dtd
dtd">>
– Exemple: <!DOCTYPE note SYSTEM " note.dtd">
• Créer le fichier note.dtd suivant:
Créer le fichier note dtd suivant:
<!ELEMENT note (A, DE, Titre ,Corps)>
<!ELEMENT A (#PCDATA)>
<!ELEMENT DE (#PCDATA)>
<!ELEMENT Titre (#PCDATA)>
(
)
<!ELEMENT Corps (#PCDATA)>
Blocs d’un
Blocs d
un document xml
document xml
•
•
•
•
•
Eléments
Attributs
Entités
PCDATA: parsed character data.
CDATA: les données de type CDATA ne seront
CDATA: les données de type CDATA ne seront pas analysées par un analyseur.
Déclaration d’un
Déclaration d
un élément
élément
• <!ELEMENT element type> – Exemple: <!ELEMENT note #PCDATA> – Valeurs possibles pour catégorie
EMPTY: élément vide
(#PCDATA)
ANY, exmple: <!ELEMENT note ANY>
<!ELEMENT note (A,DE,Titre,Corps)>: les éléments fils doivent apparaître dans le même ordre.
• Multiplicité: +, *,?
l l é *?
• | exemple <!ELEMENT nomelement (header|message)>
•
•
•
•
Déclaration des attributs dans un DTD
Déclaration des attributs dans un DTD
• Pour chaque attribut
<!ATTLIST element nom_attribut type yp
valeur_default>
– Exemple: <!ATTLIST payment type CDATA Exemple: <!ATTLIST payment type CDATA "carte">
carte >
Types d’attributs
Types d
attributs
•
•
•
•
•
•
•
•
•
•
•
CDATA: caractères
CDATA
tè
(en1|en2|..): liste de valeurs
ID: id unique
ID: id unique
IDREF: id d’un autre élément
IDREFS: une liste d’ids d’autres éléments
NMTOKEN: un nom xml valide
NMTOKENS: un nom xml valide
ENTITY: une entité
ENTITIES: une liste d’entités
NOTATION
NOTATION: notation
t ti
Xml: : une valeur xml prédéfinie
Valeurs par défaut
Valeurs par défaut
•
•
•
•
•
•
Value: une valeur
#REQUIRED
#IMPLIED: l’attribut n’est pas obligatoire
#FIXED val: la valeur val de l’attribut est fixe
Exemple:
<!ATTLIST paiement type (chèque|numéraire|carte) "carte">
Les entités
Les entités
• <!ENTITY matiere "Technologies xml.">
• Utilisation <cours>&matiere;</cours>
Utilisation <cours>&matiere;</cours>
• Déclaration externe d’une entité
– <!ENTITY nom_entité SYSTEM "URI/URL">
Les feuilles de style css
Les feuilles de style css
• Lier une feuille de style à un document xml
– <?xml‐stylesheet
y
type="text/css" yp
/
href=" style.css"?> • Exemple:
Exemple de DTD
Exemple de DTD
<!ELEMENT clients
li t (client*)>
( li t*)>
<!ELEMENT client (nom,prenom,commandes?)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT commandes (commande+)>
<!ELEMENT commande (date,article+)>
(date article+)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT article (ref,designation,prix,quantite)>
<!ELEMENT ref (#PCDATA)>
<!ELEMENT designation (#PCDATA)>
<!ELEMENT prix (#PCDATA)>
<!ELEMENT quantite (#PCDATA)>
<!ATTLIST commande ref CDATA #REQUIRED >
Document clients xml
Document clients.xml
<?xml version=
version="1
1.0
0" encoding=
encoding="utf
utf‐8
8" ?>
?>
<!DOCTYPE clients SYSTEM "clients.dtd" >
<clients>
<client>
<nom>
Hatim
</nom>
<prenom>
TimaH
</prenom>
<commandes>
<commande ref="1">
<date>
10/10/10
</date>
<article>
<ref>
10
</ref>
<designation>
Café
</designation>
<prix>
150
</prix>
<quantite>
15
</quantite>
/
</article>
<article>
<ref>
1010
</ref>
<designation>
Thé
</designation>
<prix>
100
</prix>
<quantite>
10
/q
</quantite>
</article>
</commande>
</commandes>
</client>
</clients>
Style css
Style.css
CATALOG { background‐color: #ffffff; CATALOG
{ b k
d l #ffffff
width: 100%; } CD { display: block; margin‐bottom: 30pt; margin‐left: 0; } TITLE { color: #FF0000;
TITLE { color: #FF0000; font‐size: 20pt; } ARTIST { color: #0000FF; font‐size: 20pt; }
COUNTRY,PRICE,YEAR,COMPANY { display: block; color: #000000;
color: #000000; margin‐left: 20pt; }
styles
•
•
•
•
•
Pseudo sélecteurs before
d él
b f
et after
f
DATE {display: block; font‐size: 32pt; font‐weight: bold;
t t li
text‐align: center}
t }
DATE:before (ou after) {content: "Date: "}
Css est un langage de style limité est un langage de style limité
– Des éléments peuvent être cachés par display:none
– Un style défini pour un élément s
Un style défini pour un élément s’applique
applique aussi aux aussi aux
nœuds fils de cet élément
– Des éléments de texte peuvent être ajoutés avant ou après un éléments en utilisant : before after et content.
un éléments en utilisant : before, after
et content
• display: block, none, list‐item, table