norme pour les “boucles” en XML?
Je suis en train de concevoir un simple fichier XML pour les animations. Je reçois souvent dans la situation, que j'écris quelque chose comme ceci:
<frame>
<image>./image1.png<image/>
</frame>
<frame>
<image>./image2.png<image/>
</frame>
<frame>
<image>./image3.png<image/>
</frame>
...
Maintenant, bien sûr, cela peut devenir agaçant. Je voudrais donc j'ai pensé a été de permettre à cet:
<frameset min=1 max=5>
<image>./image#.png<image/>
</frameset>
Faire # un espace réservé pour une variable de compteur.
Ce que je me demande: est-il déjà un moyen standardisé de faire quelque chose comme ça?
Il rend juste les choses plus faciles si l'on utilise des méthodes que les gens sont déjà utilisés pour.
Merci!
OriginalL'auteur Nathan | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Il n'existe pas de modèle universel, mais ce que vous cherchez est essentiellement une création de modèles de solution - un modèle de la langue, plus d'un modèle d'évaluation moteur qui transforme un modèle en XML final en exécutant le code incorporé dans le modèle.
Ainsi, vous pouvez prendre, pour un modèle, TOUTE création de modèles de langue que vous êtes familier avec.
La meilleure approche est bien sûr d'utiliser un moteur de template existant solution si vous avez accès à un; de sorte que vous n'avez pas à écrire. E. g. JSP Java, EmbPerl pour Perl, XSLT, etc...
Voici un extrait EmbPerl modèle:
Beaucoup de templating des solutions serait très proche, avec un peu de balisage différent et bien évidemment d'une logique différente de la syntaxe Perl vs Java vs xxx)
Si vous allez avec homebrew solution, la création de modèles de langue peut bien sûr être le XML lui-même, quelque chose comme
OriginalL'auteur DVK
XML des données est de ne pas les instructions. Si vous avez besoin d'un type d'enseignement dans le fichier xml, puis le faire données. Vous pouvez changer votre discbased comme ceci:
Fondamentalement votre deuxième approche.
OriginalL'auteur schoetbi
Le problème avec cette idée, c'est que la "boucle" peut signifier beaucoup de choses différentes.
Dans un langage procédural, il est assez clair qu'une boucle signifie que vous faites quelque chose et puis vous (peut-être) le faire à nouveau. La langue de la procédure sera déjà une façon de s'exprimer de la façon de "faire quelque chose" est exprimé.
Dans un langage déclaratif, qui XML est un peu plus adapté à l'expression, il est plus normal d'avoir un "pour l'ensemble de ces" qu'une boucle par-se, si les gens parlent souvent de XSLT pour chacun d'eux comme si c'est une boucle.
À la fois procédurale et déclarative (et d'autres) langues peuvent être utilisées pour effectuer le tri des tâches répétitives que vous parlez ici, mais en les plaçant directement dans la balise elle-même se mélange les domaines messily, sauf si elle a un sens en termes de ce que la marque est en exprimant à déclarer une "boucle" ou "pour chacun de ces".
Votre premier fichier XML est une description d'images, une description de quelque chose à faire avec les images. Ce sont des choses distinctes, et le mélange est lourde.
OriginalL'auteur Jon Hanna
Vous pouvez utiliser XSLT qui serait de convertir le vôtre XML le format.
Espesially pour votre exemple de
<frameset min=1 max=5>
vous pouvez utiliser cette XSLT exemplela boucle dans le XSLT technique pourrait être trouvé ici
OriginalL'auteur jutky
Rappelez-vous qu'un programme va lire le fichier XML, n'est pas un homme. Le programme devra être testé, et il devra être maintenu.
Le plus de complexité que vous ajoutez à votre format XML, le plus il sera difficile de tester et maintenir le code qui l'utilise.
En d'autres termes, quitter la "boucle", et simplement s'en tenir à l'essentiel.
OriginalL'auteur John Saunders
Vous pouvez utiliser XSLT pour y parvenir, mais cela nécessite un moteur de transformation. Beaucoup d'entre eux sont partout (y compris dans la plupart des navigateurs, par exemple). Vous pouvez inclure la transformation de la déclaration dans un pré-traitement de la directive du document si vous avez besoin d'.
(Cela dépend du contexte dans lequel vous utilisez vos documents XML.)
OriginalL'auteur Bruno