Initial version
This commit is contained in:
419
schema.xsd
Normal file
419
schema.xsd
Normal file
@@ -0,0 +1,419 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="https://www.destinus.com/schema/family"
|
||||
targetNamespace="https://www.destinus.com/schema/family"
|
||||
elementFormDefault="qualified">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
|
||||
|
||||
<xsd:element name="library">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="ExternalLib" name="external-lib" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="ExternalLib">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="ExternalFamily" name="family" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ExternalFamily">
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="short" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:element name="family">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description"/>
|
||||
|
||||
<xsd:element name="constant-list" minOccurs="0">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Constant" name="constant" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="enum-list" minOccurs="0">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Enum" name="enum" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="bitfield-list" minOccurs="0">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Bitfield" name="bitfield" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="struct-list" minOccurs="0">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Struct" name="struct" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:element name="message-list" minOccurs="0">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Message" name="message" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="short" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="siw-id" use="required"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
<xsd:complexType name="Constant">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
<xsd:attribute type="Type" name="type"/>
|
||||
<xsd:attribute type="xsd:string" name="value"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Enum">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:element type="ItemList" name="item-list" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
<xsd:complexType name="Bitfield">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:element type="BitfieldItemList" name="item-list" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
<xsd:attribute type="xsd:int" name="size"/>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
<xsd:complexType name="Struct">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="BaseType"/>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Message">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="BaseType">
|
||||
<xsd:attribute type="HexInt8" name="siw-id" use="required"/>
|
||||
<xsd:attribute type="xsd:boolean" name="can"/>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="BaseType">
|
||||
<xsd:sequence>
|
||||
<xsd:choice minOccurs="1" maxOccurs="unbounded">
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:element type="Field" name="field" minOccurs="0"/>
|
||||
<xsd:element type="Array" name="array" minOccurs="0"/>
|
||||
<xsd:element type="Ref" name="struct-ref" minOccurs="0"/>
|
||||
<xsd:element type="Vector" name="vector" minOccurs="0"/>
|
||||
<xsd:element type="Status" name="status" minOccurs="0"/>
|
||||
<xsd:element type="RefWithDefaultRequired" name="enum-ref" minOccurs="0"/>
|
||||
<xsd:element type="RefWithDefaultOptional" name="bitfield-ref" minOccurs="0"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ItemList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Item" name="item" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="BitfieldItemList">
|
||||
<xsd:sequence>
|
||||
<xsd:choice minOccurs="1" maxOccurs="unbounded">
|
||||
<xsd:element type="Item" name="item" minOccurs="0"/>
|
||||
<xsd:element type="RefWithSize" name="enum-ref" minOccurs="0"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Item">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:element type="xsd:string" name="label" minOccurs="0">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Human readable name for this item.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
</xsd:element>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name"/>
|
||||
<xsd:attribute type="xsd:int" name="value"/>
|
||||
<xsd:attribute type="xsd:int" name="size"/>
|
||||
<xsd:attribute type="xsd:string" name="type"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="BaseCollection">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:choice>
|
||||
<xsd:element type="UnnamedField" name="field"/>
|
||||
<xsd:element type="UnnamedRef" name="struct-ref"/>
|
||||
<xsd:element type="UnnamedRefWithDefaultRequired" name="enum-ref"/>
|
||||
<xsd:element type="Status" name="status"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Array">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="BaseCollection">
|
||||
<xsd:choice>
|
||||
<xsd:element type="UnnamedRef" name="size"/>
|
||||
</xsd:choice>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="ArrayList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Array" name="array" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
<xsd:complexType name="Vector">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="BaseCollection">
|
||||
<xsd:choice>
|
||||
<xsd:element type="UnnamedRef" name="max-size"/>
|
||||
</xsd:choice>
|
||||
<xsd:attribute type="xsd:boolean" name="string"/>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="VectorList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Vector" name="vector" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="LocalRef">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference a locally defined element.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FamilyRef">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference an element defined in another family.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="family" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
<xsd:complexType name="UnnamedRef">
|
||||
<xsd:sequence>
|
||||
<xsd:choice>
|
||||
<xsd:element type="LocalRef" name="local-ref"/>
|
||||
<xsd:element type="FamilyRef" name="family-ref"/>
|
||||
</xsd:choice>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Ref">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="UnnamedRef">
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="RefWithSize">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="Ref">
|
||||
<xsd:attribute type="xsd:int" name="size" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="RefWithDefaultOptional">
|
||||
<xsd:sequence>
|
||||
<xsd:choice>
|
||||
<xsd:element type="LocalRefWithDefault" name="local-ref"/>
|
||||
<xsd:element type="FamilyRefWithDefault" name="family-ref"/>
|
||||
</xsd:choice>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="LocalRefWithDefault">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference a locally defined element.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="default"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FamilyRefWithDefault">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference an element defined in another family.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="family" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="default"/>
|
||||
</xsd:complexType>
|
||||
|
||||
|
||||
<xsd:complexType name="RefWithDefaultRequired">
|
||||
<xsd:sequence>
|
||||
<xsd:choice>
|
||||
<xsd:element type="LocalRefWithDefaultRequired" name="local-ref"/>
|
||||
<xsd:element type="FamilyRefWithDefaultRequired" name="family-ref"/>
|
||||
</xsd:choice>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="LocalRefWithDefaultRequired">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference a locally defined element.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="default" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="FamilyRefWithDefaultRequired">
|
||||
<xsd:annotation>
|
||||
<xsd:documentation><![CDATA[
|
||||
Reference an element defined in another family.
|
||||
]]></xsd:documentation>
|
||||
</xsd:annotation>
|
||||
<xsd:attribute type="xsd:string" name="family" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="ref" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="default" use="required"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="UnnamedRefWithDefaultRequired">
|
||||
<xsd:sequence>
|
||||
<xsd:choice>
|
||||
<xsd:element type="LocalRefWithDefaultRequired" name="local-ref"/>
|
||||
<xsd:element type="FamilyRefWithDefaultRequired" name="family-ref"/>
|
||||
</xsd:choice>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Status">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:choice>
|
||||
<xsd:element type="UnnamedField" name="field" minOccurs="0"/>
|
||||
<xsd:element type="UnnamedRef" name="struct-ref" minOccurs="0"/>
|
||||
</xsd:choice>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="xsd:string" name="name"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="StatusList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Status" name="status" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="EnumList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="RefWithDefaultRequired" name="enum-ref" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="StructList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Ref" name="struct-ref" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="BitfieldList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="RefWithDefaultOptional" name="bitfield-ref" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="UnnamedField">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="xsd:string" name="description" minOccurs="0"/>
|
||||
<xsd:element type="UnnamedRef" name="default-ref" minOccurs="0"/>
|
||||
</xsd:sequence>
|
||||
<xsd:attribute type="Type" name="type" use="required"/>
|
||||
<xsd:attribute type="xsd:string" name="unit"/>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:complexType name="Field">
|
||||
<xsd:complexContent>
|
||||
<xsd:extension base="UnnamedField">
|
||||
<xsd:attribute type="xsd:string" name="name" use="required"/>
|
||||
</xsd:extension>
|
||||
</xsd:complexContent>
|
||||
</xsd:complexType>
|
||||
|
||||
<xsd:simpleType name="Type">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:enumeration value="bool"/>
|
||||
<xsd:enumeration value="int8"/>
|
||||
<xsd:enumeration value="uint8"/>
|
||||
<xsd:enumeration value="int16"/>
|
||||
<xsd:enumeration value="uint16"/>
|
||||
<xsd:enumeration value="int32"/>
|
||||
<xsd:enumeration value="uint32"/>
|
||||
<xsd:enumeration value="int64"/>
|
||||
<xsd:enumeration value="uint64"/>
|
||||
<xsd:enumeration value="float"/>
|
||||
<xsd:enumeration value="double"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:simpleType name="HexInt8">
|
||||
<xsd:restriction base="xsd:string">
|
||||
<xsd:pattern value="0x[0-9A-Fa-f]{2}"/>
|
||||
</xsd:restriction>
|
||||
</xsd:simpleType>
|
||||
|
||||
<xsd:complexType name="FieldList">
|
||||
<xsd:sequence>
|
||||
<xsd:element type="Field" name="field" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</xsd:sequence>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
Reference in New Issue
Block a user