OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [wsbpel] Issue - 157 - Proposal For Vote


Alex,

As I said near the beginning of this thread, your proposal for 157
remains the one we have to work with unless we have a fully fleshed out
XSLT alternative.  Which is why I asked Yuzo if he thought that our
XPath work in 103 would carry over (and I should have added: there would
be no new demons to chase a la 103).  We have clearly established an
Infoset based way of dealing with these issues to maintain language
independence and so we would have to make sure that carried over to
XSLT.  I am still concerned that there might be a 103 sized problem
there.

In short my position is as follows:

1.  BPEL is not the place to specify sophisticated XML data handling.
There are plenty of other efforts doing that.

2.  We have a minimal data *copying* feature in assignment/copy and we
should preserve that capability, without trying to extend it with
additional features defined in BPEL.  This is what your work on 157 is
doing and I would urge that the 157 proposal stick with the intent of
the current copy semantics as is.

3.  Reducing the exposure of BPEL to XML data manipulation further
through XSLT or other means by "outsourcing" the equivalent of copy is
desirable but we have to balance that against the work required to make
it happen.  We cannot do this without providing an infoset based model
to make sure that we are not tied to XSLT or any other external language
in an irrevocable way.

I would like to see issue 11 addressed using either point 1 or point 3.
Point 1 means this is outside our scope and we will not address it.
Point 3 also means it is outside our scope but we are able to outsource
the work effectively to some other spec.

Satish

-----Original Message-----
From: Alex Yiu [mailto:alex.yiu@oracle.com] 
Sent: Tuesday, June 07, 2005 12:17 AM
To: Satish Thatte
Cc: ygoland@bea.com; Yuzo Fujishima; wsbpeltc; Assaf Arkin; Danny van
der Rijn; Charlton Barreto; Alex Yiu
Subject: Re: [wsbpel] Issue - 157 - Proposal For Vote


Hi Satish,

Just to clarify, I support adding XSLT approach to BPEL, as long as it 
does not replace <copy>.

I presume I would be one of persons to continue fleshing out the 
proposal for Issue 157 to clarify the semantics of <copy>.  :-)
 

Regards,
Alex Yiu



Satish Thatte wrote:

>Alex,
> 
>It is obvious that you have a strong viewpoint on this but there seems
to be enough of a feeling that we can actually use XSLT to derive
equivalent functiionality to copy that it would be fair to present two
proposals to the TC with pros and cons attached, and let the TC make a
choice.
> 
>In my mind this is the most important open issue right now, followed by
6.  I think we should take care of 11 using XSLT, as Yaron says.  The
question remains whether we can also deal with 157 with that same
approach.
> 
>I would be very happy to see a formal fleshed out XSLT based proposal
for 157 which addresses or at least counters Alex's objections, but
don't feel qualified to make one myself.
> 
>Satish
>
>________________________________
>
>From: Alex Yiu [mailto:alex.yiu@oracle.com]
>Sent: Mon 6/6/2005 4:15 PM
>To: ygoland@bea.com
>Cc: Satish Thatte; Yuzo Fujishima; wsbpeltc; Assaf Arkin; Danny van der
Rijn; Charlton Barreto; Alex Yiu
>Subject: Re: [wsbpel] Issue - 157 - Proposal For Vote
>
>
>
>Yaron, 
>
>[A]
>This is NOT an implementation issue.
>But, this is a language semantics and specification issue. 
>
>I add a reply to explain this with an example later.
>
>[B] 
>BTW, can someone show me an XSLT implementation that will actually
modify the source tree without generating a seperate result tree?
(Please read my quotation from XSLT spec: "The result tree is separate
from the source tree."). If that XSLT implementation does not violate
the spec, I don't know what implementation will violate the spec. :-)  
>
>[C]
>To clarify, I don't mind ADDING an optional "stylesheet" attribute to
the from-spec. I think that is a good feature, as long as current <copy>
functionalities are kept. 
>
>BTW, I am curious who voted to close Issue 48 without changes. :-) 
>If the group really likes the transform features, let us EITHER open a
new issue similar which is somewhat equivalent  to Issue 48 OR re-group
the XSLT feature under Issue 11. 
>
>
>Thanks!
>
>
>Regards,
>Alex Yiu
>
>
>
>Yaron Y. Goland wrote: 
>
>	I don't see any of Alex's issues as being show stoppers. 
>	
>	Yes, XSLT is a replace. So what? A dump implementation will be
expensive and a smart implementation will be cheap. What else is new? 
>	
>	As for the vote, the group agreed to keep assign and copy
semantics, I would argue that XSLT provides those copy semantics so I
don't see this action as violating the word or spirit of the motion. 
>	
>	Using XSLT would drastically simplify the specification, allow
us to avoid re-inventing a whole stack of wheels, provide all the
functionality we wanted from copy and resolve issue 11. Using XSLT seems
like a winner to me. 
>	
>	        Yaron 
>	
>	Alex Yiu wrote: 
>	
>
>
>		Hi all, 
>		
>		Yuzo, thank you for the sample example also. 
>		
>		_*[A] Nature of XSLT*_ 
>		
>		The same old reminder to people: XSLT and XQuery are
used to _create *NEW* documents or XML fragments based on an existing
piece of XML data_. 
>		
>		Quotation--1:  from the Introduction of XSLT 1.0 Spec: 
>		-------------------------------------- 
>		A transformation expressed in XSLT describes rules for
_transforming a source tree into a result tree_. The transformation is
achieved by associating patterns with templates. A pattern is matched
against elements in the source tree. A template is instantiated to
_*create* part of the result tree_. _The result tree is *separate* from
the source tree_. The structure of the result tree can be completely
different from the structure of the source tree. ... 
>		... 
>		_A template is *instantiated* for a particular source
element_ to _*create* part of the result tree_. A template can contain
elements that specify literal result element structure. A template can
also contain elements from the XSLT namespace that are _instructions for
*creating* result tree_ fragments. When a template is instantiated, each
instruction is executed and replaced by the result tree fragment that it
creates. 
>		-------------------------------------- 
>		
>		[Note: "replace" here does NOT mean replace the
source-tree. It means: replace the instructions in the template with
execution result. Think of any web-page-template engine. e.g.: ASP, JSP,
PHP.] 
>		
>		Typically, an XSLT has a default "catch-all-else" copy
rule similar to below to do a copy any nodes from source tree to result
tree without any transformation: 
>		----------------------------- 
>		
>		    <xsl:template match="@*|node()"> 
>		        <xsl:copy> 
>		            <xsl:apply-templates select="@*|node()"/> 
>		        </xsl:copy> 
>		    </xsl:template> 
>		
>		----------------------------- 
>		
>		Quotation--2:   [ http://www.w3.org/TR/xslt#copying ] 
>		------------------------------- 
>		The xsl:copy element provides an easy way of _*copying*
the current node_. _Instantiating the xsl:copy element creates a copy of
the current node_. 
>		------------------------------- 
>		
>		If the result tree was NOT a distinct copy from the
source tree, the above <xsl:copy> would  not be needed. In fact, if the
above "catch-all-else" copy rule are _NOT used in XSLT_, most of nodes
(if not all) in the _source tree will NOT be present in / copied to the
result tree_. 
>		
>		I hope the above quotations are good enough to prove
that XSLT creates NEW documents but NOT replacing any existing docs.  If
not, we just need to cross reference to our W3C rep in XPath, XSLT, and
XQuery WG - TRIO in W3C. 
>		
>		Furthermore, XSLT is a non-procedural language. If
executation of XSLT were allowed to modify any source or existing XML
Document, its semantics can be extremely difficult to be defined. E.g.
Will rules in XSLT be re-fired, if the source document got changed?
(very hairy business there. Will it result in infinite loop?) 
>		
>		In short, XSLT is used to create new documents. _When
the base document is large and delta is small, the runtime efficiencies
of such an XSLT will be inheritly low. _ 
>		
>		
>		_*[B] How to apply XSLT in BPEL *_ 
>		
>		Yuzo's example illustrates one of the possible ways to
interprete Assaf's original suggestion to apply XSLT in BPEL  [i.e. (1b)
below]. 
>		
>		*(1)* _Using XSLT to transform a variable or a variable
part:_ 
>		
>		    *(1a)* Refering to a variable or a variable part as
the source document: 
>		    -------------------------------- 
>		    <assign> 
>		        ... 
>		        <transform variable="var1" part="part1" 
>		                stylesheet="http://foo.com/my.xslt";
<http://foo.com/my.xslt>  /> 
>		                outputVariable="var2" outputPart="part1"
/> 
>		        ... 
>		    </assign> 
>		    -------------------------------- 
>		    Or alternatively using a syntax closer to existing
<copy>: 
>		    -------------------------------- 
>		    <assign> 
>		        ... 
>		        <copy> 
>		             <from variable="var1" part="part1" 
>		                stylesheet="http://foo.com/my.xslt";
<http://foo.com/my.xslt>  /> 
>		             <to variable="var2" part="part1" /> 
>		        </copy> 
>		        ... 
>		    </assign> 
>		    -------------------------------- 
>		
>		    *(1b)* Embedding XSLT into BPEL with variable
bindings: 
>		    Examples would be very similar to what Yuzo has
provided. 
>		
>		    (1a) and (1b) are not that different. One allows
multiple input variables, 
>		    while the other allows one variable only. One uses
embedded XSLT, one refers 
>		    the XSLT by a URI. 
>		
>		_*(2)* Still using 100% of current <assign>/<copy>
syntax._ 
>		
>		    E.g.: 
>		    --------------------------- 
>		    <assign> 
>		        <copy> 
>		           <from>$var/p:abc/p:def</from> 
>		           <to>$var/p:ghi/p:def</to> 
>		        </copy> 
>		    </assign> 
>		    --------------------------- 
>		    However, when one try to define its semantics of
syntax, one may reuse 
>		    fragments of definitions from XSLT (e.g.
"xslt:copy", "xslt:copy-of", 
>		    "xslt:value-of") 
>		
>		
>		_*KEY POINTS to analysis about XSLT facilities:*_ 
>		
>		    * The biggest difference between (1) and (2) is: the
granularity of replacement: 
>		      ==>  _variable or msg-part *VS* any node within a
variable or a msg-part 
>		
>		      _ 
>		    * I would emphasize that the _replacement of any
node is a big part of 
>		      <assign>/<copy> logic in BPEL 1.1_. Since we
passed to keep 
>		      <assign>/<copy> functionalities, we MUST/SHOULD
keep this part of 
>		      functionality as well. And, not having the
capabilities of a smaller 
>		      granularity of replacement has a _BIG impact on
efficiency of <assign>_. 
>		
>		      For example: in order to replace a small zip code
field of a large PO 
>		      documents (e.g. 100 line items), we would
effectively copy all those 100 
>		      line items. That is NOT an
implementation-dependent issue. The XSLT spec 
>		      clearly shows its intention (see the quotations
above). 
>		
>		    * And, leveraging XSLT can be _a totally orthogonal
add-on feature to the 
>		      current <assign>/<copy>_. For example: XSLT
features in (1a) and (1b) can 
>		      be _extended and blended with existing <copy>
features_: 
>		
>		    -------------------------------- 
>		    <assign> 
>		        ... 
>		        <copy> 
>		             <from> 
>		                 _<transform>_ 
>		                    <!-- embedded XSLT code ... 
>		                         similar to Yuzo's example --> 
>		                 _<transform>_ 
>		             </from> 
>		             <to> *$var2.part1/p:lineItem[10]* </to> 
>		        </copy> 
>		        ... 
>		    </assign> 
>		    -------------------------------- 
>		
>		    -------------------------------- 
>		    <assign> 
>		        ... 
>		        <copy> 
>		             <from variable="var1" part="part1" 
>		                _stylesheet="http://foo.com/my.xslt";
<http://foo.com/my.xslt> _ /> 
>		             <to> *$var2.part1/p:lineItem[10]* </to> 
>		        </copy> 
>		        ... 
>		    </assign> 
>		    -------------------------------- 
>		
>		    * The "xslt:copy", "xslt:copy-of", "xslt:value-of"
are used  to _*append*_ 
>		      the execution result of "xslt:*" into the current
result tree, which is 
>		      being created brand-new. It _has NO definition on
how to do node 
>		      replacement_ for an existing doc tree. Regardless
whether we go (1a), (1b) 
>		      or (2), we still need to define a table very
similar to the table in my 
>		      previous Issue 157 email. E.g.: 
>		
>		      Src\Dest 
>		          EII 
>		          AII/TII 
>		      EII with 
>		      Complex-Content 
>		          RE 
>		          F 
>		      EII with 
>		      Simple-Content 
>		          RE 
>		          RC 
>		      AII/TII 
>		          RC 
>		          RC 
>		
>		
>		      Because, we need to define the semantics on how to
replace the value 
>		      pointed by the to-spec withe result of the XSLT
transformation. E.g. there 
>		      should be a fault, if one tries to fill in a
simple-typed variable with an 
>		      element of complex content.  (i.e. the Fault
caseas denoted by "F" above). 
>		
>		      Even if somebody tries to cut the corner by
removing the capabilties to 
>		      replace a smaller granularity of variable tree, it
will NOT make the 
>		      definition simplier. Because, the copy/replacement
behavior on Attribute 
>		      (AII) and Text (TII - from simple-typed variable)
are virtually the same. 
>		      (See the table above) 
>		
>		      In short, _attempt to leverage XSLT concept to
simplify Issue 157_ is just 
>		      a _*"false hope of economy"*_. On the other hand,
adding XSLT to BPEL 
>		      (under Issue 48 or Issue 11) does have its merits
in a sense. 
>		
>		    * To define an XSLT to just do simple-type
manipulation is just awkard and 
>		      anti-ease-of-use. Think of about the case that one
needs to increase an 
>		      counter value. With current <copy>, it is straight
forward and easy: 
>		      <assign> 
>		              <copy> <from>$count + 1 </from> <to>
$count </to> </copy> 
>		      </assign> 
>		
>		      Try to do that with an XSLT. ;-)  ... Possible but
clumsy. 
>		
>		    * Currently, <assign>/<copy> and Issue 103 are
_data-model independent_. 
>		      That is, we have no bias to any expression
language. If BPEL's only 
>		      operation under <assign> has such a strong
dependency on XSLT1.0, the 
>		      BPEL's expression language independence would be
destroyed.  (If BPEL spec 
>		      ever enforces any data model in future, we should
enforce XPath 2.0 data 
>		      model, because of its schemaful nature, instead of
XPath1.0/XSLT1.0.) 
>		
>		
>		[Side note: Between (1a) and (1b), I prefer (1a),
because I am afraid that we would go through another issue 103 exercise,
even though we may be able to reuse a number of definitions from Issue
103. ] 
>		
>		
>		
>		_*[C] Summary*_ 
>		
>		Main goals for Issue 157: 
>		
>		    * _to clarify the semantics of <copy>_ 
>		          o The typical and trivial cases in the table
<copy> logic are quite 
>		            clear already. That's why there are more
than 3 companies coming up 
>		            with interpretation in those cases. All we
need to clarify those 
>		            corner cases (e.g. when a standard runtime
fault would happen). 
>		    * _NOT to re-define <copy>_ into a completely
different animal and causing 
>		      all sorts of un-resolvable backward compatibility
problems. 
>		          o We have passed a binding resolution to keep
<assign>/<copy>. _If we 
>		            defined XSLT transform as the only operation
under <assign>_, that 
>		            is virtually getting rid of <copy>. I would
argue that is a _direct 
>		            violation to our binding resolution_ in the
F2F in Palo Alto. 
>		    * Let us focus finish the clarification of <copy> in
Issue 157 and call it a 
>		      day. :-) 
>		          o I am happy to see a standardized XSLT
transform construct also, if 
>		            we want to _*add *XSLT stylesheet attribute
on top of from-spec_. 
>		            But, _let's put it into Issue 48 or Issue
11_. 
>		
>		
>		
>		Thank you for reading such a long email! 
>		
>		
>		
>		
>		Regards, 
>		Alex Yiu 
>		
>		
>		
>		
>		Satish Thatte wrote: 
>		
>		
>
>			Yuzo, 
>			
>			Thanks for the example.  I will study it.  It
seems to me that you have used XPath variable binding in the template,
which assumes that our current Xpath variable binding mechanism would
carry over without additional work.  Is that your understanding? 
>			
>			Satish 
>			
>			________________________________ 
>			
>			From: Yuzo Fujishima
[mailto:fujishima@bc.jp.nec.com] 
>			Sent: Sat 6/4/2005 8:11 AM 
>			To: Satish Thatte; wsbpeltc 
>			Cc: Assaf Arkin; Danny van der Rijn; Charlton
Barreto 
>			Subject: Re: [wsbpel] Issue - 157 - Proposal For
Vote 
>			
>			
>			
>			I don't quite see what are the problems. 
>			
>			I've written an example and attached the files
used. 
>			(Apply assign.xsl to var1.xml. Then you'll get
newVar1.xml.) 
>			
>			Suppose we want to assign from var2 and var3 to
var1. 
>			
>			In that case, we write something similar to
assign.xsl (excluding the 
>			variable binding part) within an assign
activity. 
>			Perhaps we should rename the activity to
"transform". 
>			
>			The activity should look like below: 
>			
>			<transform variable="var1"> 
>			<xsl:stylesheet version="1.0" 
>
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
<http://www.w3.org/1999/XSL/Transform> > 
>			   <xsl:template match="orderNumber"> 
>			       <xsl:element name="orderNumber"> 
>			           <xsl:value-of
select="$var2/purchaseOrder/orderNumber"/> 
>			       </xsl:element> 
>			   </xsl:template> 
>			   <xsl:template match="billingAddress"> 
>			       <xsl:element name="billingAddress"> 
>			           <xsl:copy-of
select="$var3/customers/customer[ 
>
@id=$var2/purchaseOrder/buyerId]/address/*"/> 
>			       </xsl:element> 
>			   </xsl:template> 
>			   <xsl:template match="@*|node()"> 
>			       <xsl:copy> 
>			           <xsl:apply-templates
select="@*|node()"/> 
>			       </xsl:copy> 
>			   </xsl:template> 
>			</xsl:stylesheet> 
>			</transform> 
>			
>			Those parts of var1 that need not be modified
are copied 
>			by <xsl:template match="@*|node()"> template.
Pretty simple 
>			and idiomatic. 
>			
>			I noticed that the use of XSLT may sometimes
result in 
>			more efficient (rather than inefficient)
processing 
>			because multiple assigns can be bunched together
to form 
>			one transformation. 
>			
>			How do you like above? 
>			
>			Yuzo Fujishima 
>			NEC Corporation 
>			
>			Satish Thatte wrote: 
>			  
>			
>			
>
>				Alex has pointed out various technical
difficulties he sees with using XSLT to resolve 157, privately to some
of us at the F2F.  The principal one being that XSLT templates costruct
new XML documents rather than update existing ones.  According to Alex,
doing anything else requires non-standard usage of XSLT.  I am no XSLT
expert so I am looking for confirmation or otherwise of Alex's position.
If he is right then we are stuck with doing 157 as far as I can see.  I
would much prefer not to add features to BPEL for any XML data
manipulation, but we have assignment/copy today and we have voted not to
remove them so the only other option is to find a way to use some
existing XML data manipulation spec as normative with the usual
extensibility.  XPath is what we have used in copy but that seems to
require the sort of xII rules that the current 157 proposals specify. 
>				
>				If someone has a simpler way to resolve
this I am all ears. 
>				
>				Satish 
>				
>				________________________________ 
>				
>				From: Assaf Arkin
[mailto:arkin@intalio.com] 
>				Sent: Fri 6/3/2005 9:28 AM 
>				To: Danny van der Rijn 
>				Cc: Satish Thatte; Charlton Barreto;
wsbpeltc 
>				Subject: Re: [wsbpel] Issue - 157 -
Proposal For Vote 
>				
>				
>				
>				I wouldn't rule out that we closed issue
48 because the scope was a bit 
>				more generic, and from the issue list,
apparently because 13 solves the 
>				problem. So given issue 13 you can
incorporate XSLT into BPEL as a 
>				proprietary extension. 
>				
>				The problem we're facing is how to
handle simple assignments as a 
>				normalized part of the spec, which 48/13
do not cover. I, for one, am 
>				not interested in re-inventing the
wheel, so in this particular context 
>				I have no problem revisiting issue 48 or
resolving this as part of issue 
>				157, whichever is more convenient. 
>				
>				Assaf 
>				
>				
>				Danny van der Rijn wrote: 
>				
>				
>				   
>				
>
>					What you're proposing, Satish,
sounds like Issue 48, which was 
>					rejected in April of 2004.  I'd
be happy to revisit it, but I'm not 
>					sure how others feel. 
>					
>					Danny 
>					
>					Satish Thatte wrote: 
>					
>					
>					     
>					
>
>					Wonderful.  I didn't see this
mail before sending mine. 
>					
>					+1 
>					
>					________________________________

>					
>					From: Charlton Barreto
[mailto:cbarreto@adobe.com] 
>					Sent: Thu 6/2/2005 9:29 AM 
>					To: Assaf Arkin 
>					Cc: wsbpeltc 
>					Subject: Re: [wsbpel] Issue -
157 - Proposal For Vote 
>					
>					
>					I second this proposal. I feel
that we should delegate the problem 
>					scoped by issue 157 by
leveraging another spec which is actually 
>					focussed on it, rather than
attempting to invest the considerable 
>					amount of time and energy
necessary to address it in BPEL. 
>					On 01/06/2005, at 16:08, Assaf
Arkin wrote: 
>					
>					
>					  I want to propose an
alternative way to solve issue 157, without 
>					introducing significant
complexity to the language. 
>					
>					  The XSLT specification has
been dealing with the exact same 
>					problem of evaluating an
expression and placing the results in a 
>					target context. XSLT provides
two separate mechanisms: copy-of and 
>					value-of. I would propose using
these two XSLT elements as a 
>					normative part of the BPEL
specification, instead of inventing yet 
>					another copy mechanism. 
>					
>
http://www.w3.org/TR/xslt#copy-of 
>
http://www.w3.org/TR/xslt#value-of 
>					
>					  Assaf 
>					  || 
>					
>					
>					  <arkin.vcf> 
>					
>					
>					
>					Charlton Barreto 
>					
>					P 1.408.536.4496 
>					
>					cbarreto@adobe.com 
>					
>					
>					www.adobe.com
<http://www.adobe.com/> <http://www.adobe.com/>  
>					logo.gif 
>					
>					
>					
>
--------------------------------------------------------------------- 
>					To unsubscribe from this mail
list, you must leave the OASIS TC that 
>					generates this mail.  You may a
link to this group and all your TCs 
>					in OASIS 
>					at: 
>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
>					
>					
>					
>					       
>					
>
>
>
>
--------------------------------------------------------------------- 
>				To unsubscribe from this mail list, you
must leave the OASIS TC that 
>				generates this mail.  You may a link to
this group and all your TCs in OASIS 
>				at: 
>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
>				
>				
>				
>				   
>				
>
>
>
>
>
>
--------------------------------------------------------------------- 
>			To unsubscribe from this mail list, you must
leave the OASIS TC that 
>			generates this mail.  You may a link to this
group and all your TCs in OASIS 
>			at: 
>
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
>			  
>			
>			
>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe from this mail list, you must leave the OASIS TC that
>generates this mail.  You may a link to this group and all your TCs in
OASIS
>at:
>https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php 
>
>  
>




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]