Rebecca: Komplexe Nummerierung

Hallo zusammen,

ich habe folgende XML-Struktur

  
<pm><content>  
		<pmentry>  
			<title>Heading 1</title>  
			<dmodule>  
				<content>  
					<descript>  
						<para0>  
							<title>Heading 1.1</title>  
							<subpara1>  
								<title>Heading 1.1.1</title>  
							</subpara1>  
							<subpara1>  
								<title>Headnig 1.1.2</title>  
							</subpara1>  
							<subpara1>  
								<title>Headnig 1.1.3</title>  
							</subpara1>  
						</para0>  
					</descript>  
				</content>  
			</dmodule>  
			<dmodule>  
				<content>  
					<descript>  
						<para0>  
							<title>Heading 1.2</title>  
						</para0>  
						<para0>  
							<title>Heading 1.3</title>  
						</para0>  
					</descript>  
				</content>  
			</dmodule>  
			<dmodule>  
				<content>  
					<descript>  
						<para0>  
							<title>Heading 1.4</title>  
						</para0>  
						<para0>  
							<title>Heading 1.5</title>  
						</para0>  
					</descript>  
				</content>  
			</dmodule>  
		</pmentry>  
	</content>  
</pm>  

Mit diesen XSLT/XSL-FO-Templates generiere ich die Nummerierung für die Überschrift.

  
<xsl:template match="content/pmentry/title | pmentry/pmentry/title | para0/title | subpara1/title | subpara2/title | subpara3/title | subpara4/title">  
		<fo:list-block provisional-distance-between-starts="{$Einzug}" provisional-label-separation="2mm" start-indent="0pt" id="{generate-id()}">  
			<fo:list-item>  
				<fo:list-item-label end-indent="label-end()">  
					<fo:block xsl:use-attribute-sets="H1 Abstand">  
						<xsl:call-template name="nummerierung_kapitel"/>  
					</fo:block>  
				</fo:list-item-label>  
				<fo:list-item-body start-indent="body-start()">  
					<fo:block xsl:use-attribute-sets="H1 Abstand">  
						<xsl:value-of select="."/>  
					</fo:block>  
				</fo:list-item-body>  
			</fo:list-item>  
		</fo:list-block>  
	</xsl:template>  
  

  
<xsl:template name="nummerierung_kapitel">  
		<xsl:number count="pmentry | para0 | subpara1 | subpara2 | subpara3 | subpara4" level="multiple" format="1.1"/>  
	</xsl:template>  

Ergebnis von XSL-Number ist:

1. Heading 1
1.1 Heading 1.1
1.1.1 Heading 1.1.1
(...)
1.1 Heading 1.2
1.2 Heading 1.3

Es sollte aber eigentlich wie folgt aussehen:
1. Heading 1
1.1 Heading 1.1
1.1.1 Heading 1.1.1
(...)
1.2 Heading 1.2
1.3 Heading 1.3

Bei jedem neuen "dmodule" fängt die Nummeriung von "para0" wieder bei 1.1 an. Ich habe schon verschiedene Varianten versucht, habe aber bislang keine Lösung gefunden.

Hat von Euch vielleicht jemand eine Idee?

Schon im Voraus, vielen Dank für Eure Hilfe!

  1. Liebe Rebecca,

    wandelst Du per XSL nach HTML um? Warum sollte dann die Nummerierung "hart kodiert" im HTML stehen, anstatt dass man die Nummerierung von CSS erledigen lässt?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo,

      wandelst Du per XSL nach HTML um?

      fo: spricht eher für ein PDF.

      Viele Grüße
      Siri

    2. Genau, mit XSL-FO erzeuge ich ein PDF aus dem XML-Dokument. Aber das Problem liegt ja nicht an XSL-FO. Sondern an den der Zahlweise von xsl:number.

  2. Habe noch mal einige Testdurchläufe gemacht und ich vermute, dass das Problem daran liegt, dass "pmentry" und "para0" stellenweise auf der gleichen Ebene liegen. Das xsl:number-Element wird damit wohl nicht zurechtkommen.

    Habe deshalb "von Hand" eine Kapitelnummerierung umgesetzt. Sicherlich nicht die eleganteste Variante, aber es funktioniert.