Hallo Thomas,
<xsl:variable name="bilder">
<xsl:for-each select="//bild">
<tempbild name="{@name}" src="{@src}" id="{@id}">
<xsl:attribute name="number">
<xsl:number count="multiple" />
</xsl:attribute>
</tempbild>
</xsl:for-each>
</xsl:variable>
<xsl:template match="bild">
<xsl:variable name="bildid" select="@id" />
<xsl:value-of select="$bilder/tempbild[@id = $bildid]/@number"></xsl:value-of>
</xsl:template>
<xsl:template match="bildreferenz">
<xsl:variable name="bildid" select="@id" />
<xsl:value-of select="$bilder/tempbild[@id = $bildid]/@number"></xsl:value-of>
</xsl:template>
Ah, verstehe. Du legst die automatisch ermittelte Numerierung der Abbildungen jeweils in einem eigens dafür erstellten Attribut der Abbildung ab, speicherst diesen Ergebnisbaum in $bilder und liest nachher beim Referenzieren genau dieses Attribut wieder aus.
Ich habe gestern eher vermutet, daß die Numerierung aus dem Index der jeweiligen Abbildung in einer Art Array abgeleitet wird. Kein Wunder, daß ich damit nicht so weit gekommen bin. ;-)
> »» Also nicht viel anders, als hätte ich einfach id() benutzt.
> »»
>
> Hm....das könnte man noch herausfinden, aber wenn ich dich richtig verstanden habe, geht es dir ja nicht nur um "viel vieles Bild bist du in Kapitel"?
Den letzten Teil dieses Satzes hab ich nicht ganz verstanden.
Im Prinzip genügt es, zumindest die \_Bild\_referenzen betreffend, wenn das tatsächlich nur innerhalb eines Kapitels funktioniert, nicht über Kapitelgrenzen (und somit Dokumentgrenzen) hinweg. Das könnte z.B. so aussehen:
~~~xml
<content>
<text>...</text>
<figure id="schuhkarton">
<src>bilder/schuhkarton.jpg</src>
<caption>Ein Schuhkarton</caption>
</figure>
<text>...</text>
<text>Der handelsübliche Schuhkarton in <xref refid="schuhkarton" /> ist ein sehr anspruchsloses Haustier ...</text>
</content>
Für die Abbildungen selber kommt dann dieses Template zur Anwendung:
<xsl:template match="figure">
<div class="figure">
<img src="{src}" alt="" />
<p class="caption">
<span class="title">Abb. <xsl:number level="single" count="figure" />:</span>
<xsl:text> </xsl:text>
<xsl:value-of select="caption" />
</p>
</div>
</xsl:template>
Die automatische Numerierung gibt also nur an, um die wievielte Abbildung in diesem Kapitel es sich handelt (falls es das ist, was Du oben meintest). Das reicht so völlig aus. Deine oben vorgeschlagenen Lösung sollte für mein zu bauendes xref-Template ganz gut funktionieren, denke ich.
Wenn Du dennoch Verbesserungsvorschläge hast, immer her damit! :-)
Auf jeden Fall schonmal vielen Dank für die bisherige Hilfe.
Grüße
Alex