XML les données réellement portables La nécessité d’un format de données universel et lisible se faisait sentir depuis longtemps, aujourd’hui avec le développement spectaculaire d’internet cela est devenu indispensable. Grâce à la séparation du contenu et de leurs présentation les programmes peuvent échanger des données. Voir exemples:article.doc, article.rtf, article.html, article.xml
Lisibilité de XML Un document XML se décrit lui même. On peut également utiliser les Définition de type de Document Un document XML lisible sans outils spécifique.
XML (eXtensible Markup Language )- (langage extensible de balisage) est un standard adopté par W3C. XML est un langage de description des données, un métalangage. XML est utilisé pour la création d ’autres langages XML n’a pas un jeux de de balises prédéfinies (contrairement à HTML) C’est à l’utilisateur de définir le jeux de balises pour gérer ses données.
Grande élasticité et extensibilité Le mécanisme des espace de noms assure la facilité d’extension des documents existant. Par exemple un utilisateur pour ses propre besoins peut ajouter dans une facture déjà existante des informations sans nuire à la lisibilité de document
XML un langage des balises Un document XML contient du texte. Les données (texte) que contient un document XML sont contenue entre des balises. Les balises décrivent des données. Les balises de début commencent par signe < Les balises de fin commencent par </ Les balises de début et de fin se terminent par >
Exemple de document XML D'autres déclarations………. ……… Hello World! Au début se trouve le prologue de document, avant l'élément racine. Dans notre exemple le prologue ne contient que la déclaration XML - première ligne. La deuxième ligne contient l’élément principale - absolument indispensable dans chaque document c’est l’élément racine. Elément racine doit être unique. Hello Word est le contenue de l ’élément racine. Déclaration XML prologue Élément racine Contenu de l'élément racine Fin de l'élément racine
Les composent d ’un document XML Eléments et attributs Pour ajouter une description supplémentaire a notre document on peut ajouter : soit un sous élément soit un attribut simple Hello Word! L'élément type est le sous élément de l'élément exemple
Hello Word! type est attribut de l'élément exemple Valeur de l'attribut
Utilisation d’un attribut au lieu d’un élément sera préférable dans le cas ou des données doivent êtres décrites. Un attribut est composé d’un nom, d’un signe égale et d ’une valeur qui sera mise entre simple ou double quottes. Un attribut est associé à la balise de début de l’élément.
Les éléments vides. Chaque élément non vide est composé d ’une balise de début d ’un contenu et d ’une balise de fin. Si un élément ne possède pas de contenu on parle de l ’élément vide. Un élément vide s ’écrit : ou
Les caractères interdits Dans un nom d'élément il est interdit d’utiliser : point d ’interrogation, apostrophe, le signe dollar, le signe d ’élévation à la puissance, le pourcentage, les points-virgule, le caractère deux points sauf pour l’espaces de noms, le caractère blanc dans le nom d ’un élément. Les nom d ’élément doivent commencer par des lettres ou caractère souligné. Les noms ne doivent pas commencé par un nombre, un trait d ’union, un point. Il n ’y a pas de limite pour la longueur d ’un nom. Le XML est sensible à la taille des lettres utiliser dans des éléments (majuscule/minuscule). Si le nom d ’un élément de début est écrit en majuscule le nom de l ’élément de fin doit être écrit en majuscule.
Section CDATA Donne la possibilité d ’inclure dans un document un texte qui sera ignorer par le parseur. Le texte qui se trouve dans la section CDATA peut contenir donc tous les caractère qui sont normalement interdit. section cdata.]]> La section cdata commence par La suite de chaine ]]> est interdite dans le contenue de la section CDATA.
Instruction de traitement Les instructions de traitement (PI - Processing instruction en anglais) permettent aux documents XML de contenir des instructions destinées aux applications par exemple des script ou des programmes. Une instruction de traitement peut être identifiée par un nom. Une instruction de traitement commence par <? et se termine par ?> Tout de suite après <? se trouve le nom appelé la cible qui peut être le nom de l ’application pour laquelle l ’instruction de traitement est destinée ou peut être simplement un identifiant pour cette instruction de traitement particulière.
<?php function printsum($a, $b) { echo $a + $b; } ?> est également une instruction de traitement
Commentaire Un commentaire commence avec <!-- se termine avec -->
Les entités peuvent êtres utilisées pour remplacer des fragments de texte. Pour pouvoir le faire il faut indiquer au parseur la signification de l ’entité - il faut faire la déclaration suivante dans la DTD pour remplacer dans un document on peut utiliser &adresse;
Prologue Le prologue n ’est pas obligatoire dans un document. S’il est utilisé il doit être placé au début du document avant l ’élément racine. Le prologue de différentes déclarations : l ’attribut version est obligatoire. Actuellement la valeur de l ’attribut version est 1. Deux autres attribut mais qui n ’est pas obligatoire sont : encoding définit le type de encodage. Standalone indique si un document fait appelle à des ressources extérieures.
Espace de noms Les espaces de noms offrent une méthode simple pour qualifier les noms des éléments et des attributs utilisés dans des documents XML. Les espace de noms donnent la possibilité d’utilisé des balises provenant des « dictionnaires » différents. Ainsi, des éléments portant un nom identique peuvent faire partie de sources différentes. Les éléments appartenant à un espace de noms se distinguent des autres éléments par l ’ajout d ’un préfixe. Pour les déclaration d'espace de noms, on utilise des attributs réservés commençant par "xmlns". Il est convenu de déclarer un espace de noms dans les éléments contenant les préfixes d ’espace de nom, mais pour plus de clarté on le fait dans l'élément racine.
Dupond Prefixe Dupond ……….. URI (Uniform Resource Identifier) permet d ’associer une adresse internet à l ’espace de noms.
Entités Appel d'une entité dans un document : &nom_entite; Pour utilisé des caractère réservés & " ' dans un documents on fait appelle à des entités internes & < > " ' Tous les caractères peuvent être remplacés par une entité qui donne leur code &#code_car; (par ex. A pour le A).
Ce n'est pas le préfixe qui identifie l'espace de noms mais la valeur de l'attribut xmlns. Dans cet exemple, tous les éléments appartiennent au même espace de noms bien qu'ils aient des préfixes différents.
Les espaces de noms n'ont pas besoin d'être déclarés explicitement avec des préfixes. L'attribut xmlns défini l'espace de noms par défaut d'un élément où il intervient et pour tous ses enfants et descendants. Une déclaration d'espace de noms est restreinte à la portée de l'élément dans lequel elle est faite.
DTD Définition de Type de Document
La DTD est une grammaire de référence pour un document. Une dtd permet de déclarer la liste, le type et les relations des éléments, des attribut, des entités et des notations contenus dans le documents XML. Une DTD n ’est pas obligatoire dans un document XML. Un document XML est valide s'il est associé à une DTD et s'il respecte les contraintes qui y sont définies.
La déclaration de la DTD doit apparaître dans le prologue avant le premier élément du document. La déclaration de la DTD débute avec DOCTYPE <!DOCTYPE racine [ ]>... Le nom qui suit le mot DOCTYPE dans la définition de type de document doit correspondre au nom de l'élément racine. Si la DTD est interne au document XML l'attribut standalone prendra la valeur "yes ", sinon "no".
Trois façons de déclarer une DTD DTD interne au document DTD SYSTEM SYSTEM est utilisé pour donner l'adresse du fichier qui contient la DTD dans le cas où la DTD n'est pas publique.
DTD PUBLIC PUBLIC est utilisé lorsque la DTD est une norme ou qu'elle est enregistrée sous forme de norme ISO par l'auteur. Nom_DTD contient les caractéristiques : type_enregistrement // proprietaire // DTD description // langue avec : type_enregistrement : un signe + si c'est selon la norme ISO 9070, un signe - sinon ; proprietaire : nom du propriétaire (entreprise ou personne) ; DTD description : une description textuelle pour laquelle les espaces sont autorisés ; langue : un code de langue ISO 639.
<!DOCTYPE document PUBLIC "-//NomDTD//DTD//EN" " <!DOCTYPE document [ ]>
Chaque élément utilisé dans un document XML valide (qui possède une DTD), doit être déclaré dans la DTD. Les déclaration d ’éléments ont cette structure simple L'élément racine X doit précisément comporter un élément A, suivi d'un élément B. Les éléments A et B peuvent contenir du texte, mais aucun autre élément. #PCDATA signifie que l’élément XML n ’acceptera que des données textuelles analysées
Document valide contenant du texte: Début Fin
Voici un document bien formé <!DOCTYPE magasin [ ]> Vaisselle
Pour spécifier qu ’un élément peut contenir n ’importe quel contenu on utilise le mot clé ANY Cette déclaration indique que élément X peut avoir n ’importe quel contenu, y compris un contenu mixte, des sous-éléments.
Pour indiquer qu ’un élément est vide, ne contient aucun contenu on utilise le mots clé EMPTY
Déclaration d'éléments Nombre d'occurrences Dans une DTD, si un nom d'élément est suivi : d'un astérisque [*], cet élément peut figurer zéro, une ou plusieurs fois. d’un signe plus [+], cet élément peut figurer une ou plusieurs fois. d’un point d'interrogation [?], cet élément peut figurer zéro ou une fois.
L'élément racine X peut contenir zéro, un ou plusieurs éléments A, suivis précisément d'un élément B. L'élément B doit toujours être présent Voir exercices
L'élément racine X doit contenir un ou plusieurs éléments A, suivis précisément d'un élément B. L'élément B doit toujours être présent: Voir exercices
L'élément racine X peut contenir un élément A, suivi précisément d'un élément B. L'élément B doit toujours être présent.: Voir exercices
L'élément racine X peut contenir un élément A, suivi d'un ou de plusieurs éléments B. L'élément A peut contenir un élément C et plusieurs éléments D. L'élément B doit précisément contenir un élément C et un élément D. Voir exercices
Choix Le caractère [ | ] vous permet de sélectionner un élément parmi plusieurs éléments. L'élément B doit contenir soit un élément C, soit un élément D mais pas les deux simultanément.
Parenthèses Les parenthèses permettent de combiner les choix, les séquances et les suffixes, pour décrire n’importe quel modèle de contenue. Elément X contient l ’élément A suivi soit par l ’élément B ou l ’élément C Elément X contient soit l ’élément A et B, soit l ’élément C et D.
Elément B peut contenir n'importe quelle combinaison de texte ou d'éléments C. L’élément B possède un contenu mixte.
Attributs Dans un document XML : Les attributs apportent des informations complémentaires à un élément XML. Un attribut est composé d’un nom, d’un signe égale et d ’une valeur qui sera mise entre simple ou double quotes. Un attribut est associé à la balise de début de l’élément.
Déclaration d ’attributs Un document valide doit déclarer tous les attribut dans une DTD. L’instruction ATTLIST permet de déclarer les attributs. Une seule instruction ATTLIST peut déclarer différents attributs pour le même éléments.
Types d ’attributs Il existe dix type d ’attributs : CDATA indique que la valeur de l ’attribut peut contenir des données textuelles ne comprenant pas de balises XML. (Valeur1|Valeur2|…|ValeurN) déclare une liste des valeur à utiliser au choix.
NMTOKEN ne peuvent contenir que des lettres, des chiffres, un point [. ], un tiret [ - ], un trait de soulignement [ _ ] et un deux- points [ : ]. Utilisation de l ’attribut NMTOKEN permet de contrôler mieux l ’utilisation des caractères pour une valeur. Aigues Mortes Le faite de spécifier que le code est de type NMTOKEN interdit l ’utilisation des blanc dans son contenu.
NMTOKENS offre la possibilité à la valeur de l ’attribut de comporter plusieurs noms symboliques séparés par des espaces blancs.
ENTITY un attribut de type ENTITY contient le nom d ’une entité non XML déclarée n’importe où dans la DTD. C'est utilisé par exemple pour établir un lien avec une image : qui sera utilisé dans le document XML :
ENTITIES correspond à la déclaration de plusieurs entités séparées par des espaces blancs dans la DTD. qui sera utilisé dans le document XML :
ID identifie des éléments d ’une façon unique La valeur d ’un attribut ID doit être un nom XML valide, c’est-à-dire, composé de lettres, de chiffres, de soulignés, de tirets, de points ou deux points. La valeur de ID doit être unique
IDREF permet à une valeur d ’attribut de faire référence à l ’identificateur ID d’un autre élément. Les attribut IDREF sont utilisés pour établir des relations entre les éléments, lorsque la simple imbrication ne suffit pas.
IDREFS permet d ’associer plusieurs identificateurs ID en les séparant par des espaces blancs dans la valeur d ’un attribut.
NOTATION Un type d'attribut NOTATION contient le nom d'une notation déclarée dans la DTD du document. Une NOTATION est une description de la manière dont les les informations doivent être traitées. Attribut type de chaque élément image peut avoir une des trois valeurs. Par rapport à type énumération simple, le attribut de type NOTATION à un avantage car on peut utiliser des /, qui sont normalement ne sont pas autorisé dans les noms XML. Actuellement aucun logiciel ne support ce type de combinaison
<!DOCTYPE album[ ]> Aigues Mortes Ce type d ’attribut n ’est pas beaucoup utilisé la déclaration NDATA indique le type de donnée, ici jpeg.
Valeur par défaut La valeur par défaut permet d’initialiser un attribut #REQUIRED signifie que la valeur de l'attribut est obligatoire #IMPLIEDsignifie que la valeur de l'attribut n'est pas obligatoire #FIXED "valeur" permet de fixer la valeur de l'attribut "valeur" initialise la valeur de l'attribut Voir exo sufco/magasin.dtd
Les Entités Entités Internes sont définit et utilisables dans le document XML Entités Externes sont définit dans une résources externe et utilisables dans le document XML via une adresse URL (Uniform Resources Locator).
A l'intérieur des deux groupes d'Entités Internes et Externes existes les : entités générales insére le texte de substitution dans le corps de document XML. entités paramètres qui sont des entités analysables destinées uniquement à être utilisées dans la DTD.
entités paramètres En pratique, une référence à une entité paramètre dans la partie interne d'une DTD ne sert qu'a inclure dans la DTD le contenu d'un fichier externe. La déclaration de l'entité paramètre s'effectue comme suit : L'appel à l'entité se fait dans la DTD de la manière suivante: %nom-entite; La déclaration de l'entité paramètre diffère donc de celle d'une entité générale par la présence du caractère % après le mot-clé ENTITY.
Exemple entité paramètre
entités générales est l'équivalent d'une macro. Par exemple Ou pour entité externe (un fichier externe) permet d'utiliser dans le document XML l'entité &nom- entite; au lieu de « Voici mon texte a remplacer » ou nom_fichier
Certains caractères ne doivent pas être utilisés dans un document XML. Les caractères réservés de XML sont remplacés par des entités internes. & pour & < pour < > pour > " pour " ' pour ’