RE: anyURI simplification

I'll use an example of a processor you've used in the past - XPath.
Today I can find all the SOAP bindings in a WSDL doc with:

 

 
wsdl:description/wsdl:binding[@type='http://www.w3.org/@@@@/@@/wsdl/soap
']

 

That seems like a very reasonable thing to do.

 

One inconvenience that arises from modeling it as a URI in the component
model is that an implementation which now does a string compare on a
single value, would effectively have to check two values; "soap" and
"http://www.w3.org/@@@@/@@/wsdl/soap".  That would complicate the XPath
expression quite a bit.

 

Actually in the general case the URI value isn't reliably detectable.:
"../wsdl/soap" would be a valid value I think as well.  So I position
this as a tradeoff between readability and easy processing.

 

XPath provides a glimpse at a different solution modeled on function
names.  If the value were a QName, with local names reserved by the WSDL
2.0 spec family, "soap" and "http" would act like tokens, and
"my:favoriteBinding" would still be possible (and XPath processable
though it would be a hairy expression because of the mutable prefix.]

 

I'm not saying your goal isn't laudable, but it doesn't appear to be
without some cost either.

 

________________________________

From: David Orchard [mailto:dorchard@bea.com] 
Sent: Thursday, May 19, 2005 4:49 PM
To: Jonathan Marsh; WS-Description WG
Subject: RE: anyURI simplification

 

Any admonishment to use an absolute URI in the pattern or binding type
is part of the WSDL component model, so a generic XML processor with a
base other than the default that I mention that finds a relative URI
will create an incorrect URI.    And when is a generic XML processor
going to be able to do anything with a pattern or binding type URI in a
WSDL document?  We can't even do much schema validation right now, as
there are sooo many rules for generating the component model.  What is
the use case for a generic xml processor getting the "correct" uri when
the rest of the component model won't be correct or created.

 

I think we're either in the component model business or not, and the
group has decided it is.  So let's hit the 80/20 case.  

 

As for using a union type, I'd rather not use tokens but prefer to use
URIs for identifying things. 

 

Seems to me like we are saying the same thing, that is allow a token in
the instance.  Where we differ is whether a URI is always generated or
not.  

 

Dave

 

________________________________

From: Jonathan Marsh [mailto:jmarsh@microsoft.com] 
Sent: Thursday, May 19, 2005 12:47 PM
To: David Orchard; WS-Description WG
Subject: RE: anyURI simplification

 

A comment on the Roy's "elegant suggestion".  I don't find it elegant at
all.  If the specification defines a base URI for that single attribute,
generic XML processors wouldn't be able to successfully use the URI, as
the base defined by the [base URI] infoset property and the "real" base
URI as defined by our spec would be different.  If what you really want
is a mixture of tokens and absolute uris, can't you express this more
directly with a union type?

 

________________________________

From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On
Behalf Of David Orchard
Sent: Thursday, May 19, 2005 12:23 PM
To: WS-Description WG
Subject: anyURI simplification

 

Hi all,

 

I'm not sure if this has been raised as an issue or not, or how we
decided to proceed.  I find two of the anyURI attribute constructs to be
overly complex, the binding:type attribute and the operation:pattern.
Currently, the spec requires URIs rather than Qnames.  In the case of
mandatory attributes, this hinders human readability - a comment that
TimBL made when WS-Security switched from QNames to URIs for some
constructs.  The Atom working group has had a similar construct for
linking with the rel attribute.  

 

Roy made an elegent suggestion to retain anyURI but make the string more
usable.  The anyURI can be a relative URI, and the base is defined by
the specification.  In our case, this would be some WSDL URI.  If the
attribute contains just a name, it's added to the default (note not the
base uri) to form the URI.  IF the attribute is an absolute URI
(determinable from the presence of ":") then the default URI is not
used.  This means that we could have <binding type="http"> or <binding
type="soap"> or <binding type="http://example.com/myfavbinding">.  

 

The same could also be used for the operation:pattern attribute.  

 

Another alternative would be to move the binding and operation to be
more strongly typed using substitution groups as proposed many moons ago
(which I still prefer).

 

Could somebody tell me what's happened with these attrs and if this has
been discussed?

 

D

Received on Friday, 20 May 2005 14:38:23 UTC