Re: [xsl] Re: Testing the existence of a binary file

Subject: Re: [xsl] Re: Testing the existence of a binary file
From: Stefan Krause <stf@xxxxxxxx>
Date: Sun, 14 Feb 2010 13:55:28 +0100
Hash: SHA1

Hello Gerrit,

if java is accessible in your environment, you can use the following

<?xml version="1.0" encoding="UTF-8"?>
	<xsl:function name="misc:file-exists" as="xs:boolean">
		<xsl:param name="uri" as="xs:string?"/>

I ended up with this solution, because it only depends on the
availability of java (it works also with AltovaXML), and there was some
changes in the support of saxon:last-modified/saxon:file-last-modified
during the saxon revisions.

I don't know how it's fit to Schematron, but maybe you find a way.

Best regards,


Imsieke, Gerrit, le-tex schrieb:
> Since nobody answered, I tried to come up with a solution on my own.
> It seems that in Java there is no such thing as a 'raw' encoding, since
> everything will be represented as 16-bit Unicode characters internally.
> If I supplied my own CharsetDecoder, maybe I could just ignore malformed
> input and unmappable characters and report success for any input of
> non-zero length. But I was looking for a solution that works with Saxon
> out of the box, not requiring users to install Java extension functions.
> Looking at what I was trying to achieve, that is: testing the sheer
> existence of a binary file, rather than reading its raw contents, I came
> up with the following solution:
> <sch:assert
>   test="saxon:try(
>           format-dateTime(
>             saxon:last-modified(
>               resolve-uri(
>                 @src,
>                 $base-uri
>               )
>             ),
>             '[Y]'
>           ),
>           false()
>         )"
>   id="ImageMissing">
>     Image <sch:value-of select="@src"/> must be present at its @src
> location.
> </sch:assert>
> This relies on the operating system reporting a last change date for the
> file in question, and of course on Saxon's built-in extension functions
> which will be an issue for Saxon HE users.
> Gerrit
> On 05.02.2010 10:21, Imsieke, Gerrit, le-tex wrote:
>> Dear List Members,
>> In Schematron using the xslt2 binding, I want to check whether image
>> files (whose relative path is given in a @src attribute) are present.
>> So in the generated XSLT file, I have code like the following.
>> <xsl:when test="unparsed-text-available(resolve-uri(@src, $base-uri))"/>
>> This works fine if @src refers to text files in US-ASCII or UTF-8
>> encodings, but not for PNGs oder JPEGs.
>> So I was looking for an encoding name that I can use as the second
>> argument to unparsed-text-available. But I couldn't find an encoding
>> such as RAW or BINARY that Java accepts (I'm using saxon on Java
>> 1.6.0_17).
>> This issue must have been raised before, but unfortunately I didn't find
>> previous threads on this matter.
>> Any hints appreciated.
>> Gerrit
Comment: GnuPT v3.6.6
Comment: Download:
Comment: Using GnuPG with Mozilla -


Current Thread