# Fehler bei XSL-FO und for-each



## irki (23. Mrz 2010)

Hallo,

ich möchte eine Tabelle mit den Zeilen dynamisch aufgrund der Daten im XML ausgeben.
Ich habe folgenden Code (innerhalb der Tabelle) benutzt:

```
<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


----------



## SlaterB (23. Mrz 2010)

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


----------



## irki (23. Mrz 2010)

Hallo,

danke, das war genau das Problem, das CONTACTADDRESSDATA leer war, hab das jetzt abgefragt.

Danke sehr.

LG


----------

