tigML
tigML est un Markup Language, comme XML, qui est (beaucoup) moins performant mais plus simple d'utilisation.

Pourquoi un autre langage ?

Deux raisons :
  • Lorsque j'ai eu besoin d'utiliser un language à balise dans mon code, PHP ne fournissait pas d'API pratique pour gérer le XML.
    Le même problème s'était posé en java : ayant besoin de l'API DOM pour gérer du XML, et trouvant l'API standard extrèmement lourde, j'avais développé un wrapper basé sur DOM. Peu après, je suis tombé sur http://www.jdom.org, qui fournit une API directe et conviviale. J'avais donc codé mon wrapper inutilement.
    Plutôt que d'essayer de bricoler sur du XML, il m'a donc semblé plus simple de développer un petit "language", et de ne pas utiliser du XML en PHP.


  • Ne disposant pas d'un éditeur de texte pratique pour XML, j'ai cherché une syntaxe qui me permette d'économiser le nombre de caractères à taper.


  • En cas de besoin, des fonctions d'exportation vers XML ne seront pas compliquées à écrire.

    Syntaxe

    Forme Syntaxe XML Equivalent tigML
    1 <myTag>contents</myTag> @myTag = "contents"
    2 <myTag>contents</myTag> @myTag
    contents
    @/myTag
    3 <myTag attr1="val1" attr2="val2"/> @myTag attr1="val1" attr2="val2"
    4 <myTag attr1="val1" attr2="val2"/> @myTag
    attr1="val1"
    attr2="val2"
    5 <myTag attr1="val1" attr2="val2">
    contents
    </myTag>
    @myTag ="contents" attr1="val1" attr2="val2"
    6 <myTag attr1="val1" attr2="val2">
    contents
    </myTag>
    @myTag
    attr1="val1"
    attr2="val2"
    contents
    @/myTag

    Notes :

  • Les formes 1, 3 et 5 sont des formes "simple ligne" ;
    les formes 2, 4, 6 sont "multi-lignes" ;
    il n'est pas (encore) possible de mélanger les deux ; la syntaxe suivante n'est pas valable :
    @myTag attr1="val1" attr2="val2"
    contents
    @/myTag