Imported Upstream version 2.8.0
[platform/upstream/libxml2.git] / test / relaxng / comps.rng
1 <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>