1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

mit XSLT doctype für XHTML definieren

Dieses Thema im Forum "XML Technologien" wurde erstellt von ipspy4711, 4. Juli 2012.

  1. ipspy4711

    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 (Text):
    1. <xsl:stylesheet version="2.0"
    2.     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    3.    
    4.     <xsl:param name="dtd"/>
    5.     <xsl:variable name="dtpublic">
    6.         <xsl:value-of select="concat(concat('-//W3C//DTD XHTML 1.0 ', $dtd), '//EN')"/>
    7.     </xsl:variable>
    8.     <xsl:variable name="dtsystem">
    9.         <xsl:value-of select="concat(concat('http://www.w3.org/TR/xhtml1/DTD/xhtml1-', $dtd), '.dtd')"/>
    10.     </xsl:variable>
    11.     <xsl:output method="xml" indent="yes" encoding="UTF-8" doctype-public="{$dtpublic}"  doctype-system="{$dtsystem}"/>
    12.        
    Eventuell ist es wichtig zu wissen, dass ich den Saxon-Parser (HE) verwende.
     
Die Seite wird geladen...