Syntaxe du XML
Dans Runes of Magic, toute l'interface est définie par des fichiers XML. Ceux-ci permettent d'enclencher des événements, créer des boutons, zones de texte, gérer leur interaction avec la souris, etc.
Lors de la conception d'Addons, il est nécessaire d'employer du LUA, mais aussi du XML. Cette page va décrire la syntaxe globale du XML. Pour plus d'informations sur chaque élément spécifique du XML, reportez-vous à la page Références du XML.
Sommaire
Structure générale du XML
Le XML fonctionne comme une arborescence. Un document XML pour Runes of Magic contient tout d'abord l'élément UI, qui peut contenir d'autres éléments, pouvant eux-même en contenir, etc.
Balises
Chaque élément est créé par des balises. Il existe trois types de balises en XML : Les balises d'ouverture, les balises de fermeture, et les balises auto-fermantes.
- Balise ouvrante : Le nom de l'élément est indiqué entre signes plus petit/plus grand : <Exemple>
- Balise fermante : Le nom de l'élément est indiqué entre signes plus petit/plus grand, et précédé d'un slash : </Exemple>
- Balise auto-fermante : Le nom de l'élément est indiqué entre signes plus petit/plus grand, et suivi d'un slash : <Exemple/>
Arborescence
Le tout premier élément d'un document XML pour Runes of Magic est Ui. Pour inclure un élément dans un autre, il faut le placer entre la balise ouvrante et la balise fermante du premier élément. Exemple :
<Ui> <Element 1> <Element A dans le 1> </Element A dans le 1> <Element B dans le 1> </Element B dans le 1> </Element 1> <Element 2> <Autre Element auto-fermant/> </Element 2> </Ui>
Éléments et propriétés
Dans chaque balise, en plus du nom de l'élément, il est possible d'ajouter des propriétés associées à l'élément. Pour cela, dans la balise, il suffit de rajouter le nom de la propriété, suivi du signe égal, puis de la valeur de la propriété placée entre guillemets. Exemple :
<Element prop1="12" prop2="valeur_quelconque"/>
La syntaxe XML pour Runes of Magic fait souvent intervenir des éléments qui ne peuvent pas en contenir d'autres. Ce sont alors des balises auto-fermantes avec certaines propriétés. Exemple :
<AbsDimension x="12" y="24"/>
Code LUA
Enfin, des éléments peuvent contenir du code LUA. Il s'agit du code qui est exécuté lorsqu'un événement correspondant à l'élément se produit. Le code indiqué est alors directement du LUA, qui obéit aux mêmes règles que la Syntaxe du Lua. En général, il s'agit de l'élément Scripts qui contient un élément par événement. Exemple :
<Scripts> <OnLoad> AccountBagFrame_OnLoad(this); </OnLoad> <OnHide> CloseAccountBag(); </OnHide> </Scripts>