Ingo: XSLT mit Xalan-j

Hallo,

hat jemand eine Ahnung, wie ich das Outputformat mit Xalan-j festlegen kann?
Wenn ich dieses durch den Prozessor jage,

<xsl:value-of select="normalize-space(substring-before(@visibility,'_'))"/>
   <xsl:value-of select="string(' ')"/>
   <xsl:variable name="changeable" select="@isChangeable"/>
   <xsl:variable name="typeId" select="./TypedElement.type/PrimitiveType/@xmi.idref"/>
   <xsl:variable name="type" select="key('primitivetypelist',$typeId)"/>
   <xsl:if test="$changeable='false'">
       final<xsl:value-of select="string(' ')"/>
   </xsl:if>
   <xsl:value-of select="normalize-space($type/@name)"/>
   <xsl:value-of select="string(' ')"/>
   <xsl:value-of select="normalize-space(@name)"/>;

dann bekomme ich

private
   final Long Time;
     public String Name;
     public String Steps;
     public String Description;
     public String Ingredients;

Es sollte eigentlich so aussehen:

private final Long Time;
public String Name;
public String Steps;
public String Description;
public String Ingredients;

Wie kann ich also das Einrückverhalten und den Zeilenumbruch kontrollieren, ohne alles in eine Zeile in das XSL Dokument zu schreiben.

Grüße und vielen Dank im Voraus,

Ingo

  1. Hallo,

    hat jemand eine Ahnung, wie ich das Outputformat mit Xalan-j festlegen kann?

    Verwendest du bereits <xsl:output ..... /> ?

    Es sollte eigentlich so aussehen:

    private final Long Time;
    public String Name;
    Wie kann ich also das Einrückverhalten und den Zeilenumbruch kontrollieren, ohne alles in eine Zeile in das XSL Dokument zu schreiben.

    Du könntest mit concat() arbeiten
    <xsl:value-of select="normalize-space(concat(substring-before(@visibility,'_'), ' ')"/>

    alternativ kannst du versuchen für den template ein xml:space="default" als Attribut zuzuweisen.

    Grüße
    Thomas

    1. Hi und danke für die Antwort

      Verwendest du bereits <xsl:output ..... /> ?

      Ja, habe alle Attribute ausprobiert. Ich verwende jetzt nur
           method="text"

      Ich benutze absolut keine xml und html tags in den Output files.

      Grüße,

      Ingo

      1. Hallo,

        Verwendest du bereits <xsl:output ..... /> ?
        Ja, habe alle Attribute ausprobiert. Ich verwende jetzt nur
             method="text"

        Dann bleibt dir nichts anderes übrig, als die XSL-Anweisungen die eine Zeile produzieren (sollen) auch in einer Zeile zu schreiben.

        Grüße
        Thomas

  2. Hi,

    <xsl:if test="$changeable='false'">
           final<xsl:value-of select="string(' ')"/>
       </xsl:if>

    Du hast hier einen Zeilenumbruch und eine Einrückung im auszugebenden Text.

    private
       final Long Time;

    Warum sollte dann hier kein Zeilenumbruch und keine Einrückung vorhanden sein?

    <xsl:if test="$changeable='false'">final<xsl:value-of select="string(' ')"/></xsl:if>

    sollte m.E. das Problem lösen (getestet hab ich jetzt nicht).

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/