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

Services Web Discussion :

Renvoyer du xml après appel à une méthode WCF


Sujet :

Services Web

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut Renvoyer du xml après appel à une méthode WCF
    Bonjour!

    Je bute sur un problème : je suis en train de remplacer des webservices par l'equivalent en WCF et je n'arrive pas a renvoyer mon xml correctement.

    Je m'explique :

    ma méthode dans le fichier SVC.cs a cette signature :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public XmlDocument Recherche(string CleClient,string chaineRecherche,string TypeRecherche)
    dans le client ASPX qui va utiliser le WCF j'appele la méthode comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var srv = new ServiceReference1.ServiceRechercheClient("WSHttpBinding_IServiceRecherche1" );
     
     XmlElement xml= srv.Recherche("lacle", "MaRecherche", "LeType" );
    mon souci est d'afficher le xml renvoyé (qui est apparement un xmlelement et non un xmldocument (???) ) je voudrai, comme on le faisait pour le web service simple non wcf, renvoyer tout simplement le xml en tant que page résultat (en lieu et place du aspx)

    Merci pour toute aide

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Et si tu mettait le XML dans une balise litteral ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    non j'ai essayé ca ne marche pas...

    j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var srv = new ServiceReference1.ServiceRechercheClient("WSHttpBinding_IServiceRecherche1" );
     
     XmlElement xml= srv.Recherche("lacle", "MaRecherche", "LeType" );
     
     
    LitXml.Text = xml.ToString();
    mais ca renvoie sur la page "System.Xml.XmlElement" et non le xml...

    En fait avant dans les webservices il suffisait de faire un "return" du xmldocument et la page renvoyait automatiquement le xml....c'est ce que je voudrai faire dans ma page aspx cliente du service WCF

    Merci!

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Il est normal que la méthode ToString() te renvoie la type de l'objet car c'est ce qu'elle est censée faire.


    Utilise plutôt la propriété OuterXml de ton XmlElement.


    Si je comprends bien, avant dans ta méthode du web service, tu retournais ton XmlDocument, ce que tu fait toujours, mais comment faisais tu l'affichage ?
    Il te suffisait d'appeler ta méthode depuis ta page ASPX ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Oui c'est bien ce que je me disais avec la méthode toString()...

    En revanche cela ne fonctionne pas non plus avec le outerXml : cela me renvoi les textes bruts, non entouré de leur balises XML

    En fait précedement j'avais un web service ayant en signature le xmldocument,
    a la fin de mon traitement je faisait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dataset Ds = une requete....
     
    Ds.WriteXml(sw);
    RetourXML += sw.ToString();//Pour aller à la ligne
    XmlDoc.LoadXml(RetourXML);
     
    return XmlDoc;
    et il suffisait d'appeler le web service pour que la page renvoie automatiquement le document XML ! (il semble que c'est une fonctionnalité prise en charge par les web services dot net)

    Maintenant je suis bien embété avec mon WCF.... je veux tout simplement renvoyer mon xml au client ni plus ni moins mais cela ne fonctionne plus comme avec les web services

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    D'ailleurs voici l'article qui parle de la fonctionalité sus citée :

    http://support.microsoft.com/kb/330600

  7. #7
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Tu ne peux plus renvoyer un XmlDocument dans tes méthodes de services WCF ?

    Après les tests que j'ai fait, la propriété OuterXml renvoie bien tout le XML, y compris les balises.

    Regarde le code-source de ta page, ils doivent être affiché. Mais normalement dans un littéral tout devrais apparaître.

    Alors après, est-ce que tu ne veux afficher que le doc XML dans ta page ou il en fait juste partie ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    En fait je renvoie un xmldocument mais il récupere un xmlelement, sans doute a cause de la sérialisation ne prennant pas le xmldocument...

    Sinon j'ai affiché la source et effectivement on a bien les balises dans celle ci! c'est l'affichage du literal sur la page aspx qui les vire apparement...

    Sinon mon but est juste qu'un client qui va utiliser mon service WCF se retrouve a l'affichage avec un document XML... donc effectivement n'afficher que le doc xml sur la page (et qu'elle que soit celle ci : aspx ou autre car je ne sais pas par avance qu'elle techno le client utilisera pour appeler mon WCF)

  9. #9
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    En fait, tu voudrais qu'on puisse directement récupérer un document xml quand on appelle ta méthode.

    Si c'est juste le problème d'avoir un XmlElement au lieu d'un XmlDocument, tu dois pouvoir faire une conversion, notamment grâce aux méthodes AppendChild et ImportNode du XmlDocument.

    Pour le Litteral, c'est une erreur de ma part, il est normal qu'il supprime les balises à l'affichage. Si tu veux voir le document XML en entier, utilise plutôt un label.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Merci pour ton aide! en fait non ca ne marche pas non plus avec le label meme probleme, pas de balises xml...

    Je me demande si je ne vais pas finir par renvoyer une simple string plutôt qu'un XMLDOCUMENT...

  11. #11
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    C'est ce que je pensais comme solution de secours, ça ne ma paraît pas très propre mais bon...

    Une autre solution serait de traiter les charactères du XML pour les remplacer par leur équivalents ASCII.
    Je pense surtout aux balises, ce qui empêcherait leur non-affichage.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Lol : j'ai essayé avec une string et pareil il me vire les balises


  13. #13
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    C'est normal, vu qu'elle sont interprétés comme du code HTML et donc pas affichée à l'écran. Par contre elles doivent être visibles dans le code source.

  14. #14
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Points : 28
    Points
    28
    Par défaut
    Ok effectivement ... Merci en tout cas, je vais me débrouiller avec ces éléments

Discussions similaires

  1. Comment appeler une méthode python dans un xml?
    Par AmFaye2 dans le forum Odoo (ex-OpenERP)
    Réponses: 3
    Dernier message: 23/09/2013, 13h59
  2. Réponses: 3
    Dernier message: 25/02/2010, 13h47
  3. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  4. Appeler une méthode dynamiquement
    Par doof dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/01/2005, 23h15
  5. Comment l'appel à une méthode virtuelle....
    Par Blobette dans le forum C++
    Réponses: 7
    Dernier message: 07/12/2004, 13h55

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