1default namespace = "http://dblatex.sourceforge.net/config"
2
3start = config
4config =
5  element config {
6    attribute version { text }?, (latex | xslt | imagedata | options)*
7  }
8
9# <latex> element and children syntaxes
10#
11latex =
12  element latex {
13    empty,
14    (texinputs
15     | bibinputs
16     | bstinputs
17     | backend
18     | texstyle
19     | texpost
20     | indexstyle)*
21  }
22
23attlist.modname = attribute use { text }
24attlist.filepath = attribute fileref { text }
25attlist.mod_or_file =
26  attlist.modname |
27  attlist.filepath
28
29backend = element backend { attlist.modname, empty }
30texstyle = element texstyle { attlist.mod_or_file, empty }
31texpost = element texpost { attlist.mod_or_file, empty }
32indexstyle = element indexstyle { attlist.filepath, empty }
33texinputs = element texinputs { text }
34bibinputs = element bibinputs { text }
35bstinputs = element bstinputs { text }
36
37# <xslt> element and children syntaxes
38#
39xslt = element xslt { (stylesheet | engine)* }
40
41stylesheet = element stylesheet { attlist.filepath, empty }
42engine =
43  element engine { attlist.engine, (commandchain | command)? }
44attlist.engine =
45  attlist.modname |
46  attribute param-format { text }
47
48# <imagedata> element and children syntaxes
49#
50imagedata =
51  element imagedata { (figpath | figformat | formatrule | converter)* }
52
53figpath = element figpath { attlist.filepath, empty }
54figformat = element figformat { text }
55formatrule = element formatrule { attlist.formatrule, empty }
56attlist.formatrule =
57  attribute dst { text }?,
58  attribute docformat { "dvi" | "ps" | "pdf" | "*" }?,
59  attribute backend { text }?
60
61converter =
62  element converter { attlist.converter, (commandchain | command) }
63attlist.converter =
64  attribute src { text }?,
65  attribute dst { text }?,
66  attribute docformat { "dvi" | "ps" | "pdf" | "*" }?,
67  attribute backend { text }?
68
69# General <command> syntax
70#
71commandchain = element commandchain { command+ }
72command = element command { attlist.command, text }
73attlist.command =
74  attribute input { text }?,
75  attribute output { text }?,
76  attribute shell { "0" | "1" | "false" | "true" }?
77
78# <options> syntax
79#
80options = element options { text }
81
82