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