xref: /aosp_15_r20/system/media/camera/docs/metadata_definitions.xsd (revision b9df5ad1c9ac98a7fefaac271a55f7ae3db05414)
1*b9df5ad1SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?>
2*b9df5ad1SAndroid Build Coastguard Worker<!-- Copyright (C) 2012 The Android Open Source Project
3*b9df5ad1SAndroid Build Coastguard Worker
4*b9df5ad1SAndroid Build Coastguard Worker     Licensed under the Apache License, Version 2.0 (the "License");
5*b9df5ad1SAndroid Build Coastguard Worker     you may not use this file except in compliance with the License.
6*b9df5ad1SAndroid Build Coastguard Worker     You may obtain a copy of the License at
7*b9df5ad1SAndroid Build Coastguard Worker
8*b9df5ad1SAndroid Build Coastguard Worker          http://www.apache.org/licenses/LICENSE-2.0
9*b9df5ad1SAndroid Build Coastguard Worker
10*b9df5ad1SAndroid Build Coastguard Worker     Unless required by applicable law or agreed to in writing, software
11*b9df5ad1SAndroid Build Coastguard Worker     distributed under the License is distributed on an "AS IS" BASIS,
12*b9df5ad1SAndroid Build Coastguard Worker     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*b9df5ad1SAndroid Build Coastguard Worker     See the License for the specific language governing permissions and
14*b9df5ad1SAndroid Build Coastguard Worker     limitations under the License.
15*b9df5ad1SAndroid Build Coastguard Worker-->
16*b9df5ad1SAndroid Build Coastguard Worker<schema xmlns="http://www.w3.org/2001/XMLSchema"
17*b9df5ad1SAndroid Build Coastguard Worker    xmlns:tns="http://schemas.android.com/service/camera/metadata/"
18*b9df5ad1SAndroid Build Coastguard Worker    targetNamespace="http://schemas.android.com/service/camera/metadata/"
19*b9df5ad1SAndroid Build Coastguard Worker    elementFormDefault="qualified">
20*b9df5ad1SAndroid Build Coastguard Worker
21*b9df5ad1SAndroid Build Coastguard Worker    <element name="metadata" type="tns:MetadataType">
22*b9df5ad1SAndroid Build Coastguard Worker        <key name="TypeNameKey">
23*b9df5ad1SAndroid Build Coastguard Worker            <selector xpath="tns:types/tns:typedef" />
24*b9df5ad1SAndroid Build Coastguard Worker            <field xpath="@name" />
25*b9df5ad1SAndroid Build Coastguard Worker        </key>
26*b9df5ad1SAndroid Build Coastguard Worker
27*b9df5ad1SAndroid Build Coastguard Worker        <!-- ensure that <entry typedef="..."> refers to a valid <typedef name='..."/> -->
28*b9df5ad1SAndroid Build Coastguard Worker        <keyref name="TypeNameKeyRef" refer="tns:TypeNameKey">
29*b9df5ad1SAndroid Build Coastguard Worker            <selector xpath=".//tns:entry" /> <!-- recursively find any descendant entry -->
30*b9df5ad1SAndroid Build Coastguard Worker            <field xpath="@typedef" />
31*b9df5ad1SAndroid Build Coastguard Worker        </keyref>
32*b9df5ad1SAndroid Build Coastguard Worker    </element>
33*b9df5ad1SAndroid Build Coastguard Worker
34*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="MetadataType">
35*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
36*b9df5ad1SAndroid Build Coastguard Worker            <element name="tags" type="tns:TagsType" maxOccurs="1" minOccurs="0"></element>
37*b9df5ad1SAndroid Build Coastguard Worker            <element name="types" type="tns:TypesType" maxOccurs="1" minOccurs="0"></element>
38*b9df5ad1SAndroid Build Coastguard Worker            <element name="namespace" type="tns:NamespaceType"
39*b9df5ad1SAndroid Build Coastguard Worker                maxOccurs="unbounded" minOccurs="1">
40*b9df5ad1SAndroid Build Coastguard Worker            </element>
41*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
42*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
43*b9df5ad1SAndroid Build Coastguard Worker
44*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="NamespaceType">
45*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
46*b9df5ad1SAndroid Build Coastguard Worker            <element name="section" type="tns:SectionType" maxOccurs="unbounded" minOccurs="1"></element>
47*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
48*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="name" type="string" use="required"></attribute>
49*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
50*b9df5ad1SAndroid Build Coastguard Worker
51*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="SectionType">
52*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
53*b9df5ad1SAndroid Build Coastguard Worker            <choice maxOccurs="unbounded">
54*b9df5ad1SAndroid Build Coastguard Worker                <element name="controls" type="tns:SectionKindType" maxOccurs="unbounded" minOccurs="0"></element>
55*b9df5ad1SAndroid Build Coastguard Worker                <element name="static" type="tns:SectionKindType" maxOccurs="unbounded" minOccurs="0"></element>
56*b9df5ad1SAndroid Build Coastguard Worker                <element name="dynamic" type="tns:SectionKindType" maxOccurs="unbounded" minOccurs="0"></element>
57*b9df5ad1SAndroid Build Coastguard Worker            </choice>
58*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
59*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="name" type="string" use="required"></attribute>
60*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
61*b9df5ad1SAndroid Build Coastguard Worker
62*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="SectionKindType">
63*b9df5ad1SAndroid Build Coastguard Worker        <complexContent>
64*b9df5ad1SAndroid Build Coastguard Worker            <extension base="tns:BaseNamespaceOrSectionKindType">
65*b9df5ad1SAndroid Build Coastguard Worker            </extension>
66*b9df5ad1SAndroid Build Coastguard Worker        </complexContent>
67*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
68*b9df5ad1SAndroid Build Coastguard Worker
69*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="InnerNamespaceType">
70*b9df5ad1SAndroid Build Coastguard Worker        <complexContent>
71*b9df5ad1SAndroid Build Coastguard Worker            <extension base="tns:BaseNamespaceOrSectionKindType">
72*b9df5ad1SAndroid Build Coastguard Worker                <attribute name="name" type="string" use="required"></attribute>
73*b9df5ad1SAndroid Build Coastguard Worker            </extension>
74*b9df5ad1SAndroid Build Coastguard Worker        </complexContent>
75*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
76*b9df5ad1SAndroid Build Coastguard Worker
77*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="BaseNamespaceOrSectionKindType">
78*b9df5ad1SAndroid Build Coastguard Worker        <sequence maxOccurs="unbounded">
79*b9df5ad1SAndroid Build Coastguard Worker            <choice>
80*b9df5ad1SAndroid Build Coastguard Worker                <element name="namespace" type="tns:InnerNamespaceType"></element>
81*b9df5ad1SAndroid Build Coastguard Worker                <element name="entry" type="tns:EntryType"></element>
82*b9df5ad1SAndroid Build Coastguard Worker                <element name="clone" type="tns:CloneType"></element>
83*b9df5ad1SAndroid Build Coastguard Worker            </choice>
84*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
85*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
86*b9df5ad1SAndroid Build Coastguard Worker
87*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="TagsType">
88*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
89*b9df5ad1SAndroid Build Coastguard Worker            <element name="tag" type="tns:TagType" maxOccurs="unbounded" minOccurs="0"></element>
90*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
91*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
92*b9df5ad1SAndroid Build Coastguard Worker
93*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="TagType">
94*b9df5ad1SAndroid Build Coastguard Worker        <simpleContent>
95*b9df5ad1SAndroid Build Coastguard Worker            <extension base="string">
96*b9df5ad1SAndroid Build Coastguard Worker                <attribute name="id" type="string" use="required"></attribute>
97*b9df5ad1SAndroid Build Coastguard Worker            </extension>
98*b9df5ad1SAndroid Build Coastguard Worker        </simpleContent>
99*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
100*b9df5ad1SAndroid Build Coastguard Worker
101*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="TypesType">
102*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
103*b9df5ad1SAndroid Build Coastguard Worker            <element name="typedef" type="tns:TypedefType" maxOccurs="unbounded" minOccurs="0">
104*b9df5ad1SAndroid Build Coastguard Worker            </element>
105*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
106*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
107*b9df5ad1SAndroid Build Coastguard Worker
108*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="TypedefType">
109*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
110*b9df5ad1SAndroid Build Coastguard Worker            <element name="language" type="tns:LanguageType" maxOccurs="unbounded" minOccurs="1"></element>
111*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
112*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="name" type="string" use="required" />
113*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
114*b9df5ad1SAndroid Build Coastguard Worker
115*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="LanguageType">
116*b9df5ad1SAndroid Build Coastguard Worker        <simpleContent>
117*b9df5ad1SAndroid Build Coastguard Worker            <extension base="string">
118*b9df5ad1SAndroid Build Coastguard Worker                <attribute name="name" use="required">
119*b9df5ad1SAndroid Build Coastguard Worker                    <simpleType>
120*b9df5ad1SAndroid Build Coastguard Worker                        <restriction base="string">
121*b9df5ad1SAndroid Build Coastguard Worker                            <enumeration value="java" />
122*b9df5ad1SAndroid Build Coastguard Worker                            <enumeration value="c" />
123*b9df5ad1SAndroid Build Coastguard Worker                            <enumeration value="c++" />
124*b9df5ad1SAndroid Build Coastguard Worker                        </restriction>
125*b9df5ad1SAndroid Build Coastguard Worker                    </simpleType>
126*b9df5ad1SAndroid Build Coastguard Worker                </attribute>
127*b9df5ad1SAndroid Build Coastguard Worker            </extension>
128*b9df5ad1SAndroid Build Coastguard Worker        </simpleContent>
129*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
130*b9df5ad1SAndroid Build Coastguard Worker
131*b9df5ad1SAndroid Build Coastguard Worker    <group name="BaseEntryGroup">
132*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
133*b9df5ad1SAndroid Build Coastguard Worker            <element name="description" type="string" maxOccurs="1"
134*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
135*b9df5ad1SAndroid Build Coastguard Worker            </element>
136*b9df5ad1SAndroid Build Coastguard Worker            <element name="deprecation_description" type="string" maxOccurs="1"
137*b9df5ad1SAndroid Build Coastguard Worker                     minOccurs="0">
138*b9df5ad1SAndroid Build Coastguard Worker            </element>
139*b9df5ad1SAndroid Build Coastguard Worker            <element name="units" type="string" maxOccurs="1"
140*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
141*b9df5ad1SAndroid Build Coastguard Worker            </element>
142*b9df5ad1SAndroid Build Coastguard Worker            <element name="range" type="string" maxOccurs="1"
143*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
144*b9df5ad1SAndroid Build Coastguard Worker            </element>
145*b9df5ad1SAndroid Build Coastguard Worker            <element name="details" type="string" maxOccurs="1"
146*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
147*b9df5ad1SAndroid Build Coastguard Worker            </element>
148*b9df5ad1SAndroid Build Coastguard Worker            <element name="ndk_details" type="string" maxOccurs="1"
149*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
150*b9df5ad1SAndroid Build Coastguard Worker            </element>
151*b9df5ad1SAndroid Build Coastguard Worker            <element name="hal_details" type="string" maxOccurs="1"
152*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
153*b9df5ad1SAndroid Build Coastguard Worker            </element>
154*b9df5ad1SAndroid Build Coastguard Worker
155*b9df5ad1SAndroid Build Coastguard Worker            <element name="tag" type="tns:TagType" maxOccurs="unbounded"
156*b9df5ad1SAndroid Build Coastguard Worker                minOccurs="0">
157*b9df5ad1SAndroid Build Coastguard Worker            </element>
158*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
159*b9df5ad1SAndroid Build Coastguard Worker    </group>
160*b9df5ad1SAndroid Build Coastguard Worker
161*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="EntryType">
162*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
163*b9df5ad1SAndroid Build Coastguard Worker            <element name="array" type="tns:ArrayType" maxOccurs="1" minOccurs="0"></element>
164*b9df5ad1SAndroid Build Coastguard Worker            <element name="enum" type="tns:EnumType" maxOccurs="1" minOccurs="0"></element>
165*b9df5ad1SAndroid Build Coastguard Worker            <element name="tuple" type="tns:TupleType" maxOccurs="1" minOccurs="0"></element>
166*b9df5ad1SAndroid Build Coastguard Worker
167*b9df5ad1SAndroid Build Coastguard Worker            <group ref="tns:BaseEntryGroup" />
168*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
169*b9df5ad1SAndroid Build Coastguard Worker
170*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="name" type="string" use="required" />
171*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="type" use="required">
172*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
173*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
174*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="byte" />
175*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="int32" />
176*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="int64" />
177*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="float" />
178*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="double" />
179*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="rational" />
180*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
181*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
182*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
183*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="type_notes" type="string" />
184*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="container">
185*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
186*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
187*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="array" />
188*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="tuple" />
189*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
190*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
191*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
192*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="enum">
193*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
194*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
195*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true"></enumeration>
196*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false"></enumeration>
197*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
198*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
199*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
200*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="visibility">
201*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
202*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
203*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="system" /> <!-- do not expose to java/NDK API, visible to HAL -->
204*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="java_public" /> <!-- java as public SDK. Not included in NDK, visible to HAL -->
205*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="ndk_public" /> <!-- public in NDK. @hide in java, visible to HAL -->
206*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="hidden" /> <!-- java as @hide. Not included in NDK, visible to HAL -->
207*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="extension" /> <!-- java as @hide. Included as a public key in the extensions, visible to HAL -->
208*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="public" /> <!-- public to both java and NDK, visible to HAL -->
209*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="fwk_only" /> <!-- java as @hide. Not included in NDK. Not included in hal interfaces. -->
210*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="fwk_java_public" /> <!-- public to java. Not included in NDK. Not included in hal interfaces. -->
211*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="fwk_system_public" /> <!-- system API in java. Not included in NDK. Not included in hal interfaces -->
212*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="fwk_public" /> <!-- public to both java and NDK. Not included in hal interfaces. -->
213*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="fwk_ndk_public" /> <!-- public to NDK. Not included in java or hal interfaces. -->
214*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
215*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
216*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
217*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="synthetic" default="false">
218*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
219*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
220*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false" /> <!-- expose to C -->
221*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true" /> <!-- do not expose to C -->
222*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
223*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
224*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
225*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="deprecated" default="false">
226*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
227*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
228*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false" /> <!-- normal -->
229*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true" /> <!-- mark @Deprecated -->
230*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
231*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
232*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
233*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="optional" default="false">
234*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
235*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
236*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false" />
237*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true" />
238*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
239*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
240*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
241*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="typedef" type="string" />
242*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="hwlevel" default="full">
243*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
244*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
245*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="full" />
246*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="limited" />
247*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="legacy" />
248*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
249*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
250*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
251*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="hal_version" type="decimal" default="3.2" />
252*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="permission_needed" default="false">
253*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
254*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
255*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true" />
256*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false" />
257*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
258*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
259*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
260*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="aconfig_flag" type="string" />
261*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="session_characteristics_key_since" type="decimal"/>
262*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
263*b9df5ad1SAndroid Build Coastguard Worker
264*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="EnumType">
265*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
266*b9df5ad1SAndroid Build Coastguard Worker            <element name="value" type="tns:EnumValueType" maxOccurs="unbounded"></element>
267*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
268*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
269*b9df5ad1SAndroid Build Coastguard Worker
270*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="TupleType">
271*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
272*b9df5ad1SAndroid Build Coastguard Worker            <element name="value" type="string" minOccurs="1" maxOccurs="unbounded"></element>
273*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
274*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
275*b9df5ad1SAndroid Build Coastguard Worker
276*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="ArrayType">
277*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
278*b9df5ad1SAndroid Build Coastguard Worker            <element name="size" type="string" minOccurs="1" maxOccurs="unbounded"></element>
279*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
280*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
281*b9df5ad1SAndroid Build Coastguard Worker
282*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="EnumValueType" mixed="true">
283*b9df5ad1SAndroid Build Coastguard Worker
284*b9df5ad1SAndroid Build Coastguard Worker        <all>
285*b9df5ad1SAndroid Build Coastguard Worker            <element name="notes" type="string" minOccurs="0" maxOccurs="1"/>
286*b9df5ad1SAndroid Build Coastguard Worker            <element name="sdk_notes" type="string" minOccurs="0" maxOccurs="1"/>
287*b9df5ad1SAndroid Build Coastguard Worker            <element name="ndk_notes" type="string" minOccurs="0" maxOccurs="1" />
288*b9df5ad1SAndroid Build Coastguard Worker        </all>
289*b9df5ad1SAndroid Build Coastguard Worker
290*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="deprecated" default="false">
291*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
292*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
293*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true"></enumeration>
294*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false"></enumeration>
295*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
296*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
297*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
298*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="optional">
299*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
300*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
301*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true"></enumeration>
302*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false"></enumeration>
303*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
304*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
305*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
306*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="hidden">
307*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
308*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
309*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true"></enumeration>
310*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false"></enumeration>
311*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
312*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
313*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
314*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="ndk_hidden">
315*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
316*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
317*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="true"></enumeration>
318*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="false"></enumeration>
319*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
320*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
321*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
322*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="visibility">
323*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
324*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
325*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="system" /> <!-- do not expose to java/NDK API -->
326*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="java_public" /> <!-- java as public SDK. Not included in NDK -->
327*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="ndk_public" /> <!-- public in NDK. @hide in java -->
328*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="hidden" /> <!-- java as @hide. Not included in NDK -->
329*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="extension" /> <!-- java as @hide. Included as a public enum in the extensions. -->
330*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="test" /> <!-- java as @TestApi. Not included in NDK -->
331*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="public" /> <!-- public to both java and NDK -->
332*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
333*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
334*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
335*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="id" type="string" />
336*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="hal_version" type="decimal" default="3.2" />
337*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="aconfig_flag" type="string" />
338*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
339*b9df5ad1SAndroid Build Coastguard Worker
340*b9df5ad1SAndroid Build Coastguard Worker    <complexType name="CloneType">
341*b9df5ad1SAndroid Build Coastguard Worker        <sequence>
342*b9df5ad1SAndroid Build Coastguard Worker                <group ref="tns:BaseEntryGroup" />
343*b9df5ad1SAndroid Build Coastguard Worker        </sequence>
344*b9df5ad1SAndroid Build Coastguard Worker
345*b9df5ad1SAndroid Build Coastguard Worker        <!--
346*b9df5ad1SAndroid Build Coastguard Worker             the semantic correctness of the next 2 attributes
347*b9df5ad1SAndroid Build Coastguard Worker             are validated by metadata_validate.py
348*b9df5ad1SAndroid Build Coastguard Worker
349*b9df5ad1SAndroid Build Coastguard Worker             due to the inability of XSD to generate paths recursively
350*b9df5ad1SAndroid Build Coastguard Worker        -->
351*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="entry">
352*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
353*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="kind">
354*b9df5ad1SAndroid Build Coastguard Worker            <simpleType>
355*b9df5ad1SAndroid Build Coastguard Worker                <restriction base="string">
356*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="controls"></enumeration>
357*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="static"></enumeration>
358*b9df5ad1SAndroid Build Coastguard Worker                    <enumeration value="dynamic"></enumeration>
359*b9df5ad1SAndroid Build Coastguard Worker                </restriction>
360*b9df5ad1SAndroid Build Coastguard Worker            </simpleType>
361*b9df5ad1SAndroid Build Coastguard Worker        </attribute>
362*b9df5ad1SAndroid Build Coastguard Worker        <attribute name="hal_version" type="decimal" default="3.2" />
363*b9df5ad1SAndroid Build Coastguard Worker    </complexType>
364*b9df5ad1SAndroid Build Coastguard Worker</schema>
365