1<?xml version="1.0" encoding="UTF-8"?> 2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 3 <xs:complexType name="ParameterType" abstract="true"> 4 <xs:simpleContent> 5 <xs:extension base="xs:string"> 6 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 7 <xs:attribute name="ValueSpace" use="optional"> 8 <xs:simpleType> 9 <xs:restriction base="xs:string"> 10 <xs:enumeration value="Raw"/> 11 <xs:enumeration value="Real"/> 12 </xs:restriction> 13 </xs:simpleType> 14 </xs:attribute> 15 </xs:extension> 16 </xs:simpleContent> 17 </xs:complexType> 18 <xs:complexType name="BooleanParameterType"> 19 <xs:simpleContent> 20 <xs:restriction base="ParameterType"> 21 <xs:pattern value="([01][\s]*)+"/> 22 <xs:pattern value="((0x0|0x1)[\s]*)+"/> 23 <xs:attribute name="ValueSpace" use="prohibited"/> 24 </xs:restriction> 25 </xs:simpleContent> 26 </xs:complexType> 27 <xs:complexType name="IntegerParameterType"> 28 <xs:simpleContent> 29 <xs:restriction base="ParameterType"> 30 <xs:pattern value="(0|([+-]?[1-9][0-9]*))(\s+(0|([+-]?[1-9][0-9]*)))*"/> 31 <xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/> 32 <xs:attribute name="ValueSpace" use="prohibited"/> 33 </xs:restriction> 34 </xs:simpleContent> 35 </xs:complexType> 36 <xs:complexType name="EnumParameterType"> 37 <xs:simpleContent> 38 <xs:restriction base="ParameterType"> 39 <xs:attribute name="ValueSpace" use="prohibited"/> 40 </xs:restriction> 41 </xs:simpleContent> 42 </xs:complexType> 43 <xs:complexType name="PointParameterType"> 44 <xs:simpleContent> 45 <xs:restriction base="ParameterType"> 46 <xs:pattern value="((0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)(\s+(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)*"/> 47 <xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/> 48 </xs:restriction> 49 </xs:simpleContent> 50 </xs:complexType> 51 <xs:complexType name="BitParameterBlockType"> 52 <xs:sequence> 53 <xs:element name="BitParameter" maxOccurs="unbounded" type="IntegerParameterType"/> 54 </xs:sequence> 55 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 56 </xs:complexType> 57 <xs:complexType name="StringParameterType"> 58 <xs:simpleContent> 59 <xs:extension base="xs:string"> 60 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 61 </xs:extension> 62 </xs:simpleContent> 63 </xs:complexType> 64 <xs:group name="ParameterBlockGroup"> 65 <xs:choice> 66 <xs:element name="BooleanParameter" type="BooleanParameterType"/> 67 <xs:element name="IntegerParameter" type="IntegerParameterType"/> 68 <xs:element name="EnumParameter" type="EnumParameterType"/> 69 <xs:element name="FixedPointParameter" type="PointParameterType"/> 70 <xs:element name="FloatingPointParameter" type="PointParameterType"/> 71 <xs:element name="BitParameterBlock" type="BitParameterBlockType"> 72 <xs:unique name="BitParameterBlockSubElementsUniqueness"> 73 <xs:selector xpath="*"/> 74 <xs:field xpath="@Name"/> 75 </xs:unique> 76 </xs:element> 77 <xs:element name="StringParameter" type="StringParameterType"/> 78 <xs:element name="Component" type="ParameterBlockType"/> 79 <xs:element name="ParameterBlock" type="ParameterBlockType"> 80 <xs:unique name="ParameterBlockSubElementsUniqueness"> 81 <xs:selector xpath="*"/> 82 <xs:field xpath="@Name"/> 83 </xs:unique> 84 </xs:element> 85 </xs:choice> 86 </xs:group> 87 <xs:complexType name="ParameterBlockType"> 88 <xs:sequence> 89 <xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/> 90 </xs:sequence> 91 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 92 </xs:complexType> 93</xs:schema> 94