[oXygen-user] Problem with Saxon's EXPath/file:exists on Mac
Stefan Krause
stefan.krause at editura.de
Sun Mar 23 04:31:09 CDT 2014
Hi George,
thanks for your quick response. It provides a useful workaround, but:
> […] You pass an URI while that expects a file path. […]
From The EXpath-Spec [1]:
»An implementation must accept absolute and relative UNIX/Linux and Windows paths as well as absolute file URIs.«
So I think it is OK to provide an absolute URI for the parameter.
BTW: My attempt to solve the issue in a more general way was file:path-to-native(), but it resolves the URI wrong. file:path-to-native("file:/Users/Stf/Documents/trash/file-exists.xsl") evaluates to »/Applications/oxygenXML 15.2/Users/Stf/Documents/trash/file-exists.xsl« (tested with the stylesheet [2]). Maybe this is the same problem as with file:exists().
Best regards,
Stefan
[1] http://expath.org/spec/file#file-paths
[2] Modified test stylesheet:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:file="http://expath.org/ns/file"
version="2.0"
exclude-result-prefixes="#all">
<xsl:template match="/">
<xsl:variable name="file" as="xs:string" select="string(document-uri(/))"/>
<root>
<test>
<xsl:value-of select="$file"/>: <xsl:value-of select="file:exists($file)"/>
</test>
<xsl:variable name="file2" as="xs:string" select="substring-after($file, 'file:')"/>
<test>
<xsl:value-of select="$file2"/>: <xsl:value-of select="file:exists($file2)"/>
</test>
<xsl:variable name="file3" as="xs:string" select="file:path-to-native($file)"/>
<test>
<xsl:value-of select="$file3"/>: <xsl:value-of select="file:exists($file3)"/>
</test>
</root>
</xsl:template>
</xsl:stylesheet>
Result:
<root>
<test>file:/Users/Stf/Documents/trash/file-exists.xsl: false</test>
<test>/Users/Stf/Documents/trash/file-exists.xsl: true</test>
<test>/Applications/oxygenXML 15.2/Users/Stf/Documents/trash/file-exists.xsl: false</test>
</root>
Am 23.03.2014 um 08:43 schrieb George Cristian Bina <george at oxygenxml.com>:
> Hi Stefan,
>
> I think you are not passing the expected parameter to the file:exists function. You pass an URI while that expects a file path. For example, if I remove the "file:" part of the URI from the stylesheet then it returns true on my Mac:
>
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:file="http://expath.org/ns/file"
> version="2.0"
> exclude-result-prefixes="#all">
> <xsl:template match="/">
> <xsl:variable name="file" as="xs:string" select="string(document-uri(/))"/>
> <test>
> <xsl:value-of select="$file"/>: <xsl:value-of select="file:exists(substring-after($file, 'file:'))"/>/<xsl:value-of select="doc-available($file)"/>
> </test>
> </xsl:template>
> </xsl:stylesheet>
>
> -->
>
> <test>file:/Users/george/test/test.xsl: true/true</test>
>
> Best Regards,
> George
> --
> George Cristian Bina
> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> http://www.oxygenxml.com
>
> On 3/22/14, 3:15 PM, Stefan Krause wrote:
>> Hi all,
>>
>> I have the following stylesheet:
>>
>> <xsl:stylesheet
>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:file="http://expath.org/ns/file"
>> version="2.0"
>> exclude-result-prefixes="#all">
>> <xsl:templatematch="/">
>> <xsl:variablename="file"as="xs:string"select="string(document-uri(/))"/>
>> <test>
>> <xsl:value-ofselect="$file"/>:
>> <xsl:value-ofselect="file:exists($file)"/>/<xsl:value-ofselect="doc-available($file)"/>
>> </test>
>> </xsl:template>
>> </xsl:stylesheet>
>>
>> I run it from OxygenXML with the stylesheet itself as the input document.
>>
>> I expected the result is
>>
>> <test>file:/Users/Stf/Documents/trash/file-exists.xsl: true/true</test>
>>
>> but actually it is
>>
>> <test>file:/Users/Stf/Documents/trash/file-exists.xsl: false/true</test>
>>
>> Since I get the expected result from Oxygen on Windows, I think there is
>> something wrong with the Mac implementation.
>>
>> I use XML Editor 15.2, build 2014022718 on Mac OS X 10.9.2 (13C64) with
>> java.version=1.6.0_65. The transformation scenario uses Saxon-PE, and
>> Saxon’s »-ext«-option is checked. There are no errors during the
>> transformation.
>>
>> Any hints to get the right result?
>>
>> Thank you,
>>
>> Stefan
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> oXygen-user mailing list
>> oXygen-user at oxygenxml.com
>> http://www.oxygenxml.com/mailman/listinfo/oxygen-user
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.oxygenxml.com/pipermail/oxygen-user/attachments/20140323/1140eab5/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 204 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://www.oxygenxml.com/pipermail/oxygen-user/attachments/20140323/1140eab5/attachment.bin
More information about the oXygen-user
mailing list