RE: service name as local part of a qname

+1 to making the change both to the uniqueness of the port@name
(discussed earlier at [1]) and to removing the wording that implies that
it must not be reference-able as a QName.

FYI, the change to make port@name unique within a service has already
been made to the XML Schema for WSDL 1.2. From [2]:

<xs:element name="service" type="wsdl:tService">
  <xs:unique name="port">
    <xs:selector xpath="wsdl:port"/>
    <xs:field xpath="@name"/>
  </xs:unique>
</xs:element>

[1] http://lists.w3.org/Archives/Public/www-ws-desc/2002Jun/0173.html
[2] http://dev.w3.org/cvsweb/~checkout~/2002/ws/desc/wsdl12/wsdl12.xsd 

-----Original Message-----
From: Sanjiva Weerawarana [mailto:sanjiva@watson.ibm.com] 
Sent: Saturday, June 29, 2002 6:37 PM
To: www-ws-desc@w3.org; Steve Tuecke
Subject: Re: service name as local part of a qname


"Steve Tuecke" <tuecke@mcs.anl.gov> writes:
> Section 2.6 Service Description Component states:
>
> "A port has a REQUIRED "name" property, which is used to identify this
> port. The name property MUST be unique across the entire descriptions
group
> in which the containing service description component resides. Note
that
> while the name property is of type NCName, it SHALL NOT be used as the
> localPart of a qualified name with the targetNamespace of the
containing
> descriptions group as the namespace name."
>
> Sorry if I missed this discussion previously, but why is there the
> restriction on using the name property as the local part of a
qualified
> name?  This seems to be a new restriction since WSDL 1.1.

First of all, note that this text is talking about *port* names
and not *service* names.

This is not a new restriction. Here's the text from WSDL 1.1
(from section 2.6):

    "The name attribute provides a unique name among all ports
     defined within in the enclosing WSDL document."

Your note reminded me that I felt that this restriction was a bit
arbitrary as ports live within a service element. It seems much
more natural to me to say that portNames must be unique *within*
the service that the ports are defined in. Requiring them to be
unique across all ports defined in the enclosing *document* is
rather weird, especially in light of imports and such. I have
introduced the following issue:

<issue id="issue-port-name-uniqueness">
  <head>Should portName uniqueness be restricted to be across the
        containing service only?</head>
  <source>Sanjiva Weerwarana</source>
  <p>Since ports are within &lt;service&gt; elements, it seems much
     more natural to say that the port name must be unique across the
     containing service element only. Requiring them to be unique
     across all ports defined in the enclosing <emph>document</emph>
     is rather weird, especially in light of imports and such. I
     propose relaxing this requirement to say it must be unique within
     the enclosing service element.</p>
</issue>

> There is obviously no need for it to be a qname within the closed
universe
> of WSDL, since nothing else in WSDL needs to refer to a service
> element.  However, if I want to be able to unambiguously refer to a
> particular service from elsewhere (i.e. some application specific
XML), it
> seems very useful to be able to use the service name as the local part
of
a
> qualified name.
>
> Also, given this restriction, then what is the point of naming the
service
> at all?  What else is that name used for?

*Service* element names are referenceable and are regular QNames. The
issue here is about ports. Do you agree?

Bye,

Sanjiva.

Received on Tuesday, 2 July 2002 14:27:31 UTC