%D \module
%D   [      file=x-xml-11,
%D        version=2004.09.16,
%D          title=\CONTEXT\ XML Style File,
%D       subtitle=Formatting X?? files,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

% xmltools --analyze yourfile.xml
% texexec --use=xml-analyze yourfile.*

\doifnothing  {\inputfilename}    {\end}
\doiffileelse {\inputfilename} {} {\end}

\useXMLfilter[ent]
\useXMLfilter[utf]

\chardef\XMLtokensreduction\plustwo

\definehead
  [SomeElement]
  [subsection]

\setuphead
  [SomeElement]
  [ownnumber=yes,
   style=\tfb,
   alternative=margin]

\setuplayout
  [width=middle,
   height=middle,
   backspace=2cm,
   cutspace=1cm,
   topspace=1cm,
   header=0pt]

\setupfootertexts
  [\inputfilename]

\usetypescript[modern][texnansi] \setupbodyfont[modern,tt,10pt]

\defineXMLenvironment
  [document]
  {}
  {}

\defineXMLpickup
  [entities]
  {\page
   \starttabulate[|l|p|]}
  {\stoptabulate}

\defineXMLcommand
  [entity][name=,n=0]
  {\startexpanded
     \noexpand \NC \XMLop{name}
     \noexpand \NC \XMLop{n}
     \noexpand \NC
     \noexpand \NR
   \stopexpanded}

\defineXMLenvironment
  [elements]
  {\page}
  {}

\newtoks \TabulateToks

\defineXMLpickup
  [element][name=,n=0]
  {\expanded{\SomeElement{\XMLop{n}}{\XMLop{name}}}
   \TabulateToks\emptytoks}
  {\starttabulate[|l|r|p|]
   \the\TabulateToks
   \stoptabulate}

\defineXMLenvironment
  [attribute][name=]
  {\xdef\AttributeName{\XMLop{name}}}
  {}

\defineXMLenvironment
  [instance][value=,n=0]
  {\appendetoks
     \noexpand \NC \AttributeName
     \noexpand \NC \XMLop{n}
     \noexpand \NC \XMLop{value}
     \noexpand \NC
     \noexpand \NR
   \to \TabulateToks}
  {\xdef\AttributeName{}}

\starttext

\processXMLfilegrouped{\inputfilename}

\stoptext
