1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3  ~ Copyright (C) 2019 The Android Open Source Project
4  ~
5  ~ Licensed under the Apache License, Version 2.0 (the "License");
6  ~ you may not use this file except in compliance with the License.
7  ~ You may obtain a copy of the License at
8  ~
9  ~      http://www.apache.org/licenses/LICENSE-2.0
10  ~
11  ~ Unless required by applicable law or agreed to in writing, software
12  ~ distributed under the License is distributed on an "AS IS" BASIS,
13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  ~ See the License for the specific language governing permissions and
15  ~ limitations under the License.
16  -->
17
18<!-- This defines the format of the XML file used to store compat config overrides in
19  ~ /data/misc/appcompat/compat_framework_overrides.xml
20-->
21<xs:schema version="2.0" elementFormDefault="qualified"
22    xmlns:xs="http://www.w3.org/2001/XMLSchema">
23
24
25    <xs:complexType name="override-value">
26        <xs:attribute type="xs:string" name="packageName" use="required" />
27        <xs:attribute type="xs:boolean" name="enabled" use="required" />
28    </xs:complexType>
29
30    <xs:complexType name="raw-override-value">
31        <xs:attribute type="xs:string" name="packageName" use="required" />
32        <xs:attribute type="xs:long" name="minVersionCode" />
33        <xs:attribute type="xs:long" name="maxVersionCode" />
34        <xs:attribute type="xs:boolean" name="enabled" use="required" />
35    </xs:complexType>
36
37    <xs:complexType name="change-overrides">
38        <xs:attribute type="xs:long" name="changeId" use="required"/>
39        <xs:element name="validated">
40            <xs:complexType>
41                <xs:sequence>
42                    <xs:element name="override-value" type="override-value" maxOccurs="unbounded" minOccurs="0" />
43                </xs:sequence>
44            </xs:complexType>
45        </xs:element>
46        <xs:element name="deferred">
47            <xs:complexType>
48                <xs:sequence>
49                    <xs:element name="override-value" type="override-value" maxOccurs="unbounded" minOccurs="0" />
50                </xs:sequence>
51            </xs:complexType>
52        </xs:element>
53        <xs:element name="raw">
54            <xs:complexType>
55                <xs:sequence>
56                    <xs:element name="raw-override-value" type="raw-override-value" maxOccurs="unbounded" minOccurs="0" />
57                </xs:sequence>
58            </xs:complexType>
59        </xs:element>
60    </xs:complexType>
61
62    <xs:element name="overrides">
63        <xs:complexType>
64            <xs:sequence>
65                <xs:element name="change-overrides" type="change-overrides" maxOccurs="unbounded" minOccurs="0" />
66            </xs:sequence>
67        </xs:complexType>
68    </xs:element>
69</xs:schema>
70