Intellisense pour Atlas ? c'est possible ! génération de schéma XSD en javascript
Depuis quelques jours je suis en train de disséquer
Atlas côté client :
je confirme, c'est vraiment énorme !
En écrivant mon xml-script, j'étais très souvent obligé de switcher entre les sources JS d'atlas et ma page web. Avec l'habitude, Atlas se lit très facilement, mais un peu d'IntelliSense dans mon xml-script serait appréciable. Il est évident que Microsoft nous fournira un plugin pour VS une fois Atlas terminé, mais pour l'instant ce n'est pas le cas.
Si mes souvenirs sont bon, l'IntelliSense dans les fichiers XML est fourni par un schéma XSD contenu dans : C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas. Si je veux de l'auto-complétion dans mon xml-script il faut que je génère ce schéma. Je me suis alors lancé dans la génération de schémas XSD ! J'avais 2 options, soit je parse le js en .net, soit je le fais en JavaScript. Evidemment j'ai choisis la 2eme solution :-). Oui ! J'ai bien dit : génération de schéma XSD en JavaScript !
Au final j'arrive à quelque chose qui me satisfait (c'est déjà pas rien), mais ATTENTION, le schéma que cela génère n'est pas exact !!! En fait il ne va proposer qu'une liste d'éléments, avec ses attributs, qui peut se trouver dans un xml-script. Il ne vérifie pas si on a le droit de placer ces éléments à cet endroit etc...
Il est possible d'améliorer ce schéma, mais ayant passé plusieurs heures sur le fonctionnement du parser xml-script (QDNB), je n'ai pas besoin d'un schéma plus pertinent et surtout cela ne m'apprendrais rien de plus. Si quelqu'un a envie d'améliorer le schéma, qu'il me contacte, je verrais avec lui pour l'aider.
Son fonctionnement est relativement simple, vous lancer la page 5.aspx (il faut avoir la dll d'Atlas) vous copiez le contenu du textarea à l'endroit indiqué dans le fichier template.xsd puis vous placez le schéma dans le dossier C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas
Ensuite il ne vous reste plus qu'a créer un nouveau fichier xml et lui mettre le namespace qui va bien :
<?xml version="1.0" encoding="utf-8" ?>
<page xmlns="http://schemas.microsoft.com/xml-script/2005">
</page>
Vous pouvez maintenant profiter de l'InteliSense pour Atlas ! Amusez-vous bien ;)