IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Affichage conditionnel dans un document xml ?


Sujet :

XML/XSL et SOAP

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Affichage conditionnel dans un document xml ?
    Bonjour,

    Je tente d'écrire une extension pour Inkscape. Pour réaliser cela, Inkscape doit ouvrir un fichier .xml (.inx) au moyen duquel on peut récupérer toutes les données utiles se rapportant au chemin sélectionné dans Inkscape.
    Ce fichier permet également à l'utilisateur de spécifier certains paramètres (par exemple, spécifier le nombre de nœuds à ajouter sur le chemin, ou la manière de les disposer : régulièrement selon le nombre de nœuds imposé, régulièrement selon une distance entre les nœuds successifs, ...).
    Une fois ces paramètres validés, un programme .py est appelé qui va exécuter le travail demandé dans le fichier Inkscape.

    J'ai développé un fichier .inx (écrit en XML) dans lequel je donne le choix à l'utilisateur de disposer les nœuds supplémentaires à des distances variables. Les variations de distances respectent une progression soit arithmétique soit géométrique.
    Dans cet exemple (il y a d'autre options possibles dans mon programme), si l'utilisateur sélectionne dans la liste des options principales (progression arithmétique, progression géométrique, ...) l'une des options (par exemple "progression arithmétique"), je voudrais que les options se rapportant à la progression géométrique ne soient pas accessibles => l'utilisateur clique sur "progression arithmétique" dans la liste et il n'a accès qu'aux données indispensables pour le calcul de cette progression.
    Si l'utilisateur veut changer pour une progression géométrique, il doit cliquer dans la liste des options et sélectionner "progression géométrique" pour avoir accès aux paramètres de cette option provoquant le "verrouillage" des options "arithmétiques".

    Bien entendu, cet exemple est purement théorique car les options que je propose sont plus nombreuses et variées. Et s'il est possible d'obtenir ce résultat avec 2 options, il me sera possible d'extrapoler pour les autres.

    Je précise qu'il n'est pas possible d'utiliser PHP. Seul le fichier .inx écrit en xml est utilisable pour la sélection des options à appliquer à la sélection faite dans le logiciel de dessin Inkscape.

    Merci.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut XML : affichage conditionnel.
    Bonjour,

    Je me réponds à moi-même mais sans être absolument affirmatif :
    XML ne permet pas, dans mon cas (c-à-d sans l'utilisation de PHP) de provoquer une affichage conditionnel.

    Dans mon cas, je vais essayer d'implémenter des boutons radio ainsi, une seule option pourra être "activée" même si l'utilisateur veut compléter les paramètres des autres options.

    Dans le programme en Python qui suivra, je gérerai la sélection qui aura été faite dans les différents boutons radio.
    Il semble, d'après ce que j'ai lu jusqu'à présent, que l'élément "<input*type="radio"*name="sexe"*value="H"*/>*Homme" revoie "H"s'il est coché.
    S'il y a plusieurs de ces boutons portant le même "name=...", je recevrai en retour la valeur qui correspond au bouton qui aura été coché. Je n'ai même pas besoin d'aller lire chacun des boutons

    Qu'on me corrige si j'ai fait une erreur.
    J'apprends encore et toujours

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Citation Envoyé par Papy Octet Voir le message
    XML ne permet pas, dans mon cas (c-à-d sans l'utilisation de PHP) de provoquer une affichage conditionnel.
    XML lui-même n'a pas de mécanisme de ce genre, en effet. Son rôle est trop général pour que cette notion ait un sens.
    Aucune idée de si le format INX, lui, peut le faire.

    Des tas de formats XML proposent des conditions et alternatives, à commencer par le plus évident XSLT et ses <xsl:if> et <xsl:choose>. INX pourrait avoir ça aussi, je sais pas, je le connais pas et ça m'intéresse pas. Il faudrait demander aux experts Inkscape.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut .inx = xml.
    Bonsoir,

    Le fichier .inx, utilisé dans Inkscape pour récupérer les références du chemin (dessin) sélectionné + les paramètres sélectionnés par l'utilisateur et ensuite transmettre ces paramètres au programme Python qui va réaliser les transformations prévues dans cette extension, est un fichier XML pur. Seule l'extension a été changée.

    Malheureusement, on ne peut utiliser d'autre format pour ce fichier que le XML "de base".
    Mais je vais tout de même essayer. On ne sait jamais.

    Pour ce qui est des "experts", rares sont ceux qui écrivent des extensions pour Inkscape et qui créent des tutos pour expliquer leur cheminement, hélas. Et pour ce qui est de la doc à ce sujet, elle est aussi rare que le soleil en ce mois d'août 2014
    Il faut donc faire des tas de recherches personnelles en XML mais aussi Python et surtout SVG et W3C.
    Ce n'est pas rien d'essayer d'assimiler et de coordonner tout cela pour arriver à quelque chose de fonctionnel.

    Et cerise sur le gâteau, si on veut proposer une extension chez les développeurs de Inkscape, ils placent la barre tellement haute, leurs exigences sont tellement spécifiques, techniquement strictes, que beaucoup abandonnent devant ces difficultés.
    Mais bon, avec beaucoup de temps, un peu de travail, et de la recherche incessante, j'espère arriver à mes fins.

    Merci pour cet avis.

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    211
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 211
    Points : 168
    Points
    168
    Billets dans le blog
    1
    Par défaut Les listes déroulantes.
    Bonjour,
    Une fois de plus, je me réponds à moi-même et transmet une partie de mes trouvailles :
    Puisque le XML 1.0, que je dois utiliser dans mon cas de figure, ne possède pas d'option d'affichage conditionnel, il a toute fois un outil qui me rend le service que je souhaite : les listes déroulantes dont voici un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            <param name="method" type="enum" _gui-text="Type de division : ">
                    <_item value="bymax">Première option</_item>
                    <_item value="bynum">Seconde option</_item>
                    <_item value="arith">Troisième option</_item>
                    <_item value="geom">etc.</_item>
            </param>
    En plaçant 3 listes déroulantes dans mon fichier, j'ai mes 3 choix uniques dont j'ai besoin car je peux "récupérer" le choix effectué dans la liste déroulante en lisant les paramètres retournés par la liste : le numéro de l'option sélectionnée. Il me "suffit" alors de traiter cette information dans le programme Python pour la suite des opérations.

    S'il devait y avoir un "défaut" à ce moyen, mais en cherchant bien, c'est qu'on ne voit pas tout le temps les options disponibles, il faut obligatoirement déplier les listes déroulantes. Mais est-ce vraiment un problème ?

    A+

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/05/2006, 12h33
  2. [VB.NET] Affichage conditionnel dans un repeater
    Par NicoNGRI dans le forum ASP.NET
    Réponses: 4
    Dernier message: 07/02/2005, 13h58
  3. Sauver un TStream dans un document XML
    Par srvremi dans le forum Composants VCL
    Réponses: 4
    Dernier message: 07/10/2004, 14h17
  4. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 15h44
  5. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo