summaryrefslogtreecommitdiff
path: root/tex/context/base/x-xml-11.tex
blob: bdacd97c2320be114cb7296355abc58d5149ef9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
%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