# Probleme mit Include



## CelikBlek (15. Mrz 2006)

Hallo nochmal,
ich habe zwei XSL Dateien. Der eine included den anderen. Sie liegen im selben Verzeichnis. Gebe den wie folgt an:

```
<xsl:include href="main.xsl"/>
```
Warum geht das nicht? Der sagt findet ihn nicht  :bahnhof:


----------



## Bleiglanz (15. Mrz 2006)

Wer sagt das?

ist es in deinem Dokument "top-level"?


----------



## CelikBlek (15. Mrz 2006)

ja ist im toplevel. Komischerweise funktioniert es in xmlspy. wenn ich allerdings in java benutze (fop, xsltc etc.), dann meckert der compiler (xslt), dass main.xsl nicht gefunden werden konnte.


----------



## Bleiglanz (15. Mrz 2006)

hmm

welche Java-Version (welches JDK)?


----------



## CelikBlek (15. Mrz 2006)

JDK 1.5


----------



## Bleiglanz (15. Mrz 2006)

puh, erstmal komisch

liegt die files "neben" den Class-Dateien, ist der Order der die XSL Dinger enthält im Classpath? Wie startest du dein Programm?


----------



## CelikBlek (15. Mrz 2006)

Ich habe jar, aber auch Eclipse. In beiden Fällen. 
Ich habe xsl-Verzeichnis wo alle xsl's liegen. Auch der main.xsl wo alle globalen templates usw. sind. Wie gesagt unter XMLSpy läuft es wunderbar. Es kann doch nicht sein, dass es ein absolut Pfad sein muss oder?


----------



## Bleiglanz (15. Mrz 2006)

nö

könnte aber sein, dass das vom "user.dir" aus gesehen wird, d.h. von dem Verzeichnis aus, in dem du dein Programm startest

(in Eclipse die Wurzel des Projekts)

bin mir aber nicht ganz sicher


----------



## CelikBlek (17. Mrz 2006)

Irgendwie will die Schei... nicht funzen.
Habe folgende Struktur:
c:\MeinProg\
c:\MeinProg\data\
c:\MeinProg\data\xsl
c:\MeinProg\data\xsl\Abc.xsl
c:\MeinProg\data\xsl\Main.xsl
c:\MeinProg\data\java
c:\MeinProg\data\java\MeinProg.jar

So Abc.xsl included Main.xsl. Wie gesagt ohne Java finden die sich, aber sobald ich den jar starte, der die xsl verarbeitet, kann der den Main nicht finden.
Wie würde es denn aussehen wenn ich es absolut eingebe? Ich weiss in der XML wo die Applikation installiert ist. In dem Fall z.B. habe ich einen element <instdir>c:\MeinProg</instdir> Kann ich mir den href von include nicht so basteln?

```
<xsl:variable name="instpfad" select="instdir"/>
<xsl:include href=$instpfad"/program/xsl/main.xsl"/>
```
Wie wäre denn hier Syntax?


----------



## byte (17. Mrz 2006)

Du musst den Pfad schon als URI übergeben. Denn wenn du irgendwelche Sonderzeichen (z.B. Leerzeichen) im Pfad hast, dann gibts Probleme. Gibt ne Funktion dafür, der das URI-Escaping für Dich übernimmt:


```
fn:encode-for-uri(string)
```


----------



## CelikBlek (17. Mrz 2006)

Habe ich auch schon versucht. Findet es trotzdem nicht.  :bahnhof: 
Auch wenn es absolut ist.


----------

