2009-08-13 7 views
4

La réponse à cette question peut très bien être non, autant la recherche n'a rien donné. J'ai pensé il y a longtemps que j'ai vu quelque chose comme ça, mais tout cela a peut-être été un mirage. Fondamentalement, il est si atrocement horrible écriture xslt à la main. Ce n'est pas le paradigme fonctionnel qui me dérange. Ce qui me dérange, c'est le fait qu'il utilise une syntaxe basée sur XML. Je me demande s'il y a quelque chose de disponible qui peut compiler à partir d'une syntaxe plus simple et plus lisible dans une feuille de style XSLT. Ne doit pas avoir des parenthèses bouclées, mais les parenthèses d'angle sont un peu époustouflantes.Compile en xslt?

merci.

Répondre

3

Vous pouvez traduire S-expressions comme SXML XML. Au lieu d'utiliser équerres, cela utiliser des parenthèses une syntaxe légèrement moins encombrées:

(xsl:template (@ (name "mytemplate")) 
    (xsl:if (@ (test "foo = 'bar'")) 
    (xsl:value-of (@ (select "@baz"))))) 

Que ce soit une amélioration par rapport XML dépend de vos goûts personnels, bien sûr.

0

Je ne connais pas encore de compilateur à convertir en XSLT.

Cependant, je connais quelques outils/ide qui peuvent rendre le travail dans XSLT plus facile.

Stylus Studio

Netbeans IDE c'est gratuit

Vous pouvez aussi trouver un outil open source here.

1

Je suppose que vous pourriez écrire JSON et le convertir en XML. JSON.NET est capable de convertir entre les deux formats.

Ce fichier XML:

<!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V3.1//EN"> 
<glossary><title>example glossary</title> 
    <GlossDiv><title>S</title> 
    <GlossList> 
    <GlossEntry ID="SGML" SortAs="SGML"> 
    <GlossTerm>Standard Generalized Markup Language</GlossTerm> 
    <Acronym>SGML</Acronym> 
    <Abbrev>ISO 8879:1986</Abbrev> 
    <GlossDef> 
     <para>A meta-markup language, used to create markup 
languages such as DocBook.</para> 
     <GlossSeeAlso OtherTerm="GML"> 
     <GlossSeeAlso OtherTerm="XML"> 
    </GlossDef> 
    <GlossSee OtherTerm="markup"> 
    </GlossEntry> 
    </GlossList> 
    </GlossDiv> 
</glossary> 

se présente comme suit dans JSON:

{ 
    "glossary": { 
     "title": "example glossary", 
     "GlossDiv": { 
      "title": "S", 
      "GlossList": { 
       "GlossEntry": { 
        "ID": "SGML", 
      "SortAs": "SGML", 
      "GlossTerm": "Standard Generalized Markup Language", 
      "Acronym": "SGML", 
      "Abbrev": "ISO 8879:1986", 
      "GlossDef": { 
           "para": "A meta-markup language, used to create markup languages such as DocBook.", 
        "GlossSeeAlso": ["GML", "XML"] 
          }, 
       "GlossSee": "markup" 
       } 
      } 
     } 
    } 
} 
+0

Malheureusement, je ne pense pas que votre traduction JSON est fidèle dans de nombreux parseurs JSON. L'ordre des membres de JSON n'est pas conservé à ma compréhension, mais l'ordre doit être préservé pour une représentation xml fidèle. – Davorak

0

Si vous voulez quelque chose qui a (plus de) la puissance expressive de XSLT en traitant le document XML, mais que vous n'aimez pas la syntaxe verbeuse en dehors de XPath, alors peut-être devriez-vous regarder XQuery.

+0

Je n'ai vu aucun navigateur supportant nativement Xquery, et pourtant tous les principaux navigateurs supportent XSLT. – Breton

+0

Les navigateurs sont un créneau assez mineur pour XSLT - il a beaucoup plus d'utilisations que cela, et je dirais même que c'est assez inutile dans un navigateur. En outre, XQuery est une alternative à XSLT 2.0, pas 1.0 - et tous les navigateurs que je connais ne supportent que 1.0. –

0

L'application XML Oxygen fonctionne à merveille pour tout ce qui est basé sur SGML. Ne pas essayer d'écrire votre XSLT dans le bloc-notes, vous finirez probablement suicidaire :)

http://www.oxygenxml.com/