%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 ADE \& \CONTEXT\ Development Team}] %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} \doifnothing {\jobfullname} {\end} \doiffileelse {\jobfullname} {} {\end} \useXMLfilter[ent] \useXMLfilter[utf] \chardef\XMLtokensreduction\plustwo \definehead [SomeElement] [subsection] \setuphead [SomeElement] [ownnumber=yes, style=\tfb, numberstyle=\tfxx, alternative=margin] \setuplayout [width=middle, height=middle, backspace=2cm, cutspace=1cm, topspace=1cm, header=0pt] \setupfootertexts [\jobfullname] % [\inputfilename] \usetypescript[modern][texnansi] \setupbodyfont[modern,tt,10pt] \defineXMLenvironment [document] {} {} \defineXMLpickup [entities][n=0] {\expanded{\SomeElement{\XMLop{n}}{Entities}} \starttabulate[|l|l|l|]} {\stoptabulate} \defineXMLcommand % ugly hack (make macro of it) [entity][name=,n=0] {\startexpanded \noexpand \NC \XMLop{name} \noexpand \NC \XMLop{n} \noexpand \NC \noexpand\doXMLentity\XMLop{name}; \noexpand \NC \noexpand \NR \stopexpanded} \defineXMLpickup [characters][n=0] {\expanded{\SomeElement{\XMLop{n}}{Characters}} \bgroup \let\nonbreakablespace\empty % messes up the table \starttabulate[|l|r|r|l|l|l|l|]} {\stoptabulate \egroup} % todo: narrowtt \defineXMLcommand [character][number=,utf=,n=0,uname=,pname=,cname=] {\startexpanded \noexpand \NC \noexpand \unicodehexnumber{\XMLop{number}} \noexpand \NC \XMLop{number} \noexpand \NC \XMLop{n} \noexpand \NC \noexpand \unicodechar {\XMLop{number}} \noexpand \NC \tx \lowercase\expandafter{\XMLop{uname}} \noexpand \NC \tx \noexpand \unicodepair {\XMLop{number}} \noexpand \NC \tx \XMLop{cname} \noexpand \NC \noexpand \NR \stopexpanded} \defineXMLenvironment [elements] {} {} \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} \processXMLfilegrouped{\jobfullname} \stoptext