XML : est une langage lisible et compréhensible par humain
XML est extensible : XML Permet au développeur de définir et utiliser ses propres balise et ses propres attributs
XML s’utilise pour échanger des données, fichier de configuration, ….
XML est validé par DLD ou Shéma xml
Structure fichier XML
<?xml …. ?> Prologue
….
<root-element >
<element>
…. Corps
<element>
</root-element >
<? et ?> : instruction de traitement
Prologue ou la ligne d’introduction d’un document XML s’écrit comme le suivant
<?xml version=’’1.0’’ encoding=’’ iso-8859-1’ standalone=’’no‘’?>
Encoding, Standalone sont des attributs facultatives
Standalone : l’indépendance de document
DTD c’est un fichier chargé de valider un document XML
XSLD stylesheet
S’il n’ya pas de DTD ou si elle existe interne, le document est autonome et la valeur de l’attribut
standalone peut être défini par yes si DTD référencée externe la valeur de cet attribut doit être définie à
no
Element-racine doit être unique, c’est le contenir du corps de fichier XML
élément vide ça veut une balise sans contenu ni balise fermeture (balise orpheline)
<fichier chemin=’’livre.pdf’’>
Parseur c’est analyseur XML qui permet de récupérer dans une structure XML des balises et keurs
attributs
CDATA
<![CDATA[
Texte Ici sans qu’il soit nécessaire de substituer les caractères spéciaux par des caractères de masquage
]]>
CDATA ne doit pas imbriqué
DTD = XSD : ?
Exercice :
Livre :
2 section
2 Paragraphe
2 Chapitre
+ Liste des auteurs
Insertion DTD Externe
<!DOCTYPE root-element SYSTEM ’’Path or url of file DTD.dt’’>
L’insertion DTD interne
<!DOCTYPE root-element [ content DTD ] >
Structure Fichier DTD :
<!ELEMENT nomElement contenu >
<>
Contenu et règles :
Element(balise) Textuel = (#PCDATA) <!ELEMENT adress (#PCDATA)>
Element vide = EMPTY <!ELEMENT tel EMPTY>
Contenu textuel (#PCDATA) <!ELEMENT adresse (#PCDATA)>
Vide EMPTY balise vide <!ELEMENT tel EMPTY>
Aléatoire ANY n’importe <!ELEMENT email ANY>
Séquence d’éléments (element1, element2+) : <!ELEMENT NOMCOMPLET
Toutes les éléments sont (NOM,PRENOM+)>
obligatoire (AND)
Choix (NOM|PRENOM+) <!ELEMENT NOMCOMPLET (NOM|
Un élément obligatoire le reste PRENOM+)>
facultative (OR)
Mélange Contenu Variable <!ELEMENT info (NOM|#PCDATA) >
Les indicateurs d’occurrences :
‘’*’’ : Une occurrence quelconque (0, plus)
‘’+’’ : Une occurrence quelconque (1, plus)
‘’ ?’’ : 0 ou 1 occurrence
Révision :
< !DOCTYPE element-root SYSTEM ‘’dtdFile.dtd’’>
<!DOCTYPE element-root [
<!ELEMENT Personne((M|Mme|Mlle), Prenom+, Nom)>
<!ELEMENT M EMPTY>
< !ELEMENT Mme EMPTY>
< !ELEMENT Mlle EMPTY>
<!ELEMENT Prenom (#PCDATA)>
<!ELEMENT Nom (#PCDATA)>
]>
+ :1,+
* :0,+
?:0,1
Les attributs DTD :
<!ATTLIST NOMELEMENT NOM TYPE OBLIGATION VALEURPARDEFAUT >
TYPE :
CDATA : texte
ID : unique
IDREF : une référence vers ID
IDREFS : liste de référence vers des ids (séparer par bloc)
NMTOKEN : mot sans caractères
NMTOKENS : list de mots (séparer par bloc)
Enumération de valeurs chaque valeur séparée par |
OBLIGATION :
#REQUIRED : obligatoire
#IMPLIED : Optionnel
#FIXED : constante
VALEUR PAR DEFAULT :
La valeur
Exemple :
<!ATLIST chapitre titre CDATA #REQUIRED>
<!ALTLIST produit code ID #REQUIRED>
<!ALTLIST auteur CDATA #IMPLIED>
<!ALTLIST couleur (rouge|vert|bleu) ‘’bleu’’ >
Les entités :
L’entité associé un nom à une variable, ce Nom employé dans document XML comme une
forme Alias ou raccourci vers la valeur suivant de syntaxe &nom; la valeur d’entité peut
être interne ou externe :
Entité interne :
<!ENTITY nom ‘’VALEUR’’>
Définition : <!ENTITY http ‘’HYPERTEXT TRANSFER PROTOCOL’’>
Utilisation : <PARA>Définition de http : &http; </PARA>
Entité externe :
<!DOCTYPE book [
<!ENTITY chapitre1 SYSTEM ‘’chapitre1.xml’’>
<!ENTITY chapitre2 SYSTEM ‘’chapitre2.xml’’>
]>
<book>
<!—Inclusion du fichier chapitre1.xml --> &chapitre1 ;
<!—Inclusion du fichier chapitre2.xml --> &chapitre2 ;
</book>
Les entités s’appliquent aux fichiers XML et aussi aux fichiers DTD pour limiter les répétitions, les entités
qui s’utilisent avec DTD s’appellent entité paramétrique et doivent déclarés comme le suivant :
<!ENTITY %nom ‘’VALEUR’’> %nom ;
Exemple :
<!ENTITY %type_defaut ‘’CDATA’’ #REQUIRED>
<!ATTLIST chapitre titre %type_default ;>