blob: a28e28be48f4bbdab78f2f71e0d60491bd84ba9d [file] [log] [blame]
Shane Farmer7eded652017-05-09 15:48:52 -07001<?xml version="1.0" encoding="utf-8" ?>
2<xsd:schema
3 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4 elementFormDefault="qualified"
5 xmlns="http://schemas.android.com/tools/aapt2"
6 targetNamespace="http://schemas.android.com/tools/aapt2">
7
8 <xsd:element name="post-process">
9 <xsd:complexType>
10 <xsd:sequence>
Shane Farmer7eded652017-05-09 15:48:52 -070011 <xsd:element name="artifacts" type="artifacts"/>
Shane Farmer78c43d72017-12-04 09:08:38 -080012 <xsd:element name="android-sdks" type="android-sdks"/>
13 <xsd:element name="abi-groups" type="abi-groups"/>
14 <xsd:element name="screen-density-groups" type="screen-density-groups"/>
15 <xsd:element name="locale-groups" type="locale-groups"/>
16 <xsd:element name="gl-texture-groups" type="gl-texture-groups"/>
17 <xsd:element name="device-feature-groups" type="device-feature-groups"/>
Shane Farmer7eded652017-05-09 15:48:52 -070018 </xsd:sequence>
19 </xsd:complexType>
20 </xsd:element>
21
Shane Farmer78c43d72017-12-04 09:08:38 -080022 <xsd:complexType name="android-sdks">
23 <xsd:sequence>
24 <xsd:element name="android-sdk" type="android-sdk" maxOccurs="unbounded"/>
25 </xsd:sequence>
26 </xsd:complexType>
27
28 <xsd:complexType name="abi-groups">
Shane Farmer7eded652017-05-09 15:48:52 -070029 <xsd:sequence>
30 <xsd:element name="abi-group" type="abi-group" maxOccurs="unbounded"/>
Shane Farmer78c43d72017-12-04 09:08:38 -080031 </xsd:sequence>
32 </xsd:complexType>
33
34 <xsd:complexType name="screen-density-groups">
35 <xsd:sequence>
Shane Farmer7eded652017-05-09 15:48:52 -070036 <xsd:element name="screen-density-group" type="screen-density-group" maxOccurs="unbounded"/>
Shane Farmer78c43d72017-12-04 09:08:38 -080037 </xsd:sequence>
38 </xsd:complexType>
39
40 <xsd:complexType name="locale-groups">
41 <xsd:sequence>
Shane Farmer7eded652017-05-09 15:48:52 -070042 <xsd:element name="locale-group" type="locale-group" maxOccurs="unbounded"/>
Shane Farmer78c43d72017-12-04 09:08:38 -080043 </xsd:sequence>
44 </xsd:complexType>
45
46 <xsd:complexType name="gl-texture-groups">
47 <xsd:sequence>
Shane Farmer7eded652017-05-09 15:48:52 -070048 <xsd:element
49 name="gl-texture-group"
50 type="gl-texture-group"
51 maxOccurs="unbounded"/>
Shane Farmer78c43d72017-12-04 09:08:38 -080052 </xsd:sequence>
53 </xsd:complexType>
54
55 <xsd:complexType name="device-feature-groups">
56 <xsd:sequence>
Shane Farmer7eded652017-05-09 15:48:52 -070057 <xsd:element name="device-feature-group" type="device-feature-group" maxOccurs="unbounded"/>
58 </xsd:sequence>
59 </xsd:complexType>
60
61 <xsd:complexType name="artifacts">
62 <xsd:sequence>
63 <xsd:element name="artifact-format" type="xsd:string"/>
64 <xsd:element name="artifact" type="artifact" maxOccurs="unbounded"/>
65 </xsd:sequence>
66 <xsd:attribute name="generate-all" type="xsd:boolean"/>
67 </xsd:complexType>
68
69 <!-- Groups output artifacts together by dimension labels. -->
70 <xsd:complexType name="artifact">
Shane Farmer7eded652017-05-09 15:48:52 -070071 <xsd:attribute name="abi-group" type="xsd:string"/>
72 <xsd:attribute name="android-sdk-group" type="xsd:string"/>
73 <xsd:attribute name="device-feature-group" type="xsd:string"/>
74 <xsd:attribute name="gl-texture-group" type="xsd:string"/>
75 <xsd:attribute name="screen-density-group" type="xsd:string"/>
76 <xsd:attribute name="locale-group" type="xsd:string"/>
77 </xsd:complexType>
78
79 <xsd:complexType name="gl-texture-group">
80 <xsd:sequence>
81 <xsd:element name="gl-texture" type="gl-texture" maxOccurs="unbounded"/>
82 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -080083 <xsd:attribute name="label" type="xsd:string"/>
Shane Farmer11cdc1c2018-01-31 16:43:24 -080084 <xsd:attribute name="version-code-order" type="xsd:unsignedInt" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -070085 </xsd:complexType>
86
87 <xsd:complexType name="gl-texture">
88 <xsd:sequence>
89 <xsd:element name="texture-path" type="xsd:string" maxOccurs="unbounded"/>
90 </xsd:sequence>
91 <xsd:attribute name="name" type="xsd:string" use="required"/>
92 </xsd:complexType>
93
94 <xsd:complexType name="device-feature-group">
95 <xsd:sequence>
96 <xsd:element name="supports-feature" type="xsd:string" maxOccurs="unbounded"/>
97 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -080098 <xsd:attribute name="label" type="xsd:string"/>
Shane Farmer11cdc1c2018-01-31 16:43:24 -080099 <xsd:attribute name="version-code-order" type="xsd:unsignedInt" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -0700100 </xsd:complexType>
101
102 <xsd:complexType name="abi-group">
103 <xsd:sequence>
104 <xsd:element name="abi" type="abi-name" maxOccurs="unbounded"/>
105 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -0800106 <xsd:attribute name="label" type="xsd:string"/>
Shane Farmer11cdc1c2018-01-31 16:43:24 -0800107 <xsd:attribute name="version-code-order" type="xsd:unsignedInt" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -0700108 </xsd:complexType>
109
110 <xsd:simpleType name="abi-name">
111 <xsd:restriction base="xsd:string">
112 <xsd:enumeration value="armeabi"/>
113 <xsd:enumeration value="armeabi-v7a"/>
114 <xsd:enumeration value="arm64-v8a"/>
115 <xsd:enumeration value="x86"/>
116 <xsd:enumeration value="x86_64"/>
117 <xsd:enumeration value="mips"/>
118 <xsd:enumeration value="mips64"/>
119 <xsd:enumeration value="fat"/>
120 </xsd:restriction>
121 </xsd:simpleType>
122
123 <xsd:complexType name="screen-density-group">
124 <xsd:sequence>
125 <xsd:element name="screen-density" type="screen-density" maxOccurs="unbounded"/>
126 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -0800127 <xsd:attribute name="label" type="xsd:string"/>
Shane Farmer11cdc1c2018-01-31 16:43:24 -0800128 <xsd:attribute name="version-code-order" type="xsd:unsignedInt" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -0700129 </xsd:complexType>
130
131 <xsd:simpleType name="screen-density">
132 <xsd:restriction base="xsd:string">
133 <xsd:enumeration value="alldpi"/>
134 <xsd:enumeration value="ldpi"/>
135 <xsd:enumeration value="mdpi"/>
136 <xsd:enumeration value="hdpi"/>
137 <xsd:enumeration value="xhdpi"/>
138 <xsd:enumeration value="xxhdpi"/>
139 <xsd:enumeration value="xxxhdpi"/>
140 </xsd:restriction>
141 </xsd:simpleType>
142
Shane Farmer7eded652017-05-09 15:48:52 -0700143 <xsd:complexType name="android-sdk">
144 <!-- TODO(safarmer): Add permissions to add/remove. -->
145 <!-- TODO(safarmer): Add option for uncompressed native libs. -->
146 <xsd:sequence>
147 <xsd:element name="manifest" type="manifest"/>
148 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -0800149 <xsd:attribute name="label" type="xsd:string" use="required"/>
150 <xsd:attribute name="minSdkVersion" type="xsd:integer" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -0700151 <xsd:attribute name="targetSdkVersion" type="xsd:integer"/>
152 <xsd:attribute name="maxSdkVersion" type="xsd:integer"/>
153 </xsd:complexType>
154
155 <!-- TODO(safarmer): Figure out the best way to handle manifest updates. -->
156 <xsd:simpleType name="manifest">
157 <xsd:restriction base="xsd:string"/>
158 </xsd:simpleType>
159
160 <xsd:complexType name="locale-group">
161 <xsd:sequence>
162 <xsd:element name="locale" type="locale" maxOccurs="unbounded"/>
163 </xsd:sequence>
Shane Farmer78c43d72017-12-04 09:08:38 -0800164 <xsd:attribute name="label" type="xsd:string"/>
Shane Farmer11cdc1c2018-01-31 16:43:24 -0800165 <xsd:attribute name="version-code-order" type="xsd:unsignedInt" use="required"/>
Shane Farmer7eded652017-05-09 15:48:52 -0700166 </xsd:complexType>
167
168 <xsd:complexType name="locale">
169 <xsd:attribute name="lang" type="xsd:string"/>
170 <xsd:attribute name="region" type="xsd:string"/>
171 <xsd:attribute name="compressed" type="xsd:boolean"/>
172 </xsd:complexType>
173
174</xsd:schema>