1 start = element interface {
2 attribute domain { text } ?,
3 ( requires | object | menu ) *
6 requires = element requires {
7 attribute lib { text },
8 attribute version { text }
11 object = element object {
12 attribute id { xsd:ID },
13 attribute class { text },
14 attribute type-func { text } ?,
15 attribute constructor { text } ?,
16 (property | signal | child | ANY) *
19 property = element property {
20 attribute name { text },
21 attribute translatable { "yes" | "no" } ?,
22 attribute comments { text } ?,
23 attribute context { text } ?,
27 signal = element signal {
28 attribute name { text },
29 attribute handler { text },
30 attribute after { text } ?,
31 attribute swapped { text } ?,
32 attribute object { text } ?,
33 attribute last_modification_time { text } ?,
37 child = element child {
38 attribute type { text } ?,
39 attribute internal-child { text } ?,
44 attribute id { xsd:ID },
45 attribute domain { text } ?,
46 (item | submenu | section) *
50 attribute id { xsd:ID } ?,
54 attribute_ = element attribute {
55 attribute name { text },
56 attribute type { text } ?,
57 attribute translatable { "yes" | "no" } ?,
58 attribute context { text } ?,
59 attribute comments { text } ?,
64 attribute id { xsd:ID } ?,
65 attribute name { text },
69 submenu = element submenu {
70 attribute id { xsd:ID } ?,
71 (attribute_ | item | submenu | section) *
74 section = element section {
75 attribute id { xsd:ID } ?,
76 (attribute_ | item | submenu | section) *
79 ANY = element * - (interface | requires | object | property | signal | child | menu | item | attribute | link | submenu | section) {
80 attribute * { text } *,
84 attribute * { text } *,