/rnndb/rules-ng-ng.xsd
https://github.com/lucaotta/envytools · XML Schema · 388 lines · 342 code · 46 blank · 0 comment · 0 complexity · 25456c0abbd5b2ea1e022205cfdd8e26 MD5 · raw file
- <?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="domain" type="rng:domainType" />
- <element name="group" type="rng:groupType" />
- <element name="use-group" type="rng:refType" />
- <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="reg16" type="rng:registerType" />
- <element name="reg8" 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" />
-
- <!-- 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" />
-
-
-
- <!-- 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="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="bare" type="boolean" use="optional" />
- <attribute name="prefix" type="NMTOKENS" use="optional" />
- <attribute name="width" type="rng:DomainWidth" use="optional" />
- <attribute name="size" type="rng:Hexadecimal" use="optional" />
- </complexType>
-
- <complexType name="groupType">
- <annotation>
- <documentation>groupType</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" />
- </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="required" />
- <attribute name="offset" type="rng:Hexadecimal" use="required" />
- <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" />
- </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="name" type="NMTOKEN" use="optional" />
- <attribute name="offset" type="rng:Hexadecimal" use="optional" />
- <attribute name="stride" type="rng:HexOrNumber" use="optional" />
- <attribute name="length" type="rng:HexOrNumber" use="optional" />
- <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 reg8, reg16, 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:Hexadecimal" use="required" />
- <attribute name="access" type="rng:Access" default="rw" use="optional" />
- <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" />
- </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="boolean" use="optional" />
- <attribute name="bare" type="boolean" use="optional" />
- <attribute name="prefix" type="NMTOKENS" 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="required" />
- <attribute name="low" type="nonNegativeInteger" use="required" />
- <attribute name="type" type="NMTOKENS" use="optional" />
- <attribute name="varset" type="NMTOKEN" use="optional" />
- <attribute name="variants" type="string" 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="inline" type="boolean" use="optional" />
- <attribute name="bare" type="boolean" use="optional" />
- <attribute name="prefix" type="NMTOKENS" 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>
-
- <complexType name="refType">
- <annotation>
- <documentation>refType</documentation>
- </annotation>
- <attribute name="ref" type="NMTOKEN" use="required" />
- </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="Access">
- <annotation>
- <documentation>Access</documentation>
- </annotation>
- <restriction base="string">
- <enumeration value="r" />
- <enumeration value="w" />
- <enumeration value="rw" />
- </restriction>
- </simpleType>
-
- <simpleType name="DomainWidth">
- <annotation>
- <documentation>DomainWidth</documentation>
- </annotation>
- <restriction base="string">
- <enumeration value="8" />
- <enumeration value="16" />
- <enumeration value="32" />
- <enumeration value="64" />
- </restriction>
- </simpleType>
-
-
-
- <!-- Element groups -->
-
- <group name="topGroup">
- <choice>
- <element ref="rng:domain" />
- <element ref="rng:enum" />
- <element ref="rng:group" />
- <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:reg16" />
- <element ref="rng:reg8" />
- <element ref="rng:array" />
- <element ref="rng:stripe" />
- <element ref="rng:use-group" />
- </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>