Markus studiert!

Relationemodelle mit XSL erzeugen

Für unser Datenbank-Projekt habe ich ein XML-Stylesheet geschrieben, dass aus einer einfachen XML-Datei ein schönes Relationenmodell erzeugt.

Relationemodelle mit XSL erzeugen

XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="relationenmodell.xsl"?>
<relationmodel>
    <relation>
        <name>Relation</name></p>
<property primary="true">Primärschlüssel</property>
<property foreign="true">Fremdschlüssel</property>
<property>Datenfeld</property>
    </relation>
</relationmodel>

XSL

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" indent="yes" />
    <xsl:template match="/relationmodel">
        <html>
            <head>
                <title>Relationenmodell Auktionsdatenbank 2010db02</title>
<link rel="stylesheet" type="text/css"
                    href="http://yui.yahooapis.com/3.2.0/build/cssreset/reset-min.css" />
<link rel="stylesheet" type="text/css"
                    href="http://yui.yahooapis.com/3.2.0/build/cssbase/base-min.css" />
<link rel="stylesheet" type="text/css"
                    href="http://yui.yahooapis.com/3.2.0/build/cssfonts/fonts-min.css" />
<link rel="stylesheet" type="text/css" href="relationenmodell.css" />
            </head>
            <body>
<h1>Relationenmodell Auktionsdatenbank 2010db02</h1>
<xsl:apply-templates />
            </body>
        </html>
    </xsl:template>
    <xsl:template match="relation">
<table>
<tbody>
<tr>
<th>
                        <xsl:value-of select="name"></xsl:value-of>
                    </th>
<xsl:for-each select="property">
                        <xsl:element name="td">
                            <xsl:attribute name="class">
                            <xsl:if test="@primary">primary</xsl:if>
                            <xsl:if test="@foreign">foreign</xsl:if>
                            </xsl:attribute>
                            <xsl:value-of select="."></xsl:value-of>
                        </xsl:element>
                    </xsl:for-each>
                </tr>
</tbody>
</table>
</xsl:template>
</xsl:stylesheet>

Und damit es hübsch aussieht, dazu noch ein CSS-File:

body { margin: 1em 2em; }
th { background-color: #ccc; font-weight: bold; min-width: 15em; }
td { min-width: 8em; }
.primary { text-decoration: underline; }
.foreign { font-style: italic; }

< 31. December 2010, 14:40 Uhr

Tags:


Laufende Projekte Ende 2010

In der kurzen freien Zeit zwischen den Jahren muss ich mich gleich um drei Projekte kümmern:

  • In Datenbanksysteme entwickeln wir eine PostgreSQL-Datenbank für ein Auktionssystem, hierzu wird am 6. Januar das Entity-Relationship-Modell und das Relationenmodell, sowie SQL-Script für den Datenbankentwurf abgegeben. Am 21. Januar dann die vollständige GUI-Anwendung der Auktionsplattform.
  • In Softwaretechnik sind wir aktuell an der Umsetzung des Projekts (Verkehrsplaner). Hier ist die Abgabe ebenfalls am 21. Januar.
  • Für Betriebssysteme gibt es eine Einzel-Abgabe: eine Datenbank für ein Fisch-Hotel in C — die habe ich schon fertig.

< 31. December 2010, 14:26 Uhr

Tags: