Hallo,
Die DTD-Deklaration sieht folgendermaßen aus:
<!DOCTYPE Medienbibliothek SYSTEM "nureinbeispiel.dtd">Ich schätze, die Meldung "no protocol" spielt darauf an, dass in der URL zur DTD keine Protokollangabe wie etwa http oder so steht.
Das weist irgendwie darauf hin. Allerdings: Relative URIs in DTD-Deklarationen sind laut XML-Standard zulässig und sogar üblich.
Um das ganze Problem mal etwas besser zu isolieren: Welche Version von Xalan verwendest Du und wie rufst Du es auf?
Bei mir (Xalan 2.7.1) von der Kommandozeile funktioniert das folgende Beispiel aus SELFHTML (das ebenfalls eine Referenz zu einer relativen DTD enthält):
gruss.xml (lässt sich auch mit XSLT-konformen Browsern anzeigen)
gruss.xsl
gruss.dtd
Aufruf der Kommandozeile (beides liefert bei mir das gleiche):
xalan -IN gruss.xml -XSL gruss.xsl
java -jar /usr/share/xalan/lib/xalan.jar -IN gruss.xml -XSL gruss.xsl
Ausgabe:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p style="font-family:Tahoma; font-size:64px; color:red" align="center">hallo Welt!</p>
</body>
</html>
Vielleicht solltest Du's erstmal mit diesem einfachen Beispiel probieren, um zu sehen, wo das Problem bei Dir liegt.
Viele Grüße,
Christian
Mein "Weblog" [RSS]
Using XSLT to create JSON output (Saxon-B 9.0 for Java)
How to tell the difference between a science fan and a scientist.