1
<!-- A Relax NG schema for the libvirt node device XML format -->
2
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
3
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
4
<!-- We handle only document defining a domain -->
15
<ref name='poolnetfs'/>
16
<ref name='poollogical'/>
17
<ref name='pooldisk'/>
18
<ref name='pooliscsi'/>
19
<ref name='poolscsi'/>
24
<define name='pooldir'>
25
<attribute name='type'>
28
<ref name='commonmetadata'/>
30
<ref name='sourcedir'/>
34
<define name='poolfs'>
35
<attribute name='type'>
38
<ref name='commonmetadata'/>
40
<ref name='sourcefs'/>
44
<define name='poolnetfs'>
45
<attribute name='type'>
48
<ref name='commonmetadata'/>
50
<ref name='sourcenetfs'/>
54
<define name='poollogical'>
55
<attribute name='type'>
56
<value>logical</value>
58
<ref name='commonmetadata'/>
60
<ref name='sourcelogical'/>
64
<define name='pooldisk'>
65
<attribute name='type'>
68
<ref name='commonmetadata'/>
70
<ref name='sourcedisk'/>
74
<define name='pooliscsi'>
75
<attribute name='type'>
78
<ref name='commonmetadata'/>
80
<ref name='sourceiscsi'/>
84
<define name='poolscsi'>
85
<attribute name='type'>
88
<ref name='commonmetadata'/>
90
<ref name='sourcescsi'/>
94
<define name='commonmetadata'>
105
<define name='sizing'>
107
<element name='capacity'>
112
<element name='allocation'>
117
<element name='available'>
123
<define name='permissions'>
125
<element name='permissions'>
126
<element name='mode'>
129
<element name='owner'>
132
<element name='group'>
136
<element name='label'>
144
<define name='target'>
145
<element name='target'>
147
<element name='path'>
151
<ref name='permissions'/>
155
<define name='sourceinfohost'>
156
<element name='host'>
157
<attribute name='name'>
164
<define name='sourceinfodev'>
165
<element name='device'>
166
<attribute name='path'>
174
<ref name='devextents'/>
179
<define name='devextents'>
181
<element name='freeExtent'>
182
<attribute name='start'>
185
<attribute name='end'>
192
<define name='sourceinfodir'>
194
<attribute name='path'>
201
<define name='sourceinfoadapter'>
202
<element name='adapter'>
203
<attribute name='name'>
210
<define name='sourceinfoname'>
211
<element name='name'>
216
<define name='sourcefmtfs'>
218
<element name='format'>
219
<attribute name='type'>
226
<value>iso9660</value>
240
<define name='sourcefmtnetfs'>
242
<element name='format'>
243
<attribute name='type'>
254
<define name='sourcefmtdisk'>
256
<element name='format'>
257
<attribute name='type'>
275
<define name='sourcefmtlogical'>
277
<element name='format'>
278
<attribute name='type'>
289
<define name='sourcedir'>
291
<element name='source'>
296
<define name='sourcefs'>
297
<element name='source'>
298
<ref name='sourceinfodev'/>
299
<ref name='sourcefmtfs'/>
303
<define name='sourcenetfs'>
304
<element name='source'>
305
<ref name='sourceinfohost'/>
306
<ref name='sourceinfodir'/>
307
<ref name='sourcefmtnetfs'/>
311
<define name='sourcelogical'>
312
<element name='source'>
313
<ref name='sourceinfoname'/>
315
<ref name='sourceinfodev'/>
317
<ref name='sourcefmtlogical'/>
321
<define name='sourcedisk'>
322
<element name='source'>
323
<ref name='sourceinfodev'/>
324
<ref name='sourcefmtdisk'/>
328
<define name='sourceiscsi'>
329
<element name='source'>
330
<ref name='sourceinfohost'/>
331
<ref name='sourceinfodev'/>
335
<define name='sourcescsi'>
336
<element name='source'>
337
<ref name='sourceinfoname'/>
344
<param name="pattern">[a-zA-Z0-9_\+\-]+</param>
350
<param name="pattern">[a-fA-F0-9]{32}</param>
353
<param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
360
<param name="pattern">[0-9]+</param>
366
<param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>