verwendetes Datenbanksystem: XSL(T)
Hallo "Kollegen",
gibt es eine Möglichkeit, Ausgaben im XSLT-File zu formatieren?
Hier mal ein ganz kleines Beispiel:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Xml;
namespace <xsl:value-of select="//class-info/namespace" /> {
class <xsl:value-of select="//class-info/class-name" /> {
static void Main(string[] args) {
Console.Write("Hello World");
}
}
}
</xsl:template>
</xsl:stylesheet>
Jetzt ist das ja noch übersichtlich. Was aber, wenn zig Schleifen und Abfragen dazukommen, dann habe ich doch ein "Kraut-und-Rüben-C#-File".
Kennt sich da jemand aus, wie man das machen kann oder vielleicht gibt es ja auch die Möglichkeit, nach dem Generieren mit einem Formatter (über das Programm wohlgemerkt und nicht über die IDE) den Code zu formatieren? Also, was man eigentlich im Hintergrund via IDE mit dem Befehl Edit.FormatDocument macht?
Danke schon einmal für etwaige Antworten im Voraus.
Hallo mosspower
bei deinem Beispiel wundert mich die output-Method "html" ein bisschen. Da würde "text" doch irgendwie besser passen, oder? 😉
Ansonsten verstehe ich die Frage nicht ganz.
Wenn du meinst dass du die ganzen Methoden nicht zu tief verschachteln willst, dann kannst du ja mit match-templates select="xpath"
oder mit call-template
Funktionen auslagern.
Wenn du den ausgegebenen Source-Code meinst, den musst du schon während der Transformation korrekt rendern. Die Format-Document Funktion ist ein Feature vom VS und funktioniert nur weil es die aktuelle Sprache kennt.
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Hallo Florian Reischl,
klar, das war nur ein Beispiel, da gehört natürlich text rein.
Meine Fragen bezogen sich auf den generierten Quellcode (hier C#-Datei).
Gibt es wirklich keine Methode hinterher, nachdem das File soz. auf der Platte liegt, eine Codeformatter drüberlaufen zu lassen?
Wenn ich zig Bedingungen und Schleifen in XSL programmiere, dann sieht das ja nicht sehr schön aus, wenn ich da schon acht geben muss, wie ich die Ausgaben zu formatieren habe.
Also mir wäre nicht bekannt, dass man irgendwie dieses Studio-Command ansprechen könnte. Man kann so was natürlich theoretisch über Regex machen, dürfte aber sehr umständlich sein.
Zum XSTL, wie schon gesagt, nicht alles verschachteln sondern in eigene Template-Methoden auslagern.
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
OK, es gibt den Text-Tag, hier werden Formatierungen, z.B. Blanks übernommen und generiert, z.B. ...
<xsl:text> public void Init() {
</xsl:text>
<xsl:text> try {
</xsl:text>
<xsl:text> }
</xsl:text>
<xsl:text> catch(Exception ex) {
</xsl:text>
<xsl:text> trow;
</xsl:text>
<xsl:text> }
</xsl:text>
<xsl:text> }
</xsl:text>