Qu'est-ce que le XML

Qu'est-ce que le XML?


La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés à l'aide de balises.

Une balise est une chaîne de caractère du type:

<balise>
Ainsi, un document XML, c'est-à-dire le fichier créé en suivant les spécifications de la norme XML pourra par exemple ressembler à ceci:


<annuaire>

<personne class = "etudiant">

<nom>Pillou</nom>

<prenom>Jean-Francois</prenom>

<telephone>555-123456</telephone>

<email>webmaster@commentcamarche.net</email>

</personne>

<personne>

...

</personne>

</annuaire>


Enfin il est possible d'ajouter des commentaires dans le document XML de la manière suivante:

<!-- Voici des commentaires XML -->
Structure d'un document XML


En réalité un document XML est structuré en 3 parties:

La première partie, appelée prologue permet d'indiquer la version de la norme XML utilisée pour créer le document (cette indication est obligatoire) ainsi que le jeu de caractères (en anglais encoding) utilisé dans le document (attribut facultatif, ici on spécifie qu'il s'agit du jeu ISO-8859-1, jeu LATIN, pour permettre de prendre en compte les accents français). Ainsi le prologue est une ligne du type

<?xml version="1.0" encoding="ISO-8859-1"?>
Le prologue se poursuit avec des informations facultatives sur des instructions de traitement à destination d'applications particulières. Leur syntaxe est la suivante:

<?instruction de traitement?>
Le second élément est une déclaration de type de document (à l'aide d'un fichier annexe appelé DTD - Document Type Definition)

Et enfin la dernière composante d'un fichier XML est l'arbre des éléments (comme celui ci-dessus).

La syntaxe des éléments en XML


L'arbre des éléments, c'est-à-dire le véritable contenu du document XML, est constitué d'une hiérarchie de balises comportant éventuellement des attributs.

Un attribut est une paire clé valeur écrit sous la forme Cle="Valeur", ainsi une balise affectée d'un attribut aura la syntaxe suivante:

<balise cle="valeur">
Toute donnée est ainsi encapsulée entre une balise ouvrante <balise> et une balise fermante </balise> (Sachant qu'une donnée peut éventuellement être un ensemble d'éléments XML). Ainsi un élément vide est uniquement constitué d'une balise spécifique dont la syntaxe est la suivante : <balise/>.

D'autre part, il est interdit en XML de faire chevaucher des balises, c'est-à-dire d'avoir une succession de balises du type:

<balise1>

<balise2>

</balise1>

</balise2>
D'autre part, il est possible entre les balises (donc pas à l'intérieur d'une balise) d'ajouter:

des espaces
des tabulations
des retours chariots
Cela est très utile pour définir une indentation des balises (ce qui est possible puisqu'elles ne se chevauchent pas).
<annuaire>

<personne class = "etudiant">

<nom>Pillou</nom>

<prenom>Jean-Francois</prenom>

<telephone>555-123456</telephone>

<email>webmaster@commentcamarche.net</email>

</personne>

</annuaire>
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 12 décembre 2005 13:21

Le rôle de la DTD

Le rôle de la DTD

XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe donnée. La norme XML définit ainsi une définition de document type appelée DTD (Document Type Definition), c'est-à-dire une grammaire permettant de vérifier la conformité du document XML. La norme XML n'impose pas l'utilisation d'une DTD pour un document XML, mais elle impose par contre le respect exact des règles de base de la norme XML.

Ainsi on parlera de:
document valide pour un document XML comportant une DTD
document bien formé pour un document XML ne comportant pas de DTD mais répondant aux règles de base du XML
Une DTD peut être définie de 2 façons:

sous forme interne, c'est-à-dire en incluant la grammaire au sein même du document
sous forme externe, soit en appelant un fichier contenant la grammaire à partir d'un fichier local ou bien en y accédant par son URL
Déclarer un élément


Pour pouvoir créer un document XML il est utile dans un premier temps de définir les éléments pouvant être utilisés, ou plus exactement les informations que l'on désire utiliser.

Ainsi pour définir un élément on utilisera la syntaxe suivante:
<! ELEMENT Nom Modèle >
Le paramètre modèle représente soit un type de donnée prédéfini, soit une règle d'utilisation de l'élément.

Les types prédéfinis utilisables sont les suivants:
Type prédéfini Description
ANY L'élément peut contenir tout type de données
EMPTY L'élément ne contient pas de données spécifiques
#PCDATA L'élément doit contenir une chaîne de caractères


Ainsi un élément nommé Nom contenant un type #PCDATA sera déclaré de la façon suivante dans la DTD:
<! ELEMENT Nom (#PCDATA) >
Le mot clé #PCDATA doit nécessairement être écrit entre parenthèses, au risque sinon d'obtenir une erreur du parseur !

Cet élément pourra être écrit de la façon suivante dans le document XML:
<Nom>Pillou</Nom>
D'autre part il est possible de définir des règles d'utilisation, c'est-à-dire les éléments XML qu'un élément peut ou doit contenir. Cette syntaxe se fait à l'aide de notations spécifiques dont voici un récapitulatif:

Opérateur Signification Exemple
+ L'élément doit être présent au minimum une fois A+
* L'élément peut être présent plusieurs fois (ou aucune) A*
? L'élément peut être optionnellement présent A?
| L'élément A ou l'élément B peuvent être présents A|B
, L'élément A doit être présent et suivi de l'élément B A,B
() Les parenthèses permettent de regrouper des éléments afin de leur appliquer les autres opérateurs (A,B)+


Ainsi on peut créer la déclaration suivante dans la DTD:

<!ELEMENT personne (nom,prenom,telephone),email? >

<!ELEMENT nom (#PCDATA) >

<!ELEMENT prenom (#PCDATA) >

<!ELEMENT telephone (#PCDATA) >

<!ELEMENT email (#PCDATA) >


Cette déclaration pourra donc donner un document XML du style:
<personne>

<nom>Pillou</nom>

<prenom>Jean-Francois</prenom>

<telephone>555-123456</telephone>

<email>webmaster@commentcamarche.net</email>

</personne>


ou bien
<personne>

<nom>Pillou</nom>

<prenom>Jeff</prenom>

<telephone>555-542136</telephone>

</personne>


Déclarer des attributs

Il est possible d'ajouter des propriétés à un élément particulier en lui affectant un attribut, c'est-à-dire une paire clé/valeur. Ainsi avec XML la syntaxe pour définir un attribut est la suivante:

<! ATTLIST Elément Attribut Type >
Type représente le type de donnée de l'attribut, il en existe trois:
littéral: il permet d'affecter une chaîne de caractères à un attribut. Pour déclarer un tel type il faut utiliser le mot clé CDATA
l'énumération: cela permet de définir une liste de valeurs possibles pour un attribut donné, afin de limiter le choix de l'utilisateur. La syntaxe de ce type d'attribut est: <! ATTLIST Elément Attribut (Valeur1 | Valeur2 | ... ) >
Pour définir une valeur par défaut il suffit de faire suivre l'énumération par la valeur désirée entre guillemets : <! ATTLIST Elément Attribut (Valeur1 | Valeur2 ) "valeur par défaut" >
atomique: il permet de définir un identifiant unique pour chaque élément grâce au mot clé ID.
Enfin chacun de ces types d'attributs peut être suivi d'un mot clé particulier permettant de spécifier le niveau de nécessité de l'attribut:
#IMPLIED signifie que l'attribut est optionnel, c'est-à-dire non obligatoire
#REQUIRED signifie que l'attribut est obligatoire
#FIXED signifie que l'attribut sera affecté d'une valeur par défaut s'il n'est pas défini. Il doit être immédiatement suivi de la valeur entre guillemets
Ainsi on pourra avoir une déclaration d'attribut du type: <! ATTLIST disque IDdisk ID #REQUIRED type(K7|MiniDisc|Vinyl|CD)"CD" >
Ce qui signifie que l'on affecte à l'élément disque deux attributs IDdisk et type. Le premier attribut est de type atomique, il s'agit d'un identifiant unique obligatoire. L'élément type peut être soit K7, MiniDisc, Vinyl ou CD, sachant que ce dernier sera affecté par défaut...

Déclarer des notations

XML permet de définir une application par défaut à lancer pour ouvrir des documents non XML encapsulés dans le code XML.

Il est ainsi possible d'associer les images JPG au programme Paint Shop Pro (psp.exe) grâce à la syntaxe suivante :

<! NOTATION jpg SYSTEM "psp.exe">
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 12 décembre 2005 13:21

Modifié le mardi 13 décembre 2005 16:48

Déclarer des entitées

Déclarer des entités

XML permet de créer des entités, c'est-à-dire de déclarer un groupe d'éléments sous un nom afin de ne pas avoir à réécrire ces derniers plusieurs fois dans la DTD s'ils se répètent, dans le même esprit que les macros dans les éditeurs de texte. D'autre part, l'utilisation d'entités dans un document XML permet :

une meilleure lisibilité un contrôle accru sur le contenu
une plus grande facilité de mise à jour
On distingue plusieurs types d'entités dans XML :

les entités générales
les entités paramètres
les entités caractères
Entités générales


Les entités générales permettent de définir des éléments pouvant être substitués dans le corps du document XML (bien qu'ils soient définis au sein de la DTD et non du document XML lui-même). La syntaxe d'une entité générale est la suivante :

<!ENTITY nom_de_l_entite "Contenu de l'entite">
Il est par exemple possible de déclarer l'entité générale suivante dans la DTD : <!ENTITY site "commentcamarche.net">
Les entités définies dans la DTD peuvent ainsi être utilisées dans le code XML en les appelant avec la syntaxe suivante : &nom_de_l_entite;
La déclaration précédente pourra donc donner un document XML du style:
<personne>

<nom>Pillou</nom>

<prenom>Jean-Francois</prenom>

<site>&site;</site>

<email>webmaster@&site;</email>

</personne>


Le parseur transformera automatiquement chacune des entités contenues dans le code XML, en chaînes de caractères :
<personne>

<nom>Pillou</nom>

<prenom>Jean-Francois</prenom>

<site>commentcamarche.net</site>

<email>webmaster@commentcamarche.net</email>

</personne>


Les entités générales peuvent aussi être contenues dans un fichier extérieur (afin d'être utilisé par plusieurs DTD par exemple), on parle alors d'entité externe. La syntaxe d'une entité externe est la suivante : <!ENTITY nom_de_l_entite SYSTEM "nom_du_fichier">
Dans l'exemple suivant, le contenu du fichier ccm.txt (situé dans le même répertoire que la DTD) sera inséré dans le fichier XML à chaque fois que l'entité &ccm; sera rencontrée : <!ENTITY ccm SYSTEM "ccm.txt">
Entités paramètres


Les entités paramètres permettent d'utiliser des entités dans les DTD elles-même. La syntaxe de la déclaration d'une entité paramètre est la suivante :

<!ENTITY % nom_de_l_entite definition>
Le nom de l'entité doit toutefois suivre certaines règles :
Commencer par une lettre ou un sous-tiret (_)
Etre composé uniquement de lettres, de chiffres, de tirets (-), de sous-tirets (_),de points (.) ou du caractère 'deux points' (:)
Voici un exemple de déclaration d'entité paramètre : <!ENTITY % ccm #REQUIRED type(K7|MiniDisc|Vinyl|CD) "CD">
D'autre part, il est également possible (comme pour les entités générales) de définir une entité paramètre externe grâce à la syntaxe suivante : <!ENTITY % nom_de_l_entite SYSTEM "fichier.dtd">
La DTD fichier.dtd sera un fichier comportant la déclaration d'entité paramètre : <!ENTITY % nom_de_l_entite "definition">
Entités caractères


Les entités caractères sont des caractères réservés du XML représentés sous forme d'entités générales afin de pouvoir insérer ces caractères réservés dans le document XML.

Voici la liste des entités caractères principales :

Entité caractère Représentation
&amp; &
&lt; <
&gt; >
&apos; &apos;
&quot; "


Il est également possible de définir des entités caractères pour n'importe quel caractère en utilisant le code hexadécimal du caractère :

<!ENTITY nom_de_l_entite "&#xCODEHEXA;">
Par exemple <!ENTITY ccedille "ç">
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 12 décembre 2005 13:22

Modifié le mardi 13 décembre 2005 16:44

Espaces des noms

Introduction aux espaces de noms

XML définit un système permettant de créer des balises modulaires, c'est-à-dire pouvoir donner la possibilité d'utiliser des balises provenant de différents langages à balise au sein d'un même document grâce à la notion d'espace de noms.

La définition d'un espace de nom permet d'associer toutes les balises d'un langage à un groupe afin d'être capable de mêler différents langages à balise dans un même document XML (être capable de dissocier les éléments de HTML contenus dans le document des balises XML, ou mieux : pouvoir mettre du HTML, MathML, et CML dans un même document).

Fondamentalement il n'y a pas de risques que des balises XML interfèrent avec des balises HTML car ces deux langages ont été mis au point par le même organisme (W3C). Par contre, étant donné que XML est un méta-langage, il permet par définition de définir de nouvelles balises. Ainsi, il se peut que deux organismes mettent au point des langages dont certaines balises portent le même nom, ce qui pose un problème si on désire utiliser des éléments des deux langages au sein d'un même document.
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 12 décembre 2005 13:23

Modifié le mardi 13 décembre 2005 16:43

La commande IPCONFIG

La commande Ipconfig affiche toutes les valeurs actuelles de la configuration du réseau TCP/IP et actualise les paramètres DHCP (Dynamic Host Configuration Protocol) et DNS (Domain Name System). Utilisé sans paramètres, ipconfig affiche l'adresse IP, le masque de sous-réseau et la passerelle par défaut de toutes les cartes.
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le mardi 13 décembre 2005 14:14

Modifié le mardi 13 décembre 2005 16:39