Re: issue: support cross references within a WSDL file using ncnames?

Following on from my own post;

I also think that having targetNamespace='urn:foo:bar' and
xmlns:this='urn:foo:bar' is perfectly coherent.

The targetNamespace AII qualifies all named constructs in the language. It
*NEVER* plays a part in QName resolution.

References in the language are QNames. QNames requires namespace decls in
order to be resolved. xmlns:this is a namespace decl.

We have a namespace decl whose value is the same as the value of the
targetNamespace AII so that we can refer to constructs in the
targetNamespace. When we start building things from multiple namespaces
we'll need namespace decls for those namespaces too.

I think this 'point of confusion' arises because people don't understand
namespaces, namespace decls, QName resolution and interaction with
targetNamespace. Not using default namespaces in our examples would help
people to understand.

Gudge


----- Original Message -----
From: "Martin Gudgin" <martin.gudgin@btconnect.com>
To: "Jonathan Marsh" <jmarsh@microsoft.com>; <www-ws-desc@w3.org>
Sent: Wednesday, April 17, 2002 8:59 AM
Subject: Re: issue: support cross references within a WSDL file using
ncnames?


> I would suggest we leave WSDL in line with XML Schema. In XML Schema the
> name AIIs of things are all NCNames and the names of things at the
top-level
> ( child EIIs of the schema EII ( let's forget about keys for now )) become
> part of the target namespace for that schema. So the full name of such
> constructs is a QName; {namespace name, localname}. All references in
schema
> are QNames; element refs, attribute refs, group refs, attribute group refs
> and type refs ( again leaving keys out )
>
> This AFAIR is the state of affairs in WSDL today WRT message, portType and
> binding. All of these constructs have a name AII which becomes part of the
> target namespace. message EIIs are referred to by message AIIs on input,
> output and fault EIIs. portType EIIs are referred to by the type AII on a
> binding EII. binding EIIs are referred to by the binding AII on a port
EII.
>
> The element and type AIIs on part EIIs can also be used to refer to
> constructs in XML Schema in the same way.
>
> This approach works. It's been proven to work in XML Schema. It deals well
> with constructs from multiple namespaces. It helps when building modular
> descriptions. I can't see any reason why we would want to move away from
> this.
>
> Gudge
>
> ----- Original Message -----
> From: "Jonathan Marsh" <jmarsh@microsoft.com>
> To: <www-ws-desc@w3.org>
> Sent: Tuesday, April 16, 2002 10:34 PM
> Subject: RE: issue: support cross references within a WSDL file using
> ncnames?
>
>
> > Hmmm, I got something completely different, and less fundamental, out of
> > the discussion of this issue at the FTF.
> >
> >   <definitions name="StockQuote"
> >       targetNamespace="http://example.com/stockquote.wsdl"
> >       xmlns:tns="http://example.com/stockquote.wsdl"
> >       ...>
> >     <portType name="StockQuotePortType"
> >       ...
> >     </portType>
> >     <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
> >       ...
> >     </binding>
> >     ...
> >   </definitions>
> >
> > What I thought Keith said at the FTF is that it is common to forget the
> > "tns:" in the binding/type attribute.  The type attribute looks like a
> > reference to the name attribute, but the lexical values don't match.
> > That is, the targetNamespace attribute acts as a kind of default
> > namespace for name attributes, but not for type attributes.  It's a bit
> > confusing that xmlns declarations aren't used for placing something in
> > the namespace, but they are used for referring to that something.  The
> > redundancy of the information carried by the targetNamespace and
> > xmlns:tns attributes clearly shows that parallel mechanisms are
> > employed.
> >
> > Some possible (mostly syntactic) solutions are:
> > 1) Make both name and type QNames.  But then it's different from XML
> > Schema.
> > 2) Make both name and type NCNames.  But then it's different from XML
> > Schema.
> > 3) Make the type attribute recognize the default namespace of the WSDL
> > document -- I think that's the suggestion in the issue text.  But then
> > it's not a real xs:QName.
> > 4) Make sure the spec or primer addresses this point of confusion
> > thoroughly.  But then who reads the spec :-).
> >
> > Did I totally miss Keith's point?
> >
> > > -----Original Message-----
> > > From: Sanjiva Weerawarana [mailto:sanjiva@watson.ibm.com]
> > > Sent: Friday, April 12, 2002 9:21 PM
> > > To: www-ws-desc@w3.org
> > > Subject: issue: support cross references within a WSDL file using
> > ncnames?
> > >
> > > The WG would like to solicit your comments on whether we should
> > > support references within a WSDL document with just an NCName
> > > instead of always requiring a QName.
> > >
> > > Here's the issue from the latest part1 document:
> > >
> > > <issue id="issue-references-with-qname">
> > >   <head>Should intra-namespace references using only localParts be
> > >         supported?</head>
> > >   WSDL 1.1 requires all references to be QNames. For example, a
> > >   reference to a portType from a binding element must always use
> > >   a QName even if that portType is in the same namespace and even
> > >   if it is defined in the same document. It would be convenient
> > >   to support local part references for intra-namespace references.
> > >   <source>Sanjiva Weerawarana</source>
> > > </issue>
> > >
> > > Sanjiva.
> >
>

Received on Wednesday, 17 April 2002 04:05:43 UTC