You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
213 lines
7.9 KiB
213 lines
7.9 KiB
<?xml version="1.0" encoding="UTF-8"?> |
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> |
|
<xs:attributeGroup name="Nameable"> |
|
<xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> |
|
<xs:attribute name="Description" type="xs:string" use="optional"/> |
|
</xs:attributeGroup> |
|
<xs:attributeGroup name="TypedNameable"> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attribute name="Type" type="xs:NMTOKEN" use="required"/> |
|
</xs:attributeGroup> |
|
<xs:complexType name="ComponentInstance"> |
|
<xs:attributeGroup ref="TypedNameable"/> |
|
<xs:attributeGroup ref="ArrayLengthAttribute"/> |
|
<xs:attribute name="Mapping" use="optional"/> |
|
</xs:complexType> |
|
<xs:simpleType name="SizeType"> |
|
<xs:restriction base="xs:positiveInteger"> |
|
<xs:pattern value="8|16|32"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
<xs:simpleType name="SizeType64"> |
|
<xs:restriction base="xs:positiveInteger"> |
|
<xs:pattern value="8|16|32|64"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
<xs:attributeGroup name="IntegerParameterAttributes"> |
|
<xs:attribute name="Size" type="SizeType" use="required"/> |
|
<xs:attribute name="Min" type="xs:integer" use="optional"/> |
|
<xs:attribute name="Max" type="xs:integer" use="optional"/> |
|
<xs:attribute name="Signed" type="xs:boolean" use="optional" default="false"/> |
|
</xs:attributeGroup> |
|
<xs:attributeGroup name="ArrayLengthAttribute"> |
|
<xs:attribute name="ArrayLength" type="xs:nonNegativeInteger" use="optional" default="0"/> |
|
</xs:attributeGroup> |
|
<xs:complexType name="Adaptation"> |
|
<xs:attribute name="Offset" type="xs:integer" default="0"/> |
|
</xs:complexType> |
|
<xs:complexType name="LinearAdaptationType"> |
|
<xs:complexContent> |
|
<xs:extension base="Adaptation"> |
|
<xs:attribute name="SlopeNumerator" type="xs:double" default="1"/> |
|
<xs:attribute name="SlopeDenominator" type="xs:double" default="1"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:element name="LinearAdaptation" type="LinearAdaptationType"/> |
|
<xs:element name="LogarithmicAdaptation"> |
|
<xs:complexType> |
|
<xs:complexContent> |
|
<xs:extension base="LinearAdaptationType"> |
|
<xs:attribute name="LogarithmBase" type="xs:double" default="10"/> |
|
<xs:attribute name="FloorValue" type="xs:double" default="-INF"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
</xs:element> |
|
<xs:complexType name="Parameter" abstract="true"> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attribute name="Mapping" type="xs:string" use="optional"/> |
|
<xs:attributeGroup ref="ArrayLengthAttribute"/> |
|
</xs:complexType> |
|
<xs:element name="BooleanParameter"> |
|
<xs:complexType> |
|
<xs:complexContent> |
|
<xs:extension base="Parameter"> |
|
<xs:attribute name="Size" fixed="8"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
</xs:element> |
|
<xs:complexType name="IntegerParameterType"> |
|
<xs:complexContent> |
|
<xs:extension base="Parameter"> |
|
<xs:choice minOccurs="0"> |
|
<xs:element ref="LinearAdaptation"/> |
|
<xs:element ref="LogarithmicAdaptation"/> |
|
</xs:choice> |
|
<xs:attributeGroup ref="IntegerParameterAttributes"/> |
|
<xs:attribute name="Unit" type="xs:token" use="optional"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:element name="IntegerParameter" type="IntegerParameterType"/> |
|
<xs:complexType name="EnumParameterType"> |
|
<xs:complexContent> |
|
<xs:extension base="Parameter"> |
|
<xs:sequence> |
|
<xs:element name="ValuePair" maxOccurs="unbounded"> |
|
<xs:complexType> |
|
<xs:attribute name="Literal" type="xs:string" use="required"/> |
|
<xs:attribute name="Numerical" use="required"> |
|
<xs:simpleType> |
|
<xs:restriction base="xs:string"> |
|
<xs:pattern value="0|[+-]?[1-9][0-9]*"/> |
|
<xs:pattern value="0x[0-9a-fA-F]+"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
</xs:attribute> |
|
</xs:complexType> |
|
</xs:element> |
|
</xs:sequence> |
|
<xs:attribute name="Size" type="SizeType" use="required"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:element name="EnumParameter" type="EnumParameterType"> |
|
<xs:unique name="LiteralUniqueness"> |
|
<xs:selector xpath="ValuePair"/> |
|
<xs:field xpath="@Literal"/> |
|
</xs:unique> |
|
<xs:unique name="NumericalUniqueness"> |
|
<xs:selector xpath="ValuePair"/> |
|
<xs:field xpath="@Numerical"/> |
|
</xs:unique> |
|
</xs:element> |
|
<xs:simpleType name="PointBound"> |
|
<xs:restriction base="xs:string"> |
|
<xs:pattern value="(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
<xs:complexType name="PointParameterType"> |
|
<xs:complexContent> |
|
<xs:extension base="Parameter"> |
|
<xs:attribute name="Unit" type="xs:token" use="optional"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:complexType name="FixedPointParameterType"> |
|
<xs:complexContent> |
|
<xs:extension base="PointParameterType"> |
|
<xs:attribute name="Size" type="SizeType" use="required"/> |
|
<xs:attribute name="Integral" type="xs:nonNegativeInteger" use="required"/> |
|
<xs:attribute name="Fractional" type="xs:nonNegativeInteger" use="required"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:element name="FixedPointParameter" type="FixedPointParameterType"/> |
|
<xs:complexType name="FloatingPointParameterType"> |
|
<xs:complexContent> |
|
<xs:extension base="PointParameterType"> |
|
<xs:attribute name="Size" fixed="32"/> |
|
<xs:attribute name="Min" type="PointBound" use="optional"/> |
|
<xs:attribute name="Max" type="PointBound" use="optional"/> |
|
</xs:extension> |
|
</xs:complexContent> |
|
</xs:complexType> |
|
<xs:element name="FloatingPointParameter" type="FloatingPointParameterType"/> |
|
<xs:complexType name="BitParameterType"> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attribute name="Size" use="required"> |
|
<xs:simpleType> |
|
<xs:restriction base="xs:positiveInteger"> |
|
<xs:maxInclusive value="64"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
</xs:attribute> |
|
<xs:attribute name="Pos" use="required"> |
|
<xs:simpleType> |
|
<xs:restriction base="xs:nonNegativeInteger"> |
|
<xs:maxInclusive value="63"/> |
|
</xs:restriction> |
|
</xs:simpleType> |
|
</xs:attribute> |
|
<xs:attribute name="Max" type="xs:integer" use="optional"/> |
|
</xs:complexType> |
|
<xs:element name="BitParameterBlock"> |
|
<xs:complexType> |
|
<xs:sequence> |
|
<xs:element name="BitParameter" type="BitParameterType" maxOccurs="unbounded"/> |
|
</xs:sequence> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attribute name="Size" type="SizeType64" use="required"/> |
|
<xs:attribute name="Mapping" type="xs:string" use="optional"/> |
|
</xs:complexType> |
|
<xs:unique name="BitParameterBlockSubElementsUniqueness"> |
|
<xs:selector xpath="*"/> |
|
<xs:field xpath="@Name"/> |
|
</xs:unique> |
|
</xs:element> |
|
<xs:element name="StringParameter"> |
|
<xs:complexType> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attribute name="Mapping" type="xs:string" use="optional"/> |
|
<xs:attribute name="MaxLength" type="xs:nonNegativeInteger" use="required"/> |
|
</xs:complexType> |
|
</xs:element> |
|
<xs:group name="ParameterBlockGroup"> |
|
<xs:choice> |
|
<xs:element ref="BooleanParameter"/> |
|
<xs:element ref="IntegerParameter"/> |
|
<xs:element ref="EnumParameter"/> |
|
<xs:element ref="FixedPointParameter"/> |
|
<xs:element ref="FloatingPointParameter"/> |
|
<xs:element ref="BitParameterBlock"/> |
|
<xs:element ref="StringParameter"/> |
|
<xs:element name="Component" type="ComponentInstance"/> |
|
<xs:element name="ParameterBlock" type="ParameterBlockType"> |
|
<xs:unique name="ParameterBlockSubElementsUniqueness"> |
|
<xs:selector xpath="*"/> |
|
<xs:field xpath="@Name"/> |
|
</xs:unique> |
|
</xs:element> |
|
</xs:choice> |
|
</xs:group> |
|
<xs:complexType name="ParameterBlockType"> |
|
<xs:sequence> |
|
<xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/> |
|
</xs:sequence> |
|
<xs:attributeGroup ref="Nameable"/> |
|
<xs:attributeGroup ref="ArrayLengthAttribute"/> |
|
<xs:attribute name="Mapping" type="xs:string" use="optional"/> |
|
</xs:complexType> |
|
</xs:schema>
|
|
|