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>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>