This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Comparisons in XPath 2.0
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: www-xpath-comments at w3 dot org
- Cc: xsl-list at lists dot mulberrytech dot com
- Date: Tue, 8 Jan 2002 08:23:57 +0000
- Subject: [xsl] Re: Comparisons in XPath 2.0
- Organization: Jeni Tennison Consulting Ltd
- References: <DFF2AC9E3583D511A21F0008C7E6210622B8CA@softwareag.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Mike wrote:
>> For all that there are lots of ways of comparing values in XPath 2.0,
>> there doesn't seem to be one that compares sequences.
>>
>> If you have something like:
>>
>> <line start="0 300" end="300 0" />
>>
>> where start and end both have typed values - @start is the sequence
>> of two integers (0, 300) and @end is the sequence of two integers
>> (300, 0). In this particular language, @start and @end are x,y
>> coordinates. How can you work out whether start and end have the
>> same value?
>
> I think you're right, this is an omission that we need to remedy.
> I'd suggest a function compare-sequences(sequence, sequence),
> perhaps with an optional collation argument, that returns -1, 0, or
> +1, in the same way as compare(). It should be based on pairwise
> comparison of items in the two sequences, each pair being compared
> using the eq and lt operators. Phil Wadler has referred to this as
> "lexicographic comparison", but I'm not sure most people would
> understand that term correctly.
There are two functions that do compare sequences:
xf:sequence-deep-equal()
xf:sequence-node-equal()
Following the same scheme, the one I'm after here would have the
signature:
xf:sequence-value-equal(item* $parameter1, item* $parameter2)
=> boolean?
xf:sequence-value-equal(item* $parameter1, item* $parameter2,
anyURI $collationLiteral)
=> boolean?
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list