Bug #4206
Updated by Michael Kay over 5 years ago
using SaxonEE 9.6. we have a xslt having this below line ~~~ xml <xsl:variable name="descriptor-nodes" select="l1d | .//descriptor"/> ~~~ and it results in below exception net.sf.saxon.s9api.SaxonApiException: Stylesheet compilation failed: 2 errors reported at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:546) at Caused by: net.sf.saxon.trans.XPathException: Stylesheet compilation failed: 2 errors reported at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:97) at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:543) Adding the StaticErrorHandler gives the error message as **Invalid character '\' in expression; SystemID: file:/xxxx/xxxx.xsl; Line#: 90; Column#: 144** which points to the above mentioned XSLT line we think its related to Union operator as the below code works ~~~ <xsl:variable name="descriptor-nodes" select="l1d | //descriptor"/> --> without dot, works good <xsl:variable name="descriptor-nodes" select="l1d"/> --> works good <xsl:variable name="descriptor-nodes" select=".//descriptor"/> -->works good ~~~ with this ,we can conclude that xsltcompiler throws fatal error for expression **"node1 | .//node2"** ?