/usr/lib/grass70/gui/xml/grass-interface.dtd is in grass-gui 7.0.3-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | <!-- grass-interface.dtd
Copyright (C) 2000-2007 by the GRASS Development Team
Author: Jan-Oliver Wagner <jan intevation.de>
Changes:
2007-10 by Martin Landa <landa.martin gmail.com>
* added keywords element
* added name element (fix for value element)
2007-04 by Daniel Calvelo <dca.gis gmail.com>
* added guisection element
* added name-description pair for value sets
2001-06-07 by Eric G. Miller <egm2 jps.net>
* make <parameter-group> optional
* move descriptions first, always optional
* make <default> optional // Should it reference <value> ?
2001-07-09:
* Make an explicit flag element
* make keydesc and gispropmpt elements
* move elements directly under "task"
This program is free software under the GPL (>=v2)
Read the file COPYING coming with GRASS for details.
-->
<!-- a grass-interface collect several tasks to
customize a grass application.
-->
<!ELEMENT grass-interface (description? , task+)>
<!ATTLIST grass-interface name CDATA #REQUIRED>
<!-- a task describes the interface of a single
GRASS command. It may consist of several
groups of parameters. Grouping is only for
semantic purposes in the (G)UI.
The task may optionally have a description.
The name of the task is the identifier
for the GRASS command and is used
to execute the task.
-->
<!ELEMENT task (description?, keywords?, parameter*, flag*, parameter-group*)>
<!ATTLIST task name CDATA #REQUIRED>
<!-- a parameter-group may be associated with a name,
but the name is not necessary for running a
GRASS command.
The group consists of a number of parameters
and may optionally have a description.
-->
<!ELEMENT parameter-group (description?, parameter*, flag*)>
<!ATTLIST parameter-group name CDATA #IMPLIED>
<!-- a parameter must have a name and a description.
the name is the parameter identifier when calling
the command.
A default may be provided. values can be given
as parameter options.
Parameters can be optional and in that case can be
ignored executing the task when not entered in the (G)UI.
Any parameter has one of these (default is string):
string : a string parameter.
integer : a numeric integer parameter.
float : a numeric float parameter.
If multiple is "yes", then many values for the
parameter may be given in a comma-seperated list
-->
<!ELEMENT parameter (description?, keydesc?, gisprompt?, default?, values?, guisection?)>
<!ATTLIST parameter name CDATA #REQUIRED
type (string | integer | float) "string"
required (yes | no) "no"
multiple (yes | no) "no">
<!-- The "keydesc" defines a tuple for input, such as "x,y".
The program expects a comma separated list with matching
count of items (or multiples thereof, if multiple is true).
-->
<!ELEMENT keydesc (item+)>
<!-- An "item" is a value for a tuple of keydesc.
It must have an "order" attribute, to insure sort ordering
-->
<!ELEMENT item (#PCDATA)>
<!ATTLIST item order CDATA #REQUIRED>
<!-- The "gisprompt" is a three part description, used for map elements
and files. It consists of a comma separated list of
"age,element,prompt". "Age" is "new | old | any"; "element" is
a grass map element such as "dig", and "prompt" is what to present
to the user in a prompt, such as "vector"
-->
<!ELEMENT gisprompt EMPTY>
<!ATTLIST gisprompt age (any | old | new | mapset) #REQUIRED
element (cell | fcell | cellhd | cats | colr |
colr2 | cell_misc | hist | paint |
group | vector | windows | CDATA) #REQUIRED
prompt CDATA #REQUIRED>
<!-- A flag must have a name and should have a description.
It's a toggle that is off by default
-->
<!ELEMENT flag (description?)>
<!ATTLIST flag name CDATA #REQUIRED>
<!-- a default of a parameter. Hopefully it does correspond
with the parameter type. How to set up rules for that
(same problem for <value>)?
-->
<!ELEMENT default (#PCDATA)>
<!-- the GUI section where the parameter would appear
-->
<!ELEMENT guisection (#PCDATA)>
<!-- contains a number of single values. Values may have name and description.
-->
<!ELEMENT values (value+)>
<!-- a potential value for a parameter. Hopefully
it does correpond to the parameter type.
How to set up rules for that (same problem for
<default>)?
-->
<!ELEMENT value (name, description?)>
<!ELEMENT name (#PCDATA)>
<!-- common elements -->
<!-- text that describes a grass-interface, task,
parameter-group or parameter.
-->
<!ELEMENT description (#PCDATA)>
<!-- list of keywords that describes a task
-->
<!ELEMENT keywords (#PCDATA)>
<!-- option inter-dependency rules
-->
<!ELEMENT rules (rule+)>
<!-- an option inter-dependency rule
-->
<!ELEMENT rule (rule-flag*, rule-option*)>
<!ATTLIST rule type (exclusive | required | requires | requires-all |
excludes | collective) #REQUIRED>
<!-- a flag name
-->
<!ELEMENT rule-flag EMPTY>
<!ATTLIST rule-flag key CDATA #REQUIRED>
<!-- an option name
-->
<!ELEMENT rule-option EMPTY>
<!ATTLIST rule-option key CDATA #REQUIRED>
|