blob: 134153a017f8789a0b3eff0e12e446b63706d0a3 [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>
11 <xsd:element name="groups" type="groups"/>
12 <xsd:element name="artifacts" type="artifacts"/>
13 </xsd:sequence>
14 </xsd:complexType>
15 </xsd:element>
16
17 <xsd:complexType name="groups">
18 <xsd:sequence>
19 <xsd:element name="abi-group" type="abi-group" maxOccurs="unbounded"/>
20 <xsd:element name="screen-density-group" type="screen-density-group" maxOccurs="unbounded"/>
21 <xsd:element name="locale-group" type="locale-group" maxOccurs="unbounded"/>
22 <xsd:element name="android-sdk-group" type="android-sdk-group" maxOccurs="unbounded"/>
23 <xsd:element
24 name="gl-texture-group"
25 type="gl-texture-group"
26 maxOccurs="unbounded"/>
27 <xsd:element name="device-feature-group" type="device-feature-group" maxOccurs="unbounded"/>
28 </xsd:sequence>
29 </xsd:complexType>
30
31 <xsd:complexType name="artifacts">
32 <xsd:sequence>
33 <xsd:element name="artifact-format" type="xsd:string"/>
34 <xsd:element name="artifact" type="artifact" maxOccurs="unbounded"/>
35 </xsd:sequence>
36 <xsd:attribute name="generate-all" type="xsd:boolean"/>
37 </xsd:complexType>
38
39 <!-- Groups output artifacts together by dimension labels. -->
40 <xsd:complexType name="artifact">
41 <xsd:attribute name="name" type="xsd:string"/>
Shane Farmer810fd182017-09-21 14:37:44 -070042 <xsd:attribute name="version" type="xsd:integer"/>
Shane Farmer7eded652017-05-09 15:48:52 -070043 <xsd:attribute name="abi-group" type="xsd:string"/>
44 <xsd:attribute name="android-sdk-group" type="xsd:string"/>
45 <xsd:attribute name="device-feature-group" type="xsd:string"/>
46 <xsd:attribute name="gl-texture-group" type="xsd:string"/>
47 <xsd:attribute name="screen-density-group" type="xsd:string"/>
48 <xsd:attribute name="locale-group" type="xsd:string"/>
49 </xsd:complexType>
50
51 <xsd:complexType name="gl-texture-group">
52 <xsd:sequence>
53 <xsd:element name="gl-texture" type="gl-texture" maxOccurs="unbounded"/>
54 </xsd:sequence>
55 <xsd:attribute name="label" type="xsd:string" use="optional"/>
56 </xsd:complexType>
57
58 <xsd:complexType name="gl-texture">
59 <xsd:sequence>
60 <xsd:element name="texture-path" type="xsd:string" maxOccurs="unbounded"/>
61 </xsd:sequence>
62 <xsd:attribute name="name" type="xsd:string" use="required"/>
63 </xsd:complexType>
64
65 <xsd:complexType name="device-feature-group">
66 <xsd:sequence>
67 <xsd:element name="supports-feature" type="xsd:string" maxOccurs="unbounded"/>
68 </xsd:sequence>
69 <xsd:attribute name="label" type="xsd:string" use="optional"/>
70 </xsd:complexType>
71
72 <xsd:complexType name="abi-group">
73 <xsd:sequence>
74 <xsd:element name="abi" type="abi-name" maxOccurs="unbounded"/>
75 </xsd:sequence>
76 <xsd:attribute name="label" type="xsd:string" use="optional"/>
77 </xsd:complexType>
78
79 <xsd:simpleType name="abi-name">
80 <xsd:restriction base="xsd:string">
81 <xsd:enumeration value="armeabi"/>
82 <xsd:enumeration value="armeabi-v7a"/>
83 <xsd:enumeration value="arm64-v8a"/>
84 <xsd:enumeration value="x86"/>
85 <xsd:enumeration value="x86_64"/>
86 <xsd:enumeration value="mips"/>
87 <xsd:enumeration value="mips64"/>
88 <xsd:enumeration value="fat"/>
89 </xsd:restriction>
90 </xsd:simpleType>
91
92 <xsd:complexType name="screen-density-group">
93 <xsd:sequence>
94 <xsd:element name="screen-density" type="screen-density" maxOccurs="unbounded"/>
95 </xsd:sequence>
96 <xsd:attribute name="label" type="xsd:string" use="optional"/>
97 </xsd:complexType>
98
99 <xsd:simpleType name="screen-density">
100 <xsd:restriction base="xsd:string">
101 <xsd:enumeration value="alldpi"/>
102 <xsd:enumeration value="ldpi"/>
103 <xsd:enumeration value="mdpi"/>
104 <xsd:enumeration value="hdpi"/>
105 <xsd:enumeration value="xhdpi"/>
106 <xsd:enumeration value="xxhdpi"/>
107 <xsd:enumeration value="xxxhdpi"/>
108 </xsd:restriction>
109 </xsd:simpleType>
110
111 <xsd:complexType name="android-sdk-group">
112 <xsd:sequence>
113 <xsd:element name="android-sdk" type="android-sdk" maxOccurs="unbounded"/>
114 </xsd:sequence>
115 <xsd:attribute name="label" type="xsd:string" use="optional"/>
116 </xsd:complexType>
117
118 <xsd:complexType name="android-sdk">
119 <!-- TODO(safarmer): Add permissions to add/remove. -->
120 <!-- TODO(safarmer): Add option for uncompressed native libs. -->
121 <xsd:sequence>
122 <xsd:element name="manifest" type="manifest"/>
123 </xsd:sequence>
124 <xsd:attribute name="minSdkVersion" type="xsd:integer"/>
125 <xsd:attribute name="targetSdkVersion" type="xsd:integer"/>
126 <xsd:attribute name="maxSdkVersion" type="xsd:integer"/>
127 </xsd:complexType>
128
129 <!-- TODO(safarmer): Figure out the best way to handle manifest updates. -->
130 <xsd:simpleType name="manifest">
131 <xsd:restriction base="xsd:string"/>
132 </xsd:simpleType>
133
134 <xsd:complexType name="locale-group">
135 <xsd:sequence>
136 <xsd:element name="locale" type="locale" maxOccurs="unbounded"/>
137 </xsd:sequence>
138 <xsd:attribute name="label" type="xsd:string" use="optional"/>
139 </xsd:complexType>
140
141 <xsd:complexType name="locale">
142 <xsd:attribute name="lang" type="xsd:string"/>
143 <xsd:attribute name="region" type="xsd:string"/>
144 <xsd:attribute name="compressed" type="xsd:boolean"/>
145 </xsd:complexType>
146
147</xsd:schema>