diff options
Diffstat (limited to 'xml/references.xsd')
-rw-r--r-- | xml/references.xsd | 50 |
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> |