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 29 - Proposal For Vote


This proposal is only relevant if we don't decide to adopt a mechanism 
to map properties to XPATH variables.

As for the desire to use XPATH 1.0 in a standard manner, unfortunately 
that is quite impossible given our semantics. It is explicitly illegal 
to have a null context node in XPATH 1.0. In section 1, the introduction 
to XPATH 1.0, a series of requirements are listed for defining the 
context in which a XPATH executes. List in there is a node (explicitly 
referred to as the context node). This is then followed by a requirement 
for a pair of non-zero positive integers identifying the context 
position and context size. If the context is empty or null then these 
two numbers would have to be 0 and that's explicitly prohibited. Hence 
why we already are forced into a situation where we have to require a 
BPEL specific XPATH processor.

	Yaron

Assaf Arkin wrote:
> -1
> 
> If we decide to manifest properties as independent XPath variables, then 
> we have a syntax that is consistent in how variable values are accessed, 
> directly (the entire variable) or indirectly (a property of the 
> variable). I happen to be on the side that likes consistency and abhors 
> making changes to XPath implementations.
> 
> "We have in the past altered XPATH in order to suit our needs. For 
> example, in some BPEL expressions we have banned the use of the global 
> context node, a node whose presence is actually mandated by the XPATH 
> specification. If we are willing to change XPATH that much I see no 
> reason not to change it here as well. In for a dime, in for a dollar."
> 
> Since we have nothing to pass in the context node, wouldn't it be easier 
> if we use the XPath specification to achieve that instead of forcing 
> implementations to deviate from the specification, write custom XPath 
> implementations (only for BPEL), and so forth. The XPath specification 
> mandates that you pass a context node, but the XPath specification does 
> not require the context node to have any content in it. You can pass an 
> empty root node (XPath 1.0) or an empty document node (XPath 2.0) and be 
> in full comformance with the XPath specification and the BPEL model at 
> the same time.
> 
> Let's keep it simple (that's what this issue is all about). Get the 
> semantics we want for expressions, but without having to change existing 
> specifications or implementations.
> 
> assaf
> 
> 
> Yaron Y. Goland wrote:
> 
>> Issue 29 - Simplification of XPath expressions
>>
>> Proposal: Require that all arguments to BPEL defined XPATH functions 
>> must be quoted strings that are statically defined within the XPATH 
>> expression.
>>
>> Note: This proposal won't be necessary if we decide to manifest 
>> properties as independent XPATH variables since this would let us get 
>> rid of getVariableProperty.
>>
>> Rationale: 
>> getVariableProperty(getVariableProperty(foo,bar),getVariableProperty(ick,bick)) 
>> is completely legal in XPATH. This is a problem because such an 
>> expression makes it impossible to statically analyze the expression 
>> that contains the function call and determine what variable is being 
>> referenced. This is problematic for static analysis of the process 
>> because it makes it impossible to determine what variable and property 
>> are being accessed so there is no way to check if that variable is 
>> accessible from that point in the BPEL process definition or if the 
>> variable has the referenced property defined on it. Even worse (in my 
>> mind anyway) is that the previous plays havoc with optimizations for 
>> compensation handling. If the previous function was contained within a 
>> compensation handler then there would be no way to know what variable 
>> was being accessed and so the BPEL process would have no choice but to 
>> persist all variables visible from the compensation handler, major yuck!
>>     We have in the past altered XPATH in order to suit our needs. For 
>> example, in some BPEL expressions we have banned the use of the global 
>> context node, a node whose presence is actually mandated by the XPATH 
>> specification. If we are willing to change XPATH that much I see no 
>> reason not to change it here as well. In for a dime, in for a dollar.
>>
>> Section 9.1 -
>>
>> Add a new paragraph after the following paragraph "Any qualified names 
>> used within XPath expressions are resolved by using namespace 
>> declarations currently in scope in the WS-BPEL document at the 
>> location of the expression.":
>>
>> The arguments to all XPATH functions defined in this specification 
>> MUST be given as quoted strings. The previous requirement MUST be 
>> statically enforced. It is therefore illegal to pass into a BPEL XPATH 
>> function any XPATH variables, the output of XPATH functions, a XPATH 
>> location path or any other value that is not a quoted string. This 
>> means, for example, that getVariableProperty("varA","propB") meets the 
>> previous requirement while 
>> getVariableProperty($varA,string(getVariableProperty("varB","propB")) 
>> does not. Note that the previous requirement institutes a restriction 
>> which does not exist in the XPATH standard.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: wsbpel-unsubscribe@lists.oasis-open.org
>> For additional commands, e-mail: wsbpel-help@lists.oasis-open.org
>>
>>
> 



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