|
Subject: [xsl] document nodes. From: "Andre Cusson akhu01@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 13 Dec 2024 00:43:51 -0000 |
Hi,
There is some Saxon/Oxygen behavior that I do not seem to grasp.
I made a simplified use case to present it.
I have an xml document (thingtest.xml) that looks somewhat like this:
<?xml version="1.0" encoding="UTF-8"?>
<thing id="main" title="something">
<thing id="group1">...</thing>
<thing id="group2">...</thing>
<thing id="group3">...</thing>
</thing>
and I have a stylesheet (thingtest.xslt) that reads this file and tries to
"message" the value of the title attribute on the main (root) element, like:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
exclude-result-prefixes="xs math"
version="3.0">
<xsl:template match="/">
<xsl:variable name="struct" select="doc('thingtest.xml')/*"/>
<xsl:message select="$struct/@title"/>
</xsl:template>
</xsl:stylesheet>
Now running this produces this error
[Saxon-PE] Error XTDE0420 while evaluating xsl:message at line 10 of
file:servercfg/thingtest.xslt: Cannot create an attribute node (title)
whose parent is a document node.
Mind you, $struct should not be a document mode as it is the child of a
document node.
Where it gets a little exotic for me is when I replace the message
instruction by either :
<xsl:message select="'' || $struct/@title"/>
or
<xsl:message select="string-join(($struct/@title))"/>
Then, it works fine.
I do not mind adding a null string if I have to, but better
understanding why may better contribute to my happiness.
What am I doing wrong this time ... ;)
Thank you,
Regards.
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XSLT is a pattern-action , Debbie Lapeyre dalap | Thread | Re: [xsl] document nodes., rick@xxxxxxxxxxxxxx |
| Re: [xsl] json-to-xml namespace, Andre Cusson akhu01@ | Date | Re: [xsl] document nodes., rick@xxxxxxxxxxxxxx |
| Month |