Subject: RE: [Simple] triggers in filter-format drafts selecting multiple elements - problem?

From: [email-masked]
Date: Thu, 16 Feb 2006 10:50:42 +0100

I agree that the filter does not make much sense; however I need to know
how to handle such situation because we cannot guarantee that such
filter will not be created by client. My opinion is that all possible
cases should be covered by the specification to avoid specific behavior
based on particular implementation. 

If the specification does not define this, I would choose a solution
which would reject filters containing triggers selecting multiple
elements. Would such solution be correct? I mean, would it not be
conflict with the specification?

-----Original Message-----
From: Hisham Khartabil [mailto:[email-masked]] 
Sent: Thursday, February 16, 2006 10:02 AM
To: Peknik Silvestr
Cc: [email-masked]
Subject: Re: [Simple] triggers in filter-format drafts selecting
multiple elements - problem?

You should construct your filter to either look like

<changed>//tuple[@id="1"]/status/basic
</changed>

or

<changed>//tuple[@id="2"]/status/basic
</changed>

or both at the same time.

It doesnt make sense to have a filter as you define it.

Hisham

On Feb 16, 2006, at 9:15 AM, <[email-masked]> wrote:

>> There is only one <status> element in a tuple, so I don't see how
this
>> would happen in this case. But I say if a trigger filter selects 2
>> elements, then its an error.
>
> I don't understand it now. In the draft is explicitly stated that the
> XPATH-like selector may select multiple elements and that all 
> identified
> elements are selected.
>
> Example:
> <changed>//tuple/status/basic
> </changed>
>
> Before change:
> <tuple id="1">
>   <status>
>     <basic>open</basic>
>   </status>
>   <contact>sip:[email-masked]</contact>
> </tuple>
> <tuple id="2">
>   <status>
>     <basic>closed</basic>
>   </status>
>   <contact>sip:[email-masked]</contact>
> </tuple>
>
> After change (note that also the order has changed):
> <tuple id="2">
>   <status>
>     <basic>open</basic>
>   </status>
>   <contact>sip:[email-masked]</contact>
> </tuple>
> <tuple id="1">
>   <status>
>     <basic>closed</basic>
>   </status>
>   <contact>sip:[email-masked]</contact>
> </tuple>
>
> Filter selects:
> <basic>open</basic>, <basic>closed</basic> before change
> <basic>open</basic>, <basic>closed</basic> after change
>
> How do we know which elements should we compare? Do we take into
> consideration the parent path to each element? That would bring
another
> problem - are 2 equal <basic> elements selected by a wildcard-trigger
> equal if they have different parents?
>
> -----Original Message-----
> From: Hisham Khartabil [mailto:[email-masked]]
> Sent: Wednesday, February 15, 2006 3:45 PM
> To: Peknik Silvestr
> Cc: [email-masked]
> Subject: Re: [Simple] triggers in filter-format drafts selecting
> multiple elements - problem?
>
>
> On Feb 15, 2006, at 2:11 PM, [email-masked] wrote:
>
>> Hello, again a question about filtering.
>>
>> Draft-ietf-simple-filter-format-05 describes triggers defining
>> conditions under which notifications are sent. Lets take the
<changed>
>> trigger:
>>
>> "The <changed> element is used to identify the XML element or
>>    attribute, from the package specific XML document, whose value
MUST
>>    change, compared to the "previous XML document", in order to
>> activate
>>    the trigger and cause the content to be delivered."
>> ...
>>
>> It is also written that the elements can identify more than one
>> element:
>>
>> "  In some cases, due to the design of the XML schema, the XPATH-like
>>    expression results in identifying more than one element with the
>> same
>>    name (the XPATH expression may not have uniquely identified an
>>    element at every step).  In those cases, all elements identified
> are
>>    selected."
>>
>> What happens if I have trigger defining change from "open" to
"closed"
>> for some <status> element, and the XPATH-like expression selects more
>> than one element? One can be changed from "open" to "closed", the
> other
>> from "closed" to "open.
>
> There is only one <status> element in a tuple, so I don't see how this
> would happen in this case. But I say if a trigger filter selects 2
> elements, then its an error.
>
>
>>  Similarly, if the selector in <added> element
>> selects one element in previous document and 2 elements in current
>> document, is it a match?
>
> There is something wrong in the filter if one already existed. I doubt
> there will be examples where this would happen.
>
> Hisham
>

_______________________________________________
Simple mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/simple

---

From: Hisham Khartabil <[email-masked]>
Date: Thu, 16 Feb 2006 11:04:42 +0100

> based on particular implementation.

We cannot think of every possible cases that could cause problems.

> elements. Would such solution be correct?

yes.

>  I mean, would it not be

No. The text that you quote talks about the <what> element.

Hisham