Home | History | Annotate | Download | only in schemas
      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