[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: OutputURIResolver Cause: net.sf.saxon.trans
Hi there, when running the following snippet of XSL stylesheet against Saxon 9, I encountered with this error: I [xslt] : Fatal Error! Exception thrown by OutputURIResolver Cause: net.sf.saxon.trans.XPathException: Resolved URL is malformed ////XSLT written in Version 2.0/////////////////// <xsl:result-document href="{$OUTPUTDIR}/{$title}.xml"> <!--xsl:choose> <xsl:when test="contains($outputformat, 'Impleo')"> <xsl:choose> <xsl:when test="$multilingual = 'yes'"> <xsl:apply-templates select="document(concat('file:///', $WORKDIR, '\temp\', substring(@href, 4)))" mode="copy"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="document(@href)" mode="copy"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise--> <!--xsl:apply-templates select="document(@href)" mode="copy-and-modify"/semc0222--> <xsl:variable name="uri" select="concat('file:///', $WORKDIR, '\temp\', substring(@href, 4))" /> <xsl:message select="$uri"/> <xsl:apply-templates select="document($uri)" mode="copy"/> <!--/xsl:otherwise> </xsl:choose--> </xsl:result-document> ////////////////////////////////////////////////////////////// Input : <?xml version="1.0" encoding="utf-8" ?> <?workdir /D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\temp?> <?path2project ?> <?ish ishref="GUID-F2DF918A-90C1-4775-B43A-62C035A12E9D" version="3" lang="en"?> - <map title="Default Title" id="GUID-F2DF918A-90C1-4775-B43A-62C035A12E9D" chg="undef" ishlabelxpath="@title" DTDVersion="V1.1.3" domains="(map mapgroup-d)" class="- map/map" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-F2DF918A-90C1-4775-B43A-62C035A12E9D.ditamap" xtrc="map:1"> <!-- Start of embed for GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml --> - <reference id="GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44" domains="%included-domains;" ishlabelxpath="./title" class="- topic/topic reference/reference" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml" xtrc="reference:1" refclass="- map/topicref"> <title id="GUID-2DABE0AB-3533-4922-B945-546FBECA27FE" ishlabelxpath="./title | @alt | @href | @conref | @id" ishlinkxpath="@conref | @href[contains(parent::*/@class,' topic/image ') and not(parent::*/@conref)]" class="- topic/title" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml" xtrc="title:1" /> - <refbody ishlabelxpath="./title | @alt | @href | @conref | @id" ishlinkxpath="@conref | @href[contains(parent::*/@class,' topic/image ') and not(parent::*/@conref)]" class="- topic/body reference/refbody" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml" xtrc="refbody:1"> - <section id="GUID-52FC6164-8517-4E8D-8C6A-5D777DF58ECF" ishlabelxpath="./title | @alt | @href | @conref | @id" ishlinkxpath="@conref | @href[contains(parent::*/@class,' topic/image ') and not(parent::*/@conref)]" class="- topic/section" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml" xtrc="section:1"> <p ishlabelxpath="./title | @alt | @href | @conref | @id" ishlinkxpath="@conref | @href[contains(parent::*/@class,' topic/image ') and not(parent::*/@conref)]" class="- topic/p" xtrf="D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-078DE499-06E8-4EDC-964F-52CF0621CDB4.20110825082156145\1\en\workset\GUID-A48859DF-43CA-4C24-A2C3-19525D7D8B44.xml" xtrc="p:1">We fulfil the requirements of the R&TTE Directive (1999/5/EC).</p> </section> </refbody> </reference> </map> Origionally, the full stylesheet including above snippet was written in XSLT 1.0, as follows: <?xml version="1.0"?> <!-- Copy, transform, and rename all used XML files to a temporary folder to be transformed into HTML --> <!-- Input: DITA map --> <!-- Output: Copies of all XML files actually being used, not belonging to chunk --> <xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">; <xsl:output method="xml" encoding="utf-8"/> <xsl:include href="../common/infoshare.jobticket.xsl"/> <xsl:include href="../common/infoshare.params.xsl"/> <xsl:include href="transform-titles.xsl"/> <xsl:param name="OUTPUTDIR"/> <xsl:template match="/*"> <xsl:choose> <xsl:when test="contains($outputformat, 'Impleo') and ($multilingual = 'yes')"> <xsl:apply-templates select="child::*[contains(@class,' map/topicref ')][1]/descendant::*[contains(@class,' map/topicref ')]"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="descendant::*[contains(@class,' map/topicref ')]"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="*[contains(@class,' map/topicref ')]"> <xsl:choose> <xsl:when test="ancestor::*[@chunk='yes'] and not(self::*[@chunk='yes'])"> <xsl:message>clean-up.xsl: Not copied the file "<xsl:value-of select="@navtitle"/>" due to chunking</xsl:message> </xsl:when> <xsl:when test="contains(@href, 'GUID-9B08C5DF-5C36-41C4-90B0-27B79F005469')"> <xsl:message>clean-up.xsl: Not copied the file "Z-Admin-Publication Extended"</xsl:message> </xsl:when> <xsl:when test="contains(@href, 'GUID-8B987545-B343-4B40-B852-2CEFEBC4FE9E')"> <xsl:message>clean-up.xsl: Not copied the file "Z-Admin-Publication Basic"</xsl:message> </xsl:when> <xsl:when test="contains(@href, 'GUID-C3FB8F77-8818-4E16-989C-A092C9F1332C')"> <xsl:message>clean-up.xsl: Not copied the file "Function name in review pdf"</xsl:message> </xsl:when> <xsl:when test="contains(@href, 'GUID-DDB0F1C0-9B28-43FB-9B79-E9836299D2CE')"> <xsl:message>clean-up.xsl: Not copied the SAR cover topic</xsl:message> </xsl:when> <xsl:when test="contains(@outputclass, 'remove-from-output')"> <xsl:message>clean-up.xsl: Not copied the file "<xsl:value-of select="@href"/>" with @outputclass="remove-from-output"</xsl:message> </xsl:when> <xsl:when test="contains(@outputclass, 'cover')"> <xsl:message>clean-up.xsl: Not copied the file "<xsl:value-of select="@href"/>" with @outputclass="cover"</xsl:message> </xsl:when> <xsl:when test="contains(@id, 'GUID-1535CC3F-3B17-4D8B-9452-D2FDD988577A')"> <xsl:message>clean-up.xsl: Not copied the file "<xsl:value-of select="@href"/>" with Polish CE image</xsl:message> </xsl:when> <xsl:otherwise> <xsl:variable name="title"> <xsl:choose> <xsl:when test="contains($outputformat, 'Impleo')"> <xsl:choose> <xsl:when test="@type = 'SZ-Content-item-Snipplet'"> <xsl:text>ContentItems-Snipplettes\</xsl:text> </xsl:when> <xsl:when test="@type = 'SZ-Snippet'"> <xsl:text>Snippets\</xsl:text> </xsl:when> <xsl:when test="@type = 'SZ-Topic-page'"> <xsl:text>Topicpages\</xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>NoType\</xsl:text> </xsl:otherwise> </xsl:choose> <xsl:choose> <xsl:when test="$multilingual = 'yes'"> <!-- The href attribute values start with language codes in multilingual maps --> <xsl:value-of select="substring(substring-before(@href, '.xml'), 4)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-before(@href, '.xml')"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:call-template name="transform-title"> <xsl:with-param name="xtrc" select="@xtrc"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:document href="{$OUTPUTDIR}\{$title}.xml"> <xsl:choose> <xsl:when test="contains($outputformat, 'Impleo')"> <xsl:choose> <xsl:when test="$multilingual = 'yes'"> <xsl:apply-templates select="document(concat('file:///', $WORKDIR, '\temp\', substring(@href, 4)))" mode="copy"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="document(@href)" mode="copy"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="document(@href)" mode="copy-and-modify"/> </xsl:otherwise> </xsl:choose> </xsl:document> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="node() | @*" mode="copy"> <xsl:copy> <xsl:apply-templates select="@* | node()" mode="copy"/> </xsl:copy> </xsl:template> <xsl:template match="node() | @*" mode="copy-and-modify"> <xsl:copy> <xsl:apply-templates select="@* | node()" mode="copy-and-modify"/> </xsl:copy> </xsl:template> <xsl:template match="*[contains(@class, ' topic/topic ')]/@xtrf" mode="copy-and-modify"> <xsl:attribute name="xtrf"> <xsl:call-template name="transform-title"> <xsl:with-param name="xtrc" select="//*[contains(@class,' topic/linkpool ')]/@xtrc"/> </xsl:call-template> <xsl:text>.xml</xsl:text> </xsl:attribute> </xsl:template> <xsl:template match="*[contains(@class, ' topic/xref ') and (@format='dita' or not(@format))]/@xtrf" mode="copy-and-modify"> <xsl:attribute name="xtrf"> <xsl:call-template name="transform-title"> <xsl:with-param name="xtrc" select="//*[contains(@class,' topic/linkpool ')]/@xtrc"/> </xsl:call-template> <xsl:text>.xml</xsl:text> </xsl:attribute> </xsl:template> </xsl:stylesheet> I would grealty appreciate if anyone could suggest how to change the XSL:document instruction to a XSL 2.0 compliant XSL:result-document insruction. Cheers, 2012/2/21, team wise <dfanster@xxxxxxxxx>: > Hi the list members, > Can anyone give me some insights to troubleshoot the problem as indicated > below? > > When compiling a set of XSLT version 1.0/1.1 style sheets using SAXON > 9, I encountered with error as follows : > Exception thrown by OutputURIResolver Cause:: Resolved URL is malformed > > Before which a number of other errors had been surpressed and one of > which in question is explained below: > > Below reveals an extracted version of a full log of the latest Ant > Build failure: > Processing started... > Initialize log directory and file name... > Validate and init input arguments... > [echo] ********************************************************* > [echo] * basedir = D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare > [echo] * dita.dir = D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare > [echo] * input = > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\workset/GUID-C9CA7357-CBA3-43B3-A4B2-B977AD1B7D1E.ditamap > [echo] * transtype = mobilewebguidenxt > [echo] * tempdir = > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\workset/temp > [echo] * outputdir = > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\out > [echo] * extname = .xml > [echo] * clean.temp = no > [echo] * xslt.parser = SAXON > [echo] * HTMLHelpCompiler = ${HTMLHelpCompiler} > [echo] * pdf.formatter = ah > [echo] ********************************************************* > Preprocessing started... > Clean temp directory... > GenMapAndTopicListModule.execute(): Starting... > [pipeline] Using XERCES. > [pipeline] Using Xerces grammar pool for DTD and schema caching. > GenMapAndTopicListModule.execute(): Execution time: 2.61 seconds > Generate file list... > Copy necessary files needed for the computer web output... > DebugAndFilterModule.execute(): Starting... > [pipeline] Using Xerces grammar pool for DTD and schema caching. > [pipeline] Using Xerces grammar pool for DTD and schema caching. > DebugAndFilterModule.execute(): Handling file > GUID-54F20824-43B5-4CE1-8EA2-400F1CB13716.xml... > Execution time: 1.188 seconds > Debug and filter input files... > Move metadata entries... > Resolve conref push... > Resolve conref in input files... > [xslt] Loading stylesheet > D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare\xsl\preprocess\conref.xsl > [xslt] > D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare\xsl\InfoShare\xslhtml\ditamap-transformation.xsl:36: > Error! java.io.FileNotFoundException: > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\workset\temp\GUID-30956BCB-576E-4180-9CE4-044B7E9474A3.ditamap > (The system cannot find the file specified) Cause: > java.io.FileNotFoundException: > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\workset\temp\GUID-30956BCB-576E-4180-9CE4-044B7E9474A3.ditamap > (The system cannot find the file specified) > [xslt] Loading stylesheet > D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare\xsl\InfoShare\xslhtml\clean-up.xsl > h3. [xslt] : Fatal Error! Exception thrown by OutputURIResolver Cause: > net.sf.saxon.trans.XPathException: Resolved URL is malformed [xslt] > Failed to process > D:\InfoShare\Data\PublishingService\Data\DataExports\GUID-75CD4383-F94E-49AA-8182-9776535F8522.20120214202004701\1\en\workset\temp\toc.ditamap > Processing ended. > > BUILD FAILED > > To help you get more background information, the other errors > suppressed and resolutions are described as follows: > > First problem: > Fatal error [xslt] > D:\InfoShare\App\Utilities\DITA-OT\SEMC_InfoShare\xsl\InfoShare\common\infoshare.filesystem.xsl:133: > Fatal Error! There is more than one method matching the function call > file:new, and there is insufficient type information to determine > which one should be used > Solutions: > I attempted the following in line with your post entitled Test if an > (image) file exists at > http://www.oxygenxml.com/archives/xsl-list/200506/msg00400.html > > modified the problematic XSL either by > From: <xsl:value-of select="file:exists(file:new($filename))"/> > > To: <xsl:value-of select="file:exists(file:new($filename as xs:string))"/> > > Or change the line 132 > From: > <xsl:param name="filename"/> > To: > <xsl:param name=" filename as xs:string "/> > > But the above solutions did not come through, which led me to disable > all calls to the named template file-exists. This affects a number of > different XSLs. > > The second problem and its solution: > @herf attribute is not allowed in Document() ; Changed all occurrence > of document (@href, ) to result-document(@href, ). > In case the switch from document() to result-document() is > problematic, please could you advise how to fix the error that @href > is not allowed in Document()? in the XSL where the exact problem was > complained about, its version reads ' <xsl:stylesheet version="1.1" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform">'. > > The Third problem and its solution: > XHTML namespace is not declared in transform.title.xsl Solution : Declared > it. > -- Keep an Exacting Eye for Detail
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|