merge with 0.30.213
[util-vserver.git] / doc / configuration.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
4 <xsd:annotation>
5  <xsd:documentation xml:lang="en">
6   Filesystem Database schema writen by Olivier Poitrey on 4/20/2004
7   Version $Id: configuration.xsd 1496 2004-04-22 19:24:05Z ensc $
8  </xsd:documentation>
9 </xsd:annotation>
10
11 <xsd:group name="commonElements">
12  <xsd:sequence>
13   <xsd:element name="description" type="xsd:normalizedString" minOccurs="0"/>
14  </xsd:sequence>
15 </xsd:group>
16
17 <xsd:attributeGroup name="commonAttributes">
18  <xsd:attribute name="name" type="xsd:token" use="required"/>
19  <xsd:attribute name="type" default="fixed">
20   <xsd:simpleType>
21    <xsd:restriction base="xsd:string">
22     <xsd:enumeration value="fixed"/>
23     <xsd:enumeration value="symbolic"/>
24    </xsd:restriction>
25   </xsd:simpleType>
26  </xsd:attribute>
27  <xsd:attribute name="use" default="required">
28   <xsd:simpleType>
29    <xsd:restriction base="xsd:string">
30     <xsd:enumeration value="optional"/>
31     <xsd:enumeration value="required"/>
32     <xsd:enumeration value="prohibited"/>
33    </xsd:restriction>
34   </xsd:simpleType>
35  </xsd:attribute>
36 </xsd:attributeGroup>
37
38 <xsd:simpleType name="quantityType">
39  <xsd:union memberTypes="xsd:unsignedInt">
40   <xsd:simpleType>
41    <xsd:restriction base="xsd:string">
42     <xsd:enumeration value="unbounded"/>
43    </xsd:restriction>
44   </xsd:simpleType>
45  </xsd:union>
46 </xsd:simpleType>
47
48 <xsd:complexType name="baseItem" abstract="true">
49  <xsd:sequence>
50   <xsd:group ref="commonElements"/>
51  </xsd:sequence>
52  <xsd:attributeGroup ref="commonAttributes"/>
53 </xsd:complexType>
54
55 <xsd:complexType name="baseNode" abstract="true">
56  <xsd:sequence>
57   <xsd:group ref="commonElements"/>
58   <xsd:choice minOccurs="0" maxOccurs="unbounded">
59    <xsd:element name="collection" type="collectionType">
60     <xsd:unique name="collection">
61      <xsd:annotation>
62       <xsd:documentation xml:lang="en">
63        Avoid duplicate element with same name attribute on the same level tree
64       </xsd:documentation>
65      </xsd:annotation>
66      <xsd:selector xpath="*"/>
67      <xsd:field xpath="@name"/>
68     </xsd:unique>
69    </xsd:element>
70    <xsd:element name="scalar" type="scalarType"/>
71    <xsd:element name="list" type="listType"/>
72    <xsd:element name="hash" type="hashType"/>
73    <xsd:element name="boolean" type="booleanType"/>
74    <xsd:element name="data" type="dataType"/>
75    <xsd:element name="link" type="linkType"/>
76    <xsd:element name="program" type="programType"/>
77   </xsd:choice>
78  </xsd:sequence>
79 </xsd:complexType>
80
81 <xsd:complexType name="collectionType">
82  <xsd:complexContent>
83   <xsd:extension base="baseNode">
84    <xsd:attributeGroup ref="commonAttributes"/>
85   </xsd:extension>
86  </xsd:complexContent>
87 </xsd:complexType>
88
89 <xsd:complexType name="scalarType">
90  <xsd:complexContent>
91   <xsd:extension base="baseItem">
92    <xsd:sequence>
93     <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
94     <xsd:element name="restriction" minOccurs="0">
95      <xsd:complexType>
96       <xsd:choice>
97        <xsd:element name="enumeration" minOccurs="0" maxOccurs="unbounded">
98         <xsd:complexType>
99          <xsd:attribute name="value" type="xsd:normalizedString"/>
100         </xsd:complexType>
101        </xsd:element>
102       </xsd:choice>
103      </xsd:complexType>
104     </xsd:element>
105    </xsd:sequence>
106   </xsd:extension>
107  </xsd:complexContent>
108 </xsd:complexType>
109
110 <xsd:complexType name="listType">
111  <xsd:complexContent>
112   <xsd:extension base="baseItem">
113    <xsd:sequence>
114     <xsd:element name="minElements" type="quantityType" minOccurs="0" default="0"/>
115     <xsd:element name="maxElements" type="quantityType" minOccurs="0" default="unbounded"/>
116     <xsd:element name="elements" minOccurs="0">
117      <xsd:complexType>
118       <xsd:sequence>
119        <xsd:element name="element" minOccurs="0" maxOccurs="unbounded">
120         <xsd:complexType>
121          <xsd:sequence>
122           <xsd:group ref="commonElements"/>
123           <xsd:element name="default" type="xsd:boolean" minOccurs="0" default="0"/>
124          </xsd:sequence>
125          <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
126         </xsd:complexType>
127        </xsd:element>
128       </xsd:sequence>
129      </xsd:complexType>
130     </xsd:element>
131    </xsd:sequence>
132   </xsd:extension>
133  </xsd:complexContent>
134 </xsd:complexType>
135
136 <xsd:complexType name="hashType">
137  <xsd:complexContent>
138   <xsd:extension base="baseItem">
139    <xsd:sequence>
140     <xsd:element name="keys" minOccurs="0">
141      <xsd:complexType>
142       <xsd:sequence>
143        <xsd:element name="key" minOccurs="0" maxOccurs="unbounded">
144         <xsd:complexType>
145          <xsd:sequence>
146           <xsd:group ref="commonElements"/>
147           <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
148          </xsd:sequence>
149          <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
150         </xsd:complexType>
151        </xsd:element>
152       </xsd:sequence>
153      </xsd:complexType>
154     </xsd:element>
155    </xsd:sequence>
156   </xsd:extension>
157  </xsd:complexContent>
158 </xsd:complexType>
159
160 <xsd:complexType name="booleanType">
161  <xsd:complexContent>
162   <xsd:extension base="baseItem">
163    <xsd:sequence>
164     <xsd:element name="default" type="xsd:boolean" minOccurs="0"/>
165    </xsd:sequence>
166   </xsd:extension>
167  </xsd:complexContent>
168 </xsd:complexType>
169
170 <xsd:complexType name="dataType">
171  <xsd:complexContent>
172   <xsd:extension base="baseItem">
173    <xsd:sequence>
174     <xsd:element name="default" type="xsd:string" minOccurs="0"/>
175    </xsd:sequence>
176   </xsd:extension>
177  </xsd:complexContent>
178 </xsd:complexType>
179
180 <xsd:complexType name="linkType">
181  <xsd:complexContent>
182   <xsd:extension base="baseItem">
183    <xsd:sequence>
184     <xsd:element name="default" type="xsd:token" minOccurs="0"/>
185    </xsd:sequence>
186   </xsd:extension>
187  </xsd:complexContent>
188 </xsd:complexType>
189
190 <xsd:complexType name="programType">
191  <xsd:complexContent>
192   <xsd:extension base="baseItem">
193    <xsd:sequence>
194     <xsd:element name="parameterList" minOccurs="0">
195      <xsd:complexType>
196       <xsd:sequence>
197        <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">
198         <xsd:complexType>
199          <xsd:sequence>
200           <xsd:group ref="commonElements"/>
201          </xsd:sequence>
202          <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
203         </xsd:complexType>
204        </xsd:element>
205       </xsd:sequence>
206      </xsd:complexType>
207     </xsd:element>
208    </xsd:sequence>
209   </xsd:extension>
210  </xsd:complexContent>
211 </xsd:complexType>
212
213 <!-- root element -->
214 <xsd:element name="database">
215  <xsd:complexType>
216   <xsd:complexContent>
217    <xsd:extension base="baseNode"/>
218   </xsd:complexContent>
219  </xsd:complexType>
220  <xsd:unique name="database">
221   <xsd:annotation>
222    <xsd:documentation xml:lang="en">
223     Avoid duplicate element with same name attribute on the same level tree
224    </xsd:documentation>
225   </xsd:annotation>
226   <xsd:selector xpath="*"/>
227   <xsd:field xpath="@name"/>
228  </xsd:unique>
229 </xsd:element>
230
231 </xsd:schema>