Fehler bei XSL-FO und for-each

irki

Mitglied
Hallo,

ich möchte eine Tabelle mit den Zeilen dynamisch aufgrund der Daten im XML ausgeben.
Ich habe folgenden Code (innerhalb der Tabelle) benutzt:
Java:
                                                     <fo:table-body border-width="1pt" border-style="solid">
					<xsl:for-each select="CONTACTADDRESSDATA">					
						<fo:table-row>
							<fo:table-cell>
				    			<fo:block><xsl:value-of select="LASTNAME"/></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>
				    		<fo:table-cell>
				    			<fo:block></fo:block>
				    		</fo:table-cell>	
						</fo:table-row>
					</xsl:for-each>
					</fo:table-body>
Es wird eine Exception geworfen mit der Meldung:
org.apache.fop.fo.ValidationException: Error(Unknown location): fo:table-body is missing child elements. Required Content Model: marker* (table-row+|table-cell+)

Wenn ich die for-each rausgeben, dann funktioniert das.

Wie kann ich das umsetzen, dass die Zeilen dynamisch erstellt werden?

MFG
Peter
 
S

SlaterB

Gast
wenn es kein CONTACTADDRESSDATA-Element gibt, dann kommt keine Row in den Table-Body, das ist schlecht,

entweder außerhalb des for-each einen leeren
<fo:table-row/>
Block (wobei das wahrscheilich auch nicht reicht, da muss dann noch eine cell rein, usw., je nach Fehlermeldung)

oder vorher die Anzahl der CONTACTADDRESSDATA testen und gar nicht erst einen Body/ eine Table aufmachen
 

Ähnliche Java Themen

Neue Themen


Oben