- From: Ricky Ho <riho@cisco.com>
- Date: Thu, 03 Apr 2003 07:27:32 -0800
- To: Assaf Arkin <arkin@intalio.com>
- Cc: public-ws-chor@w3.org
Assaf,
Thinking more about the XSL/T approach. I think the AbstractPO doesn't
need to be xsd:Any. It can just be the following ...
<complexType name="AbstractPO">
<element name="shippingAddress" type="Address"/>
<element name="totalAmount" type="xsd:float"/>
</complexType>
Because you can use a handcode XSL/T to transform any concrete PO (even
EDI) to the above structure.
Rgds, Ricky
At 12:00 AM 4/3/2003 -0800, Assaf Arkin wrote:
>Ricky Ho wrote:
>
>>Assaf,
>>
>>I agree with your principle. But I just don't see how "abstract" WSDL
>>can be. Let me give an example.
>>
>>Lets say I define a choreography to handle PurchaseOrder message. I
>>don't want to constraint the message structure of this message as long as
>>it fulfill the following ...
>>
>>1) Somewhere in this "PurchaseOrder" message will contain a
>>"shippingAddress" which can be mapped to complex type "Address".
>>- But I don't want to constraint the element name of this
>>"shippingAddress", (e.g. the element name can be "shipAddr", "shipTo",
>>"sendTo" ... etc.)
>>- I also don't want to constraint such an "shippingAddress" element to
>>have the exact complex type "Address". The type can be anything as long
>>as it can be transformed (via XSL/T) into type "Address"
>
>Are we talking abstract or over-the-wire?
>
>If we're talking abstract I don't see what it brings to the table. Find
>some common name to use, agree on that name and use it. If you're looking
>for interoperating then you have to agree on using the same name. Whether
>you call it shipAddress or shipTo, you have to figure out some name to
>distinguish from billAddress or billTo.
>
>If we're talking about over-the-wire, use whatever you want. Because you
>can always XSLT transform. Let's say the abstract message uses the name
>shippingAddress. You can XSLT transform to/from an over-the-wire message
>that uses shipTo, sendTo, etc and places that element anywhere else in the
>document.
>
>So you do get:
>
>a) a declaration of what is in the message using some name everyone can
>reference
>b) abstraction to use any number of different over-the-wire messages
>c) and you can use XSTL to transform from one to the other
>
>>
>>2) Somewhere in this "PurchaseOrder" message will contain a "totalAmount"
>>which is type "float"
>>- Again, I don't want to constraint the element name of this "totalAmount".
>>- In fact, it doesn't even have to be an element. It can be an attribute.
>
>Or something you can calculate e.g. by multiplying quantity by price and
>then summing it up.
>
>
>>Can you show me how the abstract "PurchaseOrder" described above will
>>look like in WSDL ?
>
>PurchaseOrder of type xsd:anyType
>
>Essentially you want to create a situation where the seller may put some
>value in shipTo and the buyer may expect to find that value under
>shipAddr. xsd:anyType gives you that form of abstraction. Of course, it
>doesn't give you any interoperability because buyers and sellers can't
>really decide where to put what information. Or alternatively, you have to
>create too many transformations so you can't just pick a buyer/seller and
>use their service, you have to first decide on a transformation to use.
>
>So xsd:anyType is a possibilty if you want the ultimate abstraction. You
>got that. But it also points to the limitation of ultimate abstraction as
>a means to hinder interoperability or increase integration complexity,
>whichever way you want to look at it.
>
>Comments?
>
>arkin
>
>>
>>Best regards,
>>Ricky
>>
>>
>>>Conceptually I don't see why this problem would exist. You can define
>>>abstract messages with WSDL, and you can define abstract types with XSDL
>>>and then extend them in various ways (derivation, any content,
>>>substitution, etc). So my gut instict is that it's going to be a wild
>>>goose chase to work out a solution to a problem that does not exist. I
>>>would be more interested to see a specific use case which cannot be
>>>solved using these technologies and then try to tackle, rather then
>>>spend much time trying to work out a problem that can't be identified.
>>>
>>>I'm not saying WSDL and XSDL are perfect. We know there are a lot of
>>>issues with WSDL 1.1 particularly in relation to abstraction (e.g.
>>>inheritence is something that needs to be solved). The question is: are
>>>these issues that cannot possibly solved in the framework of WSDL and
>>>XSDL? Or are these things that can be solved. In the later case, should
>>>every specification that depends on WSDL/XSDL work around these
>>>limitations at the risk of further complication, or can we ask these
>>>working group to tackle specific problems we have identified.
>>>
>>>My personal opinion is that there is no conceptual issue that prevents
>>>WSDL from solving these problems, and further, that these problems are
>>>not specific to choreography. Abstraction is not something you care
>>>about only because you are doing choreography. Abstraction is important
>>>in a variety of other cases. So that's something the WSD working group
>>>need to address, and if we can identify a real use case we can give tham
>>>that information as an input.
>>>
>>>Otherwise, we're just spinning a lot of wheels and not getting any work
>>>done.
>>>
>>>arkin
>>>
>>>>
>>>>Rgds, Ricky
>>>
>
>
>--
>"Those who can, do; those who can't, make screenshots"
>
>----------------------------------------------------------------------
>Assaf Arkin arkin@intalio.com
>Intalio Inc. www.intalio.com
>The Business Process Management Company (650) 577 4700
>
>
>This message is intended only for the use of the Addressee and
>may contain information that is PRIVILEGED and CONFIDENTIAL.
>If you are not the intended recipient, dissemination of this
>communication is prohibited. If you have received this communication
>in error, please erase all copies of the message and its attachments
>and notify us immediately.
>
>
Received on Thursday, 3 April 2003 10:27:50 UTC