3.2.4  Prioritäten

Alle Konzepte Priorität Match-Regeln werden mit einer Priorität ausgestattet. Der Stylesheet-Entwickler hat die Möglichkeit diese Priorität zu überschreiben. Dazu wird das Attribut @priority an der Match-Regel verwendet. Ein Use-Case für die Prioritäten wäre bspw. folgendes Filter-Szenario

Beispiel Seminarverwaltung

In XSLT Templates überführt, könnte diese Anforderung so umgsetzt werden:

<xsl:template match="Seminar[Ende-Datum/xs:date(.) le current-date()]" 
              priority="30" mode="filter-seminare"> 
  <xsl:element name="Filtered-Seminar" namespace="{namespace-uri()}"> 
    <xsl:attribute name="reason">termed-seminar</xsl:attribute> 
    <xsl:apply-templates select="node()|@*" mode="filter-seminare"/> 
  </xsl:element> 
</xsl:template> 

<xsl:template match="Seminar[Type eq 'SINGLE' and count(dozenten/dozent) gt 1]"
              priority="20" mode="filter-seminare"> 
  <xsl:element name="filtered-Seminar" namespace="{namespace-uri()}"> 
    <xsl:attribute name="reason">dozenten-count</xsl:attribute> 
    <xsl:apply-templates select="node()|@*" mode="filter-seminare"/> 
  </xsl:element> 
</xsl:template> 

<xsl:template match="Seminar[not(dozenten/dozent)]" mode="filter-seminare"> 
  <xsl:element name="filtered-Seminar" namespace="{namespace-uri()}"> 
    <xsl:attribute name="reason">dozenten-missing</xsl:attribute> 
    <xsl:apply-templates select="node()|@*" mode="filter-seminare"/> 
  </xsl:element> 
</xsl:template>
Plain Text

Neben des Einsatzes des @priority Attributs XSLT Konstrukte Priority Attribut Attribute priority und des nachfolgend beschriebenen @mode Attributs ist sicherlich auch noch interessant, dass die gefilterten Seminar-Elemente hier nicht gelöscht werden, sondern umbenannt werden. Auf diese Weise können sie in einem nachfolgenden Transformationsschritt (Stichwort: Vortransformationen ) weiterbehandelt werden, stören aber in der regulären Verarbeitung nicht.