next up previous contents
Nächste Seite: 8.4.2 Skript Aufwärts: 8.4 Verschiedene Ausprägungen Vorherige Seite: 8.4 Verschiedene Ausprägungen   Inhalt

8.4.1 Allgemeine Bestimmmung von Ausprägungen mit XSLT

Die Festlegung welche Informationen in einer Ausprägung erscheinen sollen, werden anhand von Attributen vorgenommen, wie es bereits in Kapitel 8.2.3 vorgestellt wurde. Die weitere Verarbeitung der Zusatzinformationen muss im Stylesheet vorgenommen werden. Da nicht vorausgesetzt werden kann, dass alle default-Werte gesetzt wurden, da das abhängig von dem Editor beziehungsweise Validator ist, der verwendet wird, muss die Grundlogik der einzelnen Ausprägungen mit in der Transformation berücksichtigt werden. Für die Betrachtung des Skriptes heisst das, dass alle Elemente dargestellt werden, wenn kein script-Attribut ausgewertet werden muss, und für die Präsentation, dass nur Titel und Schlüsselwörter aufgenommen werden.

Code-Beispiel 11:
Das folgende Template kann auf jedes beliebige Element angewendet werden, wenn getestet werden soll, ob das Element in dieser Ausprägung dargestellt werden soll. Dazu muss einfach bei der Verarbeitung einer Vorlage zu einem Element diese Abfrage vorangestellt werden. Die Abfrage berücksichtigt im ersten Test, ob überhaupt ein script:on-Attribut existiert. Ist dies nicht der Fall, so wird das Element übernommen. Existiert das Attribut, so muss es in Verbindung mit dem script:delta-Attribut anhand der Tabelle 2 ausgewertet werden.
<xsl:template match="*" mode="scripttest">
  <!-- Elemente ohne Auspraegungsattribute erscheinen -->
  <xsl:if test="not(@script:on)">true</xsl:if>
  <!-- Element wird per Standard dargestellt -->
  <xsl:if test="@script:on='true'">
  <xsl:choose>
    <!-- überpruefe delta bezueglich der auspraegung -->
    <xsl:when test="@script:delta">
      <xsl:variable name="del" select="string(@script:delta)"/>
      <!-- wenn delta existiert, die Liste durchsuchen -->
      <xsl:if test="contains($del, $ausinstanz)">false</xsl:if>
      <xsl:if 
          test="not(contains($del, $ausinstanz))">true</xsl:if>
    </xsl:when>
    <xsl:otherwise>true</xsl:otherwise>
  </xsl:choose>
  </xsl:if>
  <!-- Element nicht im Standard -->
  <xsl:if test="@script:on='false'">
    <xsl:choose>
    <!-- überpruefe delta bezueglich der auspraegung -->
    <xsl:when test="@script:delta">
      <xsl:variable name="del" select="string(@script:delta)"/>
      <!-- wenn delta existiert, die Liste durchsuchen -->
      <xsl:if test="contains($del, $ausinstanz)">true</xsl:if>
      <xsl:if 
        test="not(contains($del, $ausinstanz))">false</xsl:if>
    </xsl:when>
    <xsl:otherwise>false</xsl:otherwise>
  </xsl:choose>
  </xsl:if>
</xsl:template>
Dieses Template, beziehungsweise sein Pendant zur Abfrage der Zugehörigkeit zur Präsentationsausprägung, kann in jedem Stylesheet unverändert wiederverwendet werden, da es nur der Abfrage eines Wahrheitsausdruckes entspricht. Ob eine Unterstützung der verschiedenen Multimedia-Objekte in den Formaten der Ausprägungen gegeben ist, muss in jedem Fall speziell entschieden werden. So kann in der Generierung von HTML-Dateien sowohl ein Applet oder eine Grafik eingebettet werden, auch mit den eventuellen Ersatzdarstellungen, während zur Generierung von PDF über XSL-FO keine Applets verwendet werden können. Daher kann in der Verarbeitung von XML-Daten zu XSL-FO direkt eine Ersatzdarstellung benutzt werden und das Applet wird vernachlässigt.
next up previous contents
Nächste Seite: 8.4.2 Skript Aufwärts: 8.4 Verschiedene Ausprägungen Vorherige Seite: 8.4 Verschiedene Ausprägungen   Inhalt
Tanja Schniederberend 2003-06-11