Le web de Dominique Guebey – Bazar informatique

Page : http://www.dg77.net/tekno/xhtml/xml11.htm


  D o m i n i q u e   G u e b e y    J u n g l e    Bazar informatique

Pages Web en XHTML (suite)

XML, de 1.0 à 1.1

Sommaire :

Versions d’XML

Rappel : sauf exception autorisée, un fichier XML doit commencer par un prologue indiquant obligatoirement la version (et facultativement d’autres choses comme l’encodage ou la référence à des documents externes). Exemple :

 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> 

XML 1.0, publié en 1998 par le W3C, s’appuyait sur UNICODE, dans sa version 2.0 du moment.

XML 1.1 est une recommandation du W3C parue le 4 février 2004, qui vise entre autres choses à faciliter l’évolution de la norme.

Versions d’Unicode

Rappel : Unicode vise à associer un code (un nombre) à tout caractère ou symbole connu dans toutes les langues du Monde. Compte-tenu de l’ampleur de la tache, le Consortium Unicode publie périodiquement une version enrichie par rapport à la précédente. Pour mémoire : Unicode 2.0 = 38.885 caractères, 3.0 = 49.494, 3.2 = 95.156, 4.0 = 96.382. La version 4 a vu, à côté de divers perfectionnements, l’arrivée des écritures Limbu, Tai Le, Osmanya, Philippine, Chypriote, Ugaritic. La version 5.0 prévue le 4e trimestre 2006 incluera – enfin ! – l’écriture Akkadio-Sumérienne Cunéiforme, ainsi que les Phénicienne, Balinaise et Phags-pa…

Compatibilité aux nouvelles versions : les systèmes basés sur un principe qui évolue peuvent s’adapter de deux façons :

  1. Soit en étant modifié à chaque évolution ;
  2. Soit en étant conçu pour une compatibilité descendante (forward compatibility) qui permet de supporter les évolutions.

XML 1.0 n’est pas « forward compatible »

XML 1.0 permet d’utiliser tout caractère dans les données ("Character Data"). Mais les noms d’éléments, les noms d’attributs, et les listes de valeurs d’attributs prédéfinies doivent correspondre à l’encodage d’Unicode 2.0. Les codes admis dans les versions ultérieures ne peuvent être utilisées.

XML 1.1 est « forward compatible »

XML 1.1 adopte un principe inverse à la version précédente. Alors que XML 1.0 acceptait une liste prédéfinie de codes et refusait tous les autres, pour XML 1.1, tout caractère est autorisé à l’exception de certains qui sont interdits et dont la liste est connue.

Les caractères prohibés par XML 1.1 sont essentiellement ceux qui ont une signification particulière (« < ») ou pouvant poser problème (NULL).

Divers ajustements

Ajout du caractère NEL 0x85
Code fin de ligne, utilisé sur les mainframes IBM et leurs clônes et systêmes associés utilisant EBCDIC. NEL avait été oublié au départ.
Caractère UNICODE 0x2028
Idem pour le séparateur de ligne UNICODE.
Caractères de contrôle 0x01 à 0x1F.
Désormais admis, mais seulement sous forme d’entités référence.
"Normalisation" des caractères composites
On sait que certains caractères peuvent être représentés par plusieurs codes ou combinaisons de codes. Exemple du "é" : on peut utiliser 0xE9, mais aussi 0x65 + 0x301. XML 1.1 donne aux programmeurs la marche à suivre pour traîter ces cas.

Entités externes

Il est permis, par le mécanisme des entités externes, d’incorporer dans un document XML des données contenues à l’extérieur du fichier lui-même.

On pourra ajouter dans ces entités des codes autorisés en XML 1.1 et interdits en 1.0, mais il faudra être conscient du risque de complications s’il existe encore des documents XML 1.0 utilisant encore ces entités.

EN CONSTRUCTION