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@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@oxygenxml.com <mailto:george@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@oxygenxml.com
http://www.oxygenxml.com/mailman/listinfo/oxygen-user




_______________________________________________
oXygen-user mailing list
oXygen-user@oxygenxml.com
http://www.oxygenxml.com/mailman/listinfo/oxygen-user