Hans, With your help, I got this to work: \defineXMLnested [table] { \bgroup \defineXMLsave[caption] \defineXMLsave[header] \defineXMLsave[body] } { \placetable [\XMLpar{table}{location}{here}] [\XMLpar{table}{label}{unknown}] {\XMLflush{caption}} { \ix\setupinterlinespace[reset,small] \framed[frame=off,topframe=on,bottomframe=on,offset=none,rulethickness=1pt] \bgroup \setupTABLE[frame=off,split=repeat,splitmethod=a] \expanded{\bTABLE[distance=10pt]\XMLflush{header}\XMLflush{body}}\eTABLE \egroup \x} \egroup } \defineXMLnested [tr] [bottomframe=off,rulethickness=0.3pt] {\expanded{\bTR[bottomframe=\XMLop{bottomframe},rulethickness=\XMLop{rulethickness}]}} {\eTR} \defineXMLnested [td] [rows=1,cols=1] {\bTD[nr=\XMLop{rows},nc=\XMLop{cols}]} {\eTD} But my endless quest for perfection would prefer something like \expanded{\bTABLE[distance=10pt]\bTABLEhead\XMLflush{header}\eTABLEhead\bTABLEbody\XMLflush{body}\eTABLEbody}\eTABLE , so I can read in a table like this AND have it spread over multiple pages: <table label="Name"> <caption> Semething </caption> <header> <tr bottomframe="on"><td rows="2">Gene product</td><td cols="3">HPM tag</td><td rows="2">TAP tag</td><td rows="2">mod. TAP tag</td><td rows="2">Frequ. in ref. set</td></tr> <tr bottomframe="on"><td>Exp.&thinspace;1</td><td>Exp.&thinspace;2</td><td>Exp.&thinspace;3</td></tr> </header> <body> <tr><td>Gcn5p</td><td>41&thinspace;(41)</td><td>25&thinspace; (25)</td><td>65&thinspace;(65)</td><td>19&thinspace; (19)</td><td>21&thinspace;(21)</td><td>4.55&percent;</td></tr> </body> </table> The error I get when trying this is: ! Argument of \dotripletestemptyx has an extra }. <inserted text> \par <to be read again> } \expanded ...long \xdef \@@expanded {\noexpand #1} \@@expanded \dogetgrouped ...ody \XMLflush {body}\eTABLEbody } \eTABLE \egroup \x } \egroup l.417 </table> After searching the archives I was wondering whether the multipage aspect is doable at all with 'TABLE' and if yes how. Thanks for any further input, Joh