4.1.6.1  Beispiel Stückliste

Ein Anwendungszenario wäre bspw. die Generierung einer Target-ID für ein Bauteil in einer Stückliste. Das Bauteil ist nur einmal im System erfasst, hat also eine eindeutige ID, soll aber an mehreren Stellen in die Ausgabe (Eine Dokumentation für eine Maschine) generiert werden.

Die Id an einem Element <part id=“1234”> würde somit mehrfach in die XML Eingabe für einen XSL-FO Prozessor erscheinen und ist für Referenzen unbrauchbar geworden. Deshalb ist es ratsam beim Rendern der Bauteile eine neue Id zu vergeben, das kann z.B. mit den folgenden Templates (vereinfacht) passieren:

<xsl:key name="parts" match="part" use="@id"/>
  
<xsl:template match=“part” mode=“content">
  <!-- Ausgabe des Bauteils im Content Bereich -->
  <fo:block id="{generate-id()}">
    <fo:external-graphic xsl:use-attribute-sets="part.img"/>  
  </fo:block>
</xsl:template>
    
<xsl:template match=“part” mode=“part-list">
  <!-- Ausgabe einer Liste mit allen Verweisen an unterschiedicher Stelle -->
  <fo:block>
    <xsl:for-each select="key('parts',@id)">
      <fo:page-number-citation ref-id="{generate-id()}"/>
    </xsl:for-each>
  </fo:block>
</xsl:template>
Plain Text