- From: David Orchard <dorchard@bea.com>
- Date: Wed, 28 Sep 2005 15:03:21 -0700
- To: <public-ws-addressing@w3.org>
- Message-ID: <32D5845A745BFB429CBDBADA57CD41AF1342D789@ussjex01.amer.bea.com>
I'd like to add another few options for i057, to specify ref params in
WSDL.
Option #3: re-use WS-Addressing ReferenceParameters construct in WSDL
The proposal is that the wsa:ReferenceParameters can be a child element
of a wsdl20 endpoint or a wsdl 11 port.
An inventory service might look like
<wsdl20:service name="InventoryService" interface="fabrikam:Inventory">
<wsdl20:endpoint name="ep1" binding="abc:soap-http-binding"
address="http://example.com/fabrikam/acct">
<wsa:ReferenceParameters
xmlns:wsa="http://www.w3.org/@@@@/@@/addressing"
xmlns:fabrikam="http://example.com/fabrikam">
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsdl20:endpoint>
</wsdl20:service>
Option #4: re-use WSDL constructs.
Proposal is to re-use WSDL constructs in endpoints, such as wsdl 2.0
wsoap:header in wsdl 20 endpoint.
<wsdl20:types>
<xs:element name="CustomerKey" >
<xs:simpleType>
<xs:restriction base='string'>
<xs:pattern value='123456789'/>
<xs:attribute ref="wsaw:isReferenceParameter" fixed="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ShoppingCart" >
<xs:simpleType>
<xs:restriction base='string'>
<xs:enumeration value='123456789'/>
<xs:attribute ref="wsaw:isReferenceParameter" fixed="true"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</wsdl20:types>
<wsdl20:service name="InventoryService" interface="fabrikam:Inventory">
<wsdl20:endpoint name="ep1" binding="abc:soap-http-binding"
address="http://example.com/fabrikam/acct"/>
<wsoap:header element="CustomerKey"/>
<wsoap:header element="ShoppingCart"/>
</wsdl20:service>
Option #5: re-use EPRs inside WSDL
Existing proposal to re-use EPR, roughly option #3 of issue 56
<wsdl20:service name="InventoryService" interface="fabrikam:Inventory">
<wsdl20:endpoint name="ep1" binding="abc:soap-http-binding"
address="http://example.com/fabrikam/acct"/>
<wsa:EndpointReference
xmlns:wsa="http://www.w3.org/@@@@/@@/addressing"
xmlns:wsaw="http://www.w3.org/2005/03/addressing/wsdl"
xmlns:fabrikam="http://example.com/fabrikam"
xmlns:wsdli="http://www.w3.org/2005/08/wsdl-instance"
wsdli:wsdlLocation="http://example.com/fabrikam
http://example.com/fabrikam/fabrikam.wsdl">
<wsa:Address>http://example.com/someotheracct</wsa:Address>
<wsa:Metadata>
<wsaw:InterfaceName>fabrikam:Inventory</wsaw:InterfaceName>
</wsa:Metadata>
<wsa:ReferenceParameters>
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsa:EndpointReference>
</wsdl20:service>
Option #6: re-use EPRs inside WSDL replacing wsdl20 endpoint (Glen's
fav)
<wsdl20:service name="InventoryService" interface="fabrikam:Inventory">
<wsa:EndpointReference
xmlns:wsa="http://www.w3.org/@@@@/@@/addressing"
xmlns:wsaw="http://www.w3.org/2005/03/addressing/wsdl"
xmlns:fabrikam="http://example.com/fabrikam"
xmlns:wsdli="http://www.w3.org/2005/08/wsdl-instance"
wsdli:wsdlLocation="http://example.com/fabrikam
http://example.com/fabrikam/fabrikam.wsdl"
name="ep1" binding="abc:soap-http-binding">
<wsa:Address>http://example.com/someotheracct</wsa:Address>
<wsa:Metadata>
<wsaw:InterfaceName>fabrikam:Inventory</wsaw:InterfaceName>
</wsa:Metadata>
<wsa:ReferenceParameters>
<fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
<fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
</wsa:ReferenceParameters>
</wsa:EndpointReference>
</wsdl20:service>
Received on Wednesday, 28 September 2005 22:03:33 UTC