Code

Correct load order of user icons.svg icons with legacy names.
[inkscape.git] / share / extensions / inkscape.extension.rng
1 <?xml version="1.0" encoding="UTF-8"?>
2 <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://www.inkscape.org/namespace/inkscape/extension">
3   <start>
4     <element name="inkscape-extension">
5       <element name="_name">
6         <text/>
7       </element>
8       <element name="id">
9         <text/>
10       </element>
11       <zeroOrMore>
12         <element name="dependency">
13           <attribute name="type">
14             <ref name="inx.dependency-type.values"/>
15           </attribute>
16           <optional>
17             <attribute name="location">
18               <ref name="inx.location.values"/>
19             </attribute>
20           </optional>
21           <optional>
22             <attribute name="_description">
23               <text/>
24             </attribute>
25           </optional>
26           <text/>
27         </element>
28       </zeroOrMore>
29       <zeroOrMore>
30         <choice>
31           <ref name="inx.parameters"/>
32           <element name="param">
33             <attribute name="name"/>
34             <attribute name="type">
35               <value>notebook</value>
36             </attribute>
37             <oneOrMore>
38               <element name="page">
39                 <attribute name="name"/>
40                 <attribute name="_gui-text"/>
41                 <oneOrMore>
42                   <ref name="inx.parameters"/>
43                 </oneOrMore>
44               </element>
45             </oneOrMore>
46           </element>
47         </choice>
48       </zeroOrMore>
49       <choice>
50         <element name="input">
51           <ref name="inx.io.common"/>
52           <optional>
53             <element name="output_extension">
54               <text/>
55             </element>
56           </optional>
57         </element>
58         <element name="output">
59           <ref name="inx.io.common"/>
60           <optional>
61             <element name="dataloss">
62               <data type="boolean"/>
63             </element>
64           </optional>
65         </element>
66         <element name="effect">
67           <optional>
68             <attribute name="needs-document">
69               <data type="boolean"/>
70             </attribute>
71           </optional>
72           <optional>
73             <attribute name="needs-live-preview">
74               <data type="boolean"/>
75             </attribute>
76           </optional>
77           <element name="object-type">
78             <choice>
79               <value type="token">all</value>
80               <value type="token">path</value>
81               <value type="token">rect</value>
82             </choice>
83           </element>
84           <element name="effects-menu">
85             <choice>
86               <attribute name="hidden">
87                 <value type="boolean">true</value>
88               </attribute>
89               <group>
90                 <element name="submenu">
91                   <attribute name="_name">
92                     <text/>
93                   </attribute>
94                   <empty/>
95                 </element>
96               </group>
97             </choice>
98           </element>
99         </element>
100         <element name="path-effect">
101           <empty/>
102         </element>
103         <element name="print">
104           <empty/>
105         </element>
106       </choice>
107       <choice>
108         <element name="script">
109           <group>
110             <element name="command">
111               <ref name="inx.reldir.attr"/>
112               <optional>
113                 <attribute name="interpreter">
114                   <choice>
115                     <value>python</value>
116                     <value>perl</value>
117                   </choice>
118                 </attribute>
119               </optional>
120               <text/>
121             </element>
122             <optional>
123               <element name="helper_extension">
124                 <data type="NMTOKEN"/>
125               </element>
126             </optional>
127             <zeroOrMore>
128               <element name="check">
129                 <ref name="inx.reldir.attr"/>
130                 <text/>
131               </element>
132             </zeroOrMore>
133           </group>
134         </element>
135         <element name="xslt">
136           <element name="file">
137             <ref name="inx.reldir.attr"/>
138             <text/>
139           </element>
140         </element>
141         <element name="plugin">
142           <element name="name">
143             <text/>
144           </element>
145         </element>
146       </choice>
147     </element>
148   </start>
149   <define name="inx.reldir.attr">
150     <attribute name="reldir">
151       <ref name="inx.location.values"/>
152     </attribute>
153   </define>
154   <define name="inx.location.values">
155     <choice>
156       <value>extensions</value>
157       <value>path</value>
158       <value>plugins</value>
159     </choice>
160   </define>
161   <define name="inx.dependency-type.values">
162     <choice>
163       <value>extension</value>
164       <value>executable</value>
165       <value>plugin</value>
166     </choice>
167   </define>
168   <define name="inx.io.common">
169     <element name="extension">
170       <text/>
171     </element>
172     <element name="mimetype">
173       <text/>
174     </element>
175     <optional>
176       <element name="_filetypename">
177         <text/>
178       </element>
179     </optional>
180     <optional>
181       <element name="_filetypetooltip">
182         <text/>
183       </element>
184     </optional>
185   </define>
186   <define name="inx.parameter">
187     <attribute name="name">
188       <data type="token"/>
189     </attribute>
190     <optional>
191       <attribute name="gui-hidden">
192         <data type="boolean"/>
193       </attribute>
194     </optional>
195     <optional>
196       <attribute name="_gui-text"/>
197     </optional>
198     <choice>
199       <group>
200         <attribute name="type">
201           <value>int</value>
202         </attribute>
203         <optional>
204           <attribute name="min">
205             <data type="integer"/>
206           </attribute>
207         </optional>
208         <optional>
209           <attribute name="max">
210             <data type="integer"/>
211           </attribute>
212         </optional>
213         <choice>
214           <empty/>
215           <data type="integer"/>
216         </choice>
217       </group>
218       <group>
219         <attribute name="type">
220           <value>float</value>
221         </attribute>
222         <optional>
223           <attribute name="precision">
224             <data type="integer"/>
225           </attribute>
226         </optional>
227         <optional>
228           <attribute name="min">
229             <data type="float"/>
230           </attribute>
231         </optional>
232         <optional>
233           <attribute name="max">
234             <data type="float"/>
235           </attribute>
236         </optional>
237         <data type="float"/>
238       </group>
239       <group>
240         <attribute name="type">
241           <value>boolean</value>
242         </attribute>
243         <data type="boolean"/>
244       </group>
245       <group>
246         <attribute name="type">
247           <value>string</value>
248         </attribute>
249         <optional>
250           <attribute name="max_length">
251             <data type="integer"/>
252           </attribute>
253         </optional>
254         <choice>
255           <empty/>
256           <text/>
257         </choice>
258       </group>
259       <group>
260         <attribute name="type">
261           <value>description</value>
262         </attribute>
263         <text/>
264       </group>
265       <group>
266         <attribute name="type">
267           <value>enum</value>
268         </attribute>
269         <oneOrMore>
270           <choice>
271             <element name="_item">
272               <ref name="inx.parameter.enum.item"/>
273             </element>
274             <element name="item">
275               <ref name="inx.parameter.enum.item"/>
276             </element>
277           </choice>
278         </oneOrMore>
279       </group>
280       <group>
281         <attribute name="type">
282           <value>optiongroup</value>
283         </attribute>
284         <optional>
285           <attribute name="appearance">
286             <value>minimal</value>
287           </attribute>
288         </optional>
289         <oneOrMore>
290           <choice>
291             <element name="option">
292               <ref name="inx.parameter.optiongroup.option"/>
293             </element>
294             <element name="_option">
295               <ref name="inx.parameter.optiongroup.option"/>
296             </element>
297           </choice>
298         </oneOrMore>
299       </group>
300     </choice>
301   </define>
302   <define name="inx.parameters">
303     <choice>
304       <element name="param">
305         <ref name="inx.parameter"/>
306       </element>
307       <element name="_param">
308         <ref name="inx.parameter"/>
309       </element>
310     </choice>
311   </define>
312   <define name="inx.parameter.enum.item">
313     <attribute name="value"/>
314     <data type="token"/>
315   </define>
316   <define name="inx.parameter.optiongroup.option">
317     <optional>
318       <attribute name="value">
319         <text/>
320       </attribute>
321     </optional>
322     <text/>
323   </define>
324 </grammar>