xref: /aosp_15_r20/external/parameter-framework/upstream/schemas/Parameter.xsd (revision c33452fb792a5495ec310a9626f2638b053af5dd)
1*c33452fbSAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?>
2*c33452fbSAndroid Build Coastguard Worker<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
3*c33452fbSAndroid Build Coastguard Worker	<xs:attributeGroup name="Nameable">
4*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
5*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Description" type="xs:string" use="optional"/>
6*c33452fbSAndroid Build Coastguard Worker	</xs:attributeGroup>
7*c33452fbSAndroid Build Coastguard Worker	<xs:attributeGroup name="TypedNameable">
8*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="Nameable"/>
9*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Type" type="xs:NMTOKEN" use="required"/>
10*c33452fbSAndroid Build Coastguard Worker	</xs:attributeGroup>
11*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="ComponentInstance">
12*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="TypedNameable"/>
13*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="ArrayLengthAttribute"/>
14*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Mapping" use="optional"/>
15*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
16*c33452fbSAndroid Build Coastguard Worker	<xs:simpleType name="SizeType">
17*c33452fbSAndroid Build Coastguard Worker		<xs:restriction base="xs:positiveInteger">
18*c33452fbSAndroid Build Coastguard Worker			<xs:pattern value="8|16|32"/>
19*c33452fbSAndroid Build Coastguard Worker		</xs:restriction>
20*c33452fbSAndroid Build Coastguard Worker	</xs:simpleType>
21*c33452fbSAndroid Build Coastguard Worker	<xs:simpleType name="SizeType64">
22*c33452fbSAndroid Build Coastguard Worker		<xs:restriction base="xs:positiveInteger">
23*c33452fbSAndroid Build Coastguard Worker			<xs:pattern value="8|16|32|64"/>
24*c33452fbSAndroid Build Coastguard Worker		</xs:restriction>
25*c33452fbSAndroid Build Coastguard Worker	</xs:simpleType>
26*c33452fbSAndroid Build Coastguard Worker	<xs:attributeGroup name="IntegerParameterAttributes">
27*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Size" type="SizeType" use="required"/>
28*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Min" type="xs:integer" use="optional"/>
29*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Max" type="xs:integer" use="optional"/>
30*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Signed" type="xs:boolean" use="optional" default="false"/>
31*c33452fbSAndroid Build Coastguard Worker	</xs:attributeGroup>
32*c33452fbSAndroid Build Coastguard Worker	<xs:attributeGroup name="ArrayLengthAttribute">
33*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="ArrayLength" type="xs:nonNegativeInteger" use="optional" default="0"/>
34*c33452fbSAndroid Build Coastguard Worker	</xs:attributeGroup>
35*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="Adaptation">
36*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Offset" type="xs:integer" default="0"/>
37*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
38*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="LinearAdaptationType">
39*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
40*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="Adaptation">
41*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="SlopeNumerator" type="xs:double" default="1"/>
42*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="SlopeDenominator" type="xs:double" default="1"/>
43*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
44*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
45*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
46*c33452fbSAndroid Build Coastguard Worker	<xs:element name="LinearAdaptation" type="LinearAdaptationType"/>
47*c33452fbSAndroid Build Coastguard Worker	<xs:element name="LogarithmicAdaptation">
48*c33452fbSAndroid Build Coastguard Worker		<xs:complexType>
49*c33452fbSAndroid Build Coastguard Worker			<xs:complexContent>
50*c33452fbSAndroid Build Coastguard Worker				<xs:extension base="LinearAdaptationType">
51*c33452fbSAndroid Build Coastguard Worker					<xs:attribute name="LogarithmBase" type="xs:double" default="10"/>
52*c33452fbSAndroid Build Coastguard Worker					<xs:attribute name="FloorValue" type="xs:double" default="-INF"/>
53*c33452fbSAndroid Build Coastguard Worker				</xs:extension>
54*c33452fbSAndroid Build Coastguard Worker			</xs:complexContent>
55*c33452fbSAndroid Build Coastguard Worker		</xs:complexType>
56*c33452fbSAndroid Build Coastguard Worker	</xs:element>
57*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="Parameter" abstract="true">
58*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="Nameable"/>
59*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Mapping" type="xs:string" use="optional"/>
60*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="ArrayLengthAttribute"/>
61*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
62*c33452fbSAndroid Build Coastguard Worker	<xs:element name="BooleanParameter">
63*c33452fbSAndroid Build Coastguard Worker		<xs:complexType>
64*c33452fbSAndroid Build Coastguard Worker			<xs:complexContent>
65*c33452fbSAndroid Build Coastguard Worker				<xs:extension base="Parameter">
66*c33452fbSAndroid Build Coastguard Worker					<xs:attribute name="Size" fixed="8"/>
67*c33452fbSAndroid Build Coastguard Worker				</xs:extension>
68*c33452fbSAndroid Build Coastguard Worker			</xs:complexContent>
69*c33452fbSAndroid Build Coastguard Worker		</xs:complexType>
70*c33452fbSAndroid Build Coastguard Worker	</xs:element>
71*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="IntegerParameterType">
72*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
73*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="Parameter">
74*c33452fbSAndroid Build Coastguard Worker				<xs:choice minOccurs="0">
75*c33452fbSAndroid Build Coastguard Worker					<xs:element ref="LinearAdaptation"/>
76*c33452fbSAndroid Build Coastguard Worker					<xs:element ref="LogarithmicAdaptation"/>
77*c33452fbSAndroid Build Coastguard Worker				</xs:choice>
78*c33452fbSAndroid Build Coastguard Worker				<xs:attributeGroup ref="IntegerParameterAttributes"/>
79*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Unit" type="xs:token" use="optional"/>
80*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
81*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
82*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
83*c33452fbSAndroid Build Coastguard Worker	<xs:element name="IntegerParameter" type="IntegerParameterType"/>
84*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="EnumParameterType">
85*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
86*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="Parameter">
87*c33452fbSAndroid Build Coastguard Worker				<xs:sequence>
88*c33452fbSAndroid Build Coastguard Worker					<xs:element name="ValuePair" maxOccurs="unbounded">
89*c33452fbSAndroid Build Coastguard Worker						<xs:complexType>
90*c33452fbSAndroid Build Coastguard Worker							<xs:attribute name="Literal" type="xs:string" use="required"/>
91*c33452fbSAndroid Build Coastguard Worker							<xs:attribute name="Numerical" use="required">
92*c33452fbSAndroid Build Coastguard Worker								<xs:simpleType>
93*c33452fbSAndroid Build Coastguard Worker									<xs:restriction base="xs:string">
94*c33452fbSAndroid Build Coastguard Worker										<xs:pattern value="0|[+-]?[1-9][0-9]*"/>
95*c33452fbSAndroid Build Coastguard Worker										<xs:pattern value="0x[0-9a-fA-F]+"/>
96*c33452fbSAndroid Build Coastguard Worker									</xs:restriction>
97*c33452fbSAndroid Build Coastguard Worker								</xs:simpleType>
98*c33452fbSAndroid Build Coastguard Worker							</xs:attribute>
99*c33452fbSAndroid Build Coastguard Worker						</xs:complexType>
100*c33452fbSAndroid Build Coastguard Worker					</xs:element>
101*c33452fbSAndroid Build Coastguard Worker				</xs:sequence>
102*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Size" type="SizeType" use="required"/>
103*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
104*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
105*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
106*c33452fbSAndroid Build Coastguard Worker	<xs:element name="EnumParameter" type="EnumParameterType">
107*c33452fbSAndroid Build Coastguard Worker		<xs:unique name="LiteralUniqueness">
108*c33452fbSAndroid Build Coastguard Worker			<xs:selector xpath="ValuePair"/>
109*c33452fbSAndroid Build Coastguard Worker			<xs:field xpath="@Literal"/>
110*c33452fbSAndroid Build Coastguard Worker		</xs:unique>
111*c33452fbSAndroid Build Coastguard Worker		<xs:unique name="NumericalUniqueness">
112*c33452fbSAndroid Build Coastguard Worker			<xs:selector xpath="ValuePair"/>
113*c33452fbSAndroid Build Coastguard Worker			<xs:field xpath="@Numerical"/>
114*c33452fbSAndroid Build Coastguard Worker		</xs:unique>
115*c33452fbSAndroid Build Coastguard Worker	</xs:element>
116*c33452fbSAndroid Build Coastguard Worker	<xs:simpleType name="PointBound">
117*c33452fbSAndroid Build Coastguard Worker		<xs:restriction base="xs:string">
118*c33452fbSAndroid Build Coastguard Worker			<xs:pattern value="(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?"/>
119*c33452fbSAndroid Build Coastguard Worker		</xs:restriction>
120*c33452fbSAndroid Build Coastguard Worker	</xs:simpleType>
121*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="PointParameterType">
122*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
123*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="Parameter">
124*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Unit" type="xs:token" use="optional"/>
125*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
126*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
127*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
128*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="FixedPointParameterType">
129*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
130*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="PointParameterType">
131*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Size" type="SizeType" use="required"/>
132*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Integral" type="xs:nonNegativeInteger" use="required"/>
133*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Fractional" type="xs:nonNegativeInteger" use="required"/>
134*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
135*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
136*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
137*c33452fbSAndroid Build Coastguard Worker	<xs:element name="FixedPointParameter" type="FixedPointParameterType"/>
138*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="FloatingPointParameterType">
139*c33452fbSAndroid Build Coastguard Worker		<xs:complexContent>
140*c33452fbSAndroid Build Coastguard Worker			<xs:extension base="PointParameterType">
141*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Size" fixed="32"/>
142*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Min" type="PointBound" use="optional"/>
143*c33452fbSAndroid Build Coastguard Worker				<xs:attribute name="Max" type="PointBound" use="optional"/>
144*c33452fbSAndroid Build Coastguard Worker			</xs:extension>
145*c33452fbSAndroid Build Coastguard Worker		</xs:complexContent>
146*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
147*c33452fbSAndroid Build Coastguard Worker	<xs:element name="FloatingPointParameter" type="FloatingPointParameterType"/>
148*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="BitParameterType">
149*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="Nameable"/>
150*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Size" use="required">
151*c33452fbSAndroid Build Coastguard Worker			<xs:simpleType>
152*c33452fbSAndroid Build Coastguard Worker				<xs:restriction base="xs:positiveInteger">
153*c33452fbSAndroid Build Coastguard Worker					<xs:maxInclusive value="64"/>
154*c33452fbSAndroid Build Coastguard Worker				</xs:restriction>
155*c33452fbSAndroid Build Coastguard Worker			</xs:simpleType>
156*c33452fbSAndroid Build Coastguard Worker		</xs:attribute>
157*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Pos" use="required">
158*c33452fbSAndroid Build Coastguard Worker			<xs:simpleType>
159*c33452fbSAndroid Build Coastguard Worker				<xs:restriction base="xs:nonNegativeInteger">
160*c33452fbSAndroid Build Coastguard Worker					<xs:maxInclusive value="63"/>
161*c33452fbSAndroid Build Coastguard Worker				</xs:restriction>
162*c33452fbSAndroid Build Coastguard Worker			</xs:simpleType>
163*c33452fbSAndroid Build Coastguard Worker		</xs:attribute>
164*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Max" type="xs:integer" use="optional"/>
165*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
166*c33452fbSAndroid Build Coastguard Worker	<xs:element name="BitParameterBlock">
167*c33452fbSAndroid Build Coastguard Worker		<xs:complexType>
168*c33452fbSAndroid Build Coastguard Worker			<xs:sequence>
169*c33452fbSAndroid Build Coastguard Worker				<xs:element name="BitParameter" type="BitParameterType" maxOccurs="unbounded"/>
170*c33452fbSAndroid Build Coastguard Worker			</xs:sequence>
171*c33452fbSAndroid Build Coastguard Worker			<xs:attributeGroup ref="Nameable"/>
172*c33452fbSAndroid Build Coastguard Worker			<xs:attribute name="Size" type="SizeType64" use="required"/>
173*c33452fbSAndroid Build Coastguard Worker			<xs:attribute name="Mapping" type="xs:string" use="optional"/>
174*c33452fbSAndroid Build Coastguard Worker		</xs:complexType>
175*c33452fbSAndroid Build Coastguard Worker		<xs:unique name="BitParameterBlockSubElementsUniqueness">
176*c33452fbSAndroid Build Coastguard Worker			<xs:selector xpath="*"/>
177*c33452fbSAndroid Build Coastguard Worker			<xs:field xpath="@Name"/>
178*c33452fbSAndroid Build Coastguard Worker		</xs:unique>
179*c33452fbSAndroid Build Coastguard Worker	</xs:element>
180*c33452fbSAndroid Build Coastguard Worker	<xs:element name="StringParameter">
181*c33452fbSAndroid Build Coastguard Worker		<xs:complexType>
182*c33452fbSAndroid Build Coastguard Worker			<xs:attributeGroup ref="Nameable"/>
183*c33452fbSAndroid Build Coastguard Worker			<xs:attribute name="Mapping" type="xs:string" use="optional"/>
184*c33452fbSAndroid Build Coastguard Worker			<xs:attribute name="MaxLength" type="xs:nonNegativeInteger" use="required"/>
185*c33452fbSAndroid Build Coastguard Worker		</xs:complexType>
186*c33452fbSAndroid Build Coastguard Worker	</xs:element>
187*c33452fbSAndroid Build Coastguard Worker	<xs:group name="ParameterBlockGroup">
188*c33452fbSAndroid Build Coastguard Worker		<xs:choice>
189*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="BooleanParameter"/>
190*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="IntegerParameter"/>
191*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="EnumParameter"/>
192*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="FixedPointParameter"/>
193*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="FloatingPointParameter"/>
194*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="BitParameterBlock"/>
195*c33452fbSAndroid Build Coastguard Worker			<xs:element ref="StringParameter"/>
196*c33452fbSAndroid Build Coastguard Worker			<xs:element name="Component" type="ComponentInstance"/>
197*c33452fbSAndroid Build Coastguard Worker			<xs:element name="ParameterBlock" type="ParameterBlockType">
198*c33452fbSAndroid Build Coastguard Worker				<xs:unique name="ParameterBlockSubElementsUniqueness">
199*c33452fbSAndroid Build Coastguard Worker					<xs:selector xpath="*"/>
200*c33452fbSAndroid Build Coastguard Worker					<xs:field xpath="@Name"/>
201*c33452fbSAndroid Build Coastguard Worker				</xs:unique>
202*c33452fbSAndroid Build Coastguard Worker			</xs:element>
203*c33452fbSAndroid Build Coastguard Worker		</xs:choice>
204*c33452fbSAndroid Build Coastguard Worker	</xs:group>
205*c33452fbSAndroid Build Coastguard Worker	<xs:complexType name="ParameterBlockType">
206*c33452fbSAndroid Build Coastguard Worker		<xs:sequence>
207*c33452fbSAndroid Build Coastguard Worker			<xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/>
208*c33452fbSAndroid Build Coastguard Worker		</xs:sequence>
209*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="Nameable"/>
210*c33452fbSAndroid Build Coastguard Worker		<xs:attributeGroup ref="ArrayLengthAttribute"/>
211*c33452fbSAndroid Build Coastguard Worker		<xs:attribute name="Mapping" type="xs:string" use="optional"/>
212*c33452fbSAndroid Build Coastguard Worker	</xs:complexType>
213*c33452fbSAndroid Build Coastguard Worker</xs:schema>
214