On tlcontrib.metatex.or I placed a series of ConTeXt modules under title "hvdm".
Perhaps these are useful as a working example of how to separate various elements of xml-typesetting.
Hope this helps.
One xml-definition file (hvdm-xml.tex) in the package is used for general constructs, another (hvdm-dvd.tex) for typesetting "database"-entries in xml. As an example of data input:
<!-- TEMPLATE FOR DVD-COVER DATA
$Revision:: 43 $
$Date:: 2010-10-29 19:#$
-->
<?xml version="1.0" encoding="UTF-8"?>
<dvd filenumber="_FILENUMBER_" genre="_GENRE_">
<setup name="pdfcase" chaptername="off" left="" right=""/>
<titles>
<title>_TITLE_</title>
</titles>
<frontfigure commonsize="" maxwidth="" maxheight="" frame="">
<img src="" width="" height="" frame="" option=""/>
</frontfigure>
<recording>
<recorded>_DATE_</recorded>
<burned>_DATE_</burned>
</recording>
etc.
simply called by a minimal header:
\usemodule[hvdm-dvd] % xml conversions
\DataLocation{/Volumes/Qrecordings/DVD/D026-D050/D050 Aux temps des croisades}
\starttext
\setupCase[DVD][state=draft]
\xmlprocessfile{dvd}{\DATALOCATION data.xml}{} % start at the dvd root node
\stoptext
\endinput