Ce second TP porte sur le SVG et le XSD.
Le SVG (Scalable Vector Graphics) est une spécification du W3C basée sur le XML. Après le XHTML dans le TP1, c'est au tour du SVG. Mais le XML est partout! Hum hum, veuillez m'excuser... Revenons à nos moutons. Le SVG est donc un format de données conçu afin de représenter des ensembles de graphiques vectoriels, soit des images. La grande différence entre SVG et les formats d'image tels que JPG, GIF ou BMP est la façon de représenter les données. En effet, JPG par exemple représente une image telle une matrice de pixels. Plus la matrice est grande, plus l'image possède de détails. C'est ce qu'on appelle la résolution de l'image. Vous avez déjà du entendre cela dans des publicités pour appareils photos numériques. Or en SVG, l'image est représentée de manière vectorielle. Si vous ne voyez pas encore la différence, ce petit schéma tiré de Wikipédia va rapidement vous faire comprendre:
Bitmap VS SVG
Une matrice de pixels n'est donc qu'un ensemble de petits carrés. Si on regarde cet ensemble de loin, on voit une image nette. Cependant, plus l'on se rapproche (ou plus l'on zoome), plus les carrés deviennent visibles et donc moins l'image est nette. Au contraire, une image générée en SVG est redimensionnable à l'infini sans dégradation de qualité. Sa taille est même modifiable suivant n'importe quelles proportions (nombre infini de paliers de zoom).
Un autre avantage des images SVG est qu'elles peuvent être animées. De la même manière qu'une image GIF mais avec une meilleure qualité, un poids moindre et l'interactivité en bonus. En effet, pour représenter un carré qui tourne par exemple, une image GIF doit copier l'image du carré dans tous les sens alors que le SVG lui, ne va sauvegarder que quelques lignes de code XML. De plus, l'utilisateur peut cliquer à des endroits de l'image et créer des animations en conséquent, ce que ne permet pas le GIF.
Pour finir, le SVG est un format libre puisque ce n'est autre que du XML.
Nous avons vu dans l'exercice 5 du TP1 les limites des grammaires DTD. Heureusement, il existe un moyen pour pallier cet inconvéniant: les Schémas-XML. XSD (XML Schema Definition) permet de définir la forme d'un fichier XML, c'est-à-dire les balises qu'il contient et ce que contiennent ces balises. Le principe est un peu le même que celui de la DTD mais de manière beaucoup plus puissante. Plus de précisions sur les Schémas-XML sont données dans l'exercice 3.