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

XSL/XSLT/XPATH XML Discussion :

XSD/XSL/XML : formulaire


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut XSD/XSL/XML : formulaire
    Bonjour,

    J'aimerais avoir un conseil, un avis... J'ai construit un schéma xml (un fichier xsd que j'appellerai schema.xsd). Je souhaiterais générer un fichier xml (resultat.xml) qui respecte ce schéma et donc la structure définie dans celui-ci.

    Cependant, pour concevoir ce fichier xml (resultat.xml), je souhaiterais remplir un formulaire qui après validation "fabriquerait" resultat.xml.

    Est ce que je peux créer un fichier xsl qui va traduire schema.xsd en formulaire html ? Est ce que l'on peut créer un xsl à partir d'un xsd ? Est ce que c'est correct ou sinon quelle autre solution est applicable dans mon cas ? Je n'y connais pas grand chose en xml... c'est pour cela que je vous demande.

    Merci
    Bonne journée

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par Papipen Voir le message
    Est ce que je peux créer un fichier xsl qui va traduire schema.xsd en formulaire html ?
    >>> oui
    Citation Envoyé par Papipen Voir le message
    Est ce que l'on peut créer un xsl à partir d'un xsd ?
    >>> pas exactement comme une conversion : on va créer un xsl en prenant en compte la structure du xsd... (mais peut-être que des outils le font... XMLSpy ? d'autres ? à vérifier... )
    Citation Envoyé par Papipen Voir le message
    Est ce que c'est correct ou sinon quelle autre solution est applicable dans mon cas ?
    >>> si tu ne maitrises pas encore bien le xsl, va voir un peu les tutos, mais à moins d'un xsd très tordu ou volumineux, ça devrait aller y'a pas de raisons >
    Citation Envoyé par Papipen Voir le message
    Bonne journée
    à toi aussi

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    Merci pour toutes ces infos.

    Sur le site du W3C, rubrique "shema xml", ils mettent "You can transform your Schema with XSLT". Donc, on doit bien pouvoir le faire ?

    Sinon, je dois le faire en ruby...

  4. #4
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Oui, car de toutes façons, un XSD n'est qu'un cas particulier de fichier XML : il peut donc, comme tout fichier XML, être transformé par XSL/XSLT/XPath

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  5. #5
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Juste pour mon info, quand tu écris
    Cependant, pour concevoir ce fichier xml (resultat.xml), je souhaiterais remplir un formulaire qui après validation "fabriquerait" resultat.xml.
    que veux tu dire ? Tu saisis des données dans ton formulaire, données qui serviront à alimenter la transformation ?

    ERE
    Quand une tête pense seule, elle devient folle.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    A partir de mon fichier XSL, je génère un formulaire. Ce dernier contiendrait des champs texte, liste... Je saisirais des données et après validation je génèrerais un fichier xml.

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par Papipen Voir le message
    A partir de mon fichier XSL, je génère un formulaire. Ce dernier contiendrait des champs texte, liste... Je saisirais des données et après validation je génèrerais un fichier xml.
    OK je résume:
    - Tu crées un XSD (schéma)
    - A partir de ce schéma ,et à l'aide d'une transformation XSL, tu génères un formulaire
    - Sur validation de ce formulaire tu génères un XML quelconque qui n'a rien à voir avec le schéma initial.

    J'ai tout bon ?

    ERE
    Quand une tête pense seule, elle devient folle.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    Oui,

    Je pars d'un schéma XML contenant des éléments... A partir de celui-ci, je souhaite générer un formulaire qui va me permettre de construire un fichier XML respectant ce modèle. C'est cohérent ? bizarre ?

    D'ailleurs, j'ai une petite question. Comment faire pour récupérer seulement un nom d'un élément et non tous les noms des éléments à la suite avec un <xsl:value-of select=".//xsd:element/@name"/>. Je ne veux pas de element1element2element3 mais je souhaiterais pouvoir les séparer par exemple element1 element2 element3 et en fonction de leur valeur, effectuer un certain traitement...

    bonne journée

  9. #9
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par Papipen Voir le message
    Oui,

    Je pars d'un schéma XML contenant des éléments... A partir de celui-ci, je souhaite générer un formulaire qui va me permettre de construire un fichier XML respectant ce modèle. C'est cohérent ? bizarre ?
    Renseigne toi car c'est un cas déjà étudié et une bonne recherche Google te donnera des liens vers des solutions qui font déjà cela. Par exemple ici ou

    D'ailleurs, j'ai une petite question. Comment faire pour récupérer seulement un nom d'un élément et non tous les noms des éléments à la suite avec un <xsl:value-of select=".//xsd:element/@name"/>. Je ne veux pas de element1element2element3 mais je souhaiterais pouvoir les séparer par exemple element1 element2 element3 et en fonction de leur valeur, effectuer un certain traitement...
    bonne journée
    Tu peux utiliser un <xsl:for-each ... > et traiter chaque élément séparément (donc par exemple concaténer, tester...)

    ERE
    Quand une tête pense seule, elle devient folle.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    Non mais je veux pas utiliser quelque chose qui existe déjà. Je dois faire tout ça sous Ruby. Les outils pour le faire, je les ai deja.

    Mais concernant le for-eac, c'est quand nous avons par exemple plusieurs elements dans un tableau. Moi, ils sont tous concaténés déja donc...

  11. #11
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par Papipen Voir le message
    Non mais je veux pas utiliser quelque chose qui existe déjà. Je dois faire tout ça sous Ruby. Les outils pour le faire, je les ai deja.
    Bon reste alors à analyser le xsd pour générer ce que tu souhaites.
    Mais concernant le for-eac, c'est quand nous avons par exemple plusieurs elements dans un tableau. Moi, ils sont tous concaténés déja donc...
    Il s ne sont pas concaténés si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:for-each select="//xsd:element" >
    ...
    </xsl:for-each>

    ERE
    Quand une tête pense seule, elle devient folle.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    Ok admettons mais si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:for-each select="//xsd:element" ><br/><br/><xsl:value-of select="//xsd:element/@name"/><br/></xsl:for-each>
    il m'affichera toujours le même nom de l'élément comment passer au suivant ?

    Autre chose que je ne comprends pas : voici un extrait du template qui traite les complex type. Je teste si le nom de l'élément =id. Si c'est le cas j'affiche sa valeur (id) et un bout de formulaire (champ texte). Même chose si l'élément = date. Cependant, quand je fais un <xsl:value-of select=".//xsd:element/@name"/> au niveau du if de date, il m'affiche id et non date alors que juste au dessus je teste si name = date et ça marche.

    J'ai testé en mettant un element n'existant pas, ça plante. Quand j'ai date, il me dit ok mais il affiche id. Pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="xsd:complexType"><xsl:if test=".//xsd:element/@name = &apos;id&apos;">
              <p><xsl:value-of select=".//xsd:element/@name"/><input type="text" name="id"/></p>
            </xsl:if>
            <xsl:if test=".//xsd:element/@name = &apos;date&apos;">
              <p><xsl:value-of select=".//xsd:element/@name"/><input type="text" name="date"/></p>
            </xsl:if>...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    en fait, c'est parce que je parcours pas les elements du complex type je crois donc logiquement il conserve que le premier non ?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 79
    Points : 51
    Points
    51
    Par défaut
    problème résolu, je suis un idiot

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT 1.0] Création formulaire html via XSL/XML
    Par atchoum34 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 06/02/2012, 13h46
  2. [XSD] schema XML et fichier XML
    Par gatsu dans le forum Valider
    Réponses: 2
    Dernier message: 11/04/2005, 16h47
  3. XML -> XSL <- XML
    Par Punky65250 dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 16/09/2004, 09h29
  4. [xsl][XML] création d'un index
    Par Boosters dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 28/11/2002, 08h29
  5. xml -> xsl -> xml
    Par virgile04 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/10/2002, 16h53

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