[FIX] Added missing class attrbiute for the button
[odoo/odoo.git] / openerp / addons / base / rng / view.rng
1 <?xml version="1.0" encoding="UTF-8"?>
2 <rng:grammar xmlns:rng="http://relaxng.org/ns/structure/1.0"
3              xmlns:a="http://relaxng.org/ns/annotation/1.0"
4              datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
5     <!-- Handling of element overloading when inheriting from a base
6          template
7     -->
8     <rng:define name="overload">
9         <rng:optional>
10             <!--
11                 Alter matched element with content
12             -->
13             <rng:choice>
14                 <rng:attribute name="position">
15                     <rng:choice>
16                         <!-- Insert content before first child -->
17                         <rng:value>before</rng:value>
18                         <!-- Insert content after last child -->
19                         <rng:value>after</rng:value>
20                         <!-- Replace all children with content -->
21                         <rng:value>inside</rng:value>
22                         <!-- Replace matched element itself with content -->
23                         <rng:value>replace</rng:value>
24                     </rng:choice>
25                 </rng:attribute>
26                 <rng:group>
27                     <rng:attribute name="position">
28                         <!-- Edit element attributes -->
29                         <rng:value>attributes</rng:value>
30                     </rng:attribute>
31                     <rng:oneOrMore>
32                         <rng:element name="attribute">
33                             <rng:attribute name="name"><rng:text/></rng:attribute>
34                             <rng:text />
35                         </rng:element>
36                     </rng:oneOrMore>
37                 </rng:group>
38             </rng:choice>
39         </rng:optional>
40     </rng:define>
41
42     <rng:define name="access_rights">
43         <rng:optional>
44             <rng:attribute name="groups"/>
45         </rng:optional>
46     </rng:define>
47
48     <rng:define name="dashboard-column">
49         <rng:element name="column">
50             <rng:zeroOrMore>
51                 <rng:element name="action">
52                     <!-- Action identifier, used by clients to get the
53                          actual action from db -->
54                     <rng:attribute name="name"/>
55                     <!-- Displayed name of dashboard item (above idem) -->
56                     <rng:optional><rng:attribute name="string"/></rng:optional>
57                     <!-- Merged into the action descriptor's own
58                          context before executing the action -->
59                     <rng:optional><rng:attribute name="context"/></rng:optional>
60                     <!-- Added to the action descriptor's own domain
61                          before executing the action -->
62                     <rng:optional><rng:attribute name="domain"/></rng:optional>
63                     <!-- In case the action is an act_window,
64                          overrides its own @views. -->
65                     <rng:optional><rng:attribute name="view_mode"/></rng:optional>
66                     <!-- Add a 'Create' button in order to create a new resource of the action's model
67                          values :  [true|false|<ID of specific action view>]. -->
68                     <rng:optional><rng:attribute name="creatable"/></rng:optional>
69                 </rng:element>
70             </rng:zeroOrMore>
71         </rng:element>
72     </rng:define>
73     <rng:define name="dashboard">
74         <rng:choice>
75             <rng:element name="board">
76                 <a:documentation>
77                   New-style (6.1) dashboard definition
78                 </a:documentation>
79                 <rng:choice>
80                     <rng:group>
81                         <a:documentation>
82                           Single-column dashboard style
83                         </a:documentation>
84                         <rng:attribute name="style">
85                             <rng:value>1</rng:value>
86                         </rng:attribute>
87                         <rng:ref name="dashboard-column"/>
88                     </rng:group>
89                     <rng:group>
90                         <a:documentation>
91                           Three different 2-column dashboard styles:
92                           50|50, 33|66 and 66|33.
93                         </a:documentation>
94                         <rng:attribute name="style">
95                             <rng:choice>
96                                 <rng:value>1-1</rng:value>
97                                 <rng:value>1-2</rng:value>
98                                 <rng:value>2-1</rng:value>
99                             </rng:choice>
100                         </rng:attribute>
101                         <rng:ref name="dashboard-column"/>
102                         <rng:ref name="dashboard-column"/>
103                     </rng:group>
104                     <rng:group>
105                         <a:documentation>
106                           Three-column dashboard style: 33|33|33
107                         </a:documentation>
108                         <rng:attribute name="style">
109                             <rng:value>1-1-1</rng:value>
110                         </rng:attribute>
111                         <rng:ref name="dashboard-column"/>
112                         <rng:ref name="dashboard-column"/>
113                         <rng:ref name="dashboard-column"/>
114                     </rng:group>
115                 </rng:choice>
116             </rng:element>
117             <!--
118                 DEPRECATED old-style dashboards
119             -->
120             <rng:element>
121                 <rng:choice>
122                     <rng:name>hpaned</rng:name>
123                     <rng:name>vpaned</rng:name>
124                 </rng:choice>
125                 <rng:optional>
126                     <rng:attribute name="position">
127                         <rng:data type="int"/>
128                     </rng:attribute>
129                 </rng:optional>
130                 <rng:zeroOrMore>
131                     <rng:optional><rng:ref name="any"/></rng:optional>
132                     <rng:optional><rng:ref name="html"/></rng:optional>
133                 </rng:zeroOrMore>
134             </rng:element>
135         </rng:choice>
136     </rng:define>
137
138     <rng:define name="container">
139         <rng:optional><rng:attribute name="col"/></rng:optional>
140         <rng:zeroOrMore>
141             <rng:choice>
142                 <rng:ref name="notebook"/>
143                 <rng:ref name="field"/>
144                 <rng:ref name="group"/>
145                 <rng:ref name="button"/>
146                 <rng:ref name="label" />
147                 <rng:ref name="separator"/>
148                 <rng:ref name="image"/>
149                 <rng:ref name="form"/>
150                 <rng:ref name="dashboard"/>
151                 <rng:ref name="filter"/>
152                 <rng:ref name="html"/>
153                 <rng:element name="newline"><rng:empty/></rng:element>
154                 <rng:element name="properties"><rng:empty/></rng:element>
155             </rng:choice>
156         </rng:zeroOrMore>
157     </rng:define>
158
159     <rng:define name="form">
160         <rng:element name="form">
161             <rng:ref name="overload"/>
162             <rng:optional><rng:attribute name="string"/></rng:optional>
163             <rng:optional><rng:attribute name="type"/></rng:optional>
164             <rng:optional><rng:attribute name="link"/></rng:optional>
165             <rng:ref name="container"/>
166         </rng:element>
167     </rng:define>
168
169     <rng:define name="diagram">
170         <rng:element name="diagram">
171             <rng:optional><rng:attribute name="string"/></rng:optional>
172             <rng:ref name="node"/>
173             <rng:ref name="arrow"/>
174         </rng:element>
175     </rng:define>
176
177     <rng:define name="node">
178         <rng:element name="node">
179             <rng:attribute name="object"/>
180             <rng:optional><rng:attribute name="shape"/></rng:optional>
181             <rng:optional><rng:attribute name="bgcolor"/></rng:optional>
182             <rng:optional><rng:attribute name="form_view_ref"/></rng:optional>
183             <rng:oneOrMore>
184               <rng:ref name="field"/>
185             </rng:oneOrMore>
186         </rng:element>
187     </rng:define>
188
189     <rng:define name="arrow">
190         <rng:element name="arrow">
191             <rng:attribute name="object" />
192             <rng:attribute name="source" />
193             <rng:attribute name="destination" />
194             <rng:optional><rng:attribute name="form_view_ref"/></rng:optional>
195             <rng:optional><rng:attribute name="label"/></rng:optional>
196             <rng:oneOrMore>
197               <rng:ref name="field"/>
198             </rng:oneOrMore>
199         </rng:element>
200     </rng:define>
201
202     <rng:define name="kanban">
203         <rng:element name="kanban">
204             <rng:optional>
205                 <!-- group-by field to apply in the kanban view when no other
206                      grouping is selected in the search view -->
207                 <rng:attribute name="default_group_by" />
208             </rng:optional>
209             <rng:optional><rng:attribute name="create" /></rng:optional>
210             <rng:optional><rng:attribute name="quick_create" /></rng:optional>
211             <rng:zeroOrMore>
212                 <rng:ref name="field"/>
213             </rng:zeroOrMore>
214             <rng:element name="templates">
215                 <rng:oneOrMore>
216                     <rng:ref name="any"/>
217                 </rng:oneOrMore>
218             </rng:element>
219         </rng:element>
220     </rng:define>
221
222     <rng:define name="tree">
223         <rng:element name="tree">
224             <rng:ref name="overload"/>
225             <rng:optional><rng:attribute name="string"/></rng:optional>
226             <rng:optional><rng:attribute name="colors"/></rng:optional>
227             <rng:optional><rng:attribute name="fonts"/></rng:optional>
228             <rng:optional>
229               <rng:attribute name="editable">
230                 <rng:choice>
231                   <rng:value>top</rng:value>
232                   <rng:value>bottom</rng:value>
233                 </rng:choice>
234               </rng:attribute>
235             </rng:optional>
236             <rng:optional>
237               <rng:attribute name="toolbar">
238                 <rng:choice>
239                   <rng:value>1</rng:value>
240                   <rng:value>True</rng:value>
241                 </rng:choice>
242               </rng:attribute>
243             </rng:optional>
244             <rng:optional><rng:attribute name="on_write"/></rng:optional>
245             <rng:zeroOrMore>
246                 <rng:choice>
247                     <rng:ref name="field"/>
248                     <rng:ref name="separator"/>
249                     <rng:ref name="tree"/>
250                     <rng:ref name="group"/>
251                     <rng:ref name="button"/>
252                     <rng:ref name="filter"/>
253                     <rng:ref name="html"/>
254                     <rng:element name="newline"><rng:empty/></rng:element>
255                 </rng:choice>
256             </rng:zeroOrMore>
257         </rng:element>
258     </rng:define>
259
260     <rng:define name="search">
261         <rng:element name="search">
262             <rng:ref name="overload"/>
263             <rng:optional><rng:attribute name="string"/></rng:optional>
264             <rng:zeroOrMore>
265                 <rng:choice>
266                     <rng:ref name="field"/>
267                     <rng:ref name="group"/>
268                     <rng:ref name="separator"/>
269                     <rng:ref name="filter"/>
270                     <rng:ref name="search"/>
271                     <rng:element name="newline"><rng:empty/></rng:element>
272                     <rng:element name="properties"><rng:empty/></rng:element>
273                 </rng:choice>
274             </rng:zeroOrMore>
275         </rng:element>
276     </rng:define>
277
278     <rng:define name="image">
279         <rng:element name="image">
280             <rng:attribute name="name"/>
281         </rng:element>
282     </rng:define>
283
284     <rng:define name="html">
285         <rng:element name="html">
286             <rng:zeroOrMore>
287                     <rng:text/>
288                     <rng:ref name="any"/>
289             </rng:zeroOrMore>
290         </rng:element>
291     </rng:define>
292
293     <rng:define name="label">
294         <rng:element name="label">
295             <rng:ref name="overload"/>
296             <rng:ref name="access_rights"/>
297             <rng:optional><rng:attribute name="align"/></rng:optional>
298             <rng:optional><rng:attribute name="nolabel"/></rng:optional>
299             <rng:optional><rng:attribute name="colspan"/></rng:optional>
300             <rng:optional><rng:attribute name="string"/></rng:optional>
301             <rng:optional><rng:attribute name="angle"/></rng:optional>
302             <rng:optional><rng:attribute name="fill"/></rng:optional>
303             <rng:optional><rng:attribute name="help"/></rng:optional>
304             <rng:optional><rng:attribute name="width"/></rng:optional>
305             <rng:optional><rng:attribute name="wrap"/></rng:optional>
306             <rng:optional><rng:attribute name="name"/></rng:optional>
307             <rng:optional>
308                 <!-- @for: allows to explicitely link a label to a field -->
309                 <rng:attribute name="for"/>
310             </rng:optional>
311             <rng:zeroOrMore>
312                 <rng:choice>
313                     <rng:text/>
314                     <rng:ref name="notebook"/>
315                     <rng:ref name="field"/>
316                     <rng:ref name="group"/>
317                     <rng:ref name="button"/>
318                     <rng:ref name="label" />
319                     <rng:ref name="separator"/>
320                     <rng:ref name="image"/>
321                     <rng:ref name="form"/>
322                     <rng:ref name="dashboard"/>
323                     <rng:ref name="filter"/>
324                     <rng:ref name="html"/>
325                     <rng:element name="newline"><rng:empty/></rng:element>
326                     <rng:element name="properties"><rng:empty/></rng:element>
327                 </rng:choice>
328             </rng:zeroOrMore>
329         </rng:element>
330     </rng:define>
331
332     <rng:define name="level">
333         <rng:element name="level">
334             <rng:optional><rng:attribute name="object"/></rng:optional>
335             <rng:optional><rng:attribute name="link"/></rng:optional>
336             <rng:optional><rng:attribute name="domain"/></rng:optional>
337             <rng:zeroOrMore>
338                 <rng:ref name="field"/>
339             </rng:zeroOrMore>
340             <rng:zeroOrMore>
341                 <rng:ref name="html"/>
342             </rng:zeroOrMore>
343         </rng:element>
344     </rng:define>
345
346     <rng:define name="gantt">
347         <rng:element name="gantt">
348             <rng:optional><rng:attribute name="mode">
349               <rng:choice>
350                  <rng:value>day</rng:value>
351                  <rng:value>3days</rng:value>
352                  <rng:value>week</rng:value>
353                  <rng:value>3weeks</rng:value>
354                  <rng:value>month</rng:value>
355                  <rng:value>3months</rng:value>
356                  <rng:value>year</rng:value>
357                  <rng:value>3years</rng:value>
358                  <rng:value>5years</rng:value>
359               </rng:choice></rng:attribute>
360             </rng:optional>
361             <rng:optional><rng:attribute name="color"/></rng:optional>
362             <rng:optional><rng:attribute name="date_delay"/></rng:optional>
363             <rng:optional><rng:attribute name="day_length"/></rng:optional>
364             <rng:optional><rng:attribute name="date_start"/></rng:optional>
365             <rng:optional><rng:attribute name="date_stop"/></rng:optional>
366             <rng:optional><rng:attribute name="date_string"/></rng:optional>
367             <rng:optional><rng:attribute name="string"/></rng:optional>
368             <rng:optional><rng:attribute name="default_group_by"/></rng:optional>
369             <rng:zeroOrMore>
370                 <rng:optional><rng:ref name="level"/></rng:optional>
371                 <rng:optional><rng:ref name="field"/></rng:optional>
372                 <rng:optional><rng:ref name="html"/></rng:optional>
373             </rng:zeroOrMore>
374         </rng:element>
375     </rng:define>
376
377     <rng:define name="any">
378         <rng:element>
379             <rng:anyName/>
380             <rng:zeroOrMore>
381                 <rng:choice>
382                     <rng:attribute>
383                         <rng:anyName/>
384                     </rng:attribute>
385                     <rng:text/>
386                     <rng:ref name="any"/>
387                 </rng:choice>
388             </rng:zeroOrMore>
389         </rng:element>
390     </rng:define>
391
392     <rng:define name="page">
393         <rng:element name="page">
394             <rng:ref name="overload"/>
395             <rng:ref name="access_rights"/>
396             <rng:optional><rng:attribute name="string"/></rng:optional>
397             <rng:optional><rng:attribute name="name"/></rng:optional>
398             <rng:optional><rng:attribute name="attrs"/></rng:optional>
399             <rng:optional><rng:attribute name="invisible"/></rng:optional>
400             <rng:zeroOrMore>
401                 <rng:choice>
402                     <rng:element name="newline"><rng:empty/></rng:element>
403                     <rng:element name="properties"><rng:empty/></rng:element>
404                     <rng:ref name="label" />
405                     <rng:ref name="field"/>
406                     <rng:ref name="group"/>
407                     <rng:ref name="separator"/>
408                     <rng:ref name="button"/>
409                     <rng:ref name="form" />
410                     <rng:ref name="page" />
411                     <rng:ref name="notebook"/>
412                     <rng:ref name="dashboard"/>
413                     <rng:ref name="filter"/>
414                     <rng:ref name="html"/>
415                 </rng:choice>
416             </rng:zeroOrMore>
417         </rng:element>
418     </rng:define>
419
420     <rng:define name="notebook">
421         <rng:element name="notebook">
422             <rng:ref name="overload"/>
423             <rng:optional><rng:attribute name="colspan"/></rng:optional>
424             <rng:optional>
425               <rng:attribute name="tabpos">
426                 <!-- position of the notebook's tabs bar, support is
427                      optional and implementation-dependent -->
428                 <rng:choice>
429                   <rng:value>up</rng:value>
430                   <rng:value>down</rng:value>
431                   <rng:value>left</rng:value>
432                   <rng:value>right</rng:value>
433                 </rng:choice>
434               </rng:attribute>
435             </rng:optional>
436             <rng:oneOrMore>
437                 <rng:ref name="page"/>
438             </rng:oneOrMore>
439         </rng:element>
440     </rng:define>
441
442     <rng:define name="separator">
443         <rng:element name="separator">
444             <rng:ref name="overload"/>
445             <rng:ref name="access_rights"/>
446             <rng:optional><rng:attribute name="name"/></rng:optional>
447             <rng:optional><rng:attribute name="colspan"/></rng:optional>
448             <rng:optional><rng:attribute name="rowspan"/></rng:optional>
449             <rng:optional><rng:attribute name="string"/></rng:optional>
450             <rng:optional><rng:attribute name="col"/></rng:optional>
451             <rng:optional><rng:attribute name="select"/></rng:optional>
452             <rng:optional><rng:attribute name="orientation"/></rng:optional>
453             <rng:zeroOrMore>
454                 <rng:choice>
455                     <rng:ref name="separator"/>
456                     <rng:ref name="button"/>
457                     <rng:ref name="field"/>
458                     <rng:ref name="label" />
459                     <rng:ref name="group" />
460                     <rng:ref name="filter"/>
461                     <rng:ref name="html"/>
462                     <rng:element name="properties"><rng:empty/></rng:element>
463                     <rng:element name="newline"><rng:empty/></rng:element>
464                 </rng:choice>
465             </rng:zeroOrMore>
466         </rng:element>
467     </rng:define>
468
469     <rng:define name="xpath">
470         <rng:element name="xpath">
471             <rng:optional><rng:attribute name="expr"/></rng:optional>
472             <rng:ref name="overload"/>
473             <rng:zeroOrMore>
474                 <rng:choice>
475                     <rng:ref name="any"/>
476                     <rng:ref name="button"/>
477                     <rng:ref name="html"/>
478                 </rng:choice>
479             </rng:zeroOrMore>
480         </rng:element>
481     </rng:define>
482
483     <rng:define name="data">
484         <rng:element name="data">
485             <rng:zeroOrMore>
486                 <rng:choice>
487                     <rng:ref name="form"/>
488                     <rng:ref name="tree"/>
489                     <rng:ref name="field"/>
490                     <rng:ref name="label"/>
491                     <rng:ref name="separator"/>
492                     <rng:ref name="notebook"/>
493                     <rng:ref name="page"/>
494                     <rng:ref name="xpath"/>
495                     <rng:ref name="button"/>
496                     <rng:ref name="group"/>
497                     <rng:ref name="filter"/>
498                     <rng:ref name="graph"/>
499                     <rng:ref name="html"/>
500                     <rng:element name="newline"><rng:empty/></rng:element>
501                 </rng:choice>
502             </rng:zeroOrMore>
503         </rng:element>
504     </rng:define>
505
506     <rng:define name="field">
507         <rng:element name="field">
508             <rng:attribute name="name" />
509             <rng:ref name="overload"/>
510             <rng:ref name="access_rights"/>
511             <rng:optional><rng:attribute name="domain_filter"/></rng:optional>
512             <rng:optional><rng:attribute name="attrs"/></rng:optional>
513             <rng:optional><rng:attribute name="string"/></rng:optional>
514             <rng:optional><rng:attribute name="completion"/></rng:optional>
515             <rng:optional><rng:attribute name="width"/></rng:optional>
516             <rng:optional><rng:attribute name="type"/></rng:optional>
517             <rng:optional><rng:attribute name="ref"/></rng:optional>
518             <rng:optional><rng:attribute name="eval"/></rng:optional>
519             <rng:optional><rng:attribute name="search"/></rng:optional>
520             <rng:optional><rng:attribute name="model"/></rng:optional>
521             <rng:optional><rng:attribute name="use"/></rng:optional>
522             <rng:optional><rng:attribute name="on_change"/></rng:optional>
523             <rng:optional><rng:attribute name="domain"/></rng:optional>
524             <rng:optional><rng:attribute name="filter_domain"/></rng:optional>
525             <rng:optional><rng:attribute name="invisible"/></rng:optional>
526             <rng:optional><rng:attribute name="password"/></rng:optional>
527             <rng:optional><rng:attribute name="comparator"/></rng:optional>
528             <rng:optional><rng:attribute name="sum"/></rng:optional>
529             <rng:optional><rng:attribute name="bold"/></rng:optional>
530             <rng:optional><rng:attribute name="avg"/></rng:optional>
531             <rng:optional><rng:attribute name="select"/></rng:optional>
532             <rng:optional><rng:attribute name="group"/></rng:optional>
533             <rng:optional><rng:attribute name="operator"/></rng:optional>
534             <rng:optional><rng:attribute name="colspan"/></rng:optional>
535             <rng:optional><rng:attribute name="nolabel"/></rng:optional>
536             <rng:optional><rng:attribute name="default_get"/></rng:optional>
537             <rng:optional><rng:attribute name="required"/></rng:optional>
538             <rng:optional><rng:attribute name="readonly"/></rng:optional>
539             <rng:optional><rng:attribute name="view_mode"/></rng:optional>
540             <rng:optional><rng:attribute name="widget"/></rng:optional>
541             <rng:optional><rng:attribute name="context"/></rng:optional>
542             <rng:optional><rng:attribute name="states"/></rng:optional>
543             <rng:optional><rng:attribute name="digits"/></rng:optional>
544             <rng:optional><rng:attribute name="icon"/></rng:optional>
545             <rng:optional><rng:attribute name="mode"/></rng:optional>
546             <rng:optional><rng:attribute name="img_width"/></rng:optional>
547             <rng:optional><rng:attribute name="img_height"/></rng:optional>
548             <rng:optional><rng:attribute name="size"/></rng:optional>
549             <rng:optional><rng:attribute name="filename"/></rng:optional>
550             <rng:optional><rng:attribute name="height"/></rng:optional>
551             <rng:optional><rng:attribute name="rowspan"/></rng:optional>
552             <rng:optional><rng:attribute name="align"/></rng:optional>
553             <rng:optional><rng:attribute name="selection"/></rng:optional>
554             <rng:optional><rng:attribute name="default_focus"/></rng:optional>
555             <rng:optional><rng:attribute name="filters"/></rng:optional>
556             <rng:optional><rng:attribute name="statusbar_visible"/></rng:optional>
557             <rng:optional><rng:attribute name="statusbar_colors"/></rng:optional>
558             <!-- Widget *static* options defined as an arbitrary JSON dict, with
559                  widget-dependent parameters. To be ignored if widget/client does
560                  not support them. -->
561             <rng:optional><rng:attribute name="options"/></rng:optional>
562             <rng:optional><rng:attribute name="placeholder"/></rng:optional>
563             <rng:zeroOrMore>
564                 <rng:choice>
565                     <rng:ref name="diagram"/>
566                     <rng:ref name="kanban"/>
567                     <rng:ref name="form"/>
568                     <rng:ref name="data"/>
569                     <rng:ref name="tree"/>
570                     <rng:ref name="field"/>
571                     <rng:ref name="label"/>
572                     <rng:ref name="separator"/>
573                     <rng:ref name="xpath"/>
574                     <rng:ref name="button"/>
575                     <rng:ref name="group"/>
576                     <rng:ref name="graph"/>
577                     <rng:ref name="filter"/>
578                     <rng:ref name="notebook"/>
579                     <rng:ref name="html"/>
580                     <rng:element name="newline"><rng:empty/></rng:element>
581                 </rng:choice>
582             </rng:zeroOrMore>
583         </rng:element>
584     </rng:define>
585
586     <rng:define name="group">
587         <rng:element name="group">
588             <rng:ref name="overload"/>
589             <rng:ref name="access_rights"/>
590             <rng:optional><rng:attribute name="attrs"/></rng:optional>
591             <rng:optional><rng:attribute name="colspan"/></rng:optional>
592             <rng:optional><rng:attribute name="rowspan"/></rng:optional>
593             <rng:optional><rng:attribute name="expand"/></rng:optional>
594             <rng:optional><rng:attribute name="states"/></rng:optional>
595             <rng:optional><rng:attribute name="string"/></rng:optional>
596             <rng:optional><rng:attribute name="fill"/></rng:optional>
597             <rng:optional><rng:attribute name="height"/></rng:optional>
598             <rng:optional><rng:attribute name="width"/></rng:optional>
599             <rng:optional><rng:attribute name="name"/></rng:optional>
600             <rng:optional><rng:attribute name="color" /></rng:optional>
601             <rng:ref name="container"/>
602         </rng:element>
603     </rng:define>
604
605     <rng:define name="calendar">
606         <rng:element name="calendar">
607             <rng:optional><rng:attribute name="string" /></rng:optional>
608             <rng:optional><rng:attribute name="color" /></rng:optional>
609             <rng:optional><rng:attribute name="date_start" /></rng:optional>
610             <rng:optional><rng:attribute name="date_stop" /></rng:optional>
611             <rng:optional><rng:attribute name="day_length" /></rng:optional>
612             <rng:optional><rng:attribute name="date_delay" /></rng:optional>
613             <rng:optional><rng:attribute name="type" /></rng:optional>
614             <rng:optional><rng:attribute name="mode" /></rng:optional>
615             <rng:oneOrMore>
616                 <rng:ref name="field"/>
617             </rng:oneOrMore>
618             <rng:zeroOrMore>
619                 <rng:ref name="html"/>
620             </rng:zeroOrMore>
621         </rng:element>
622     </rng:define>
623
624     <rng:define name="graph">
625         <rng:element name="graph">
626             <rng:optional><rng:attribute name="string" /></rng:optional>
627             <rng:optional><rng:attribute name="orientation" /></rng:optional>
628             <rng:optional><rng:attribute name="type" /></rng:optional>
629             <rng:optional><rng:attribute name="color"/></rng:optional>
630             <rng:oneOrMore>
631                 <rng:ref name="field"/>
632             </rng:oneOrMore>
633             <rng:zeroOrMore>
634                 <rng:ref name="html"/>
635             </rng:zeroOrMore>
636         </rng:element>
637     </rng:define>
638
639     <rng:define name="button">
640         <rng:element name="button">
641             <rng:ref name="overload"/>
642             <rng:ref name="access_rights"/>
643             <rng:optional><rng:attribute name="attrs"/></rng:optional>
644             <rng:optional><rng:attribute name="invisible"/></rng:optional>
645             <rng:optional><rng:attribute name="name" /></rng:optional>
646             <rng:optional><rng:attribute name="icon" /></rng:optional>
647             <rng:optional><rng:attribute name="string" /></rng:optional>
648             <rng:optional><rng:attribute name="states" /></rng:optional>
649             <rng:optional><rng:attribute name="type" /></rng:optional>
650             <rng:optional><rng:attribute name="special" /></rng:optional>
651             <rng:optional><rng:attribute name="align" /></rng:optional>
652             <rng:optional><rng:attribute name="colspan"/></rng:optional>
653             <rng:optional><rng:attribute name="target"/></rng:optional>
654             <rng:optional><rng:attribute name="readonly"/></rng:optional>
655             <rng:optional><rng:attribute name="context"/></rng:optional>
656             <rng:optional><rng:attribute name="confirm"/></rng:optional>
657             <rng:optional><rng:attribute name="help"/></rng:optional>
658             <rng:optional><rng:attribute name="class"/></rng:optional>
659             <rng:optional><rng:attribute name="default_focus"/></rng:optional>
660             <rng:zeroOrMore>
661                 <rng:choice>
662                     <rng:ref name="form" />
663                     <rng:ref name="field" />
664                     <rng:ref name="tree" />
665                     <rng:ref name="notebook" />
666                     <rng:ref name="graph" />
667                     <rng:ref name="calendar" />
668                     <rng:ref name="gantt" />
669                     <rng:ref name="xpath" />
670                     <rng:ref name="page" />
671                     <rng:ref name="separator"/>
672                     <rng:ref name="button"/>
673                     <rng:ref name="group"/>
674                     <rng:ref name="filter"/>
675                     <rng:ref name="html"/>
676                     <rng:element name="properties"><rng:empty/></rng:element>
677                     <rng:element name="newline"><rng:empty/></rng:element>
678                 </rng:choice>
679             </rng:zeroOrMore>
680
681         </rng:element>
682     </rng:define>
683
684     <rng:define name="filter">
685         <rng:element name="filter">
686             <rng:ref name="overload"/>
687             <rng:ref name="access_rights"/>
688             <rng:optional><rng:attribute name="attrs"/></rng:optional>
689             <rng:optional><rng:attribute name="name" /></rng:optional>
690             <rng:optional><rng:attribute name="separator" /></rng:optional>
691             <rng:optional><rng:attribute name="icon" /></rng:optional>
692             <rng:optional><rng:attribute name="string" /></rng:optional>
693             <rng:optional><rng:attribute name="type" /></rng:optional>
694             <rng:optional><rng:attribute name="align" /></rng:optional>
695             <rng:optional><rng:attribute name="colspan"/></rng:optional>
696             <rng:optional><rng:attribute name="readonly"/></rng:optional>
697             <rng:optional><rng:attribute name="context"/></rng:optional>
698             <rng:optional><rng:attribute name="help"/></rng:optional>
699             <rng:optional><rng:attribute name="domain"/></rng:optional>
700             <rng:zeroOrMore>
701                 <rng:choice>
702                     <rng:ref name="form" />
703                     <rng:ref name="field" />
704                     <rng:ref name="tree" />
705                     <rng:ref name="notebook" />
706                     <rng:ref name="graph" />
707                     <rng:ref name="calendar" />
708                     <rng:ref name="gantt" />
709                     <rng:ref name="xpath" />
710                     <rng:ref name="page" />
711                     <rng:ref name="separator"/>
712                     <rng:ref name="button"/>
713                     <rng:ref name="filter"/>
714                     <rng:ref name="html"/>
715                     <rng:element name="properties"><rng:empty/></rng:element>
716                     <rng:element name="newline"><rng:empty/></rng:element>
717                 </rng:choice>
718             </rng:zeroOrMore>
719
720         </rng:element>
721     </rng:define>
722
723     <rng:start>
724         <rng:choice>
725             <rng:ref name="diagram" />
726             <rng:ref name="kanban" />
727             <rng:ref name="form" />
728             <rng:ref name="search" />
729             <rng:ref name="group" />
730             <rng:ref name="field" />
731             <rng:ref name="tree" />
732             <rng:ref name="notebook" />
733             <rng:ref name="graph" />
734             <rng:ref name="calendar" />
735             <rng:ref name="data" />
736             <rng:ref name="gantt" />
737             <rng:ref name="xpath" />
738             <rng:ref name="page" />
739             <rng:ref name="separator"/>
740             <rng:ref name="button"/>
741             <rng:ref name="filter"/>
742             <rng:ref name="label" />
743             <rng:ref name="html"/>
744         </rng:choice>
745     </rng:start>
746 </rng:grammar>