Re: PostgreSQL and SOAP, suggestions? - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: PostgreSQL and SOAP, suggestions?
Date
Msg-id 1049320316.2719.28.camel@fuji.krosing.net
Whole thread Raw
In response to Re: PostgreSQL and SOAP, suggestions?  (mlw <pgsql@mohawksoft.com>)
List pgsql-hackers
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
betweenthe 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
childelements 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
thelocal 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
bodyentry and a header entry is as follows: A body entry is semantically equivalent to a header entry intended for the
defaultactor and with a SOAP mustUnderstand attribute with a value of "1". The default actor is indicated by not using
theactor 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



pgsql-hackers by date:

Previous
From: "Merlin Moncure"
Date:
Subject: Re: Dangling backends on win32 7.2.1 port (peerdirect).
Next
From: mlw
Date:
Subject: Re: contrib and licensing