xsl-list
[Top] [All Lists]

Re: [xsl] Required item type of value of variable $images is element(); supplied value has item type text()

2019-03-31 16:57:02
I used Gerrit's example #3 and it works great. Thank you both.

On Sun, Mar 31, 2019 at 10:25 PM Michael Kay mike(_at_)saxonica(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

If the template that's invoked returns text nodes, then the type check 
as="element()*" is going to fail. (The function conversion rules are invoked, 
but removal of whitespace text nodes isn't a conversion that ever happens). 
If you want to filter out whitespace text nodes, you'll have to do it 
explicitly.

Michael Kay
Saxonica

On 31 Mar 2019, at 20:00, Martynas Jusevičius 
martynas(_at_)atomgraph(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi,

I have a simple snippet like this

       <xsl:variable name="images" as="element()*">
           <xsl:apply-templates mode="ac:image"/>
       </xsl:variable>

Sometimes the ac:image templates will return an <img> element,
sometimes nothing.

In the case where there are no elements in the variable, I get an error

   Required item type of value of variable $images is element();
supplied value has item type text()

When I output the text, it's just whitespace.

The element() cardinality is *, so why can't the processor just
suppress the whitespace and treat the variable content as zero
elements?

The processor is Saxon-CE BTW.

Martynas
atomgraph.com


--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

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