Technologies Multimédias
XML
Enseigante: Mme. Saidani Maweheb
Année universitaire: 2024-2025
XML
eXtended Markup Language
Recommandation du W3C (1998)
Gestion des hyperliens
XML
Balisage descriptif (séparation entre la structure logique
et la structure physique)
Métalangage (un document XML peut être ou non
accompagné d’une DTD)
Comprend un grand nombre de dialectes
MathML, MusicML, CML, SVG, RDF
XML - Document
XML – Avantages
Portabilité
Simplicité
Outils gratuits (fichiers lisibles avec le navigateur Internet)
Peut être converti à d’autres format (HTML, PDF)
Contrôle de la validité
XML – Applications
Publications
Formulaires
Archivistique (documents administratifs)
Fiches, dossiers
Bases de données
XML Structure du document
Prologue (optionnel)
declaration XML
declaration DTD
commentaires
instructions de traitements
Elément racine
contenu
Commentaires
Prologue
<?xml version="1.0" encoding="ISO-8859-1"
standalone="yes"?>
version: obligatoire
encoding:
default: UTF-8
standalone:
default: no
yes veut dire qu'il n'y a pas de DTD,ou que la
DTD incluse est complète (n'en inclut pas
d'externe)
Note: l'ordre des attributs est imposé
XML Commentaire & Instructions de
traitement
Déclaration DTD
<!DOCTYPE lettre SYSTEM "[Link]">
Voir DTD
Commentaire
<!-- un commentaire -->
Instructions de traitement
indique à l’application qui traite le doc XML des
traitements à effectuer
<?xml-stylesheet
href="[Link]" type="text/xsl">
XML Validation
Document bien formé
Respecte la syntaxe XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<lettre>
…
</lettre>
Document valide
1. Pas de texte dans l’élément root
2. Se conforme à une DTD ou un Schéma
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lettre SYSTEM "[Link]">
< lettre>
…
</lettre>
DTD c’est quoi?
Document Type Definition
Décrit
quels éléments seront utilisés dans le document XML
le type des éléments,
la structure des éléments
Sert pour
vérification de la grammaire
DTD interne, externe, mixte
Interne dans le document
<!DOCTYPE NOM_DTD [ ...définitions éléments + attributs... ]>
Externe (inclusion)
<!DOCTYPE NOM_DTD SYSTEM "URL" >
NOM_DTD doit valoir le nom du root element
URL peut indiquer un fichier local
<!DOCTYPE lettre SYSTEM "[Link]">
Mixte: Interne + Externe
s'ajoutent
interne lue avant externe
<!DOCTYPE NOM_DTD SYSTEM "URL" [ ..définitions... ] >
DTD interne
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE lettre [ <!-- DTD interne -->
<!ELEMENT lettre (sujet, adresse, message)>
<!ATTLIST lettre id CDATA #REQUIRED
priorite (max | min) "min">
<!ELEMENT sujet (#PCDATA)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT adresse EMPTY>
<!ATTLIST adresse
from CDATA "inconnu"
to CDATA "inconnu"> ]>
<lettre id="0" priorite="max">
<sujet> Match< /sujet>
<adresse from="Y" to="X"/>
<message> Demain 17H cite olympique
</message>
</lettre>
DTD externe
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lettre SYSTEM "[Link]">
[Link]
<lettre>
…
</lettre>
<!ELEMENT lettre (sujet, adresse, message)>
<!ATTLIST lettre id CDATA #REQUIRED
priorite (max | min) "min">
<!ELEMENT sujet (#PCDATA)> [Link]
<!ELEMENT message (#PCDATA)>
<!ELEMENT adresse EMPTY>
<!ATTLIST adresse from CDATA "inconnu"
to CDATA "inconnu">
DTD définition élément
<!ELEMENT nom_element modele_de_contenu >
modele_de_contenu
EMPTY déclare un élément XML vide
<!ELEMENT adresse EMPTY>
ANY déclare n’importe quel contenu XML valide
<!ELEMENT arborescence ANY>
Éléments seulement : l’élément parent doit avoir …
<!ELEMENT parent (fils) > : … 1 élément fils exactement
<!ELEMENT parent (fils+) > : … 1 élément fils ou +
<!ELEMENT parent (fils?) > : …0 ou 1 élément fils
<!ELEMENT parent (fils*) > : … 0 ou + d’ un élément fils
<!ELEMENT parent (filsA,filsB) > : 1 filsA et 1 filsB
Texte seulement matche une séquence de caractère valide
<!ELEMENT sujet (#PCDATA)>
Contenu mixte matche une séquence de caractère + des éléments
<!ELEMENT message (#PCDATA|adresse)*>
DTD définition attribut
<!ATTLIST nom_element
[nom_attribut modele_valeur option_valeur]+>
modele_valeur : la valeur doit être …
CDATA : … du character data
(en1|en2|…) : … contenu dans l’énumération
ID : … unique dans le document (identifiant)
ENTITY : … une entité (pointe vers des données)
ENTITIES : … une liste d’entités (sép. espaces)
Seuls CDATA et (en1|en2|…) utilisés en pratique
DTD Inconvénients
Pas de typage
Impossible de dire qu’un prix est de la forme $[0-9]+
Pas d'héritage
Impossible de "sous-classer" des DTDs
Optionnelle
Pas d ’erreur si absence de DTD
Mais si une DTD est définie, tout le document doit la respecter (éléments &
attributs)
Pas en syntaxe XML !!!
DTD définition attribut
<!ATTLIST nom_element [nom_attribut modele_valeur option_valeur]+>
option_valeur
"valeur" : valeur par défaut si pas de valeur de l’attribut spécifié dans l’XML
DTD:
<!ELEMENT carre EMPTY>
<!ATTLIST carre lg_cote CDATA "0">
XML valide: <carre lg_cote="100" /></carre>
#REQUIRED: valeur requise obligatoirement dans l’XML
DTD:
<!ELEMENT personne ANY>
<!ATTLIST personne tel CDATA #REQUIRED>
XML valide: <personne tel="72145637" /></personne>
XML non valide: <personne>ali</personne>
#IMPLIED : attribut non obligatoire en dans l’XML
DTD:
<!ELEMENT bureau EMPTY>
<!ATTLIST bureau fax CDATA #IMPLIED>
XML valide: <contact></contact> ou <contact fax=" 73145637 "></contact>
#FIXED "valeur" : la valeur de l’attribut dans l’XML doit valoir "valeur"
CSS affichage XML+CSS
Cascading Style Sheet feuille de style HTML
Pour soigner la présentation
Utilisable dans XML
Permet de décorer les noeuds avec des attributs de style prédéfinis
Affichage navigateur de type HTML (non arborescent)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lettre SYSTEM "[Link]">
<?xml-stylesheet type="text/css" href="[Link]"?>
<lettre>
…
</lettre>
CSS affichage XML+CSS
lettre {
display: block;
background-color: #dddddd;
width: 100%;
}
sujet {
display: block;
color: #777770;
margin-left: 0pt;
font-size: 40pt;
}
message {
display: block;
color: #477740;
margin-left: 60pt;
font-size: 30pt;
}