1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- 3 * Copyright (C) 2011 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 <xsd:schema 18 targetNamespace="http://schemas.android.com/sdk/android/repository/5" 19 xmlns:xsd="http://www.w3.org/2001/XMLSchema" 20 xmlns:sdk="http://schemas.android.com/sdk/android/repository/5" 21 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 Updater 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 67 <xsd:element name="sdk-repository" type="sdk:repositoryType" /> 68 69 <xsd:complexType name="repositoryType"> 70 <xsd:annotation> 71 <xsd:documentation> 72 The repository contains a collection of downloadable packages. 73 </xsd:documentation> 74 </xsd:annotation> 75 <xsd:choice minOccurs="0" maxOccurs="unbounded"> 76 <xsd:element name="platform" type="sdk:platformType" /> 77 <xsd:element name="system-image" type="sdk:systemImageType" /> 78 <xsd:element name="source" type="sdk:sourceType" /> 79 <xsd:element name="tool" type="sdk:toolType" /> 80 <xsd:element name="platform-tool" type="sdk:platformToolType" /> 81 <xsd:element name="doc" type="sdk:docType" /> 82 <xsd:element name="sample" type="sdk:sampleType" /> 83 <xsd:element name="extra" type="sdk:extraType" /> 84 <xsd:element name="license" type="sdk:licenseType" /> 85 </xsd:choice> 86 </xsd:complexType> 87 88 <!-- The definition of an SDK platform package. --> 89 90 <xsd:complexType name="platformType"> 91 <xsd:annotation> 92 <xsd:documentation>An SDK platform package.</xsd:documentation> 93 </xsd:annotation> 94 <xsd:all> 95 <!-- The Android platform version. It is string such as "1.0". --> 96 <xsd:element name="version" type="xsd:normalizedString" /> 97 <!-- The Android API Level for the platform. An int > 0. --> 98 <xsd:element name="api-level" type="xsd:positiveInteger" /> 99 <!-- The optional codename for this platform, if it's a preview. --> 100 <xsd:element name="codename" type="xsd:string" minOccurs="0" /> 101 <!-- The revision, an int > 0, incremented each time a new 102 package is generated. --> 103 <xsd:element name="revision" type="xsd:positiveInteger" /> 104 105 <!-- Information on the layoutlib packaged in this platform. --> 106 <xsd:element name="layoutlib" type="sdk:layoutlibType" /> 107 108 <!-- optional elements --> 109 110 <!-- The optional license of this package. If present, users will have 111 to agree to it before downloading. --> 112 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 113 <!-- The optional description of this package. --> 114 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 115 <!-- The optional description URL of this package --> 116 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 117 <!-- The optional release note for this package. --> 118 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 119 <!-- The optional release note URL of this package --> 120 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 121 <!-- A list of file archives for this package. --> 122 <xsd:element name="archives" type="sdk:archivesType" /> 123 <!-- The minimal revision of tools required by this package. 124 Optional. If present, must be an int > 0. --> 125 <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" /> 126 127 <!-- The ABI of the system image *included* in this platform, if any. 128 When the field is present, it means the platform already embeds one 129 system image. A platform can also have any number of external 130 <system-image> associated with it. --> 131 <xsd:element name="included-abi" type="sdk:abiType" minOccurs="0" /> 132 133 <!-- An optional element indicating the package is obsolete. 134 The string content is however currently not defined and ignored. --> 135 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 136 </xsd:all> 137 </xsd:complexType> 138 139 140 <!-- The definition of a layout library used by a platform. --> 141 142 <xsd:complexType name="layoutlibType" > 143 <xsd:annotation> 144 <xsd:documentation> 145 Version information for a layoutlib included in a platform. 146 </xsd:documentation> 147 </xsd:annotation> 148 <xsd:all> 149 <!-- The layoutlib API level, an int > 0, 150 incremented with each new incompatible lib. --> 151 <xsd:element name="api" type="xsd:positiveInteger" /> 152 <!-- The incremental minor revision for that API, e.g. in case of bug fixes. 153 Optional. An int >= 0, assumed to be 0 if the element is missing. --> 154 <xsd:element name="revision" type="xsd:nonNegativeInteger" minOccurs="0" /> 155 </xsd:all> 156 </xsd:complexType> 157 158 159 <!-- The definition of a system image used by a platform. --> 160 161 <xsd:complexType name="systemImageType" > 162 <xsd:annotation> 163 <xsd:documentation> 164 System Image for a platform. 165 </xsd:documentation> 166 </xsd:annotation> 167 <xsd:all> 168 <!-- api-level + codename identifies the platform to which this system image belongs. --> 169 170 <!-- The Android API Level for the platform. An int > 0. --> 171 <xsd:element name="api-level" type="xsd:positiveInteger" /> 172 <!-- The optional codename for this platform, if it's a preview. --> 173 <xsd:element name="codename" type="xsd:string" minOccurs="0" /> 174 175 <!-- The revision, an int > 0, incremented each time a new 176 package is generated. --> 177 <xsd:element name="revision" type="xsd:positiveInteger" /> 178 179 <!-- The ABI of the system emulated by this image. --> 180 <xsd:element name="abi" type="sdk:abiType" /> 181 182 <!-- The optional license of this package. If present, users will have 183 to agree to it before downloading. --> 184 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 185 <!-- The optional description of this package. --> 186 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 187 <!-- The optional description URL of this package --> 188 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 189 <!-- The optional release note for this package. --> 190 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 191 <!-- The optional release note URL of this package --> 192 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 193 194 <!-- A list of file archives for this package. --> 195 <xsd:element name="archives" type="sdk:archivesType" /> 196 </xsd:all> 197 </xsd:complexType> 198 199 <!-- The definition of the ABI supported by a platform's system image. --> 200 201 <xsd:simpleType name="abiType"> 202 <xsd:annotation> 203 <xsd:documentation>The ABI of a platform's system image.</xsd:documentation> 204 </xsd:annotation> 205 <xsd:restriction base="xsd:token"> 206 <xsd:enumeration value="armeabi" /> 207 <xsd:enumeration value="armeabi-v7a" /> 208 <xsd:enumeration value="x86" /> 209 </xsd:restriction> 210 </xsd:simpleType> 211 212 213 <!-- The definition of a source package. --> 214 215 <xsd:complexType name="sourceType" > 216 <xsd:annotation> 217 <xsd:documentation> 218 Sources for a platform. 219 </xsd:documentation> 220 </xsd:annotation> 221 <xsd:all> 222 <!-- api-level + codename identifies the platform to which this source belongs. --> 223 224 <!-- The Android API Level for the platform. An int > 0. --> 225 <xsd:element name="api-level" type="xsd:positiveInteger" /> 226 <!-- The optional codename for this platform, if it's a preview. --> 227 <xsd:element name="codename" type="xsd:string" minOccurs="0" /> 228 229 <!-- The revision, an int > 0, incremented each time a new 230 package is generated. --> 231 <xsd:element name="revision" type="xsd:positiveInteger" /> 232 233 <!-- The optional license of this package. If present, users will have 234 to agree to it before downloading. --> 235 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 236 <!-- The optional description of this package. --> 237 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 238 <!-- The optional description URL of this package --> 239 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 240 <!-- The optional release note for this package. --> 241 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 242 <!-- The optional release note URL of this package --> 243 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 244 245 <!-- A list of file archives for this package. --> 246 <xsd:element name="archives" type="sdk:archivesType" /> 247 </xsd:all> 248 </xsd:complexType> 249 250 251 <!-- The definition of an SDK tool package. --> 252 253 <xsd:complexType name="toolType" > 254 <xsd:annotation> 255 <xsd:documentation>An SDK tool package.</xsd:documentation> 256 </xsd:annotation> 257 <xsd:all> 258 <!-- The revision, an int > 0, incremented each time a new 259 package is generated. --> 260 <xsd:element name="revision" type="xsd:positiveInteger" /> 261 <!-- The optional license of this package. If present, users will have 262 to agree to it before downloading. --> 263 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 264 <!-- The optional description of this package. --> 265 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 266 <!-- The optional description URL of this package --> 267 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 268 <!-- The optional release note for this package. --> 269 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 270 <!-- The optional release note URL of this package --> 271 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 272 <!-- A list of file archives for this package. --> 273 <xsd:element name="archives" type="sdk:archivesType" /> 274 <!-- An optional element indicating the package is obsolete. 275 The string content is however currently not defined and ignored. --> 276 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 277 278 <!-- The minimal revision of platform-tools required by this package. 279 Mandatory. Must be an int > 0. --> 280 <xsd:element name="min-platform-tools-rev" type="xsd:positiveInteger" /> 281 </xsd:all> 282 </xsd:complexType> 283 284 285 <!-- The definition of an SDK platform-tool package. --> 286 287 <xsd:complexType name="platformToolType" > 288 <xsd:annotation> 289 <xsd:documentation>An SDK platform-tool package.</xsd:documentation> 290 </xsd:annotation> 291 <xsd:all> 292 <!-- The revision, an int > 0, incremented each time a new 293 package is generated. --> 294 <xsd:element name="revision" type="xsd:positiveInteger" /> 295 <!-- The optional license of this package. If present, users will have 296 to agree to it before downloading. --> 297 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 298 <!-- The optional description of this package. --> 299 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 300 <!-- The optional description URL of this package --> 301 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 302 <!-- The optional release note for this package. --> 303 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 304 <!-- The optional release note URL of this package --> 305 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 306 <!-- A list of file archives for this package. --> 307 <xsd:element name="archives" type="sdk:archivesType" /> 308 309 <!-- An optional element indicating the package is obsolete. 310 The string content is however currently not defined and ignored. --> 311 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 312 </xsd:all> 313 </xsd:complexType> 314 315 316 <!-- The definition of an SDK doc package. --> 317 318 <xsd:complexType name="docType" > 319 <xsd:annotation> 320 <xsd:documentation>An SDK doc package.</xsd:documentation> 321 </xsd:annotation> 322 <xsd:all> 323 <!-- The Android API Level for the documentation. An int > 0. --> 324 <xsd:element name="api-level" type="xsd:positiveInteger" /> 325 <!-- The optional codename for this doc, if it's a preview. --> 326 <xsd:element name="codename" type="xsd:string" minOccurs="0" /> 327 328 <!-- The revision, an int > 0, incremented each time a new 329 package is generated. --> 330 <xsd:element name="revision" type="xsd:positiveInteger" /> 331 <!-- The optional license of this package. If present, users will have 332 to agree to it before downloading. --> 333 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 334 <!-- The optional description of this package. --> 335 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 336 <!-- The optional description URL of this package --> 337 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 338 <!-- The optional release note for this package. --> 339 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 340 <!-- The optional release note URL of this package --> 341 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 342 <!-- A list of file archives for this package. --> 343 <xsd:element name="archives" type="sdk:archivesType" /> 344 345 <!-- An optional element indicating the package is obsolete. 346 The string content is however currently not defined and ignored. --> 347 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 348 </xsd:all> 349 </xsd:complexType> 350 351 352 <!-- The definition of an SDK sample package. --> 353 354 <xsd:complexType name="sampleType" > 355 <xsd:annotation> 356 <xsd:documentation>An SDK sample package.</xsd:documentation> 357 </xsd:annotation> 358 <xsd:all> 359 <!-- The Android API Level for the documentation. An int > 0. --> 360 <xsd:element name="api-level" type="xsd:positiveInteger" /> 361 <!-- The optional codename for this doc, if it's a preview. --> 362 <xsd:element name="codename" type="xsd:string" minOccurs="0" /> 363 364 <!-- The revision, an int > 0, incremented each time a new 365 package is generated. --> 366 <xsd:element name="revision" type="xsd:positiveInteger" /> 367 <!-- The optional license of this package. If present, users will have 368 to agree to it before downloading. --> 369 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 370 <!-- The optional description of this package. --> 371 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 372 <!-- The optional description URL of this package --> 373 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 374 <!-- The optional release note for this package. --> 375 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 376 <!-- The optional release note URL of this package --> 377 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 378 <!-- A list of file archives for this package. --> 379 <xsd:element name="archives" type="sdk:archivesType" /> 380 <!-- The minimal revision of tools required by this package. 381 Optional. If present, must be an int > 0. --> 382 <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" /> 383 384 <!-- An optional element indicating the package is obsolete. 385 The string content is however currently not defined and ignored. --> 386 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 387 </xsd:all> 388 </xsd:complexType> 389 390 391 <!-- The definition of an SDK extra package. This kind of package is for 392 "free" content. Such packages are installed in SDK/vendor/path. 393 394 Important implementation detail: this element is duplicated in the 395 sdk-addon-N.xsd schema and must be kept in sync there. This is 396 simpler than trying to use some kind of of include or to request 397 that clients use a third XML schema for common parts. 398 --> 399 400 <xsd:complexType name="extraType" > 401 <xsd:annotation> 402 <xsd:documentation> 403 An SDK extra package. This kind of package is for "free" content. 404 Such packages are installed in SDK/vendor/path. 405 </xsd:documentation> 406 </xsd:annotation> 407 <xsd:all> 408 409 <!-- The install path top folder name. 410 The segments "add-ons", "docs", "platforms", "platform-tools", "temp" 411 and "tools" are reserved and cannot be used. 412 --> 413 <xsd:element name="vendor" type="sdk:segmentType" /> 414 415 <!-- The install path sub-folder name. --> 416 <xsd:element name="path" type="sdk:segmentType" /> 417 418 <!-- A semi-colon separated list of "obsolete" path names which are equivalent 419 to the current 'path' name. When a package is seen using an old-paths' name, 420 the package manager will try to upgrade it to the new path. --> 421 <xsd:element name="old-paths" type="sdk:segmentListType" minOccurs="0" /> 422 423 <!-- The revision, an int > 0, incremented each time a new 424 package is generated. --> 425 <xsd:element name="revision" type="xsd:positiveInteger" /> 426 427 <!-- A list of file archives for this package. --> 428 <xsd:element name="archives" type="sdk:archivesType" /> 429 430 <!-- optional elements --> 431 432 <!-- The optional license of this package. If present, users will have 433 to agree to it before downloading. --> 434 <xsd:element name="uses-license" type="sdk:usesLicenseType" minOccurs="0" /> 435 <!-- The optional description of this package. --> 436 <xsd:element name="description" type="xsd:string" minOccurs="0" /> 437 <!-- The optional description URL of this package --> 438 <xsd:element name="desc-url" type="xsd:token" minOccurs="0" /> 439 <!-- The optional release note for this package. --> 440 <xsd:element name="release-note" type="xsd:string" minOccurs="0" /> 441 <!-- The optional release note URL of this package --> 442 <xsd:element name="release-url" type="xsd:token" minOccurs="0" /> 443 <!-- The minimal revision of tools required by this package. 444 Optional. If present, must be an int > 0. --> 445 <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" /> 446 <!-- The minimal API level required by this package. 447 Optional. If present, must be an int > 0. --> 448 <xsd:element name="min-api-level" type="xsd:positiveInteger" minOccurs="0" /> 449 <!-- An optional element indicating the package is obsolete. 450 The string content is however currently not defined and ignored. --> 451 <xsd:element name="obsolete" type="xsd:string" minOccurs="0" /> 452 453 <!-- A list of project files contributed by this package. Optional. --> 454 <xsd:element name="project-files" type="sdk:projectFilesType" minOccurs="0" /> 455 </xsd:all> 456 </xsd:complexType> 457 458 459 <!-- The definition of a path segment used by the extra element. --> 460 461 <xsd:simpleType name="segmentType"> 462 <xsd:annotation> 463 <xsd:documentation> 464 One path segment for the install path of an extra element. 465 It must be a single-segment path. 466 </xsd:documentation> 467 </xsd:annotation> 468 <xsd:restriction base="xsd:token"> 469 <xsd:pattern value="[a-zA-Z0-9_]+"/> 470 </xsd:restriction> 471 </xsd:simpleType> 472 473 <xsd:simpleType name="segmentListType"> 474 <xsd:annotation> 475 <xsd:documentation> 476 A semi-colon separated list of a segmentTypes. 477 </xsd:documentation> 478 </xsd:annotation> 479 <xsd:restriction base="xsd:token"> 480 <xsd:pattern value="[a-zA-Z0-9_;]+"/> 481 </xsd:restriction> 482 </xsd:simpleType> 483 484 485 <!-- The definition of a license to be referenced by the uses-license element. --> 486 487 <xsd:complexType name="licenseType"> 488 <xsd:annotation> 489 <xsd:documentation> 490 A license definition. Such a license must be used later as a reference 491 using a uses-license element in one of the package elements. 492 </xsd:documentation> 493 </xsd:annotation> 494 <xsd:simpleContent> 495 <xsd:extension base="xsd:string"> 496 <xsd:attribute name="id" type="xsd:ID" /> 497 <xsd:attribute name="type" type="xsd:token" fixed="text" /> 498 </xsd:extension> 499 </xsd:simpleContent> 500 </xsd:complexType> 501 502 503 <!-- Type describing the license used by a package. 504 The license MUST be defined using a license node and referenced 505 using the ref attribute of the license element inside a package. 506 --> 507 508 <xsd:complexType name="usesLicenseType"> 509 <xsd:annotation> 510 <xsd:documentation> 511 Describes the license used by a package. The license MUST be defined 512 using a license node and referenced using the ref attribute of the 513 license element inside a package. 514 </xsd:documentation> 515 </xsd:annotation> 516 <xsd:attribute name="ref" type="xsd:IDREF" /> 517 </xsd:complexType> 518 519 520 <!-- A collection of files that can be downloaded for a given architecture. 521 The <archives> node is mandatory in the repository elements and the 522 collection must have at least one <archive> declared. 523 Each archive is a zip file that will be unzipped in a location that depends 524 on its package type. 525 --> 526 527 <xsd:complexType name="archivesType"> 528 <xsd:annotation> 529 <xsd:documentation> 530 A collection of files that can be downloaded for a given architecture. 531 The <archives> node is mandatory in the repository packages and the 532 collection must have at least one <archive> declared. 533 Each archive is a zip file that will be unzipped in a location that depends 534 on its package type. 535 </xsd:documentation> 536 </xsd:annotation> 537 <xsd:sequence minOccurs="1" maxOccurs="unbounded"> 538 <!-- One archive file --> 539 <xsd:element name="archive"> 540 <xsd:complexType> 541 <!-- Properties of the archive file --> 542 <xsd:all> 543 <!-- The size in bytes of the archive to download. --> 544 <xsd:element name="size" type="xsd:positiveInteger" /> 545 <!-- The checksum of the archive file. --> 546 <xsd:element name="checksum" type="sdk:checksumType" /> 547 <!-- The URL is an absolute URL if it starts with http://, https:// 548 or ftp://. Otherwise it is relative to the parent directory that 549 contains this repository.xml --> 550 <xsd:element name="url" type="xsd:token" /> 551 </xsd:all> 552 553 <!-- Attributes that identify the OS and architecture --> 554 <xsd:attribute name="os" use="required"> 555 <xsd:simpleType> 556 <xsd:restriction base="xsd:token"> 557 <xsd:enumeration value="any" /> 558 <xsd:enumeration value="linux" /> 559 <xsd:enumeration value="macosx" /> 560 <xsd:enumeration value="windows" /> 561 </xsd:restriction> 562 </xsd:simpleType> 563 </xsd:attribute> 564 <xsd:attribute name="arch" use="optional"> 565 <xsd:simpleType> 566 <xsd:restriction base="xsd:token"> 567 <xsd:enumeration value="any" /> 568 <xsd:enumeration value="ppc" /> 569 <xsd:enumeration value="x86" /> 570 <xsd:enumeration value="x86_64" /> 571 </xsd:restriction> 572 </xsd:simpleType> 573 </xsd:attribute> 574 </xsd:complexType> 575 </xsd:element> 576 </xsd:sequence> 577 </xsd:complexType> 578 579 580 <!-- A collection of file paths available in an <extra> package 581 that can be installed in an Android project. 582 If present, the <project-files> collection must contain at least one path. 583 Each path is relative to the root directory of the package. 584 --> 585 586 <xsd:complexType name="projectFilesType"> 587 <xsd:annotation> 588 <xsd:documentation> 589 A collection of file paths available in an <extra> package 590 that can be installed in an Android project. 591 If present, the <project-files> collection must contain at least one path. 592 Each path is relative to the root directory of the package. 593 </xsd:documentation> 594 </xsd:annotation> 595 <xsd:sequence minOccurs="1" maxOccurs="unbounded"> 596 <!-- One JAR Path, relative to the root folder of the package. --> 597 <xsd:element name="path" type="xsd:string" /> 598 </xsd:sequence> 599 </xsd:complexType> 600 601 602 <!-- The definition of a file checksum --> 603 604 <xsd:simpleType name="sha1Number"> 605 <xsd:annotation> 606 <xsd:documentation>A SHA1 checksum.</xsd:documentation> 607 </xsd:annotation> 608 <xsd:restriction base="xsd:string"> 609 <xsd:pattern value="([0-9a-fA-F]){40}"/> 610 </xsd:restriction> 611 </xsd:simpleType> 612 613 <xsd:complexType name="checksumType"> 614 <xsd:annotation> 615 <xsd:documentation>A file checksum, currently only SHA1.</xsd:documentation> 616 </xsd:annotation> 617 <xsd:simpleContent> 618 <xsd:extension base="sdk:sha1Number"> 619 <xsd:attribute name="type" type="xsd:token" fixed="sha1" /> 620 </xsd:extension> 621 </xsd:simpleContent> 622 </xsd:complexType> 623 624 </xsd:schema> 625