menu
{$Head.Title}}

Übung XML Transformation Note

Übung XML Transformation Note

Eclipse Note Projekt

Für diese Übung erstellen wir in Eclipse ein generelles Projekt note:

note.xml

Erstellen Sie im Projekt note die Datei note.xml:

Kopieren Sie das XML Dokument aus dem nachfolgenden Listing in die Datei note.xml:

<?xml version="1.0"?>
<document>
  <note>
    <to>Jane</to>
    <from>Tom</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
  </note> 
  <note>
    <to>Tom</to>
    <from>Jane</from>
    <heading>Ack</heading>
    <body>How could I?</body>
  </note> 
  <note>
    <to>Jane</to>
    <from>Tom</from>
    <heading>Sorry</heading>
    <body>I was somewhat too fearful!</body>
  </note>
</document>

Das Dokumente sollte im Eclipse IDE Editor korrekt formatiert angezeigt werden:

note.xsl

Erstellen Sie im Projekt note die Datei note.xsl:

Kopieren Sie das XSL Dokument aus dem nachfolgenden Listing in die Datei note.xsl:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <xsl:template match="/">
    <html><head>
        <title>XML/XSL Sample Note</title>
        <style type="text/css">
          body { background-color:#000080; color:#ffffff; 
                 font-family:arial,helvetica; font-size:12px; }
          th   { background-color:#444480; font-weight:bold; }
          td   { background-color:#888880; }
          .headline { font-weight:bold; font-size:24px; }
        </style>
      </head><body><div align="center"><span class="headline">Notes</span>
          <table border="0" cellspacing="0" cellpadding="5">
            <tr><th width="10%">to</th>
              <th width="10%">from</th>
              <th width="20%">heading</th>
              <th width="60%">body</th></tr>
            <xsl:for-each select="/document/note">
              <tr><td><xsl:value-of select="to"/></td>
                <td><xsl:value-of select="from"/></td>
                <td><xsl:value-of select="heading"/></td>
                <td><xsl:value-of select="body"/></td></tr>
            </xsl:for-each>
          </table></div></body></html>
  </xsl:template>
</xsl:stylesheet>

Das XSL Dokument sollte im Eclipse XML Editor korrekt formatiert angezeigt werden:

Eclipse XML Transformation

Mit der Eclipse IDE führen wie die XML Transformation auf das XML Dokument note.xml aus.Hierzu selektieren wir die Dateien note.xml und note.xsl und öffnen das Popup Menü und währen die Option Run->XSL Transformation aus:

Die Transformation erzeugt die Datei note.out.xml:

Die Output Extension ist noch falsch und kann via Run Configurations->Edit->Output Extension angepasst werden:

Java Saxon Parser Transformation

Mit diesem Schritt verwenden wir den Java Saxon Parser und führen die Transformation via Terminal (Command Line) aus.

Den Saxon Parser installieren wir in ein eigenes Verzeichnis saxon.

Laden Sie die ZIP Datei des Saxon Parser SaxonHE11-4J.zip und entpacken Sie solches in das Verzeichnis saxon.Das folgende Bild zeigt die mögliche Folder Struktur mit den exportierten Dateien:

Jetzt erstellen wir im note Verzeichnis via Eclipse IDE die Datei saxon.cmd gemäss dem folgenden Script:

java -jar ..\saxon\saxon-he-11.4.jar -s:note.xml -xsl:note.xsl -o:note.html

Führen Sie die Datei saxon.cmd via Terminal aus:

Die Datei note.html wurde erzeugt: