xref: /linux/drivers/gpu/drm/msm/registers/rules-fd.xsd (revision db5d28c0bfe566908719bec8e25443aabecbb802)
1*4f52f5e6SDmitry Baryshkov<?xml version="1.0" encoding="UTF-8"?>
2*4f52f5e6SDmitry Baryshkov<schema xmlns="http://www.w3.org/2001/XMLSchema"
3*4f52f5e6SDmitry Baryshkov	targetNamespace="http://nouveau.freedesktop.org/"
4*4f52f5e6SDmitry Baryshkov	xmlns:rng="http://nouveau.freedesktop.org/"
5*4f52f5e6SDmitry Baryshkov	elementFormDefault="qualified">
6*4f52f5e6SDmitry Baryshkov
7*4f52f5e6SDmitry Baryshkov	<annotation>
8*4f52f5e6SDmitry Baryshkov		<documentation>
9*4f52f5e6SDmitry Baryshkov			An updated version of the old rules.xml file from the
10*4f52f5e6SDmitry Baryshkov			RivaTV project. Specifications by Pekka Paalanen,
11*4f52f5e6SDmitry Baryshkov			preliminary attempt by KoalaBR,
12*4f52f5e6SDmitry Baryshkov			first working version by Jakob Bornecrantz.
13*4f52f5e6SDmitry Baryshkov			For specifications, see the file rules-ng-format.txt
14*4f52f5e6SDmitry Baryshkov			in Nouveau CVS module 'rules-ng'.
15*4f52f5e6SDmitry Baryshkov		</documentation>
16*4f52f5e6SDmitry Baryshkov		<documentation>Version 0.1</documentation>
17*4f52f5e6SDmitry Baryshkov	</annotation>
18*4f52f5e6SDmitry Baryshkov
19*4f52f5e6SDmitry Baryshkov
20*4f52f5e6SDmitry Baryshkov	<!-- Elements -->
21*4f52f5e6SDmitry Baryshkov
22*4f52f5e6SDmitry Baryshkov	<element name="database"       type="rng:databaseType" />
23*4f52f5e6SDmitry Baryshkov	<element name="import"         type="rng:importType" />
24*4f52f5e6SDmitry Baryshkov	<element name="copyright"      type="rng:copyrightType" />
25*4f52f5e6SDmitry Baryshkov	<element name="domain"         type="rng:domainType" />
26*4f52f5e6SDmitry Baryshkov	<element name="array"          type="rng:arrayType" />
27*4f52f5e6SDmitry Baryshkov	<element name="stripe"         type="rng:stripeType" />
28*4f52f5e6SDmitry Baryshkov	<element name="reg64"          type="rng:registerType" />
29*4f52f5e6SDmitry Baryshkov	<element name="reg32"          type="rng:registerType" />
30*4f52f5e6SDmitry Baryshkov	<element name="bitset"         type="rng:bitsetType" />
31*4f52f5e6SDmitry Baryshkov	<element name="bitfield"       type="rng:bitfieldType" />
32*4f52f5e6SDmitry Baryshkov	<element name="enum"           type="rng:enumType" />
33*4f52f5e6SDmitry Baryshkov	<element name="value"          type="rng:valueType" />
34*4f52f5e6SDmitry Baryshkov
35*4f52f5e6SDmitry Baryshkov	<!-- Copyright elements -->
36*4f52f5e6SDmitry Baryshkov	<element name="author"         type="rng:authorType" />
37*4f52f5e6SDmitry Baryshkov	<element name="nick"           type="rng:nickType" />
38*4f52f5e6SDmitry Baryshkov	<element name="license"        type="rng:docType" />
39*4f52f5e6SDmitry Baryshkov
40*4f52f5e6SDmitry Baryshkov	<!-- Documentation elements -->
41*4f52f5e6SDmitry Baryshkov
42*4f52f5e6SDmitry Baryshkov	<!-- FIXME: allowed only one  per parent element -->
43*4f52f5e6SDmitry Baryshkov	<element name="brief" type="rng:briefType" />
44*4f52f5e6SDmitry Baryshkov
45*4f52f5e6SDmitry Baryshkov	<element name="doc"  type="rng:docType" />
46*4f52f5e6SDmitry Baryshkov	<element name="b"    type="rng:textformatType" />
47*4f52f5e6SDmitry Baryshkov	<element name="i"    type="rng:textformatType" />
48*4f52f5e6SDmitry Baryshkov	<element name="u"    type="rng:textformatType" />
49*4f52f5e6SDmitry Baryshkov	<element name="code" type="rng:textcodeType" />
50*4f52f5e6SDmitry Baryshkov	<element name="ul"   type="rng:listType" />
51*4f52f5e6SDmitry Baryshkov	<element name="ol"   type="rng:listType" />
52*4f52f5e6SDmitry Baryshkov	<element name="li"   type="rng:listitemType" />
53*4f52f5e6SDmitry Baryshkov
54*4f52f5e6SDmitry Baryshkov	<!-- Copyright element types -->
55*4f52f5e6SDmitry Baryshkov
56*4f52f5e6SDmitry Baryshkov	<complexType name="authorType" mixed="true">
57*4f52f5e6SDmitry Baryshkov		<annotation>
58*4f52f5e6SDmitry Baryshkov			<documentation>
59*4f52f5e6SDmitry Baryshkov				register database author
60*4f52f5e6SDmitry Baryshkov			</documentation>
61*4f52f5e6SDmitry Baryshkov		</annotation>
62*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
63*4f52f5e6SDmitry Baryshkov			<element ref="rng:nick" />
64*4f52f5e6SDmitry Baryshkov		</choice>
65*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="string" use="required" />
66*4f52f5e6SDmitry Baryshkov		<attribute name="email" type="string" use="required" />
67*4f52f5e6SDmitry Baryshkov	</complexType>
68*4f52f5e6SDmitry Baryshkov
69*4f52f5e6SDmitry Baryshkov	<complexType name="nickType">
70*4f52f5e6SDmitry Baryshkov		<annotation>
71*4f52f5e6SDmitry Baryshkov			<documentation>nickType</documentation>
72*4f52f5e6SDmitry Baryshkov		</annotation>
73*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="string" use="required" />
74*4f52f5e6SDmitry Baryshkov	</complexType>
75*4f52f5e6SDmitry Baryshkov
76*4f52f5e6SDmitry Baryshkov	<!-- Database element types -->
77*4f52f5e6SDmitry Baryshkov
78*4f52f5e6SDmitry Baryshkov	<complexType name="databaseType">
79*4f52f5e6SDmitry Baryshkov		<annotation>
80*4f52f5e6SDmitry Baryshkov			<documentation>databaseType</documentation>
81*4f52f5e6SDmitry Baryshkov		</annotation>
82*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
83*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
84*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
85*4f52f5e6SDmitry Baryshkov		</choice>
86*4f52f5e6SDmitry Baryshkov	</complexType>
87*4f52f5e6SDmitry Baryshkov
88*4f52f5e6SDmitry Baryshkov	<complexType name="importType">
89*4f52f5e6SDmitry Baryshkov		<annotation>
90*4f52f5e6SDmitry Baryshkov			<documentation>importType</documentation>
91*4f52f5e6SDmitry Baryshkov		</annotation>
92*4f52f5e6SDmitry Baryshkov		<attribute name="file" type="string" use="required" />
93*4f52f5e6SDmitry Baryshkov	</complexType>
94*4f52f5e6SDmitry Baryshkov
95*4f52f5e6SDmitry Baryshkov	<complexType name="copyrightType">
96*4f52f5e6SDmitry Baryshkov		<annotation>
97*4f52f5e6SDmitry Baryshkov			<documentation>copyrightType</documentation>
98*4f52f5e6SDmitry Baryshkov		</annotation>
99*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
100*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
101*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
102*4f52f5e6SDmitry Baryshkov			<element ref="rng:author" />
103*4f52f5e6SDmitry Baryshkov			<element ref="rng:license" />
104*4f52f5e6SDmitry Baryshkov		</choice>
105*4f52f5e6SDmitry Baryshkov		<attribute name="year" type="nonNegativeInteger" use="optional" />
106*4f52f5e6SDmitry Baryshkov	</complexType>
107*4f52f5e6SDmitry Baryshkov
108*4f52f5e6SDmitry Baryshkov	<complexType name="domainType">
109*4f52f5e6SDmitry Baryshkov		<annotation>
110*4f52f5e6SDmitry Baryshkov			<documentation>domainType</documentation>
111*4f52f5e6SDmitry Baryshkov		</annotation>
112*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
113*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
114*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
115*4f52f5e6SDmitry Baryshkov			<group ref="rng:regarrayGroup" />
116*4f52f5e6SDmitry Baryshkov		</choice>
117*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
118*4f52f5e6SDmitry Baryshkov		<attribute name="prefix" type="NMTOKENS" use="optional" />
119*4f52f5e6SDmitry Baryshkov		<attribute name="width" type="rng:DomainWidth" use="optional" />
120*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
121*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
122*4f52f5e6SDmitry Baryshkov	</complexType>
123*4f52f5e6SDmitry Baryshkov
124*4f52f5e6SDmitry Baryshkov	<complexType name="arrayType">
125*4f52f5e6SDmitry Baryshkov		<annotation>
126*4f52f5e6SDmitry Baryshkov			<documentation>arrayType</documentation>
127*4f52f5e6SDmitry Baryshkov		</annotation>
128*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
129*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
130*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
131*4f52f5e6SDmitry Baryshkov			<group ref="rng:regarrayGroup" />
132*4f52f5e6SDmitry Baryshkov		</choice>
133*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="optional" />
134*4f52f5e6SDmitry Baryshkov		<attribute name="offset" type="rng:HexOrNumber" use="optional" />
135*4f52f5e6SDmitry Baryshkov		<attribute name="offsets" type="string" use="optional"/>
136*4f52f5e6SDmitry Baryshkov		<attribute name="doffsets" type="string" use="optional"/>
137*4f52f5e6SDmitry Baryshkov		<attribute name="index" type="NMTOKENS" use="optional"/>
138*4f52f5e6SDmitry Baryshkov		<attribute name="stride" type="rng:HexOrNumber" use="required" />
139*4f52f5e6SDmitry Baryshkov		<attribute name="length" type="rng:HexOrNumber" use="required" />
140*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
141*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
142*4f52f5e6SDmitry Baryshkov		<attribute name="usage" type="string" use="optional" />
143*4f52f5e6SDmitry Baryshkov	</complexType>
144*4f52f5e6SDmitry Baryshkov
145*4f52f5e6SDmitry Baryshkov	<complexType name="stripeType">
146*4f52f5e6SDmitry Baryshkov		<annotation>
147*4f52f5e6SDmitry Baryshkov			<documentation>stripeType</documentation>
148*4f52f5e6SDmitry Baryshkov		</annotation>
149*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
150*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
151*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
152*4f52f5e6SDmitry Baryshkov			<group ref="rng:regarrayGroup" minOccurs="0" />
153*4f52f5e6SDmitry Baryshkov		</choice>
154*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
155*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
156*4f52f5e6SDmitry Baryshkov		<attribute name="prefix" type="NMTOKENS" use="optional" />
157*4f52f5e6SDmitry Baryshkov	</complexType>
158*4f52f5e6SDmitry Baryshkov
159*4f52f5e6SDmitry Baryshkov	<complexType name="registerType">
160*4f52f5e6SDmitry Baryshkov		<annotation>
161*4f52f5e6SDmitry Baryshkov			<documentation>
162*4f52f5e6SDmitry Baryshkov				registerType used by reg32, reg64
163*4f52f5e6SDmitry Baryshkov			</documentation>
164*4f52f5e6SDmitry Baryshkov		</annotation>
165*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
166*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
167*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
168*4f52f5e6SDmitry Baryshkov			<element ref="rng:value" />
169*4f52f5e6SDmitry Baryshkov			<element ref="rng:bitfield" />
170*4f52f5e6SDmitry Baryshkov		</choice>
171*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
172*4f52f5e6SDmitry Baryshkov		<attribute name="offset" type="rng:HexOrNumber" use="required" />
173*4f52f5e6SDmitry Baryshkov		<attribute name="type" type="NMTOKENS" use="optional" />
174*4f52f5e6SDmitry Baryshkov		<attribute name="shr" type="nonNegativeInteger" use="optional" />
175*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
176*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
177*4f52f5e6SDmitry Baryshkov		<attribute name="stride" type="rng:HexOrNumber" use="optional" />
178*4f52f5e6SDmitry Baryshkov		<attribute name="length" type="rng:HexOrNumber" use="optional" />
179*4f52f5e6SDmitry Baryshkov		<attribute name="high" type="nonNegativeInteger" use="optional" />
180*4f52f5e6SDmitry Baryshkov		<attribute name="low" type="nonNegativeInteger" use="optional" />
181*4f52f5e6SDmitry Baryshkov		<attribute name="pos" type="nonNegativeInteger" use="optional" />
182*4f52f5e6SDmitry Baryshkov		<attribute name="align" type="nonNegativeInteger" use="optional" />
183*4f52f5e6SDmitry Baryshkov		<attribute name="radix" type="nonNegativeInteger" use="optional" />
184*4f52f5e6SDmitry Baryshkov		<attribute name="usage" type="string" use="optional" />
185*4f52f5e6SDmitry Baryshkov	</complexType>
186*4f52f5e6SDmitry Baryshkov
187*4f52f5e6SDmitry Baryshkov	<complexType name="bitsetType">
188*4f52f5e6SDmitry Baryshkov		<annotation>
189*4f52f5e6SDmitry Baryshkov			<documentation>bitsetType</documentation>
190*4f52f5e6SDmitry Baryshkov		</annotation>
191*4f52f5e6SDmitry Baryshkov		<choice maxOccurs="unbounded">
192*4f52f5e6SDmitry Baryshkov			<element ref="rng:bitfield" />
193*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
194*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
195*4f52f5e6SDmitry Baryshkov		</choice>
196*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
197*4f52f5e6SDmitry Baryshkov		<attribute name="inline" type="rng:Boolean" use="optional" />
198*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
199*4f52f5e6SDmitry Baryshkov	</complexType>
200*4f52f5e6SDmitry Baryshkov
201*4f52f5e6SDmitry Baryshkov	<complexType name="bitfieldType">
202*4f52f5e6SDmitry Baryshkov		<annotation>
203*4f52f5e6SDmitry Baryshkov			<documentation>bitfieldType</documentation>
204*4f52f5e6SDmitry Baryshkov		</annotation>
205*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
206*4f52f5e6SDmitry Baryshkov			<element ref="rng:value" maxOccurs="unbounded" />
207*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
208*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
209*4f52f5e6SDmitry Baryshkov		</choice>
210*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
211*4f52f5e6SDmitry Baryshkov		<attribute name="high" type="nonNegativeInteger" use="optional" />
212*4f52f5e6SDmitry Baryshkov		<attribute name="low" type="nonNegativeInteger" use="optional" />
213*4f52f5e6SDmitry Baryshkov		<attribute name="pos" type="nonNegativeInteger" use="optional" />
214*4f52f5e6SDmitry Baryshkov		<attribute name="radix" type="nonNegativeInteger" use="optional" />
215*4f52f5e6SDmitry Baryshkov		<attribute name="type" type="NMTOKENS" use="optional" />
216*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
217*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
218*4f52f5e6SDmitry Baryshkov		<attribute name="addvariant" type="rng:Boolean" use="optional" />
219*4f52f5e6SDmitry Baryshkov		<attribute name="shr" type="nonNegativeInteger" use="optional" />
220*4f52f5e6SDmitry Baryshkov	</complexType>
221*4f52f5e6SDmitry Baryshkov
222*4f52f5e6SDmitry Baryshkov	<complexType name="enumType">
223*4f52f5e6SDmitry Baryshkov		<annotation>
224*4f52f5e6SDmitry Baryshkov			<documentation>enumType</documentation>
225*4f52f5e6SDmitry Baryshkov		</annotation>
226*4f52f5e6SDmitry Baryshkov		<choice maxOccurs="unbounded">
227*4f52f5e6SDmitry Baryshkov			<element ref="rng:value" />
228*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
229*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
230*4f52f5e6SDmitry Baryshkov		</choice>
231*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
232*4f52f5e6SDmitry Baryshkov		<attribute name="bare" type="rng:Boolean" use="optional" />
233*4f52f5e6SDmitry Baryshkov		<attribute name="prefix" type="NMTOKENS" use="optional" />
234*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
235*4f52f5e6SDmitry Baryshkov	</complexType>
236*4f52f5e6SDmitry Baryshkov
237*4f52f5e6SDmitry Baryshkov	<complexType name="valueType">
238*4f52f5e6SDmitry Baryshkov		<annotation>
239*4f52f5e6SDmitry Baryshkov			<documentation>valueType</documentation>
240*4f52f5e6SDmitry Baryshkov		</annotation>
241*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
242*4f52f5e6SDmitry Baryshkov			<group ref="rng:docGroup" />
243*4f52f5e6SDmitry Baryshkov			<group ref="rng:topGroup" />
244*4f52f5e6SDmitry Baryshkov		</choice>
245*4f52f5e6SDmitry Baryshkov		<attribute name="name" type="NMTOKEN" use="required" />
246*4f52f5e6SDmitry Baryshkov		<attribute name="value" type="string" use="optional" />
247*4f52f5e6SDmitry Baryshkov		<attribute name="varset" type="NMTOKEN" use="optional" />
248*4f52f5e6SDmitry Baryshkov		<attribute name="variants" type="string" use="optional" />
249*4f52f5e6SDmitry Baryshkov	</complexType>
250*4f52f5e6SDmitry Baryshkov
251*4f52f5e6SDmitry Baryshkov	<!-- Documentation element types -->
252*4f52f5e6SDmitry Baryshkov
253*4f52f5e6SDmitry Baryshkov	<complexType name="briefType">
254*4f52f5e6SDmitry Baryshkov		<annotation>
255*4f52f5e6SDmitry Baryshkov			<documentation>
256*4f52f5e6SDmitry Baryshkov				brief documentation, no markup
257*4f52f5e6SDmitry Baryshkov			</documentation>
258*4f52f5e6SDmitry Baryshkov		</annotation>
259*4f52f5e6SDmitry Baryshkov		<simpleContent>
260*4f52f5e6SDmitry Baryshkov			<extension base="string" />
261*4f52f5e6SDmitry Baryshkov		</simpleContent>
262*4f52f5e6SDmitry Baryshkov	</complexType>
263*4f52f5e6SDmitry Baryshkov
264*4f52f5e6SDmitry Baryshkov	<complexType name="docType" mixed="true">
265*4f52f5e6SDmitry Baryshkov		<annotation>
266*4f52f5e6SDmitry Baryshkov			<documentation>
267*4f52f5e6SDmitry Baryshkov				root element of documentation sub-tree
268*4f52f5e6SDmitry Baryshkov			</documentation>
269*4f52f5e6SDmitry Baryshkov		</annotation>
270*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
271*4f52f5e6SDmitry Baryshkov			<group ref="rng:textformatGroup" />
272*4f52f5e6SDmitry Baryshkov			<group ref="rng:listGroup" />
273*4f52f5e6SDmitry Baryshkov			<element ref="rng:code" />
274*4f52f5e6SDmitry Baryshkov		</choice>
275*4f52f5e6SDmitry Baryshkov	</complexType>
276*4f52f5e6SDmitry Baryshkov
277*4f52f5e6SDmitry Baryshkov	<complexType name="textformatType" mixed="true">
278*4f52f5e6SDmitry Baryshkov		<annotation>
279*4f52f5e6SDmitry Baryshkov			<documentation>
280*4f52f5e6SDmitry Baryshkov				for bold, underline, italics
281*4f52f5e6SDmitry Baryshkov			</documentation>
282*4f52f5e6SDmitry Baryshkov		</annotation>
283*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
284*4f52f5e6SDmitry Baryshkov			<group ref="rng:textformatGroup" />
285*4f52f5e6SDmitry Baryshkov		</choice>
286*4f52f5e6SDmitry Baryshkov	</complexType>
287*4f52f5e6SDmitry Baryshkov
288*4f52f5e6SDmitry Baryshkov	<complexType name="textcodeType">
289*4f52f5e6SDmitry Baryshkov		<simpleContent>
290*4f52f5e6SDmitry Baryshkov			<extension base="string">
291*4f52f5e6SDmitry Baryshkov				<attribute name="title" type="string" />
292*4f52f5e6SDmitry Baryshkov			</extension>
293*4f52f5e6SDmitry Baryshkov		</simpleContent>
294*4f52f5e6SDmitry Baryshkov	</complexType>
295*4f52f5e6SDmitry Baryshkov
296*4f52f5e6SDmitry Baryshkov	<complexType name="listType">
297*4f52f5e6SDmitry Baryshkov		<annotation>
298*4f52f5e6SDmitry Baryshkov			<documentation>
299*4f52f5e6SDmitry Baryshkov				definition of a list, ordered or unordered
300*4f52f5e6SDmitry Baryshkov			</documentation>
301*4f52f5e6SDmitry Baryshkov		</annotation>
302*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
303*4f52f5e6SDmitry Baryshkov			<element ref="rng:li" />
304*4f52f5e6SDmitry Baryshkov		</choice>
305*4f52f5e6SDmitry Baryshkov	</complexType>
306*4f52f5e6SDmitry Baryshkov
307*4f52f5e6SDmitry Baryshkov	<complexType name="listitemType" mixed="true">
308*4f52f5e6SDmitry Baryshkov		<annotation>
309*4f52f5e6SDmitry Baryshkov			<documentation>
310*4f52f5e6SDmitry Baryshkov				items of a list
311*4f52f5e6SDmitry Baryshkov			</documentation>
312*4f52f5e6SDmitry Baryshkov		</annotation>
313*4f52f5e6SDmitry Baryshkov		<choice minOccurs="0" maxOccurs="unbounded">
314*4f52f5e6SDmitry Baryshkov			<group ref="rng:textformatGroup" />
315*4f52f5e6SDmitry Baryshkov			<group ref="rng:listGroup" />
316*4f52f5e6SDmitry Baryshkov			<element ref="rng:code" />
317*4f52f5e6SDmitry Baryshkov		</choice>
318*4f52f5e6SDmitry Baryshkov	</complexType>
319*4f52f5e6SDmitry Baryshkov
320*4f52f5e6SDmitry Baryshkov
321*4f52f5e6SDmitry Baryshkov
322*4f52f5e6SDmitry Baryshkov	<!-- Attribute value types -->
323*4f52f5e6SDmitry Baryshkov
324*4f52f5e6SDmitry Baryshkov	<simpleType name="Hexadecimal">
325*4f52f5e6SDmitry Baryshkov		<restriction base="string">
326*4f52f5e6SDmitry Baryshkov			<pattern value="0x[0-9a-f]+" />
327*4f52f5e6SDmitry Baryshkov			<pattern value="0x[0-9A-F]+" />
328*4f52f5e6SDmitry Baryshkov			<pattern value="[0-9]" />
329*4f52f5e6SDmitry Baryshkov		</restriction>
330*4f52f5e6SDmitry Baryshkov	</simpleType>
331*4f52f5e6SDmitry Baryshkov
332*4f52f5e6SDmitry Baryshkov	<simpleType name="HexOrNumber">
333*4f52f5e6SDmitry Baryshkov		<annotation>
334*4f52f5e6SDmitry Baryshkov			<documentation>HexOrNumber</documentation>
335*4f52f5e6SDmitry Baryshkov		</annotation>
336*4f52f5e6SDmitry Baryshkov		<union memberTypes="rng:Hexadecimal nonNegativeInteger" />
337*4f52f5e6SDmitry Baryshkov	</simpleType>
338*4f52f5e6SDmitry Baryshkov
339*4f52f5e6SDmitry Baryshkov	<simpleType name="Boolean">
340*4f52f5e6SDmitry Baryshkov		<restriction base="string">
341*4f52f5e6SDmitry Baryshkov			<enumeration value="true" />
342*4f52f5e6SDmitry Baryshkov			<enumeration value="1" />
343*4f52f5e6SDmitry Baryshkov			<enumeration value="yes" />
344*4f52f5e6SDmitry Baryshkov			<enumeration value="false" />
345*4f52f5e6SDmitry Baryshkov			<enumeration value="0" />
346*4f52f5e6SDmitry Baryshkov			<enumeration value="no" />
347*4f52f5e6SDmitry Baryshkov		</restriction>
348*4f52f5e6SDmitry Baryshkov	</simpleType>
349*4f52f5e6SDmitry Baryshkov
350*4f52f5e6SDmitry Baryshkov	<simpleType name="DomainWidth">
351*4f52f5e6SDmitry Baryshkov		<annotation>
352*4f52f5e6SDmitry Baryshkov			<documentation>DomainWidth</documentation>
353*4f52f5e6SDmitry Baryshkov		</annotation>
354*4f52f5e6SDmitry Baryshkov		<restriction base="string">
355*4f52f5e6SDmitry Baryshkov			<enumeration value="32" />
356*4f52f5e6SDmitry Baryshkov		</restriction>
357*4f52f5e6SDmitry Baryshkov	</simpleType>
358*4f52f5e6SDmitry Baryshkov
359*4f52f5e6SDmitry Baryshkov
360*4f52f5e6SDmitry Baryshkov
361*4f52f5e6SDmitry Baryshkov	<!-- Element groups -->
362*4f52f5e6SDmitry Baryshkov
363*4f52f5e6SDmitry Baryshkov	<group name="topGroup">
364*4f52f5e6SDmitry Baryshkov		<choice>
365*4f52f5e6SDmitry Baryshkov			<element ref="rng:copyright" />
366*4f52f5e6SDmitry Baryshkov			<element ref="rng:domain" />
367*4f52f5e6SDmitry Baryshkov			<element ref="rng:enum" />
368*4f52f5e6SDmitry Baryshkov			<element ref="rng:bitset" />
369*4f52f5e6SDmitry Baryshkov			<element ref="rng:import" />
370*4f52f5e6SDmitry Baryshkov		</choice>
371*4f52f5e6SDmitry Baryshkov	</group>
372*4f52f5e6SDmitry Baryshkov
373*4f52f5e6SDmitry Baryshkov	<group name="regarrayGroup">
374*4f52f5e6SDmitry Baryshkov		<choice>
375*4f52f5e6SDmitry Baryshkov			<element ref="rng:reg64" />
376*4f52f5e6SDmitry Baryshkov			<element ref="rng:reg32" />
377*4f52f5e6SDmitry Baryshkov			<element ref="rng:array" />
378*4f52f5e6SDmitry Baryshkov			<element ref="rng:stripe" />
379*4f52f5e6SDmitry Baryshkov		</choice>
380*4f52f5e6SDmitry Baryshkov	</group>
381*4f52f5e6SDmitry Baryshkov
382*4f52f5e6SDmitry Baryshkov	<group name="docGroup">
383*4f52f5e6SDmitry Baryshkov		<choice>
384*4f52f5e6SDmitry Baryshkov			<element ref="rng:brief" />
385*4f52f5e6SDmitry Baryshkov			<element ref="rng:doc" />
386*4f52f5e6SDmitry Baryshkov		</choice>
387*4f52f5e6SDmitry Baryshkov	</group>
388*4f52f5e6SDmitry Baryshkov
389*4f52f5e6SDmitry Baryshkov	<group name="textformatGroup">
390*4f52f5e6SDmitry Baryshkov		<choice>
391*4f52f5e6SDmitry Baryshkov			<element ref="rng:b" />
392*4f52f5e6SDmitry Baryshkov			<element ref="rng:i" />
393*4f52f5e6SDmitry Baryshkov			<element ref="rng:u" />
394*4f52f5e6SDmitry Baryshkov		</choice>
395*4f52f5e6SDmitry Baryshkov	</group>
396*4f52f5e6SDmitry Baryshkov
397*4f52f5e6SDmitry Baryshkov	<group name="listGroup">
398*4f52f5e6SDmitry Baryshkov		<choice>
399*4f52f5e6SDmitry Baryshkov			<element ref="rng:ul" />
400*4f52f5e6SDmitry Baryshkov			<element ref="rng:ol" />
401*4f52f5e6SDmitry Baryshkov		</choice>
402*4f52f5e6SDmitry Baryshkov	</group>
403*4f52f5e6SDmitry Baryshkov
404*4f52f5e6SDmitry Baryshkov</schema>
405