<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Copyright (C) 2009 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<xsd:schema
    targetNamespace="http://schemas.android.com/sdk/android/repository/2"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sr2="http://schemas.android.com/sdk/android/repository/2"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1">

    <!-- The repository contains a collection of downloadable items known as
         "packages". Each package has a type and various attributes and contains
         a list of file "archives" that can be downloaded for specific OSes.

         An Android SDK repository is a web site that contains a "repository.xml"
         file that conforms to this XML Schema.

         History:
         - v1 is used by the SDK Updater in Tools r3 and r4.
         - v2 is used by the SDK Updater in Tools r5:
            - new <sample> repository type.
            - new <obsolete> in all repository types.
    -->

    <xsd:element name="sdk-repository" type="sr2:repositoryType" />

    <xsd:complexType name="repositoryType">
        <xsd:annotation>
            <xsd:documentation>
                The repository contains a collection of downloadable packages.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="platform" type="sr2:platformType" />
            <xsd:element name="add-on"   type="sr2:addonType"    />
            <xsd:element name="tool"     type="sr2:toolType"     />
            <xsd:element name="doc"      type="sr2:docType"      />
            <xsd:element name="sample"   type="sr2:sampleType"   />
            <xsd:element name="extra"    type="sr2:extraType"    />
            <xsd:element name="license"  type="sr2:licenseType"  />
        </xsd:choice>
    </xsd:complexType>

    <!-- The definition of an SDK platform package. -->

    <xsd:complexType name="platformType">
        <xsd:annotation>
            <xsd:documentation>An SDK platform package.</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The Android platform version. It is string such as "1.0". -->
            <xsd:element name="version"   type="xsd:normalizedString" />
            <!-- The Android API Level for the platform. An int > 0. -->
            <xsd:element name="api-level" type="xsd:positiveInteger"  />
            <!-- The optional codename for this platform, if it's a preview. -->
            <xsd:element name="codename"  type="xsd:string" minOccurs="0" />

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />
            <!-- The minimal revision of tools required by this package.
                 Optional. If present, must be an int > 0. -->
            <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of an SDK Add-on package. -->

    <xsd:complexType name="addonType">
        <xsd:annotation>
            <xsd:documentation>An SDK add-on package.</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The name of the add-on. -->
            <xsd:element name="name"      type="xsd:normalizedString" />
            <!-- The vendor of the add-on. -->
            <xsd:element name="vendor"    type="xsd:normalizedString" />
            <!-- The Android API Level for the add-on. An int > 0. -->
            <xsd:element name="api-level" type="xsd:positiveInteger"  />
            <!-- Note: Add-ons do not support 'codename' (a.k.a. API previews). -->

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />

            <!-- An add-on can declare 0 or more libraries. -->

            <xsd:element name="libs">
                <xsd:complexType>
                    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                        <xsd:element name="lib">
                            <xsd:complexType>
                                <xsd:all>
                                    <!-- The name of the library. -->
                                    <xsd:element name="name" type="xsd:normalizedString" />
                                    <!-- The optional description of this add-on library. -->
                                    <xsd:element name="description" type="xsd:string" minOccurs="0" />
                                </xsd:all>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of an SDK tool package. -->

    <xsd:complexType name="toolType" >
        <xsd:annotation>
            <xsd:documentation>An SDK tool package.</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of an SDK doc package. -->

    <xsd:complexType name="docType" >
        <xsd:annotation>
            <xsd:documentation>An SDK doc package.</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The Android API Level for the documentation. An int > 0. -->
            <xsd:element name="api-level" type="xsd:positiveInteger"  />
            <!-- The optional codename for this doc, if it's a preview. -->
            <xsd:element name="codename"  type="xsd:string" minOccurs="0" />

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of an SDK sample package. -->

    <xsd:complexType name="sampleType" >
        <xsd:annotation>
            <xsd:documentation>An SDK sample package.</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The Android API Level for the documentation. An int > 0. -->
            <xsd:element name="api-level" type="xsd:positiveInteger"  />
            <!-- The optional codename for this doc, if it's a preview. -->
            <xsd:element name="codename"  type="xsd:string" minOccurs="0" />

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />
            <!-- The minimal revision of tools required by this package.
                 Optional. If present, must be an int > 0. -->
            <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of an SDK extra package. This kind of package is for
         "free" content and specifies in which fixed root directory it must be
         installed.
    -->

    <xsd:complexType name="extraType" >
        <xsd:annotation>
            <xsd:documentation>
                An SDK extra package. This kind of package is for "free"
                content and specifies in which fixed root directory it must be
                installed.
                The paths "add-ons", "platforms", "tools" and "docs" are
                reserved and cannot be used.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The install folder name. It must be a single-segment path.
                 The paths "add-ons", "platforms", "tools" and "docs" are
                 reserved and cannot be used.
            -->
            <xsd:element name="path">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:token">
                        <xsd:pattern value="[^/\\]+"/>
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:element>

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />
            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sr2:usesLicenseType" minOccurs="0" />
            <!-- The optional description of this package. -->
            <xsd:element name="description"  type="xsd:string"      minOccurs="0" />
            <!-- The optional description URL of this package -->
            <xsd:element name="desc-url"     type="xsd:token"       minOccurs="0" />
            <!-- The optional release note for this package. -->
            <xsd:element name="release-note" type="xsd:string"      minOccurs="0" />
            <!-- The optional release note URL of this package -->
            <xsd:element name="release-url"  type="xsd:token"       minOccurs="0" />
            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sr2:archivesType" />
            <!-- The minimal revision of tools required by this package.
                 Optional. If present, must be an int > 0. -->
            <xsd:element name="min-tools-rev" type="xsd:positiveInteger" minOccurs="0" />
            <!-- The minimal API level required by this package.
                 Optional. If present, must be an int > 0. -->
            <xsd:element name="min-api-level" type="xsd:positiveInteger" minOccurs="0" />

            <!-- An optional element indicating the package is obsolete.
                 The string content is however currently not defined and ignored. -->
            <xsd:element name="obsolete"  type="xsd:string" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of a license to be referenced by the uses-license element. -->

    <xsd:complexType name="licenseType">
        <xsd:annotation>
            <xsd:documentation>
                A license definition. Such a license must be used later as a reference
                using a uses-license element in one of the package elements.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="id"   type="xsd:ID" />
                <xsd:attribute name="type" type="xsd:token" fixed="text" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>


    <!-- Type describing the license used by a package.
         The license MUST be defined using a license node and referenced
         using the ref attribute of the license element inside a package.
     -->

    <xsd:complexType name="usesLicenseType">
        <xsd:annotation>
            <xsd:documentation>
                Describes the license used by a package. The license MUST be defined
                using a license node and referenced using the ref attribute of the
                license element inside a package.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="ref" type="xsd:IDREF" />
    </xsd:complexType>


    <!-- A collection of files that can be downloaded for a given architecture.
         The <archives> node is mandatory in the repository elements and the
         collection must have at least one <archive> declared.
         Each archive is a zip file that will be unzipped in a location that depends
         on its package type.
     -->

    <xsd:complexType name="archivesType">
        <xsd:annotation>
            <xsd:documentation>
                A collection of files that can be downloaded for a given architecture.
                The &lt;archives&gt; node is mandatory in the repository packages and the
                collection must have at least one &lt;archive&gt; declared.
                Each archive is a zip file that will be unzipped in a location that depends
                on its package type.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence minOccurs="1" maxOccurs="unbounded">
            <!-- One archive file -->
            <xsd:element name="archive">
                <xsd:complexType>
                    <!-- Properties of the archive file -->
                    <xsd:all>
                        <!-- The size in bytes of the archive to download. -->
                        <xsd:element name="size"     type="xsd:positiveInteger" />
                        <!-- The checksum of the archive file. -->
                        <xsd:element name="checksum" type="sr2:checksumType" />
                        <!-- The URL is an absolute URL if it starts with http://, https://
                             or ftp://. Otherwise it is relative to the parent directory that
                             contains this repository.xml -->
                        <xsd:element name="url"      type="xsd:token" />
                    </xsd:all>

                    <!-- Attributes that identify the OS and architecture -->
                    <xsd:attribute name="os" use="required">
                        <xsd:simpleType>
                            <xsd:restriction base="xsd:token">
                                <xsd:enumeration value="any" />
                                <xsd:enumeration value="linux" />
                                <xsd:enumeration value="macosx" />
                                <xsd:enumeration value="windows" />
                            </xsd:restriction>
                        </xsd:simpleType>
                    </xsd:attribute>
                    <xsd:attribute name="arch" use="optional">
                        <xsd:simpleType>
                            <xsd:restriction base="xsd:token">
                                <xsd:enumeration value="any" />
                                <xsd:enumeration value="ppc" />
                                <xsd:enumeration value="x86" />
                                <xsd:enumeration value="x86_64" />
                            </xsd:restriction>
                        </xsd:simpleType>
                    </xsd:attribute>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>


    <!-- The definition of a file checksum -->

    <xsd:simpleType name="sha1Number">
        <xsd:annotation>
            <xsd:documentation>A SHA1 checksum.</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="([0-9a-fA-F]){40}"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="checksumType">
        <xsd:annotation>
            <xsd:documentation>A file checksum, currently only SHA1.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:extension base="sr2:sha1Number">
                <xsd:attribute name="type" type="xsd:token" fixed="sha1" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

</xsd:schema>
