blob: 1b9d68d4566ab875480bfb1f1b96d41daa603d15 [file] [log] [blame]
Raphael Moll9267c942013-02-19 14:55:15 -08001<?xml version="1.0" encoding="UTF-8"?>
2<!--
Raphael Mollcfb7a3a2014-05-16 11:48:35 -07003 * Copyright (C) 2014 The Android Open Source Project
Raphael Moll9267c942013-02-19 14:55:15 -08004 *
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<xsd:schema
Raphael Mollcfb7a3a2014-05-16 11:48:35 -070018 targetNamespace="http://schemas.android.com/sdk/android/repository/9"
Raphael Moll9267c942013-02-19 14:55:15 -080019 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
Raphael Mollcfb7a3a2014-05-16 11:48:35 -070020 xmlns:sdk="http://schemas.android.com/sdk/android/repository/9"
Raphael Moll9267c942013-02-19 14:55:15 -080021 elementFormDefault="qualified"
22 attributeFormDefault="unqualified"
23 version="1">
24
25 <!-- The repository contains a collection of downloadable items known as
26 "packages". Each package has a type and various attributes and contains
27 a list of file "archives" that can be downloaded for specific OSes.
28
29 An Android SDK repository is a web site that contains a "repository.xml"
30 file that conforms to this XML Schema.
31
32 History:
33 - v1 is used by the SDK Updater in Tools r3 and r4.
34
35 - v2 is used by the SDK Updater in Tools r5:
36 - It introduces a new <sample> repository type. Previously samples
37 were included in the <platform> packages. Instead this package is used
38 and and the samples are installed in $SDK/samples.
39 - All repository types have a new <obsolete> node. It works as a marker
40 to indicate the package is obsolete and should not be selected by default.
41 The UI also hides these out by default.
42
43 - v3 is used by the SDK Updater in Tools r8:
44 - It introduces a new <platform-tool> repository type. Previously platform-specific
45 tools were included in the <platform> packages. Instead this package is used
46 and platform-specific tools are installed in $SDK/platform-tools
47 - There's a new element <min-platform-tools-rev> in <tool>. The tool package now
48 requires that at least some minimal version of <platform-tool> be installed.
49 - It removes the <addon> repository type, which is now in its own XML Schema.
50
51 - v4 is used by the SDK Updater in Tools r12:
52 - <extra> element now has a <project-files> element that contains 1 or
53 or more <path>, each indicating the relative path of a file that this package
54 can contribute to installed projects.
55 - <platform> element now has a mandatory <layoutlib> that indicates the API
56 and revision of that layout library for this particular platform.
57
58 - v5 is used by the SDK Manager in Tools r14:
59 - <extra> now has an <old-paths> element, a ;-separated list of old paths that
60 should be detected and migrated to the new <path> for that package.
61 - <platform> has a new optional <abi-included> that describes the ABI of the
62 system image included in the platform, if any.
63 - New <system-image> package type, to store system images outside of <platform>s.
64 - New <source> package type.
65
66 - v6 is used by the SDK Manager in Tools r18:
67 - <extra> packages are removed. They are served only by the addon XML.
68 - <platform>, <system-image>, <source>, <tool>, <platform-tool>, <doc>
69 and <sample> get a new optional field <beta-rc> which can be used to indicate
70 the package is a Beta Release Candidate and not a final release.
71
72 - v7 is used by the SDK Manager in Tools r20:
73 - For <tool> and <platform-tool> packages, the <revision> element becomes a
74 a "full revision" element with <major>, <minor>, <micro> and <preview> sub-elements.
75 - The <beta-rc> element is no longer supported, it is replaced by
76 <revision> -> <preview> and is only for <tool> and <platform-tool> packages.
77 - <min-tools-rev> and <min-platform-tools-rev> also become a full revision element.
78
Raphael Mollcfb7a3a2014-05-16 11:48:35 -070079 - v8 is used by the SDK Manager in Tools r22.0:
Raphael Moll9267c942013-02-19 14:55:15 -080080 - It introduces the new <build-tool> repository type, which contains build-specific
81 tools that were before placed in either <tool> or <platform-tool> (e.g. ant,
82 aapt, aidl, etc.)
83 - <tool> has a new "min-build-tool" attribute.
Raphael Mollcfb7a3a2014-05-16 11:48:35 -070084
85 - v9 is used by the SDK Manager in Tools r22.6:
86 - It introduces a sub-tag for the <system-image> repository type.
Raphael Moll9267c942013-02-19 14:55:15 -080087 -->
88
89 <xsd:element name="sdk-repository" type="sdk:repositoryType" />
90
91 <xsd:complexType name="repositoryType">
92 <xsd:annotation>
93 <xsd:documentation>
94 The repository contains a collection of downloadable packages.
95 </xsd:documentation>
96 </xsd:annotation>
97 <xsd:choice minOccurs="0" maxOccurs="unbounded">
98 <xsd:element name="platform" type="sdk:platformType" />
99 <xsd:element name="system-image" type="sdk:systemImageType" />
100 <xsd:element name="source" type="sdk:sourceType" />
101 <xsd:element name="tool" type="sdk:toolType" />
102 <xsd:element name="platform-tool" type="sdk:platformToolType" />
103 <xsd:element name="build-tool" type="sdk:buildToolType" />
104 <xsd:element name="doc" type="sdk:docType" />
105 <xsd:element name="sample" type="sdk:sampleType" />
106 <xsd:element name="license" type="sdk:licenseType" />
107 </xsd:choice>
108 </xsd:complexType>
109
Raphael Mollcfb7a3a2014-05-16 11:48:35 -0700110
Raphael Moll9267c942013-02-19 14:55:15 -0800111 <!-- The definition of an SDK platform package. -->
112
113 <xsd:complexType name="platformType">
114 <xsd:annotation>
115 <xsd:documentation>An SDK platform package.</xsd:documentation>
116 </xsd:annotation>
117 <xsd:all>
118 <!-- The Android platform version. It is string such as "1.0". -->
119 <xsd:element name="version" type="xsd:normalizedString" />
120 <!-- The Android API Level for the platform. An int > 0. -->
121 <xsd:element name="api-level" type="xsd:positiveInteger" />
122 <!-- The optional codename for this platform, if it's a preview. -->
123 <xsd:element name="codename" type="xsd:string" minOccurs="0" />
124 <!-- The revision, an int > 0, incremented each time a new
125 package is generated. -->
126 <xsd:element name="revision" type="xsd:positiveInteger" />
127
128 <!-- Information on the layoutlib packaged in this platform. -->
129 <xsd:element name="layoutlib" type="sdk:layoutlibType" />
130
131 <!-- optional elements -->
132
133 <!-- The optional license of this package. If present, users will have
134 to agree to it before downloading. -->
135 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
136 <!-- The optional description of this package. -->
137 <xsd:element name="description" type="xsd:string" minOccurs="0" />
138 <!-- The optional description URL of this package -->
139 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
140 <!-- The optional release note for this package. -->
141 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
142 <!-- The optional release note URL of this package -->
143 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
144 <!-- A list of file archives for this package. -->
145 <xsd:element name="archives" type="sdk:archivesType" />
146 <!-- The minimal revision of tools required by this package.
147 Optional. If present, must be a revision element. -->
148 <xsd:element name="min-tools-rev" type="sdk:revisionType" minOccurs="0" />
149
150 <!-- The ABI of the system image *included* in this platform, if any.
151 When the field is present, it means the platform already embeds one
152 system image. A platform can also have any number of external
153 &lt;system-image&gt; associated with it. -->
154 <xsd:element name="included-abi" type="sdk:abiType" minOccurs="0" />
155
156 <!-- An optional element indicating the package is obsolete.
157 The string content is however currently not defined and ignored. -->
158 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
159 </xsd:all>
160 </xsd:complexType>
161
162
163 <!-- The definition of a layout library used by a platform. -->
164
165 <xsd:complexType name="layoutlibType" >
166 <xsd:annotation>
167 <xsd:documentation>
168 Version information for a layoutlib included in a platform.
169 </xsd:documentation>
170 </xsd:annotation>
171 <xsd:all>
172 <!-- The layoutlib API level, an int > 0,
173 incremented with each new incompatible lib. -->
174 <xsd:element name="api" type="xsd:positiveInteger" />
175 <!-- The incremental minor revision for that API, e.g. in case of bug fixes.
176 Optional. An int >= 0, assumed to be 0 if the element is missing. -->
177 <xsd:element name="revision" type="xsd:nonNegativeInteger" minOccurs="0" />
178 </xsd:all>
179 </xsd:complexType>
180
181
182 <!-- The definition of a system image used by a platform. -->
183
184 <xsd:complexType name="systemImageType" >
185 <xsd:annotation>
186 <xsd:documentation>
187 System Image for a platform.
188 </xsd:documentation>
189 </xsd:annotation>
190 <xsd:all>
Raphael Mollcfb7a3a2014-05-16 11:48:35 -0700191 <!-- Implementation detail:
192 any change here must be synchronized within a new sdk-sys-img-N.xsd
193 -->
194
Raphael Moll9267c942013-02-19 14:55:15 -0800195 <!-- api-level + codename identifies the platform to which this system image belongs. -->
196
197 <!-- The Android API Level for the platform. An int > 0. -->
198 <xsd:element name="api-level" type="xsd:positiveInteger" />
199 <!-- The optional codename for this platform, if it's a preview. -->
200 <xsd:element name="codename" type="xsd:string" minOccurs="0" />
201
202 <!-- The revision, an int > 0, incremented each time a new
203 package is generated. -->
204 <xsd:element name="revision" type="xsd:positiveInteger" />
205
Raphael Mollcfb7a3a2014-05-16 11:48:35 -0700206 <!-- The tag of the system emulated by this image. -->
207 <xsd:element name="tag-id" type="sdk:idType" />
208 <!-- The displayed tag of the system emulated by this image. Optional. -->
209 <xsd:element name="tag-display" type="xsd:normalizedString" minOccurs="0" />
210
Raphael Moll9267c942013-02-19 14:55:15 -0800211 <!-- The ABI of the system emulated by this image. -->
212 <xsd:element name="abi" type="sdk:abiType" />
213
214 <!-- The optional license of this package. If present, users will have
215 to agree to it before downloading. -->
216 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
217 <!-- The optional description of this package. -->
218 <xsd:element name="description" type="xsd:string" minOccurs="0" />
219 <!-- The optional description URL of this package -->
220 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
221 <!-- The optional release note for this package. -->
222 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
223 <!-- The optional release note URL of this package -->
224 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
225
226 <!-- A list of file archives for this package. -->
227 <xsd:element name="archives" type="sdk:archivesType" />
228
229 <!-- An optional element indicating the package is obsolete.
230 The string content is however currently not defined and ignored. -->
231 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
232 </xsd:all>
233 </xsd:complexType>
234
235
Raphael Mollcfb7a3a2014-05-16 11:48:35 -0700236 <xsd:simpleType name="idType">
237 <xsd:annotation>
238 <xsd:documentation>
239 A tag string for a system image can only be a simple alphanumeric string.
240 </xsd:documentation>
241 </xsd:annotation>
242 <xsd:restriction base="xsd:token">
243 <xsd:pattern value="[a-zA-Z0-9_-]+"/>
244 </xsd:restriction>
245 </xsd:simpleType>
246
247
Raphael Moll9267c942013-02-19 14:55:15 -0800248 <!-- The definition of the ABI supported by a platform's system image. -->
249
250 <xsd:simpleType name="abiType">
251 <xsd:annotation>
252 <xsd:documentation>The ABI of a platform's system image.</xsd:documentation>
253 </xsd:annotation>
254 <xsd:restriction base="xsd:token">
255 <xsd:enumeration value="armeabi" />
256 <xsd:enumeration value="armeabi-v7a" />
257 <xsd:enumeration value="x86" />
258 <xsd:enumeration value="mips" />
259 </xsd:restriction>
260 </xsd:simpleType>
261
262
263 <!-- The definition of a source package. -->
264
265 <xsd:complexType name="sourceType" >
266 <xsd:annotation>
267 <xsd:documentation>
268 Sources for a platform.
269 </xsd:documentation>
270 </xsd:annotation>
271 <xsd:all>
272 <!-- api-level + codename identifies the platform to which this source belongs. -->
273
274 <!-- The Android API Level for the platform. An int > 0. -->
275 <xsd:element name="api-level" type="xsd:positiveInteger" />
276 <!-- The optional codename for this platform, if it's a preview. -->
277 <xsd:element name="codename" type="xsd:string" minOccurs="0" />
278
279 <!-- The revision, an int > 0, incremented each time a new
280 package is generated. -->
281 <xsd:element name="revision" type="xsd:positiveInteger" />
282
283 <!-- The optional license of this package. If present, users will have
284 to agree to it before downloading. -->
285 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
286 <!-- The optional description of this package. -->
287 <xsd:element name="description" type="xsd:string" minOccurs="0" />
288 <!-- The optional description URL of this package -->
289 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
290 <!-- The optional release note for this package. -->
291 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
292 <!-- The optional release note URL of this package -->
293 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
294
295 <!-- A list of file archives for this package. -->
296 <xsd:element name="archives" type="sdk:archivesType" />
297
298 <!-- An optional element indicating the package is obsolete.
299 The string content is however currently not defined and ignored. -->
300 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
301 </xsd:all>
302 </xsd:complexType>
303
304
305 <!-- The definition of an SDK tool package. -->
306
307 <xsd:complexType name="toolType" >
308 <xsd:annotation>
309 <xsd:documentation>An SDK tool package.</xsd:documentation>
310 </xsd:annotation>
311 <xsd:all>
312 <!-- The full revision (major.minor.micro.preview), incremented each
313 time a new package is generated. -->
314 <xsd:element name="revision" type="sdk:revisionType" />
315
316 <!-- The optional license of this package. If present, users will have
317 to agree to it before downloading. -->
318 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
319 <!-- The optional description of this package. -->
320 <xsd:element name="description" type="xsd:string" minOccurs="0" />
321 <!-- The optional description URL of this package -->
322 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
323 <!-- The optional release note for this package. -->
324 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
325 <!-- The optional release note URL of this package -->
326 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
327 <!-- A list of file archives for this package. -->
328 <xsd:element name="archives" type="sdk:archivesType" />
329
330 <!-- The minimal revision of platform-tools required by this package.
331 Mandatory. Must be a revision element. -->
332 <xsd:element name="min-platform-tools-rev" type="sdk:revisionType" />
333
334 <!-- An optional element indicating the package is obsolete.
335 The string content is however currently not defined and ignored. -->
336 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
337 </xsd:all>
338 </xsd:complexType>
339
340
341 <!-- The definition of an SDK platform-tool package. -->
342
343 <xsd:complexType name="platformToolType" >
344 <xsd:annotation>
345 <xsd:documentation>An SDK platform-tool package.</xsd:documentation>
346 </xsd:annotation>
347 <xsd:all>
348 <!-- The full revision (major.minor.micro.preview), incremented each
349 time a new package is generated. -->
350 <xsd:element name="revision" type="sdk:revisionType" />
351
352 <!-- The optional license of this package. If present, users will have
353 to agree to it before downloading. -->
354 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
355 <!-- The optional description of this package. -->
356 <xsd:element name="description" type="xsd:string" minOccurs="0" />
357 <!-- The optional description URL of this package -->
358 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
359 <!-- The optional release note for this package. -->
360 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
361 <!-- The optional release note URL of this package -->
362 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
363 <!-- A list of file archives for this package. -->
364 <xsd:element name="archives" type="sdk:archivesType" />
365
366 <!-- An optional element indicating the package is obsolete.
367 The string content is however currently not defined and ignored. -->
368 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
369 </xsd:all>
370 </xsd:complexType>
371
372 <!-- The definition of an SDK build-tool package. -->
373
374 <xsd:complexType name="buildToolType">
375 <xsd:annotation>
376 <xsd:documentation>An SDK build-tool package.</xsd:documentation>
377 </xsd:annotation>
378 <xsd:all>
379 <!-- The full revision (major.minor.micro.preview), incremented each
380 time a new package is generated. -->
381 <xsd:element name="revision" type="sdk:revisionType" />
382
383 <!-- optional elements -->
384
385 <!-- The optional license of this package. If present, users will have
386 to agree to it before downloading. -->
387 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
388 <!-- The optional description of this package. -->
389 <xsd:element name="description" type="xsd:string" minOccurs="0" />
390 <!-- The optional description URL of this package -->
391 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
392 <!-- The optional release note for this package. -->
393 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
394 <!-- The optional release note URL of this package -->
395 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
396 <!-- A list of file archives for this package. -->
397 <xsd:element name="archives" type="sdk:archivesType" />
398
399 <!-- An optional element indicating the package is obsolete.
400 The string content is however currently not defined and ignored. -->
401 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
402 </xsd:all>
403 </xsd:complexType>
404
405
406 <!-- The definition of an SDK doc package. -->
407
408 <xsd:complexType name="docType" >
409 <xsd:annotation>
410 <xsd:documentation>An SDK doc package.</xsd:documentation>
411 </xsd:annotation>
412 <xsd:all>
413 <!-- The Android API Level for the documentation. An int > 0. -->
414 <xsd:element name="api-level" type="xsd:positiveInteger" />
415 <!-- The optional codename for this doc, if it's a preview. -->
416 <xsd:element name="codename" type="xsd:string" minOccurs="0" />
417
418 <!-- The revision, an int > 0, incremented each time a new
419 package is generated. -->
420 <xsd:element name="revision" type="xsd:positiveInteger" />
421 <!-- The optional license of this package. If present, users will have
422 to agree to it before downloading. -->
423 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
424 <!-- The optional description of this package. -->
425 <xsd:element name="description" type="xsd:string" minOccurs="0" />
426 <!-- The optional description URL of this package -->
427 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
428 <!-- The optional release note for this package. -->
429 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
430 <!-- The optional release note URL of this package -->
431 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
432 <!-- A list of file archives for this package. -->
433 <xsd:element name="archives" type="sdk:archivesType" />
434
435
436 <!-- An optional element indicating the package is obsolete.
437 The string content is however currently not defined and ignored. -->
438 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
439 </xsd:all>
440 </xsd:complexType>
441
442
443 <!-- The definition of an SDK sample package. -->
444
445 <xsd:complexType name="sampleType" >
446 <xsd:annotation>
447 <xsd:documentation>An SDK sample package.</xsd:documentation>
448 </xsd:annotation>
449 <xsd:all>
450 <!-- The Android API Level for the documentation. An int > 0. -->
451 <xsd:element name="api-level" type="xsd:positiveInteger" />
452 <!-- The optional codename for this doc, if it's a preview. -->
453 <xsd:element name="codename" type="xsd:string" minOccurs="0" />
454
455 <!-- The revision, an int > 0, incremented each time a new
456 package is generated. -->
457 <xsd:element name="revision" type="xsd:positiveInteger" />
458 <!-- The optional license of this package. If present, users will have
459 to agree to it before downloading. -->
460 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" />
461 <!-- The optional description of this package. -->
462 <xsd:element name="description" type="xsd:string" minOccurs="0" />
463 <!-- The optional description URL of this package -->
464 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" />
465 <!-- The optional release note for this package. -->
466 <xsd:element name="release-note" type="xsd:string" minOccurs="0" />
467 <!-- The optional release note URL of this package -->
468 <xsd:element name="release-url" type="xsd:token" minOccurs="0" />
469 <!-- A list of file archives for this package. -->
470 <xsd:element name="archives" type="sdk:archivesType" />
471 <!-- The minimal revision of tools required by this package.
472 Optional. If present, must be a revision element. -->
473 <xsd:element name="min-tools-rev" type="sdk:revisionType" minOccurs="0" />
474
475
476 <!-- An optional element indicating the package is obsolete.
477 The string content is however currently not defined and ignored. -->
478 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" />
479 </xsd:all>
480 </xsd:complexType>
481
482
483 <!-- The definition of a path segment used by the extra element. -->
484
485 <xsd:simpleType name="segmentType">
486 <xsd:annotation>
487 <xsd:documentation>
488 One path segment for the install path of an extra element.
489 It must be a single-segment path.
490 </xsd:documentation>
491 </xsd:annotation>
492 <xsd:restriction base="xsd:token">
493 <xsd:pattern value="[a-zA-Z0-9_]+"/>
494 </xsd:restriction>
495 </xsd:simpleType>
496
497 <xsd:simpleType name="segmentListType">
498 <xsd:annotation>
499 <xsd:documentation>
500 A semi-colon separated list of a segmentTypes.
501 </xsd:documentation>
502 </xsd:annotation>
503 <xsd:restriction base="xsd:token">
504 <xsd:pattern value="[a-zA-Z0-9_;]+"/>
505 </xsd:restriction>
506 </xsd:simpleType>
507
508
509 <!-- The definition of a license to be referenced by the uses-license element. -->
510
511 <xsd:complexType name="licenseType">
512 <xsd:annotation>
513 <xsd:documentation>
514 A license definition. Such a license must be used later as a reference
515 using a uses-license element in one of the package elements.
516 </xsd:documentation>
517 </xsd:annotation>
518 <xsd:simpleContent>
519 <xsd:extension base="xsd:string">
520 <xsd:attribute name="id" type="xsd:ID" />
521 <xsd:attribute name="type" type="xsd:token" fixed="text" />
522 </xsd:extension>
523 </xsd:simpleContent>
524 </xsd:complexType>
525
526
527 <!-- Type describing the license used by a package.
528 The license MUST be defined using a license node and referenced
529 using the ref attribute of the license element inside a package.
530 -->
531
532 <xsd:complexType name="usesLicenseType">
533 <xsd:annotation>
534 <xsd:documentation>
535 Describes the license used by a package. The license MUST be defined
536 using a license node and referenced using the ref attribute of the
537 license element inside a package.
538 </xsd:documentation>
539 </xsd:annotation>
540 <xsd:attribute name="ref" type="xsd:IDREF" />
541 </xsd:complexType>
542
543
544 <!-- A collection of files that can be downloaded for a given architecture.
545 The <archives> node is mandatory in the repository elements and the
546 collection must have at least one <archive> declared.
547 Each archive is a zip file that will be unzipped in a location that depends
548 on its package type.
549 -->
550
551 <xsd:complexType name="archivesType">
552 <xsd:annotation>
553 <xsd:documentation>
554 A collection of files that can be downloaded for a given architecture.
555 The &lt;archives&gt; node is mandatory in the repository packages and the
556 collection must have at least one &lt;archive&gt; declared.
557 Each archive is a zip file that will be unzipped in a location that depends
558 on its package type.
559 </xsd:documentation>
560 </xsd:annotation>
561 <xsd:sequence minOccurs="1" maxOccurs="unbounded">
562 <!-- One archive file -->
563 <xsd:element name="archive">
564 <xsd:complexType>
565 <!-- Properties of the archive file -->
566 <xsd:all>
567 <!-- The size in bytes of the archive to download. -->
568 <xsd:element name="size" type="xsd:positiveInteger" />
569 <!-- The checksum of the archive file. -->
570 <xsd:element name="checksum" type="sdk:checksumType" />
571 <!-- The URL is an absolute URL if it starts with http://, https://
572 or ftp://. Otherwise it is relative to the parent directory that
573 contains this repository.xml -->
574 <xsd:element name="url" type="xsd:token" />
575 </xsd:all>
576
577 <!-- Attributes that identify the OS and architecture -->
578 <xsd:attribute name="os" use="required">
579 <xsd:simpleType>
580 <xsd:restriction base="xsd:token">
581 <xsd:enumeration value="any" />
582 <xsd:enumeration value="linux" />
583 <xsd:enumeration value="macosx" />
584 <xsd:enumeration value="windows" />
585 </xsd:restriction>
586 </xsd:simpleType>
587 </xsd:attribute>
588 <xsd:attribute name="arch" use="optional">
589 <xsd:simpleType>
590 <xsd:restriction base="xsd:token">
591 <xsd:enumeration value="any" />
592 <xsd:enumeration value="ppc" />
593 <xsd:enumeration value="x86" />
594 <xsd:enumeration value="x86_64" />
595 </xsd:restriction>
596 </xsd:simpleType>
597 </xsd:attribute>
598 </xsd:complexType>
599 </xsd:element>
600 </xsd:sequence>
601 </xsd:complexType>
602
603
604 <!-- A full revision, with a major.minor.micro and an optional preview number.
605 The major number is mandatory, the other elements are optional.
606 -->
607
608 <xsd:complexType name="revisionType">
609 <xsd:annotation>
610 <xsd:documentation>
611 A full revision, with a major.minor.micro and an
612 optional preview number. The major number is mandatory.
613 </xsd:documentation>
614 </xsd:annotation>
615 <xsd:all>
616 <!-- The major revision, an int > 0, incremented each time a new
617 package is generated. -->
618 <xsd:element name="major" type="xsd:positiveInteger" />
619 <!-- The minor revision, an int >= 0, incremented each time a new
620 minor package is generated. Assumed to be 0 if missing. -->
621 <xsd:element name="minor" type="xsd:nonNegativeInteger" minOccurs="0" />
622 <!-- The micro revision, an int >= 0, incremented each time a new
623 buf fix is generated. Assumed to be 0 if missing. -->
624 <xsd:element name="micro" type="xsd:nonNegativeInteger" minOccurs="0" />
625 <!-- The preview/release candidate revision, an int > 0,
626 incremented each time a new preview is generated.
627 Not present for final releases. -->
628 <xsd:element name="preview" type="xsd:positiveInteger" minOccurs="0" />
629 </xsd:all>
630 </xsd:complexType>
631
632
633 <!-- A collection of file paths available in an &lt;extra&gt; package
634 that can be installed in an Android project.
635 If present, the &lt;project-files&gt; collection must contain at least one path.
636 Each path is relative to the root directory of the package.
637 -->
638
639 <xsd:complexType name="projectFilesType">
640 <xsd:annotation>
641 <xsd:documentation>
642 A collection of file paths available in an &lt;extra&gt; package
643 that can be installed in an Android project.
644 If present, the &lt;project-files&gt; collection must contain at least one path.
645 Each path is relative to the root directory of the package.
646 </xsd:documentation>
647 </xsd:annotation>
648 <xsd:sequence minOccurs="1" maxOccurs="unbounded">
649 <!-- One JAR Path, relative to the root folder of the package. -->
650 <xsd:element name="path" type="xsd:string" />
651 </xsd:sequence>
652 </xsd:complexType>
653
654
655 <!-- The definition of a file checksum -->
656
657 <xsd:simpleType name="sha1Number">
658 <xsd:annotation>
659 <xsd:documentation>A SHA1 checksum.</xsd:documentation>
660 </xsd:annotation>
661 <xsd:restriction base="xsd:string">
662 <xsd:pattern value="([0-9a-fA-F]){40}"/>
663 </xsd:restriction>
664 </xsd:simpleType>
665
666 <xsd:complexType name="checksumType">
667 <xsd:annotation>
668 <xsd:documentation>A file checksum, currently only SHA1.</xsd:documentation>
669 </xsd:annotation>
670 <xsd:simpleContent>
671 <xsd:extension base="sdk:sha1Number">
672 <xsd:attribute name="type" type="xsd:token" fixed="sha1" />
673 </xsd:extension>
674 </xsd:simpleContent>
675 </xsd:complexType>
676
677</xsd:schema>