Page 1 of 3

[Extension] Advanced XML (fournie avec GD)

PostPosted: Tue 10 Apr 2012, 06:30
by victor
Bonjour à tous,

Je travaille depuis quelques temps sur un nouvelle extension : Advanced XML.

Présentation
C'est un parseur d'XML beaucoup plus puissant et avancé (d'où le nom) que celui intégré à Game Develop. En effet, il sera capable de lire toutes sortes de fichiers XML et pas seulement ceux qui sont écrit avec GD. Il n'y a donc plus aucune limite et on peut tout à fait lire des fichiers comme ci-dessous.
Le principe de fonctionnement est basé sur des références, sortes d'étiquette placées sur les balises et autres éléments du fichier XML. En fait, vous créez une référence sur un élément du fichier pour pouvoir accéder à son contenu.

Possibilités offertes :
  • Peut lire toute sorte de fichiers XML
  • Peut lire les balises et leurs attributs
  • Peut lire des fichiers présentant des balises de même nom (comme dans l'exemple ci-dessous) : possibilité de parcourir facilement les balises
  • Peut lire les texte entre balises (peut en théorie lire du HTML par exemple)
  • Peut lire les commentaires
  • Peut ouvrir, modifier, puis sauvegarder le fichier, et en créer de nouveaux
  • Un peu plus complexe que le parseur intégré à GD

Exemple :
Code: Select all<test>
   <infos>
      <version major="1" minor="2"/>
   </infos>
   <element param="un texte"/>
   <element param="un autre texte"/>
   <element param="encore"/>
   <element param="toujours"/>
</test>

events.png
events.png (24.72 KiB) Viewed 4597 times

Ce code affichera sur la scène :
Code: Select allun texte
un autre texte
encore
toujours


Téléchargement
L'extension est maintenant fournie avec Game Develop.
Code source sur Github : https://github.com/victorlevasseur/Advanced-XML

Re: [Extension][dev] XML Avancé

PostPosted: Tue 10 Apr 2012, 10:10
by White-Shark
Cela serait pratique. Dans certains cas pour les sauvegardes mais surtout pour inclure différentes langues (quoi que c'est actuellement faisable aussi ^^). Beau boulot comme d'habitude en tout cas.

Re: [Extension][dev] XML Avancé

PostPosted: Tue 10 Apr 2012, 10:14
by 4ian
Très bonne initiative :)
Seul bémol que je vois pour l'instant, je pense qu'il faudrait plutôt nommer l'extension AdvancedXML :)

Les textes des actions/conditions sont un peu flous aussi. Enfin, comme je connais TinyXML ça va, mais j'imagine que c'est pas forcément ultra clair pour d'autres personnes. Ça va être aussi surement assez difficile de trouver de meilleurs formulations, mais peut être que cela peut être quand même amélioré :
Genre, au lieu de : Créer la référence "firstElement" (chemin : "test") depuis l'élement "root"
Je verrai bien quelque chose du genre : Charger le sous élément "test" de "root" dans la référence "firstElement"

Le choix du nom pour GetAttributeString est très bien.

Enfin pour le moment ça reste du détail, bon courage pour la suite et beau boulot comme d'hab en effet :)

Re: [Extension][dev] XML Avancé

PostPosted: Tue 10 Apr 2012, 11:45
by victor
Les textes des actions/conditions sont un peu flous aussi. Enfin, comme je connais TinyXML ça va, mais j'imagine que c'est pas forcément ultra clair pour d'autres personnes. Ça va être aussi surement assez difficile de trouver de meilleurs formulations, mais peut être que cela peut être quand même amélioré :
Genre, au lieu de : Créer la référence "firstElement" (chemin : "test") depuis l'élement "root"
Je verrai bien quelque chose du genre : Charger le sous élément "test" de "root" dans la référence "firstElement"

Tu as raison, j'allais justement demander comment formuler les conditions/actions (c'est pas toujours facile). Par contre, on peut taper un chemin dans cette action, donc je peux pas mettre "le sous-élément" (on peut aussi mettre .. pour récupérer le parent, * pour récupérer le 1er sous enfant, et on peut les formuler en chemin --> Exemple : "../*" qui récupère le 1er enfant du parent).

EDIT : L'extension est libre et est disponible sur son dépôt Github ici : https://github.com/victorlevasseur/Advanced-XML

Re: [Extension][dev] Advanced XML

PostPosted: Tue 10 Apr 2012, 18:13
by Colin
Hé ! Très intéressant ! :)
Ca pourrait peut-être être ajouté de manière natif à GD plus tard, non ?

Re: [Extension][dev] Advanced XML

PostPosted: Tue 10 Apr 2012, 18:17
by 4ian
J'ai téléchargé, décompressé dans le SDK, ouvert et recompilé sans soucis, et testé de même sans soucis : Ça marche très bien. :D

Hé ! Très intéressant ! :)
Ca pourrait peut-être être ajouté de manière natif à GD plus tard, non ?


Très intéressant en effet, c'est en tout cas toujours plus sympa que le support limité présent actuellement dans GD. :)
Les sources de l'extension m'ont l'air très propres et concises, je pourrai sans doute l'intégrer de façon officielle dans GD par la suite.

Re: [Extension][dev] Advanced XML

PostPosted: Tue 10 Apr 2012, 19:05
by victor
Ça pourrait en effet devenir un extension "officielle" si 4ian le souhaite, surtout qu'elle est assez légère. :)
EDIT : S'il y a un passage de code mal expliqué, n'hésite pas à me demander.

Re: [Extension][dev] Advanced XML

PostPosted: Wed 11 Apr 2012, 13:45
by victor
Nouvelle version : 1.0RC

Vous pouvez tester la 1ère version publique de l'extension Advanced XML :
https://github.com/downloads/victorlevasseur/Advanced-XML/AdvancedXML-1.0RC-GDL-2.1.10682.zip
(Décompressez et copiez dans le dossier de Game Develop)

Pour vous aider, voici le 1er article du wiki qui explique les principes de base : http://www.wiki.compilgames.net/doku.php/game_develop/articles/advancedxml/basis

Re: [Extension][1.0RC] Advanced XML

PostPosted: Thu 12 Apr 2012, 18:54
by victor
Pas d'avis ?

Re: [Extension][1.0RC] Advanced XML

PostPosted: Thu 12 Apr 2012, 21:44
by 4ian
Je pense que ça reste assez technique et donc pas forcément évident pour n'importe qui, dommage que tu n'ai pas inclus l'exemple d'ailleurs.
J'ai reparcouru ça rapidement, c'est bien réalisé comme toujours, j’intégrerai surement ça à la prochaine version, vu que les sources sont très concises ce sera facilement maintenable :)
Bonne initiative pour le wiki :)