mit XSLT doctype für XHTML definieren

ipspy4711

Grünschnabel
Hallo zusammen,

ich möchte eine XLIFF-Datei mit Hilfe von XSLT in ein XHTML-Format zu bringen und hierbei die doctype-Definition mitaufnehmen. Da bei der Umwandlung alle drei XHTML-Dokumenttypen vorkommen können, möchte ich dies über einen Parameter übergeben. Leider finde ich im www noch keine Lösung für mein Problem. Vielleicht weiß jemand von euch was:

Das Stylesheet wird per Batch aufgerufen und dem Batch-Befehl der Parameter (entweder "Strict", "Traditional" oder "Frameset" mitgegeben. Im Stylesheet wird dieser Parameter als Parameter aufgefangen und über die Variable "dtpublic" wird der gesamte Text ("-//W3C//DTD XHTML...") gespeichert. Diese möchte ich dann im Element xsl:eek:utput ausgeben.

Beim Parsen erhalte ich den Fehler:
"XTSE0020: Invalid character in doctype-public parameter"

Das seltsame ist, dass ich genau das selbe mit der Variable "dtsystem" mache und beim Parsen wird das akzeptiert...

Ist mein Parser "kaputt" oder mache ich etwas falsch? ;-)

Vielen Dank für eure Hifle!

Code:
<xsl:stylesheet version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	
	<xsl:param name="dtd"/>
	<xsl:variable name="dtpublic">
		<xsl:value-of select="concat(concat('-//W3C//DTD XHTML 1.0 ', $dtd), '//EN')"/>
	</xsl:variable>
	<xsl:variable name="dtsystem">
		<xsl:value-of select="concat(concat('http://www.w3.org/TR/xhtml1/DTD/xhtml1-', $dtd), '.dtd')"/>
	</xsl:variable>
	<xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-public="{$dtpublic}"  doctype-system="{$dtsystem}"/>

Eventuell ist es wichtig zu wissen, dass ich den Saxon-Parser (HE) verwende.
 

Neue Beiträge

Zurück