Note de lecture : XML Schéma, par Eric Van Der Vlist

Note: 4 ; Sérieux, mais modérément passionnant.

Il semble difficile de trouver un ouvrage sur XML Schéma titrant moins de 1000 pages! En voilà pourtant un. Le sujet abordé est à la fois un point fort de XML et le sujet d’acerbes critiques, car les schémas XML sont à la fois indûment compliqués et terriblement verbeux. Ce texte, nous allons le voir, n’est peut-être pas le meilleurs, le texte est souvent un chouia laborieux, mais il fait le travail.

Avec près de 400 pages pour sa partie principale, le volume brut reste conséquent. Mais il a au moins la bonne idée d’être divisé en 2 parties : une partie « guide de l’utilisateur », puis une partie « manuel de référence ». La première partie consacrée à l’apprentissage du langage couvre la majeure partie du texte, avec 14 chapitres sur 225 pages. Passons rapidement le premier chapitre qui évoque plutôt succinctement l’utilisation des schémas. Ce n’est pas le plus marquant de l’ouvrage. Le chapitre 2 est un peu le « hello world » du XML schéma. On voit déjà que même pour des choses simples, on arrive vite à un schéma très verbeux. Cela dit, c’est plutôt bien expliqué, même si le style n’est pas particulièrement enjoué.

C’est plutôt une bonne idée de partir de cette base pour enrichir cette grammaire au chapitre 3. Toutefois, cela se complexifie pas mal et l’auteur nous assène déjà certains choix de conception que permet la souplesse (que l’on paie en complexité) de XML schéma. Comme le texte est un peu avare de développements pédagogiques, il faut s’accrocher un peu. Cela se calme un peu au chapitre 4 où l’on passe en revue, de manière plutôt exhaustive, les types simples prédéfinis. Voilà un chapitre qui ressemble un peu à un manuel de référence.

Le chapitre 5 nous propose de créer nos propres types simples. Contrairement à ce qu’évoque l’expression, ce n’est pas si simple ! En effet, la grammaire XML nous offre toute sorte de possibilités : restrictions, dérivations, facettes, énumérations… que l’auteur s’évertue de passer en revue, encore une fois à la manière d’un guide d’utilisation. C’est forcément un peu aride par la forme et ça l’est également par le style ! Les expressions régulières sont au menu du chapitre 6. Personnellement je ne les ai jamais utilisées, mais il ne s’agit pas d’un luxe mais d’éléments qui peuvent être utilisés couramment, pour de numéros de téléphones, codes postaux ou de sécurité sociale, etc. A ce stade c’est presque surprenant de voir un chapitre court et qui va droit au but !

Quand on s’est frotté aux types simples, on se demande ce qui nous attend pour les types complexe, sujet du chapitre 7. Déjà celui-ci compte une quarantaine de pages. On y retrouve certains concepts déjà abordés avec les types simples comme les restrictions, mais de nouveaux comme les extensions, les connecteurs, les particules, etc. Tout cela pouvant se combiner ! Une part imporatnte du texte est consacré aux exemples, car XML schéma est vraiment très verbeux. Malgré tout, les explications restent claires, c’est donc un bon chapitre. Nous arrivons sur des concepts moins souvent employés au chapitre 8, avec les blocs de construction, permettant de construire des bibliothèques de types. J’avoue ne les avoir jamais employés.

Au chapitre 9, il s’agit là encore d’une fonctionnalité peu employée des schéma XML : les clés. Il ne s’agit pas seulement de les qualifier en tant que telles, mais aussi de garantir leur unicité et de pouvoir les référencer. Bref, cela rapproche les schémas des bases de données relationnelles. Un propos un peu complexe, mais le chapitre est court. Comme pas mal d’autre choses dans XML, les namespeces sont à la base une bonne idée, mais leur mise en œuvre tourne au cauchemar eut égard aux possibilités que l’on a voulu leur donner : inclusion, intégration sous un autre espace de nom, alias, etc. Joel Spolsky appelle cela une « leaky abstraction » : même l’utilisation de base est compliquée à cause des usages avancés ! XML schéma n’échappe pas à la malédiction et le chapitre tente de nous faire comprendre toutes les possibilités liées à ces « fonctionnalités ». Sans doute était-il difficile d’échapper au passage en revue systématique, mais tout cela est bien compliqué…

Référencer des schémas et des types de données abordé au chapitre 11 s’inscrit dans la continuité du précédent. Continuité aussi pour ce qui est de la complexité. Passons rapidement. Au chapitre 12, on aborde des concepts plus encore stratosphériques : les aspects « orientés objet » qui se matérialisent par la notion de groupe. L’auteur est bien courageux d’aller à l’abordage de ces concepts dont on se serait bien passé dont la complexité nécessite même des diagrammes d’état pour appréhender leur comportement ! Le propos a au moins le mérite de nous faire comprendre qu’il faut éviter ces sortes de dérives linguistiques !

Le chapitre 13 prend un peu de recul avec la grammaire proprement dite pour nous dispenser des conseils de conception par rapport à la grammaire, plus précisément sur la manière de rendre celle-ci extensible par dérivation / extension des types que nous écrivons. Si je comprends la nécessité d’illustrer cela avec du code, quelques diagrammes auraient été bienvenus. Le chapitre 14 qui clôt cette première partie aborde la question de la documentation. Le propos est des plus succinct, mais n’avait peut-être pas besoin d’être plus long.

Les chapitres 15 et 16 sont la partie « manuel de référence ». Aujourd’hui nous ferions grâce de cela sur le papier et ce serait en ligne. Il n’y a pas grand-chose à en dire, sinon que cela fait le boulot !
Ce n’est pas vraiment le livre que l’on dévore avec passion, il ressemble à un « ouvrage de commande ». Mais il y avait quand même de quoi mieux faire. Certes, l’auteur est hautement compétent, mais il manque clairement une dimension pédagogique, avec des diagrammes ou des descriptions plus synthétiques, alors que l’auteur nous emmène parfois dans des discussions de spécialistes que n’appréhende pas le lecteur qui débute dans XML Schéma. Sans doute aurait-il été plus à l’aise sur un « XML Schéma avancé » ? Contrairement à ce qu’essaye de nous faire croire le positionnement d’O’Reilly, il n’est pas possible de satisfaire à la fois le débutant et le spécialiste en même temps.

Référence complète : XML Schéma (V.O.: XML Schema) – Eric Van Der Vlist – O’Reilly & associates 2002 – ISBN: 2-84177-215-2 (V.O.: 0-596-00252-1)

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.