| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404 |
- <?xml version="1.0" encoding="UTF-8"?>
- <schema xmlns="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://nouveau.freedesktop.org/"
- xmlns:rng="http://nouveau.freedesktop.org/"
- elementFormDefault="qualified">
- <annotation>
- <documentation>
- An updated version of the old rules.xml file from the
- RivaTV project. Specifications by Pekka Paalanen,
- preliminary attempt by KoalaBR,
- first working version by Jakob Bornecrantz.
- For specifications, see the file rules-ng-format.txt
- in Nouveau CVS module 'rules-ng'.
- </documentation>
- <documentation>Version 0.1</documentation>
- </annotation>
- <!-- Elements -->
- <element name="database" type="rng:databaseType" />
- <element name="import" type="rng:importType" />
- <element name="copyright" type="rng:copyrightType" />
- <element name="domain" type="rng:domainType" />
- <element name="array" type="rng:arrayType" />
- <element name="stripe" type="rng:stripeType" />
- <element name="reg64" type="rng:registerType" />
- <element name="reg32" type="rng:registerType" />
- <element name="bitset" type="rng:bitsetType" />
- <element name="bitfield" type="rng:bitfieldType" />
- <element name="enum" type="rng:enumType" />
- <element name="value" type="rng:valueType" />
- <!-- Copyright elements -->
- <element name="author" type="rng:authorType" />
- <element name="nick" type="rng:nickType" />
- <element name="license" type="rng:docType" />
- <!-- Documentation elements -->
-
- <!-- FIXME: allowed only one per parent element -->
- <element name="brief" type="rng:briefType" />
-
- <element name="doc" type="rng:docType" />
- <element name="b" type="rng:textformatType" />
- <element name="i" type="rng:textformatType" />
- <element name="u" type="rng:textformatType" />
- <element name="code" type="rng:textcodeType" />
- <element name="ul" type="rng:listType" />
- <element name="ol" type="rng:listType" />
- <element name="li" type="rng:listitemType" />
- <!-- Copyright element types -->
- <complexType name="authorType" mixed="true">
- <annotation>
- <documentation>
- register database author
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element ref="rng:nick" />
- </choice>
- <attribute name="name" type="string" use="required" />
- <attribute name="email" type="string" use="required" />
- </complexType>
- <complexType name="nickType">
- <annotation>
- <documentation>nickType</documentation>
- </annotation>
- <attribute name="name" type="string" use="required" />
- </complexType>
- <!-- Database element types -->
- <complexType name="databaseType">
- <annotation>
- <documentation>databaseType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- </choice>
- </complexType>
- <complexType name="importType">
- <annotation>
- <documentation>importType</documentation>
- </annotation>
- <attribute name="file" type="string" use="required" />
- </complexType>
- <complexType name="copyrightType">
- <annotation>
- <documentation>copyrightType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- <element ref="rng:author" />
- <element ref="rng:license" />
- </choice>
- <attribute name="year" type="nonNegativeInteger" use="optional" />
- </complexType>
- <complexType name="domainType">
- <annotation>
- <documentation>domainType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- <group ref="rng:regarrayGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="prefix" type="NMTOKENS" use="optional" />
- <attribute name="width" type="rng:DomainWidth" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- </complexType>
- <complexType name="arrayType">
- <annotation>
- <documentation>arrayType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- <group ref="rng:regarrayGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="optional" />
- <attribute name="offset" type="rng:HexOrNumber" use="optional" />
- <attribute name="offsets" type="string" use="optional"/>
- <attribute name="doffsets" type="string" use="optional"/>
- <attribute name="index" type="NMTOKENS" use="optional"/>
- <attribute name="stride" type="rng:HexOrNumber" use="required" />
- <attribute name="length" type="rng:HexOrNumber" use="required" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- <attribute name="usage" type="string" use="optional" />
- </complexType>
- <complexType name="stripeType">
- <annotation>
- <documentation>stripeType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- <group ref="rng:regarrayGroup" minOccurs="0" />
- </choice>
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- <attribute name="prefix" type="NMTOKENS" use="optional" />
- </complexType>
- <complexType name="registerType">
- <annotation>
- <documentation>
- registerType used by reg32, reg64
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- <element ref="rng:value" />
- <element ref="rng:bitfield" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="offset" type="rng:HexOrNumber" use="required" />
- <attribute name="type" type="NMTOKENS" use="optional" />
- <attribute name="shr" type="nonNegativeInteger" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- <attribute name="stride" type="rng:HexOrNumber" use="optional" />
- <attribute name="length" type="rng:HexOrNumber" use="optional" />
- <attribute name="high" type="nonNegativeInteger" use="optional" />
- <attribute name="low" type="nonNegativeInteger" use="optional" />
- <attribute name="pos" type="nonNegativeInteger" use="optional" />
- <attribute name="align" type="nonNegativeInteger" use="optional" />
- <attribute name="radix" type="nonNegativeInteger" use="optional" />
- <attribute name="usage" type="string" use="optional" />
- </complexType>
- <complexType name="bitsetType">
- <annotation>
- <documentation>bitsetType</documentation>
- </annotation>
- <choice maxOccurs="unbounded">
- <element ref="rng:bitfield" />
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="inline" type="rng:Boolean" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- </complexType>
- <complexType name="bitfieldType">
- <annotation>
- <documentation>bitfieldType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element ref="rng:value" maxOccurs="unbounded" />
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="high" type="nonNegativeInteger" use="optional" />
- <attribute name="low" type="nonNegativeInteger" use="optional" />
- <attribute name="pos" type="nonNegativeInteger" use="optional" />
- <attribute name="radix" type="nonNegativeInteger" use="optional" />
- <attribute name="type" type="NMTOKENS" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- <attribute name="addvariant" type="rng:Boolean" use="optional" />
- <attribute name="shr" type="nonNegativeInteger" use="optional" />
- </complexType>
- <complexType name="enumType">
- <annotation>
- <documentation>enumType</documentation>
- </annotation>
- <choice maxOccurs="unbounded">
- <element ref="rng:value" />
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="bare" type="rng:Boolean" use="optional" />
- <attribute name="prefix" type="NMTOKENS" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- </complexType>
- <complexType name="valueType">
- <annotation>
- <documentation>valueType</documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:docGroup" />
- <group ref="rng:topGroup" />
- </choice>
- <attribute name="name" type="NMTOKEN" use="required" />
- <attribute name="value" type="string" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" use="optional" />
- </complexType>
- <!-- Documentation element types -->
- <complexType name="briefType">
- <annotation>
- <documentation>
- brief documentation, no markup
- </documentation>
- </annotation>
- <simpleContent>
- <extension base="string" />
- </simpleContent>
- </complexType>
-
- <complexType name="docType" mixed="true">
- <annotation>
- <documentation>
- root element of documentation sub-tree
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:textformatGroup" />
- <group ref="rng:listGroup" />
- <element ref="rng:code" />
- </choice>
- </complexType>
-
- <complexType name="textformatType" mixed="true">
- <annotation>
- <documentation>
- for bold, underline, italics
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:textformatGroup" />
- </choice>
- </complexType>
-
- <complexType name="textcodeType">
- <simpleContent>
- <extension base="string">
- <attribute name="title" type="string" />
- </extension>
- </simpleContent>
- </complexType>
-
- <complexType name="listType">
- <annotation>
- <documentation>
- definition of a list, ordered or unordered
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element ref="rng:li" />
- </choice>
- </complexType>
-
- <complexType name="listitemType" mixed="true">
- <annotation>
- <documentation>
- items of a list
- </documentation>
- </annotation>
- <choice minOccurs="0" maxOccurs="unbounded">
- <group ref="rng:textformatGroup" />
- <group ref="rng:listGroup" />
- <element ref="rng:code" />
- </choice>
- </complexType>
- <!-- Attribute value types -->
- <simpleType name="Hexadecimal">
- <restriction base="string">
- <pattern value="0x[0-9a-f]+" />
- <pattern value="0x[0-9A-F]+" />
- <pattern value="[0-9]" />
- </restriction>
- </simpleType>
- <simpleType name="HexOrNumber">
- <annotation>
- <documentation>HexOrNumber</documentation>
- </annotation>
- <union memberTypes="rng:Hexadecimal nonNegativeInteger" />
- </simpleType>
- <simpleType name="Boolean">
- <restriction base="string">
- <enumeration value="true" />
- <enumeration value="1" />
- <enumeration value="yes" />
- <enumeration value="false" />
- <enumeration value="0" />
- <enumeration value="no" />
- </restriction>
- </simpleType>
- <simpleType name="DomainWidth">
- <annotation>
- <documentation>DomainWidth</documentation>
- </annotation>
- <restriction base="string">
- <enumeration value="32" />
- </restriction>
- </simpleType>
- <!-- Element groups -->
- <group name="topGroup">
- <choice>
- <element ref="rng:copyright" />
- <element ref="rng:domain" />
- <element ref="rng:enum" />
- <element ref="rng:bitset" />
- <element ref="rng:import" />
- </choice>
- </group>
-
- <group name="regarrayGroup">
- <choice>
- <element ref="rng:reg64" />
- <element ref="rng:reg32" />
- <element ref="rng:array" />
- <element ref="rng:stripe" />
- </choice>
- </group>
-
- <group name="docGroup">
- <choice>
- <element ref="rng:brief" />
- <element ref="rng:doc" />
- </choice>
- </group>
-
- <group name="textformatGroup">
- <choice>
- <element ref="rng:b" />
- <element ref="rng:i" />
- <element ref="rng:u" />
- </choice>
- </group>
-
- <group name="listGroup">
- <choice>
- <element ref="rng:ul" />
- <element ref="rng:ol" />
- </choice>
- </group>
- </schema>
|