RE: issue: optional parts in <message>?

It might be useful to compare two ways of describing a four-part
message. This:

<wsdl:message name="MyMessage" >
  <wsdl:part name="a" type="xsd:string" />
  <wsdl:part name="b" type="xsd:string" />
  <wsdl:part name="c" type="xsd:string" />
  <wsdl:part name="d" type="xsd:string" />
</wsdl:message>

Becomes this:

<xsd:element name="MyMessage" >
  <xsd:sequence>
  <wsdl:element name="a" type="xsd:string" />
  <wsdl:element name="b" type="xsd:string" />
  <wsdl:element name="c" type="xsd:string" minOccurs="0" />
  <wsdl:element name="d" type="xsd:string" minOccurs="0" />
  </xsd:sequence>
</xsd:element>
<!-- implies this message declaration in WSDL -->
<wsdl:message name="MyMessage" >
  <wsdl:part name="parameters" element="MyMessage" />
</wsdl:message>

Note "parts" c and d are marked optional using the already-defined
minOccurs facet in XML Schema.

Now what if "part" d is a "foreign" type, for example some ASN.1 doodad?
Assuming we have agreed on an appropriate definition of the asn.1
namespace. This:

<wsdl:message name="MyMessage" >
  <wsdl:part name="a" type="xsd:string" />
  <wsdl:part name="b" type="xsd:string" />
  <wsdl:part name="c" type="xsd:string" />
  <wsdl:part name="d" type="asn.1:doodad" />
</wsdl:message>

Becomes:

<xsd:element name="MyMessage" >
  <xsd:sequence>
  <wsdl:element name="a" type="xsd:string" />
  <wsdl:element name="b" type="xsd:string" />
  <wsdl:element name="c" type="xsd:string" minOccurs="0" />
  <wsdl:element name="d" minOccurs="0" asn1:type="doodad" />
  </xsd:sequence>
</xsd:element>
<!-- implies this message declaration in WSDL -->
<wsdl:message name="MyMessage" >
  <wsdl:part name="parameters" element="MyMessage" />
</wsdl:message>

Note that the type of "part" d is indicated in both. In the latter,
"part" d omits the xsd:type attribute, defaulting to any content.

This does beg the question about the value of the wsdl:message
construct. Why don't we focus WSDL on operational types and leverage the
good work done on representational types by the XML Schema WG?

--Jeff

-----Original Message-----
From: Prasad Yendluri [mailto:pyendluri@webmethods.com] 
Sent: Wednesday, May 01, 2002 2:52 PM
To: Jeffrey Schlimmer
Cc: WS-Desc WG (Public)
Subject: Re: issue: optional parts in <message>?



Jeffrey Schlimmer wrote:

> XML Schema provides a rich, well-understood language for expressing
> choices, sequences, optional, repeated, etc. constructs. It does not
> seem like a good use of the WG time to re-invent such a mechanism.

I don't believe it is re-inventing the entire mechanism. The spec allows
multiple parts in a message for a reason (when this can be captured by
the
schema as well) these represent abstract parts coming from potentially
different type-systmes and some perhaps well established schemas (e.g. a
OAG
BOG). The addition being called for is marking the parts optional at the
message level.

> Are there any interesting arguments against removing the message
element
> and making the operation within a port type point directly to an XML
> Schema global element declaration?

That would amount to doing away with the abstract types and other type
systems and settling only on XMLSchema?

> --Jeff
>
> -----Original Message-----
> From: Sanjiva Weerawarana [mailto:sanjiva@watson.ibm.com]
> Sent: Wednesday, May 01, 2002 1:18 PM
> To: WS-Desc WG (Public)
> Subject: issue: optional parts in <message>?
>
> <issue id="issue-message-parts">
>   <head>Should the message part mechanism be extended to support
> optional
>         parts etc.?</head>
>   In WSDL 1.1, a message can only be defined to be a sequence of
parts.
>   It is not possible to indicate that certain parts may be optional,
>   may occur multiple times, etc.? Should we do that? Overlapping with
>   XML Schema's mechanisms is an obvious concern.
>   <source>Sanjiva Weerawarana</source>
> </issue>
>
> Could we also start discussing this issue please?
>
> Sanjiva.

Received on Wednesday, 1 May 2002 22:02:44 UTC