[oXygen-user] Problem with Saxon's EXPath/file:exists on Mac

Stefan Krause stefan.krause at editura.de
Sun Mar 23 14:59:45 CDT 2014


Hi George,

I checked it with Saxon-EE on the command line and I can confirm that it is an issue with Saxon. I filed a report over there:

https://saxonica.plan.io/issues/2037

Best regards,

Stefan

Am 23.03.2014 um 11:44 schrieb George Cristian Bina <george at oxygenxml.com>:

> Hi Stefan,
> 
> In that case then I believe it is an issue that should be reported against Saxon. Let me know if you want to report the problem to Saxonica, otherwise we will report it.
> 
> Best Regards,
> George
> --
> George Cristian Bina
> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
> http://www.oxygenxml.com
> 
> On 3/23/14, 11:31 AM, Stefan Krause wrote:
>> 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:templatematch="/">
>> <xsl:variablename="file"as="xs:string"select="string(document-uri(/))"/>
>> <root>
>> <test>
>> <xsl:value-ofselect="$file"/>: <xsl:value-ofselect="file:exists($file)"/>
>> </test>
>> <xsl:variablename="file2"as="xs:string"select="substring-after($file,
>> 'file:')"/>
>> <test>
>> <xsl:value-ofselect="$file2"/>: <xsl:value-ofselect="file:exists($file2)"/>
>> </test>
>> <xsl:variablename="file3"as="xs:string"select="file:path-to-native($file)"/>
>> <test>
>> <xsl:value-ofselect="$file3"/>: <xsl:value-ofselect="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 <mailto: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
>>>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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/3f24ef04/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/3f24ef04/attachment.bin 


More information about the oXygen-user mailing list