On 12 nov 2010, at 14:17, Peter Davis wrote:


On Fri, Nov 12, 2010 at 7:55 AM, Martin Schröder <martin@oneiros.de> wrote:
2010/11/12 Peter Davis <pfd@pfdstudio.com>:
> Is that clear?

It's called database publishing. :-)

Exactly.  (Or sometimes variable data printing ... VDP.)

I guess the "layout" XML file would basically be used to construct a macro that draws the page, and the "content" XML would basically invoke that macro with different arguments for each recipient.

Does that seem like the most effective way to do this?  Any examples of anything like this, or of using an XML to define a macro?

Thank you.


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.

Hans van der Meer


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