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
> >
> >
> [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)

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

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

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

  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


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to