brintos

brintos / linux-shallow public Read only

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