W3C home > Mailing lists > Public > www-ws-desc@w3.org > May 2005

RE: anyURI simplification

From: Jonathan Marsh <jmarsh@microsoft.com>
Date: Fri, 20 May 2005 07:37:50 -0700
Message-ID: <7DA77BF2392448449D094BCEF67569A5079E9090@RED-MSG-30.redmond.corp.microsoft.com>
To: "David Orchard" <dorchard@bea.com>, "WS-Description WG" <www-ws-desc@w3.org>
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:




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





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?


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

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:54:53 UTC