xsl-list
[Top] [All Lists]

Re: [xsl] WARNING org.xml.sax.SAXParseException: The child axis starting at a text node will never select anything

2014-05-13 14:31:41
On Tue, 2014-05-13 at 19:16 +0000, Kulas, Jack jkulas(_at_)lsijax(_dot_)com 
wrote:
I was getting the following warning when I'd run a transformation
within Arbortext Editor 6.1-F000, which uses the Saxon 9.1.0.5 XSLT
transformation engine:

WARNING org.xml.sax.SAXParseException: The child axis starting at a text node 
will never select anything

When I replaced this template

    <xsl:template match="text()" mode="func">
       <xsl:value-of select="."/>
        <xsl:apply-templates mode="func"/>
    </xsl:template>

with this one

    <xsl:template match="*" mode="func">
        <xsl:apply-templates mode="func"/>
    </xsl:template>

The first template matches text nodes -- text() -- and calls
apply-templates which, in the absence of a select attribute, will be
applied to child elements. However, a text node in XPath cannot contain
elements, so that apply-templates will never do anything.

The second template matches *, which is short for "any element", so it
explicitly does not match text nodes, and elements _can_ contain other
elements of course.

The reason there was no change is presumably because the default
template for text nodes looke a bit like
<xsl:template match="text()">
  <xsl:value-of select="." />
</xsl:template>
which, after you ignore the useless call to apply-templates, is the same
as what you have there. And the template with * is probably not being
called, unless there were elements in your document that no other
template matched.

Liam


-- 
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Pictures from old books: http://fromoldbooks.org/
Ankh: irc.sorcery.net irc.gnome.org freenode/#xml
--~----------------------------------------------------------------
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>