How can I test if the variable $xsd_node was assigned a value?
In some cases the node-set expression to fill this variable might copy
nothing.
...
<xsl:variable name="xsd_node">
<xsl:copy-of select="$xsd_doc//xs:element[(_at_)name = $name and
count(child::node()) = 0]"/>
</xsl:variable>
An xsl:variable that contains an xsl:copy-of as its only content looks very
strange. Why do you want to work with a copy of the data, rather than
working with the original? Your code would almost certainly work just as
well, and rather faster, if you selected the data without copying it:
<xsl:variable name="xsd_node"
select="$xsd_doc//xs:element[(_at_)name = $name and count(child::node()) =
0]"/>
(There might be legitimate reasons to create a copy, for example if you want
to use xsl:number to number the nodes as they appear in the new tree. But
I'd be surprised.)
The value of the variable is then a node-set, and you can test whether it is
an empty node-set using count($xsd_node)=0.
Your original variable is (in XSLT 1.0) a result-tree-fragment, and in XSLT
1.0 you can only examine its contents by using the xx:node-set() extension.
You would then want to test whether the root node of the RTF has any element
children:
xsl:if test="xx:node-set($xsd_node)/*"
Michael Kay
http://www.saxonica.com/
<xsl:if test="???">
...
Is there something like empty($xsd_node)?
Cheers,
R.
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--