Stylus Studio 2010 (build 1540b) Report Designer generates XSLT 2.0/XPath 2.0 inline “if” statements even upon selection XSLT 1.0 in the Report>Generate> (selecting Transformation Language : XSLT 1.0).
Every time a change is made to the report, you have to regenerate the XSLT, and make manual change converting inline "if"s to XSLT 1.0.
Please take a look into this issue.
It seems like a bug.
Hi Yitzhak,
do you have an example of when XML Report generated an "if()" statement even when XSLT 1.0 was selected? For instance, in the thread you linked the statement was manually entered by the user, and that is outside the control of XML Report.
You are absolutely correct – the XPATH statement is typed manually. So when SS Report Designer generates XSLT it emits the XPath property verbatium. Eventually, we are using .NET XslCompiledTransform Processor plus an XML file to generate final FO file. Obviously, .NET Processor (XSLT 1.0/XPath 1.0 compliant) cannot process XSLT 2.0/XPath 2.0 and fails.
When grid needs alternate background colors for even and odd rows SS Report Designer supports it. To do that in the SS Report Designer there are properties settings (typed manually) for the row as follows:
Background: <dynamic>
Context: $WorkInfoRow
XPath: if(position() mod 2 = 1) then "white" else "lightsteelblue"
Now I am trying to generate the XSLT using :
Report>Generate> (selecting Transformation Language : XSLT 1.0)
Unfortunately, the generated XSLT is compliant with XSLT 2.0/XPath 2.0 which allows inline “if” statements”
<fo:table-row background-color="{if(position() mod 2 = 1) then "white" else "lightsteelblue"}">
Because of such behavior, I have to manually go to the generated XSLT and change it every single time to make it compliant with the XSLT 1.0.