<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
	version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:misc="http://www.expedimentum.org/XSLT/Misc"
	xmlns:saxon="http://saxon.sf.net/"
	xmlns:doc="http://www.CraneSoftwrights.com/ns/xslstyle"
	xmlns:docv="http://www.CraneSoftwrights.com/ns/xslstyle/vocabulary"
	xmlns:xlink="http://www.w3.org/1999/xlink"
	
	xmlns:java-file="java:java.io.File"
	xmlns:java-uri="java:java.net.URI"
	
	exclude-result-prefixes="doc docv">
	<!--  -->
	<!--  -->
	<!--  -->
	<doc:doc filename="files-java.xsl" internal-ns="docv" global-ns="doc misc" vocabulary="DocBook" info="$Revision: 111 $, $Date: 2010-07-10 00:45:43 +0200 (Sa, 10 Jul 2010) $">
		<doc:title>Beispiel für Einbindung von Java in XSLT</doc:title>
		<para>Dieses Stylesheet ist ein Beispiel für die Einbindung von Java-Methoden in XSLT.</para>
		<para>Erläuterungen dazu finden sich unter <link xlink:href="http://blog.expedimentum.com/2010/java-in-xslt-verwenden/">http://blog.expedimentum.com/2010/java-in-xslt-verwenden/</link>.</para>
		<para><emphasis role="bold">Achtung:</emphasis> Der eingesetzte XSLT-Prozessor muss Java unterstützen. Diese Stylesheet wurde erfolgreich mit
			Saxon-B 8.9.0.4, Saxon-B 9.1.0.7, Saxon-PE/EE 9.2.0.6 (Oxygen build), AltovaXML (Build 2009-10-23) und AltovaXML2010_rel3sp1 getestet.</para>
		<para>Autor: <author>
			<firstname>Stefan</firstname>
			<surname>Krause</surname>
		</author>
		</para>
		<para>Homepage: <link xlink:href="http://www.expedimentum.org/">http://www.expedimentum.org/</link></para>
		<para>Lizenz: Dieses Stylesheet ist unter einer einer Creative Commons-Lizenz (<link xlink:href="http://creativecommons.org/licenses/by/3.0/">CC-BY&#160;3.0</link>) lizenziert. Die Weiternutzung ist bei Namensnennung erlaubt.</para>
		<revhistory>
			<revision>
				<revnumber>0.109</revnumber>
				<date>2010-07-08</date>
				<authorinitials>Stf</authorinitials>
				<revremark>erste Version</revremark>
			</revision>
		</revhistory>
	</doc:doc>
	<!--  -->
	<!--  -->
	<!-- __________     misc:file-exist()     __________ -->
	<!-- erfolgreich getestet mit Saxon-B 8.9.0.4, Saxon-B 9.1.0.7, Saxon-PE/EE 9.2.0.6 (Oxygen build), AltovaXML (Build 2009-10-23) und AltovaXML2010_rel3sp1 -->
	<doc:function>
		<doc:param name="fileURL"><para>Pfad zur zu überprüfenden Datei (absolut, URI-encoded)</para></doc:param>
		<para>Diese Funktion überprüft, ob die angegebene Datei vorhanden ist. Das Ergebnis ist ein Wahrheitswert 
			(<code>xs:boolean</code>, <code>true()</code> oder <code>false()</code>). 
			<emphasis role="bold">Achtung!</emphasis> Diese Funktion erfordert bei Ausführung einen Java-fähigen XSLT-Prozessor, 
			z.B. Saxon-B 8.9, Saxon-B 9.1, Saxon-PE/EE 9.2 oder AltovaXML.</para>
	</doc:function>
	<xsl:function name="misc:file-exists" as="xs:boolean">
		<xsl:param name="fileURL" as="xs:string"/>
		<xsl:sequence select="java-file:exists(java-file:new(java-uri:new($fileURL)))"/>
	</xsl:function>
	<!--  -->
	<!--  -->
	<!--  -->
	<doc:template>
		<para>Einfacher Test, prüft, ob das Stylesheet selbst im Dateisystem vorhanden ist.</para>
	</doc:template>
	<xsl:template match="/">
		<xsl:message><xsl:value-of select="misc:file-exists(resolve-uri('files-java.xsl') )"/>/<xsl:value-of select="misc:file-exists(resolve-uri('gibtesnichts.xml') )"/></xsl:message>
	</xsl:template>
</xsl:stylesheet>
