Bonjour,

Je suis en train de transformer un document XML en un autre grâce au XSLT et je me pose la question suivante : faut-il supprimer les balises vides ? D'un côté je me dis qu'une balise vide ne contient pas d'information donc est inutile et alourdie le document XML , de l'autre je me dis que l'absence d'information est justement une information. Qu'en pensez-vous ?

Merci d'avance pour vos conseils.
Modifié par mathmax (07 Nov 2006 - 18:53)
oui mais là c'est dans le cas particulier du XHTML. Supposons par exemple que j'ai des produits à présenter avec leurs prix respectifs. Parfois ces prix ont étés réduits. L'ancien prix est alors renseigné dans une balise <ancien_prix>. Ce qui donne le XML suivant :


<produit>
    <nom>nom du produit</nom>
    <ancien_prix>10 €</ancien_prix>
    <prix>8 €</prix>
</produit>


Si le prix d'un produit n'a pas été réduit, faut-il mieux à ton avis écrire :


<produit>
    <nom>nom du produit</nom>
    <ancien_prix />
    <prix>8 €</prix>
</produit>


ou


<produit>
    <nom>nom du produit</nom>
    <prix>8 €</prix>
</produit>
Ca me semble être une question hautement philosophique. Smiley cligne

Ca dépend à mon avis de pas mal de facteurs. Peut-être que le fait de placer la balise vide ou non traduira deux cas différents, par exemple "Le prix n'a pas été réduit" et "Le prix a été réduit mais je ne connais pas l'ancien prix".

De façon générale, je suis tenté de penser que ça dépend de la façon dont tu vas traiter les informations...
+1

J'ajouterais aussi que cela dépend de ton schéma ou de ta DTD Smiley cligne

Je préfèrerais, pour ma part, omettre dans ce cas précis l'élément ancien prix s'il n'existe pas. Cela facilite la relecture du code XSL (il est plus facile de comprendre un <xsl:if test="ancienPrix"> qu'un test pour savoir si cet élément est vide). Enfin, c'est toi qui vois...
Je n'ai pas de schéma, ni de DTD. Qu'est ce que celà apporte ? Mon fichier XML est en effet destiné à être lu par une feuille XSLT, mais je souhaiterais aussi transférer les données vers une base de donné hors le passage XML =>base de donnée ne génère pas de champs si il n'y a pas de balise. A moins que les schémas XML le permettent...