Re: [xml-dev] isXPath1 / isXPath2 -- not(/..)
OK, I think I can explain this.
This XSLT 2.0 transformation:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/.. instance of item()*"/>
<xsl:copy-of select="(4=5)=/.."/>
</xsl:template>
</xsl:stylesheet>
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="/.. instance of item()*"/>
<xsl:copy-of select="(4=5)=/.."/>
</xsl:template>
</xsl:stylesheet>
produces:
true false
The **general comparison**:
(4=5) = /..
is equivalent to:
false() = ()
On the left side we have a sequence of one item.
On the right side we have a sequence of 0 items.
Therefore the second (empty) sequence has no item that is the Boolean false() and thus the expression evaluates to false()
On Sat, Dec 19, 2015 at 9:49 AM, Dimitre Novatchev <[email protected]> wrote:
There seems to be something wrong with the type evaluation of Saxon 9.1JWhen I evaluate this:/.. instance of item()the result is:false()As item() is the root of the type system and every possible value is an item(), the above result means that /.. has type that isn't defined anywhere in the type system.Seems this has something to do with the "highest possible derived type", or is just a bug.Also, we do need a type-of(expr) function.Any thoughts, please?
--Cheers,Dimitre Novatchev---------------------------------------Truly great madness cannot be achieved without significant intelligence.---------------------------------------To invent, you need a good imagination and a pile of junk-------------------------------------Never fight an inanimate object-------------------------------------To avoid situations in which you might make mistakes may be thebiggest mistake of all------------------------------------Quality means doing it right when no one is looking.-------------------------------------You've achieved success in your field when you don't know whether what you're doing is work or play-------------------------------------To achieve the impossible dream, try going to sleep.-------------------------------------Facts do not cease to exist because they are ignored.-------------------------------------Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :)-------------------------------------Sanity is madness put to good use.-------------------------------------I finally figured out the only reason to be alive is to enjoy it.
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :)
-------------------------------------
Sanity is madness put to good use.
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.