Re: PostgreSQL and SOAP, suggestions?

From: Hannu Krosing <hannu(at)tm(dot)ee>
To: mlw <pgsql(at)mohawksoft(dot)com>
Cc: swampler(at)noao(dot)edu, jfelice(at)cronosys(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: PostgreSQL and SOAP, suggestions?
Date: 2003-04-02 21:51:56
Message-ID: 1049320316.2719.28.camel@fuji.krosing.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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 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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Merlin Moncure 2003-04-02 21:55:56 Re: Dangling backends on win32 7.2.1 port (peerdirect).
Previous Message Peter Eisentraut 2003-04-02 21:42:55 Re: PostgreSQL and SOAP, suggestions?