1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 * Copyright (C) 2009 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<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
19           targetNamespace="http://compatibility.android.com/cts_result/1.15"
20           xmlns="http://compatibility.android.com/cts_result/1.15"
21           elementFormDefault="qualified">
22
23<xs:element name="TestResult">
24  <xs:complexType>
25    <xs:sequence>
26      <xs:element name="DeviceInfo" type="deviceInfoType"/>
27      <xs:element name="HostInfo" type="hostInfoType"/>
28      <xs:element name="Summary" type="summaryType"/>
29      <xs:element name="TestPackage" type="testPackageType" maxOccurs="unbounded" minOccurs="1"/>
30    </xs:sequence>
31    <xs:attribute name="starttime" type="xs:string"/>
32    <xs:attribute name="endtime" type="xs:string"/>
33    <xs:attribute name="testPlan" type="xs:string"/>
34    <xs:attribute name="version" type="xs:string"/>
35    <xs:attribute name="suite" type="xs:string"/>
36  </xs:complexType>
37</xs:element>
38
39<xs:complexType name="deviceInfoType">
40  <xs:sequence>
41    <xs:element name="Screen">
42      <xs:complexType>
43        <xs:attribute name="screen_size" type="xs:string"/>
44        <xs:attribute name="resolution" type="xs:string"/>
45        <xs:attribute name="screen_density" type="xs:decimal"/>
46        <xs:attribute name="screen_density_bucket" type="xs:string"/>
47      </xs:complexType>
48    </xs:element>
49    <xs:element name="PhoneSubInfo">
50      <xs:complexType>
51        <xs:attribute name="subscriberId" type="xs:string"/>
52      </xs:complexType>
53    </xs:element>
54    <xs:element name="BuildInfo">
55      <xs:complexType>
56        <xs:attribute name="Xdpi" type="xs:decimal"/>
57        <xs:attribute name="Ydpi" type="xs:decimal"/>
58        <xs:attribute name="androidPlatformVersion" type="xs:integer"/>
59        <xs:attribute name="buildID" type="xs:string"/>
60        <xs:attribute name="buildName" type="xs:string"/>
61        <xs:attribute name="buildVersion" type="xs:string"/>
62        <xs:attribute name="build_board" type="xs:string"/>
63        <xs:attribute name="build_manufacturer" type="xs:string"/>
64        <xs:attribute name="build_brand" type="xs:string"/>
65        <xs:attribute name="build_device" type="xs:string"/>
66        <xs:attribute name="build_fingerprint" type="xs:string"/>
67        <xs:attribute name="build_model" type="xs:string"/>
68        <xs:attribute name="build_type" type="xs:string"/>
69        <xs:attribute name="deviceID" type="xs:string"/>
70        <xs:attribute name="imei" type="xs:integer"/>
71        <xs:attribute name="imsi" type="xs:integer"/>
72        <xs:attribute name="keypad" type="xs:string"/>
73        <xs:attribute name="locales" type="xs:string"/>
74        <xs:attribute name="navigation" type="xs:string"/>
75        <xs:attribute name="network" type="xs:string"/>
76        <xs:attribute name="touch" type="xs:string"/>
77        <xs:attribute name="openGlEsVersion" type="xs:string"/>
78        <xs:attribute name="partitions" type="xs:string"/>
79        <xs:attribute name="build_abi" type="xs:string"/>
80        <xs:attribute name="build_abi2" type="xs:string"/>
81        <xs:attribute name="storage_devices" type="xs:string"/>
82        <xs:attribute name="multi_user" type="xs:string"/>
83      </xs:complexType>
84    </xs:element>
85    <xs:element name="FeatureInfo" type="featureInfoType"/>
86    <xs:element name="ProcessInfo" type="processInfoType"/>
87    <xs:element name="SystemLibrariesInfo" type="systemLibrariesInfoType"/>
88    <xs:element name="OpenGLCompressedTextureFormatsInfo" type="openGLCompressedTextureFormatsInfoType"/>
89  </xs:sequence>
90</xs:complexType>
91
92<xs:complexType name="hostInfoType">
93  <xs:sequence>
94    <xs:element name="Os">
95      <xs:complexType>
96        <xs:attribute name="arch" type="xs:string"/>
97        <xs:attribute name="name" type="xs:string"/>
98        <xs:attribute name="version" type="xs:string"/>
99      </xs:complexType>
100    </xs:element>
101    <xs:element name="Java">
102      <xs:complexType>
103        <xs:attribute name="name" type="xs:string"/>
104        <xs:attribute name="version" type="xs:string"/>
105      </xs:complexType>
106    </xs:element>
107    <xs:element name="Cts">
108      <xs:complexType>
109        <xs:sequence>
110          <xs:element name="IntValue" minOccurs="0" maxOccurs="unbounded">
111            <xs:complexType>
112              <xs:attribute name="name" type="xs:string"/>
113              <xs:attribute name="value" type="xs:integer"/>
114            </xs:complexType>
115          </xs:element>
116        </xs:sequence>
117        <xs:attribute name="version" type="xs:string"/>
118      </xs:complexType>
119    </xs:element>
120  </xs:sequence>
121  <xs:attribute name="name" type="xs:string"/>
122</xs:complexType>
123
124<xs:complexType name="featureInfoType">
125    <xs:sequence>
126        <xs:element name="Feature" minOccurs="0" maxOccurs="unbounded">
127            <xs:complexType>
128                <xs:attribute name="name" type="xs:string" />
129                <xs:attribute name="type" type="xs:string" />
130                <xs:attribute name="available" type="xs:string" />
131            </xs:complexType>
132        </xs:element>
133    </xs:sequence>
134</xs:complexType>
135
136<xs:complexType name="processInfoType">
137    <xs:sequence>
138        <xs:element name="Process" minOccurs="0" maxOccurs="unbounded">
139            <xs:complexType>
140                <xs:attribute name="name" type="xs:string" />
141                <xs:attribute name="uid" type="xs:integer" />
142            </xs:complexType>
143        </xs:element>
144    </xs:sequence>
145</xs:complexType>
146
147<xs:complexType name="systemLibrariesInfoType">
148    <xs:sequence>
149        <xs:element name="Library" minOccurs="0" maxOccurs="unbounded">
150            <xs:complexType>
151                <xs:attribute name="name" type="xs:string" />
152            </xs:complexType>
153        </xs:element>
154    </xs:sequence>
155</xs:complexType>
156
157<xs:complexType name="openGLCompressedTextureFormatsInfoType">
158    <xs:sequence>
159        <xs:element name="TextureFormat" minOccurs="0" maxOccurs="unbounded">
160            <xs:complexType>
161                <xs:attribute name="name" type="xs:string" />
162            </xs:complexType>
163        </xs:element>
164    </xs:sequence>
165</xs:complexType>
166
167<xs:complexType name="summaryType">
168  <xs:attribute name="failed" type="xs:integer"/>
169  <xs:attribute name="notExecuted" type="xs:integer"/>
170  <xs:attribute name="pass" type="xs:integer"/>
171  <xs:attribute name="timeout" type="xs:integer"/>
172  <xs:attribute name="omitted" type="xs:integer"/>
173</xs:complexType>
174
175<xs:complexType name="testPackageType">
176  <xs:sequence>
177    <xs:element name="TestSuite" type="testSuiteType" minOccurs="0" maxOccurs="unbounded" />
178  </xs:sequence>
179  <xs:attribute name="appPackageName" type="xs:string"/>
180  <xs:attribute name="digest" type="xs:hexBinary"/>
181  <xs:attribute name="name" type="xs:string" use="required"/>
182  <xs:attribute name="signatureCheck" type="xs:boolean" />
183</xs:complexType>
184
185<xs:complexType name="testSuiteType">
186  <xs:sequence>
187    <xs:element name="TestCase" type="testCaseType" minOccurs="0" maxOccurs="unbounded"/>
188    <xs:element name="TestSuite" type="testSuiteType" minOccurs="0" maxOccurs="unbounded"/>
189  </xs:sequence>
190  <xs:attribute name="name" type="xs:string" use="required"/>
191</xs:complexType>
192
193<xs:complexType name="testCaseType">
194  <xs:sequence>
195    <xs:element name="Test" type="testType" minOccurs="0" maxOccurs="unbounded"/>
196  </xs:sequence>
197  <xs:attribute name="name" type="xs:string" use="required"/>
198  <xs:attribute name="priority" type="xs:string"/>
199</xs:complexType>
200
201<xs:simpleType name="unitType">
202  <xs:restriction base="xs:string">
203    <xs:enumeration value="none"/>
204    <xs:enumeration value="ms"/>
205    <xs:enumeration value="fps"/>
206    <xs:enumeration value="ops"/>
207    <xs:enumeration value="kbps"/>
208    <xs:enumeration value="mbps"/>
209    <xs:enumeration value="byte"/>
210    <xs:enumeration value="count"/>
211    <xs:enumeration value="score"/>
212  </xs:restriction>
213</xs:simpleType>
214
215<xs:simpleType name="scoreTypeType">
216  <xs:restriction base="xs:string">
217    <xs:enumeration value="higherBetter"/>
218    <xs:enumeration value="lowerBetter"/>
219    <xs:enumeration value="neutral"/>
220    <xs:enumeration value="warning"/>
221  </xs:restriction>
222</xs:simpleType>
223
224<xs:complexType name="testType">
225  <xs:sequence>
226    <xs:element name="FailedScene" minOccurs="0" maxOccurs="1">
227      <xs:complexType>
228        <xs:sequence>
229          <xs:element name="StackTrace" type="xs:string" minOccurs="0" maxOccurs="1"/>
230        </xs:sequence>
231        <xs:attribute name="message" type="xs:string"/>
232      </xs:complexType>
233    </xs:element>
234    <xs:element name="Summary" minOccurs="0" maxOccurs="1">
235      <xs:complexType>
236        <xs:simpleContent>
237          <xs:extension base="xs:decimal">
238            <xs:attribute name="message" type="xs:string" use="required" />
239            <xs:attribute name="scoreType" type="scoreTypeType" use="required" />
240            <xs:attribute name="unit" type="unitType" use="required" />
241            <xs:attribute name="target" type="xs:decimal" />
242          </xs:extension>
243        </xs:simpleContent>
244      </xs:complexType>
245    </xs:element>
246    <xs:element name="Details" minOccurs="0" maxOccurs="1">
247      <xs:complexType>
248        <xs:sequence>
249          <xs:element name="ValueArray" minOccurs="0" maxOccurs="unbounded">
250            <xs:complexType>
251              <xs:sequence>
252                <xs:element name="Value" type="xs:decimal" minOccurs="0" maxOccurs="unbounded" />
253              </xs:sequence>
254              <xs:attribute name="source" type="xs:string" use="required" />
255              <xs:attribute name="message" type="xs:string" use="required" />
256              <xs:attribute name="scoreType" type="scoreTypeType" use="required" />
257              <xs:attribute name="unit" type="unitType" use="required" />
258            </xs:complexType>
259          </xs:element>
260        </xs:sequence>
261      </xs:complexType>
262    </xs:element>
263  </xs:sequence>
264  <xs:attribute name="name" type="xs:string" use="required"/>
265  <xs:attribute name="result" type="resultType" use="required"/>
266  <xs:attribute name="starttime" type="xs:string"/>
267  <xs:attribute name="endtime" type="xs:string"/>
268</xs:complexType>
269
270<xs:simpleType name="resultType">
271  <xs:restriction base="xs:string">
272    <xs:enumeration value="pass"/>
273    <xs:enumeration value="fail"/>
274    <xs:enumeration value="timeout"/>
275    <xs:enumeration value="notExecuted"/>
276    <xs:enumeration value="omitted"/>
277  </xs:restriction>
278</xs:simpleType>
279</xs:schema>
280