blob: 86172c19c0a5b43d5313f87a67d3c3c141956c9b [file] [log] [blame]
Daniel Veillarde96b47f2007-01-04 17:28:35 +00001<grammar xmlns="http://relaxng.org/ns/structure/1.0">
2<start>
3 <ref name="comps"/>
4</start>
5
6<define name="package-name">
7 <text/>
8</define>
9
10<define name="group-name">
11 <text/>
12</define>
13
14<define name="lang">
15 <text/>
16</define>
17
18<define name="description-text">
19 <text/>
20</define>
21
22<define name="comps">
23 <element name="comps">
24 <oneOrMore>
25 <ref name="group"/>
26 </oneOrMore>
27 <ref name="grouphierarchy"/>
28 <oneOrMore>
29 <ref name="package"/>
30 </oneOrMore>
31 </element>
32</define>
33
34<define name="group">
35 <element name="group">
36 <element name="id">
37 <ref name="group-name"/>
38 </element>
39 <interleave>
40 <ref name="names"/>
41 <optional>
42 <element name="default">
43 <choice>
44 <value>true</value>
45 <value>false</value>
46 </choice>
47 </element>
48 </optional>
49 <optional>
50 <ref name="descriptions"/>
51 </optional>
52 <optional>
53 <element name="uservisible">
54 <choice>
55 <value>true</value>
56 <value>false</value>
57 </choice>
58 </element>
59 </optional>
60 <optional>
61 <element name="langonly">
62 <ref name="lang"/>
63 </element>
64 </optional>
65 </interleave>
66 <optional>
67 <element name="grouplist">
68 <zeroOrMore>
69 <element name="groupreq">
70 <ref name="group-name"/>
71 </element>
72 </zeroOrMore>
73 <zeroOrMore>
74 <element name="metapkg">
75 <attribute name="type">
76 <choice>
77 <value>default</value>
78 <!-- <value>mandatory</value> ?? -->
79 <value>optional</value>
80 </choice>
81 </attribute>
82 <ref name="package-name"/>
83 </element>
84 </zeroOrMore>
85 </element>
86 </optional>
87 <optional>
88 <element name="packagelist">
89 <oneOrMore>
90 <element name="packagereq">
91 <attribute name="type">
92 <choice>
93 <value>default</value>
94 <value>mandatory</value>
95 <value>optional</value>
96 </choice>
97 </attribute>
98 <optional>
99 <attribute name="requires">
100 <ref name="package-name"/>
101 </attribute>
102 </optional>
103 <ref name="package-name"/>
104 </element>
105 </oneOrMore>
106 </element>
107 </optional>
108 </element>
109</define>
110
111<define name="grouphierarchy">
112 <element name="grouphierarchy">
113 <oneOrMore>
114 <ref name="category"/>
115 </oneOrMore>
116 </element>
117</define>
118
119<define name="category">
120 <element name="category">
121 <ref name="names"/>
122 <optional>
123 <element name="subcategories">
124 <oneOrMore>
125 <element name="subcategory">
126 <ref name="package-name"/>
127 </element>
128 </oneOrMore>
129 </element>
130 </optional>
131 </element>
132</define>
133
134<define name="package">
135 <element name="package">
136 <element name="name">
137 <ref name="package-name"/>
138 </element>
139 <element name="dependencylist">
140 <zeroOrMore>
141 <element name="dependency">
142 <ref name="package-name"/>
143 </element>
144 </zeroOrMore>
145 </element>
146 </element>
147</define>
148
149<define name="names">
150 <element name="name">
151 <ref name="description-text"/>
152 </element>
153 <zeroOrMore>
154 <element name="name">
155 <attribute name="xml:lang">
156 <ref name="lang"/>
157 </attribute>
158 <ref name="description-text"/>
159 </element>
160 </zeroOrMore>
161</define>
162
163<define name="descriptions">
164 <element name="description">
165 <ref name="description-text"/>
166 </element>
167 <zeroOrMore>
168 <element name="description">
169 <attribute name="xml:lang">
170 <ref name="lang"/>
171 </attribute>
172 <ref name="description-text"/>
173 </element>
174 </zeroOrMore>
175</define>
176
177</grammar>