summaryrefslogtreecommitdiffstats
path: root/xml/references.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'xml/references.xsd')
-rw-r--r--xml/references.xsd50
1 files changed, 50 insertions, 0 deletions
diff --git a/xml/references.xsd b/xml/references.xsd
new file mode 100644
index 0000000..810913c
--- /dev/null
+++ b/xml/references.xsd
@@ -0,0 +1,50 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:include schemaLocation="types.xsd"/>
+
+ <xsd:element name="model">
+ <xsd:complexType>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="bank" type="pcilib_bank_t" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="transform" type="pcilib_transform_view_t" minOccurs="0" maxOccurs="unbounded" />
+ <xsd:element name="enum" type="pcilib_enum_view_t" minOccurs="0" maxOccurs="unbounded">
+ <xsd:key name="pcilib_value_name_key">
+ <xsd:selector xpath="name" />
+ <xsd:field xpath="@value" />
+ </xsd:key>
+ </xsd:element>
+ <xsd:element name="unit" type="pcilib_unit_t" minOccurs="0" maxOccurs="unbounded">
+ <xsd:key name="pcilib_unit_transform_key">
+ <xsd:selector xpath="transform" />
+ <xsd:field xpath="@unit" />
+ </xsd:key>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+
+ <xsd:key name="pcilib_bank_key">
+ <xsd:selector xpath="bank" />
+ <xsd:field xpath="@name" />
+ </xsd:key>
+ <xsd:key name="pcilib_register_key">
+ <xsd:selector xpath="bank/register|bank/register/field" />
+ <xsd:field xpath="@name" />
+ </xsd:key>
+ <xsd:key name="pcilib_view_key">
+ <xsd:selector xpath="transform|enum" />
+ <xsd:field xpath="@name" />
+ </xsd:key>
+ <xsd:key name="pcilib_unit_key">
+ <xsd:selector xpath="unit" />
+ <xsd:field xpath="@name" />
+ </xsd:key>
+
+ <xsd:keyref name="pcilib_register_view_ref" refer="pcilib_view_key">
+ <xsd:selector xpath="bank/register/view|bank/register/field/view" />
+ <xsd:field xpath="@view" />
+ </xsd:keyref>
+ <xsd:keyref name="pcilib_unit_ref" refer="pcilib_unit_key">
+ <xsd:selector xpath="transform|enum" />
+ <xsd:field xpath="@unit" />
+ </xsd:keyref>
+ </xsd:element>
+</xsd:schema>