xsl-list
[Top] [All Lists]

xdt:yearMonthDuration eq xs:duration

2006-01-31 18:05:13


Saxon 8.6 fails this expression with XPTY0004, "Cannot compare 
xdt:yearMonthDuration to xs:duration":

xdt:yearMonthDuration("P200Y2M") eq xs:duration("P200Y2M")


The XPath 2.0 book specifies these operators:

A eq B  xdt:yearMonthDuration     xdt:yearMonthDuration  
A eq B  xdt:dayTimeDuration       xdt:dayTimeDuration  
A eq B  xs:duration               xs:duration

It also says this:

<quote>
Any operator listed in the operator mapping tables may be validly applied to 
an operand of type AT if the table calls for an operand of type ET and 
type-matches(ET, AT) is true (see 2.5.4 SequenceType Matching). For example, 
a table entry indicates that the gt operator may be applied to two xs:date 
operands, returning xs:boolean. Therefore, the gt operator may also be 
applied to two (possibly different) subtypes of xs:date, also returning 
xs:boolean.
</quote>

Doesn't type-matches(xs:duration, xdt:yearMonthDuration) hold true? My point 
being that the expression should succeed because xdt:yearMonthDuration is a 
subtype of xs:duration and that the xs:duration-eq operator therefore can be 
applied. If that is the case, which I doubt, the eq/ne operators for the two 
XDT durations are redudant, since the xs:duration-eq/ne operators covers 
them.

What clause in any of the specifications disallow the above operand 
combination? (and the others variations by the same principle)


Thanks in advance,

                Frans


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>