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 :

Namespace et balises xml


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut Namespace et balises xml
    Bonjour à tous.
    J'ai un petit souci, dans le cadre d'un stage, je dois écrire un web service ("mon_lala")censé être la copie conforme d'un web service existant "lala", je dispose pour faire cela du wsdl de lala et de captures de trames réalisés avec Wireshark qui m'ont permis de reconstituer les messages soap échangés. Je dispose d'un programme de test lalatest pour tester les deux web services et vérifier "mon_lala" respecte scrupuleusement le même schéma que "lala".

    Le souci c'est que j'ai des différences au niveau des namespaces et des balises xml, je m'explique:

    -voici à quoi ressemble le message soap retourné par lala:
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
    xmlnssd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns1="http://toto.com/webservices/">
    <SOAP-ENV:Body>
    <ns1:lalaResponse>
    <ns1:result>ok</ns1:result>
    <ns1:informations>
    <ns1:values>
    <ns1:age>7</ns1:age>
    <ns1:tel>123456</ns1:tel>
    etc...

    -voici le message soap retourné par mon_lala:
    <soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
    xmlnssd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <lalaResponse xmlns="http://toto.com/webservices/">
    <result>ok</result>
    <informations>
    <values>
    <age>7</age>
    <tel>123456</tel>
    etc....

    mes balises ne commencent pas par "ns1", paramètre qui semble être défini par la ligne xmlns:ns1="http://toto.com/webservices/" de lala, malheureusement apres de nombreuses recherches je n'ai pas compris comment faire apparaitre cela dans mon code.

    Si quelqu'un sait comment modifier les dclarations de xmlns qui me permettrait de faire apparaitre ce fameux ns1 dans mes balises xml, ca m'aiderait beaucoup

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut Erratum
    Dans les lignes où apparaissent les smileys il faut lire "xmlns : xs...."

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

    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut
    Pour spécifier le namespace de tes balises , il faut que tu regardes du coté des propriétés de sérialization

    exemple, pour ta propriété <ns1:result>string</result>
    il faut que tu la déclare ds ton code comme ceci

    [XmlAttribute namespace="ns1"]
    String result;

    je n'ai pas de code sous les yeux donc vérifies la syntaxe, mais le principe est la.

    N'hésites pas si tu as des questions

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 27
    Par défaut
    Merci de ton aide mais je n'ai pas trouvé comment utiliser le [XmlAttribute namespace="ns1"]

    Le truc c'est qu'il faut que je me débrouille pour avoir la ligne
    xmlns:ns1="http://toto.com/webservices/"
    dans le message SOAP retourné par ma méthode, je vous copie le code de mon Web Service:


    using System;
    using System.Diagnostics;
    using System.Web;
    using System.ComponentModel;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Runtime.Remoting;
    using System.Runtime.Serialization;
    using System.Runtime.Remoting.Channels;
    using System.Runtime.Remoting.Channels.Http;
    using System.Xml.Serialization;
    using System.Xml;



    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.1433")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "WSSoap", Namespace = "http://toto.com/webservices/")]
    public partial class WS : System.Web.Services.Protocols.SoapHttpClientProtocol
    {

    [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://toto.com/webservices/evtReadDictionaryVersion", RequestNamespace = "http://toto.com/webservices/", ResponseNamespace = "http://toto.com/webservices/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
    [return: System.Xml.Serialization.XmlElementAttribute("result")]
    [WebMethod]
    public ResultType lala([System.Xml.Serialization.XmlArrayItemAttribute("values", IsNullable = false)] out informations[] infos)
    {
    infos = new informations[1];
    infos[0] = new informations();
    infos[0].age = 7;
    infos[0].tel = 50330;
    return ResultType.ok;
    }
    }

    Voilà je sais pas si cela va vous aider, tous les lignes du type [System.xml...] proviennent du code autogénéré à partir du fichier wsdl.

    Je ne suis pas un expert en Web Services, je ne comprend donc pas l'utilité de toutes ces lignes et ne sais pas comment modifier un paramètre pour faire apparaitre le "ns1"...

    Merci d'avance pour ceux qui tenteront de m'aider

    Bonne journée

Discussions similaires

  1. Créer une balise xml sans namespace
    Par Gregory.M dans le forum Windows Forms
    Réponses: 0
    Dernier message: 17/03/2009, 11h59
  2. [Configuration] Confusion de balises XML / PHP
    Par teto dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 10/09/2005, 13h40
  3. [XSLT]Sortir les balise d'un namespace d'un XML
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 12/04/2005, 11h30
  4. [JDOM] données un attribut à une balise xml
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 09/07/2004, 15h54
  5. [Balise XML] Comment récupérer le contenu entre 2 balise?
    Par ZoumZoumMan dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/03/2004, 16h36

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