Le langage XML (eXtensible Markup Language)
-
Un document XML commence généralement par la balise <?xml
version="1.0" ?> qui peut avoir quelques attributs supplémentaires:
Nom de l'attribut valeurs possibles explications version 1.0 (obligatoire) indique le numéro de version du standard auquel le document se conforme. encoding UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1 à ISO-8859-9, ISO-2022-JP, Shift_JIS, EUC-JP nom de l'encodage de caractères employé dans le fichier standalone yes, no si le document XML fait référence à une DTD ou à des entités définies dans un autre fichier, il faut mettre "no". Sinon, on utilise "yes". Important:
- la balise xml et les noms d'attributs doivent être en minuscule!
- Les attributs présents dans la balise <?xml ... ?> doivent être dans l'ordre où ils sont énumérés dans le tableau ci-dessus.
-
Les valeurs d'attributs doivent toujours être présentes et entre
guillemets (contrairement à HTML, en XML on ne peut pas avoir un nom
d'attribut qui ne soit pas suivi de ="valeur")
-
Au sein d'une même balise l'ordre des attributs peut être quelconque
et il ne peut pas y avoir deux attributs avec le même nom.
-
comme en HTML, il existe des entités prédéfinies pour
certains caractères spéciaux:
& & < < > > " " ' ' - il n'existe pas d'entité prédéfinie pour les lettres accentuées ou pour les alphabets non latins. Il faut utiliser à la place les entités numériques du type &#n; (où n est une valeur décimale) ou &#xh; (où h est une valeur hexadécimale). La valeur numérique correspond au code ISO 10646 (voir document traitant de la norme ISO 10646 et de l'encodage UTF-8). On vera plus tard que l'on peut aussi utiliser les entités définies pour HTML en important le fichier de définition correspondant.
Espaces de noms
Un document XML peut utiliser des balises définies dans différentes DTDs (ou, plus récemment, dans différents schémas). Pour utiliser des symboles définis ailleurs, un document XML doit "importer" l'espace de noms correspondant. Cela se fait en ajoutant un attribut approprié à l'élément qui va utiliser les symboles de l'espace de noms importé:
<uneBaliseDuDocumentCourant xmlns:Préfixe="UrlDeDtdOuSchemaAImporter">
Par exemple, pour utiliser les balises HTML dans un document XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<article xmlns:html="http://www.w3.org/Profiles/XHTML-transitional">
Pour éviter les ambiguïtés, les éléments utilisant des balises importées doivent alors être de la forme <Préfixe:NomDeBalise ...>. Par exemple:
<html:img html:src="..." />
Il est à noter que la syntaxe doit rester conforme aux contraintes imposées par XML, d'où le "/>" pour fermer l'élément vide contenant l'image. De plus, n'importe quel élément d'un document XML peut importer un espace de nom. L'espace de noms sera alors accessible au sein de l'élément en question, y compris dans tous les éléments imbriqués. Ainsi, dans l'exemple ci-dessus, les balises HTML seront accessibles dans la totalité de l'élément article.
- Extensible Markup Language (XML) 1.0 (Second Edition), document de référence du W3C, version du 6 octobre 2000 (copie locale)
- Traduction française de la version du 10 février 1998 (copie locale)
- Namespaces in XML, document de référence du W3C
- XML Namespaces, article de PC Magazine Online