Objectifs :

Créer un SVG définit par une XML. Cette dernière doit être basée sur un fichier XML Schema. Je vais tenter de mettre des conditions de vérification des attributs.

L'usage d'attributs dans mon XML me forcera à développer de nouvelles connaissances en XSLT que je n'ai pas encore testées..


La production :

D'abord réussir à faire apparaître le SVG dans le navigateur. Il s'agit tout de même d'une opération particulièrement risquée quand on s'amuse à déclarer trop de namespace et ne plus savoir ce qu'elles représentent selon leurs positions. Ensuite la définition du XML et de l'XSD associé à l'aide de Exchanger XML lite.

Viens ensuite la production du XSLT, pas évident, faut que je me lance dans la recherche des fonctions parce qu'avec mes connaissances actuelles du XSLT, je n'arriverais pas à exploiter toutes les données que j'ai placées dans mon XML (certains attributs, des déclarations de balise, etc.). L'amélioration du XML pour le rendre plus complexe.

La production finale reste simple. Ce qui était intéressant dans cet exercice n'était pas d'arriver à un joli camembert statistique, mais bien de découvrir le XML Schema profondément. Les difficultés que je me suis données au départ ont toutes été remplies : le XML Schema est assez complexe, vérifie le contenu des attributs et le XSLT pour décortiquer le contenu du XML l'est tout autant. J'ai énormément appris au travers de cet exercice.

J'ai tout simplement déclaré un rect, un circle et un path qui sont traités correctement à l'aide de fonctions XSLT.


Difficultés, auto-évaluation, remarques :

Faire afficher correctement un SVG de cette façon demande quelques essais-erreurs pour démarrer correctement. L'idéal est encore un exemple concret, ce que j'ai pu trouver..

En fait, je suis vraiment content de m'être donné autant de mal car ça m'a permis de vraiment mieux comprendre comment (ou comment ne pas) utiliser les namespace correctement. De devoir afficher quelques chose de particulier comme un SVG sans déclarer correctement ses balises est tout simplement impossible, alors oui, progression avec cet exercice. Content !

Il me reste à comprendre l'utilisation du targetNamespace.


Ressources utilisées, bibliographie :