Subject: Re: [xsl] XSLT 2.0 compability issue occured in topicmerge.XSL in DITA OT1.5.1. From: Michael Kay <mike@xxxxxxxxxxxx> Date: Tue, 25 Sep 2012 10:34:52 +0100 |
Michael Kay Saxonica
Hi Michael, Further to my last message, to clarify, we apply Ant script when invoking a transform. For example:
<target name="semc.dita.topic.fo" description="Build SEMC XSL-FO output from dita topic ( PDF Template)"> <echo>Run semc.dita.topic.fo</echo> <condition property="args.xsl" value="${dita.script.dir}${file.separator}InfoShare${file.separator}xslfo${file.separator}infoshare.dita2fo.shell.xsl"> <not> <isset property="args.xsl"/> </not> </condition> <!-- Shell transformation --> <xslt processor="trax" in="${args.xsl}" out="${dita.map.output.dir}${file.separator}out.xsl" style="${dita.script.dir}${file.separator}InfoShare${file.separator}xslfo${file.separator}rename.xsl"> <factory name="net.sf.saxon.TransformerFactoryImpl"/> <param name="WORKDIR" expression="${dita.input.dirname}"/> </xslt> <!-- Main transformation --> <xslt processor="trax" in="${input}" out="${dita.map.output.dir}${file.separator}${dita.map.filename.root}.psmi" style="${dita.map.output.dir}${file.separator}out.xsl"> <factory name="net.sf.saxon.TransformerFactoryImpl"/> <param name="output-related-links" expression="${args.fo.output.rel.links}" if="args.fo.output.rel.links"/> <param name="DITAEXT" expression="${dita.ext}" if="dita.ext"/> <param name="DRAFT" expression="${args.draft}" if="args.draft"/> <param name="ARTLBL" expression="${args.artlbl}" if="args.artlbl"/> <param name="dflt-ext" expression="${fo.img.ext}" if="fo.img.ext"/> <param name="WORKDIR" expression="${dita.input.dirname}"/> </xslt> <!-- PSMI transformation --> <xslt processor="trax" in="${dita.map.output.dir}${file.separator}${dita.map.filename.root}.psmi" out="${output}" style="${dita.script.dir}${file.separator}InfoShare${file.separator}xslfo${file.separator}psmi.xsl"> <factory name="net.sf.saxon.TransformerFactoryImpl"/> <param name="WORKDIR" expression="${dita.input.dirname}"/> </xslt> <replace dir="${dita.map.output.dir}" token="b"" value="b"b" encoding="utf-8" includes="*.fo"/> </target>
my question once again, how to apply that -T option to above?
thank you in advance, 2012/9/25, team wise <dfanster@xxxxxxxxx>:Hi Michael, thank you for your response. When i replied to it, my message was bounced back afterwards. My question is how to apply -T option. Could you please give me a pointer as a reference? You are absolutely right it is effectively an interoperability issue with XSLT2.0.
Kind regards, RAY 2012/9/24, Michael Kay <mike@xxxxxxxxxxxx>:Have you checked whether this is fixed in a later DITA release? You're using quite an old one.
If it reproduces with the latest DITA stylesheets, then it might be useful to post sufficient information so that other people can reproduce the problem and perhaps diagnose the bug.
With Saxon, the best way of diagnosing the bug is to run with the -T option. This produces very voluminous trace output, of which the interesting part is the last few instructions executed before the failure occurred.
Note that it's not entirely accurate to describe this as an XSLT 2.0 compatibility issue; it's more of a 1.0 interoperability issue that was fixed in 2.0. Writing an attribute after writing children of an element was an error in XSLT 1.0: "implementations may either signal the error or ignore the attribute", so the stylesheet would fail with some XSLT 1.0 processors and "succeed" with others. What has changed in 2.0 is that all processors are required to behave in the same way (by reporting the error).
Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSLT 2.0 compability issu, team wise | Thread | Re: [xsl] XSLT 2.0 compability issu, team wise |
Re: [xsl] RE: XSL-FO and Z-index, Kevin Brown | Date | Re: [xsl] XSLT 2.0 compability issu, team wise |
Month |