RE: LC80: frag id extensions for wsoap:header, whttp:header, wsoap:module

Jonathan,

Looks good.

Arthur Ryman,
Rational Desktop Tools Development

phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/



"Jonathan Marsh" <jmarsh@microsoft.com> 
Sent by: www-ws-desc-request@w3.org
05/17/2005 07:42 PM

To
Arthur Ryman/Toronto/IBM@IBMCA, "Hugo Haas" <hugo@w3.org>
cc
<www-ws-desc@w3.org>, <www-ws-desc-request@w3.org>
Subject
RE: LC80: frag id extensions for wsoap:header, whttp:header, wsoap:module






Casting Hugo?s option 2 into the existing wsdl.extension mechanism:
  wsdl.extension(extension-namespace, extension-specific-syntax)
 
wsoap:header:
  extension-namespace = http://www.w3.org/@@@@/@@/wsdl/soap
  extension-specific-syntax = header(parent/element))
    where:
    - parent: Pointer Part
    - element: {element} QName (xmlns pointer part required to define 
namespace part)

Example:
http://example.org/TicketAgent.wsdl20#xmlns(x=http://example.org/myns)wsdl.extension(
http://www.w3.org/@@@@/@@/wsdl/soap
,header(bindingFault(mybinding/myfault)/x:foo))


whttp:header:
  same as wsoap:header, except extension-namespace = 
http://www.w3.org/@@@@/@@/wsdl/http
 
Example:
http://example.org/TicketAgent.wsdl20#xmlns(x=http://example.org/myns)wsdl.extension(
http://www.w3.org/@@@@/@@/wsdl/soap
,header(bindingFault(mybinding/myfault)/x:foo))

 
wsoap:module:
  extension-namespace = http://www.w3.org/@@@@/@@/wsdl/soap
  extension-specific-syntax = module(parent/element))
    where:
    - parent: Pointer Part
    - element: {uri} URI (now IRI)

Example:
http://example.org/TicketAgent.wsdl20#wsdl.extension(
http://www.w3.org/@@@@/@@/wsdl/soap
,module(bindingFault(mybinding/myfault)/http://example.org/SoapModuleURI))

That seem about right?
 

From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org] On 
Behalf Of Arthur Ryman
Sent: Friday, May 13, 2005 10:36 AM
To: Hugo Haas
Cc: www-ws-desc@w3.org; www-ws-desc-request@w3.org
Subject: Re: LC80: frag id extensions for wsoap:header, whttp:header, 
wsoap:module
 

Hugo, 

There is already an generic escape hatch for extension fragments [1]. This 
is like your #2 but uses two arguments: one is the extension URI, the 
other is defined by the extension. 

[1] http://www.w3.org/TR/2005/WD-wsdl20-20050510/#wsdl.extension 

Arthur Ryman,
Rational Desktop Tools Development

phone: +1-905-413-3077, TL 969-3077
assistant: +1-905-413-2411, TL 969-2411
fax: +1-905-413-4920, TL 969-4920
mobile: +1-416-939-5063, text: 4169395063@fido.ca
intranet: http://labweb.torolab.ibm.com/DRY6/ 


Hugo Haas <hugo@w3.org> 
Sent by: www-ws-desc-request@w3.org 
05/11/2005 11:04 PM 


To
www-ws-desc@w3.org 
cc
 
Subject
LC80: frag id extensions for wsoap:header, whttp:header, wsoap:module
 


 
 




As per my action item, I have been thinking about defining fragment
identifiers for the modules that we define in Part 2.

However, the following issue crossed my mind: in order to have
meaningful fragment identifiers, they need to be defined for a
particular Internet media type. This is what we are doing in Part 1
for application/wsdl+xml.

However, Part 2 defines extensions of WSDL 2.0, and other specs will
be defining similar extensions that may in turn define WSDL 2.0
components and that will need a fragment identifier.

We will not be able to define all those fragment identifiers in our
application/wsdl+xml media type declaration in Part 1.

I see three ways forward:

1. change the way we build our URI references; e.g. have an XPointer
  syntax that is generic enough that we can use it in an extensible
  way:

  e.g.
 
  http://example.org/TicketAgent.wsdl20#wsdl.interface(TicketAgent)
  
http://example.org/TicketAgent.wsdl20#wsdl.feature(wsdl.interface(TicketAgent)/http://example.com/secure-channel)


  could become:

  http://example.org/TicketAgent.wsdl20#wsdl.id(interface(TicketAgent))
  
http://example.org/TicketAgent.wsdl20#wsdl.id(feature(wsdl.interface(TicketAgent)/http://example.com/secure-channel))


  i.e.:

  http://example.org/TicketAgent.wsdl20#wsdl.id(<whatever>)

2. keep the current syntax, but add an extensibility point for
  extensions:

  http://example.org/TicketAgent.wsdl20#wsdl.extension(<whatever>)

3. keep the status quo and not allow for extension components to be
  identified with a URI.

1 is more symmetrical than 2, but I don't think that I have a real
preference between them. 3 seems to go against our requirement R120.

However, considering the first two solutions, it seems that this
brings additional issues on the table: if I find something I don't
know in either #wsdl.id() or #wsdl.extension(), how do I know what
this means? We would probably need to have some rules for defining
identifiers, and have some text about when you get something you don't
know. This is similar to XPointer schemes: we're defining such a
scheme, and people may define additional syntax for it.

Now, with such a mechanism, identifying the components defined in Part
2 could be done with the following syntax:

? wsoap:header: <whatever> = wsoap.header(parent/element)

 with:
 - parent: Pointer Part
 - element: {element} QName serialized as <namespace URI>#<local name>

 Example:
 - Proposal 1:
   
http://example.org/TicketAgent.wsdl21#wsdl.id(wsoap.header(bindingFault(mybinding/myfault)/http://example.org/myns#foo))

 - Proposal 2:
   
http://example.org/TicketAgent.wsdl20#wsdl.extension(wsoap.header(wsdl.bindingFault(mybinding/myfault)/http://example.org/myns#foo))


? whttp:header: same as wsoap:header

? wsoap:module: <whatever> = wsoap.module(parent/uri)

 with:
 - parent: Pointer Part
 - element: {uri} URI (now IRI)

I am afraid that the syntax for extensions is starting to be fairly
complex, with 3 levels of parenthesis.

Cheers,

Hugo

-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/

Received on Thursday, 19 May 2005 14:14:48 UTC