<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Copyright (C) 2011 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/5"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:sdk="http://schemas.android.com/sdk/android/repository/5"
    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:
            - It introduces a new <sample> repository type. Previously samples
              were included in the <platform> packages. Instead this package is used
              and and the samples are installed in $SDK/samples.
            - All repository types have a new <obsolete> node. It works as a marker
              to indicate the package is obsolete and should not be selected by default.
              The UI also hides these out by default.

         - v3 is used by the SDK Updater in Tools r8:
            - It introduces a new <platform-tool> repository type. Previously platform-specific
              tools were included in the <platform> packages. Instead this package is used
              and platform-specific tools are installed in $SDK/platform-tools
            - There's a new element <min-platform-tools-rev> in <tool>. The tool package now
              requires that at least some minimal version of <platform-tool> be installed.
            - It removes the <addon> repository type, which is now in its own XML Schema.

         - v4 is used by the SDK Updater in Tools r12:
            - <extra> element now has a <project-files> element that contains 1 or
              or more <path>, each indicating the relative path of a file that this package
              can contribute to installed projects.
            - <platform> element now has a mandatory <layoutlib> that indicates the API
              and revision of that layout library for this particular platform.

         - v5 is used by the SDK Updater in Tools R14:
            - <extra> now has an <old-paths> element, a ;-separated list of old paths that
              should be detected and migrated to the new <path> for that package.
            - <platform> has a new optional <abi-included> that describes the ABI of the
              system image included in the platform, if any.
            - New <system-image> package type, to store system images outside of <platform>s.
            - New <source> package type.
    -->

    <xsd:element name="sdk-repository" type="sdk: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="sdk:platformType"     />
            <xsd:element name="system-image"    type="sdk:systemImageType"  />
            <xsd:element name="source"          type="sdk:sourceType"       />
            <xsd:element name="tool"            type="sdk:toolType"         />
            <xsd:element name="platform-tool"   type="sdk:platformToolType" />
            <xsd:element name="doc"             type="sdk:docType"          />
            <xsd:element name="sample"          type="sdk:sampleType"       />
            <xsd:element name="extra"           type="sdk:extraType"        />
            <xsd:element name="license"         type="sdk: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" />

            <!-- Information on the layoutlib packaged in this platform. -->
            <xsd:element name="layoutlib" type="sdk:layoutlibType" />

            <!-- optional elements -->

            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license"  type="sdk: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="sdk: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 ABI of the system image *included* in this platform, if any.
                 When the field is present, it means the platform already embeds one
                 system image. A platform can also have any number of external
                 &lt;system-image&gt; associated with it.  -->
            <xsd:element name="included-abi"  type="sdk:abiType" 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 layout library used by a platform. -->

    <xsd:complexType name="layoutlibType" >
        <xsd:annotation>
            <xsd:documentation>
                Version information for a layoutlib included in a platform.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- The layoutlib API level, an int > 0,
                 incremented with each new incompatible lib. -->
            <xsd:element name="api"          type="xsd:positiveInteger" />
            <!-- The incremental minor revision for that API, e.g. in case of bug fixes.
                 Optional. An int >= 0, assumed to be 0 if the element is missing. -->
            <xsd:element name="revision"     type="xsd:nonNegativeInteger" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of a system image used by a platform. -->

    <xsd:complexType name="systemImageType" >
        <xsd:annotation>
            <xsd:documentation>
                System Image for a platform.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- api-level + codename identifies the platform to which this system image belongs. -->

            <!-- 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 ABI of the system emulated by this image. -->
            <xsd:element name="abi"       type="sdk:abiType" />

            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license"  type="sdk: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="sdk:archivesType" />
        </xsd:all>
    </xsd:complexType>

    <!-- The definition of the ABI supported by a platform's system image. -->

    <xsd:simpleType name="abiType">
        <xsd:annotation>
            <xsd:documentation>The ABI of a platform's system image.</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="armeabi"     />
            <xsd:enumeration value="armeabi-v7a" />
            <xsd:enumeration value="x86"         />
        </xsd:restriction>
    </xsd:simpleType>


    <!-- The definition of a source package. -->

    <xsd:complexType name="sourceType" >
        <xsd:annotation>
            <xsd:documentation>
                Sources for a platform.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <!-- api-level + codename identifies the platform to which this source belongs. -->

            <!-- 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="sdk: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="sdk:archivesType" />
        </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="sdk: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="sdk: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" />

            <!-- The minimal revision of platform-tools required by this package.
                 Mandatory. Must be an int > 0. -->
            <xsd:element name="min-platform-tools-rev" type="xsd:positiveInteger" />
        </xsd:all>
    </xsd:complexType>


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

    <xsd:complexType name="platformToolType" >
        <xsd:annotation>
            <xsd:documentation>An SDK platform-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="sdk: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="sdk: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="sdk: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="sdk: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="sdk: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="sdk: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. Such packages are installed in SDK/vendor/path.

         Important implementation detail: this element is duplicated in the
         sdk-addon-N.xsd schema and must be kept in sync there. This is
         simpler than trying to use some kind of of include or to request
         that clients use a third XML schema for common parts.
    -->

    <xsd:complexType name="extraType" >
        <xsd:annotation>
            <xsd:documentation>
                An SDK extra package. This kind of package is for "free" content.
                Such packages are installed in SDK/vendor/path.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:all>

            <!-- The install path top folder name.
                 The segments "add-ons", "docs", "platforms", "platform-tools", "temp"
                 and "tools" are reserved and cannot be used.
            -->
            <xsd:element name="vendor" type="sdk:segmentType" />

            <!-- The install path sub-folder name. -->
            <xsd:element name="path" type="sdk:segmentType" />

            <!-- A semi-colon separated list of "obsolete" path names which are equivalent
                 to the current 'path' name. When a package is seen using an old-paths' name,
                 the package manager will try to upgrade it to the new path. -->
            <xsd:element name="old-paths" type="sdk:segmentListType"  minOccurs="0" />

            <!-- The revision, an int > 0, incremented each time a new
                 package is generated. -->
            <xsd:element name="revision"     type="xsd:positiveInteger" />

            <!-- A list of file archives for this package. -->
            <xsd:element name="archives"     type="sdk:archivesType" />

            <!--  optional elements -->

            <!-- The optional license of this package. If present, users will have
                 to agree to it before downloading. -->
            <xsd:element name="uses-license" type="sdk: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" />
            <!-- 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" />

            <!-- A list of project files contributed by this package. Optional. -->
            <xsd:element name="project-files" type="sdk:projectFilesType" minOccurs="0" />
        </xsd:all>
    </xsd:complexType>


    <!-- The definition of a path segment used by the extra element. -->

    <xsd:simpleType name="segmentType">
        <xsd:annotation>
            <xsd:documentation>
                One path segment for the install path of an extra element.
                It must be a single-segment path.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="[a-zA-Z0-9_]+"/>
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="segmentListType">
        <xsd:annotation>
            <xsd:documentation>
                A semi-colon separated list of a segmentTypes.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:token">
            <xsd:pattern value="[a-zA-Z0-9_;]+"/>
        </xsd:restriction>
    </xsd:simpleType>


    <!-- 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="sdk: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>


    <!-- A collection of file paths available in an &lt;extra&gt; package
         that can be installed in an Android project.
         If present, the &lt;project-files&gt; collection must contain at least one path.
         Each path is relative to the root directory of the package.
     -->

    <xsd:complexType name="projectFilesType">
        <xsd:annotation>
            <xsd:documentation>
                A collection of file paths available in an &lt;extra&gt; package
                that can be installed in an Android project.
                If present, the &lt;project-files&gt; collection must contain at least one path.
                Each path is relative to the root directory of the package.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence minOccurs="1" maxOccurs="unbounded">
            <!-- One JAR Path, relative to the root folder of the package. -->
            <xsd:element name="path" type="xsd:string" />
        </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="sdk:sha1Number">
                <xsd:attribute name="type" type="xsd:token" fixed="sha1" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>

</xsd:schema>
