Sylvain, sorry about the confusion. I was looking at the SOAP specs only. Now having a look at the WSDL specs I tried to match these two. Here what I found and think what it may be:
1st: the pure SOAP (1.2) does not provide a direct binding between header contents and body contents. Both parts of a SOAP message can be addressed to different entities, can processed independently, and there is no protocol element which relates them. If there shall be a relation between header and body elements that must be done by application specific elements and/or attributes. 2nd: WSDL defining headers inside the operation part may be interpreted like: if this operation is called then the defined headers must be transmitted also. This is just my interpretation because the SOAP spec does not mandate this. Using the header definition inside the operation may be used to generate implemetation code on the server side, and/or code on the client side that checks if all "required" headers are set. However, there should also be a way to set additional headers in the SOAP message that are not defined in WSDL but are necessary for other purposes, e.g. SOAP routing, transfer of service licensing data, etc. About overwriting received SOAP headers: you are right. There are different level of abstraction in .NET and the SOAP toolkit. I was looking from a pure SOAP point of view. Here the headers contained in a request are not related to headers contained in a response. Because of that I'm somewhat reluctant to automatically overwrite headers. I've seen an example where the request contained some security info (name/password) in a header and the response contained also a header with security info (name/password) but both where different, i.e. first it was the requestors name/password and then it was the name/password of the responder (support of mutual authentication). They used the same header element name, encoding, etc. In this case overwriting complicates the whole matter. Werner > -----Ursprüngliche Nachricht----- > Von: St-Germain, Sylvain [mailto:[EMAIL PROTECTED]] > Gesendet: Mittwoch, 17. April 2002 22:18 > An: [EMAIL PROTECTED] > Betreff: RE: soap:header > > > > Werner, > > I made a mistake, I meant the WSDL spec, > http://www.w3.org/TR/wsdl#_soap:header This is the kind of > support I am > implementing now... About header name, they do not seem to > have a name, they > have a part name and a message name though. > > I have not played with .NET personaly but one of my buddy > here did and from > what I know he did not need to do anything special to have the headers > received in the response be the one sent in the next request. > > Sylvain. > > -----Original Message----- > From: Dittmann Werner [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, April 17, 2002 11:18 AM > To: '[EMAIL PROTECTED]' > Subject: AW: soap:header > > > Hi, > > just some questions and findings about soap headers. > > If you refer to "SOAP spec brings in a soap:header element that > goes into the operation's binding: to what spec do you refer? > > The according chapter "RPC and SOAP Header" just states that by > "adding a header with a fixed name...." will additional context > transfered to the server. No further binding is described there, > so IMHO it's up to the operation implemenation to look for a > header with an appropriate name. Other headers may be contained > in the header section as well. Therefore a application may prepare > all necessary headers for the service and the operation > implementation looks for those that are relevant. > > According to the client side handling of headers I digged into the > .NET/SOAP toolkit docs: they state that an application must provide > a HeaderHandler object that provides the headers before sending a > request and that consumes the headers when receiving a response. > IMO headers are not processed in any way by the SOAP toolkit but > by the provided header handling object. > > You may refer to the following link: (beware of line breaks) > http://msdn.microsoft.com/library/default.asp?url=/library/en- > us/soap/htm/so > ap_adv_6d83.asp > > Werner > [ .... deleted rest of communication .... ]