mlw kirjutas K, 02.04.2003 kell 15:56: > Hannu Krosing wrote: > > >What you have come up with _is_not_ a SOAP v1.1 message at all. It does > >use some elements with similar names but from different namespace. > > > >the SOAP Envelope, Header and Body elemants must be from namespace > >http://schemas.xmlsoap.org/soap/envelope/ > > > [snip] > Hmm, I read "SHOULD" and "MAY" in the spec, assuming that it was not > "MUST" are you saying it is invalid if I do not use the SOAP URIs for > the name spaces? If so, no big deal, I'll change them.
AFAICS you can _leave_out_ the namespace, but not put in another, nonconforming namespace. > As for defining the namespaces, yea that's easy enough, just tack on an > attribute. > > I still don't see where putting the field definitions in the soap header > is an invalid use of that space. It is not strictly nonconforming, just not the intended use of "transparently adding" new info: 4.2 SOAP Header SOAP provides a flexible mechanism for extending a message in a decentralized and modular way without prior knowledge between the communicating parties. Typical examples of extensions that can be implemented as header entries are authentication, transaction management, payment etc. I.e. the intended use of *SOAP* Header is *not* defining the structure of the message but is rather something similar to e-mail (rfc822) Headers. The XML way of defining a message is using a DTD, XML-schema, Relax NG schema or somesuch, either embedded (forbidden for DTD's in SOAP) or referenced. Also for me the following: The Header element is encoded as the first immediate child element of the SOAP Envelope XML element. All immediate child elements of the Header element are called header entries. The encoding rules for header entries are as follows: 1. A header entry is identified by its fully qualified element name, which consists of the namespace URI and the local name. All immediate child elements of the SOAP Header element MUST be namespace-qualified. describes an element with a full embedded URI, not just namespace-qualified tagname, but I may be reading it wrong and the namespace could be defined at outer level. But defining namespace at the outer level is counterintuitive for cases where the header element is to be processed and removed by some "SOAP intermediary". Also this seems to support *not* using Header for essensial structure definitions: 4.3.1 Relationship between SOAP Header and Body While the Header and Body are defined as independent elements, they are in fact related. The relationship between a body entry and a header entry is as follows: A body entry is semantically equivalent to a header entry intended for the default actor and with a SOAP mustUnderstand attribute with a value of "1". The default actor is indicated by not using the actor attribute (see section 4.2.2). This suggests that putting the structure definition as 1-st Body element and data as second would be equivalent to putting structure in Header ----------------- Hannu ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])