<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2021 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.
  -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           version="2.0"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified"
           targetNamespace="http://schemas.android.com/art/apex-cache-info/v1_0"
           xmlns:t="http://schemas.android.com/art/apex-cache-info/v1_0" >
  <!-- Data type holding information on the AOT artifact cache in
    `/data/misc/apexdata/com.android.art/dalvik-cache` -->
  <xs:element name="cacheInfo">
    <xs:complexType>
    <xs:sequence>
      <xs:element name="artModuleInfo" minOccurs="1" maxOccurs="1" type="t:artModuleInfo" />
      <xs:element name="bootClasspath" type="t:bootClasspath" />
      <xs:element name="dex2oatBootClasspath" type="t:dex2oatBootClasspath" />
      <xs:element name="systemServerClasspath" type="t:systemServerClasspath" />
    </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- Data type representing the provenance of the AOT artifacts in the cache. -->
  <xs:complexType name="artModuleInfo">
    <!-- Module versionCode for the active ART APEX from `/apex/apex-info-list.xml`. -->
    <xs:attribute name="versionCode" type="xs:long" use="required" />
    <!-- Module versionName for the active ART APEX from `/apex/apex-info-list.xml`. -->
    <xs:attribute name="versionName" type="xs:string" use="required" />
    <!-- Module lastUpdateMillis for the active ART APEX from `/apex/apex-info-list.xml`. -->
    <xs:attribute name="lastUpdateMillis" type="xs:long" use="required" />
  </xs:complexType>

  <!-- Components of the `BOOTCLASSPATH`. -->
  <xs:complexType name="bootClasspath">
    <xs:sequence>
      <xs:element name="component" type="t:component" />
    </xs:sequence>
  </xs:complexType>

  <!-- Components of the `DEX2OATBOOTCLASSPATH`. -->
  <xs:complexType name="dex2oatBootClasspath">
    <xs:sequence>
      <xs:element name="component" type="t:component" />
    </xs:sequence>
  </xs:complexType>

  <!-- Components of the `SYSTEMSERVERCLASSPATH`. -->
  <xs:complexType name="systemServerClasspath">
    <xs:sequence>
      <xs:element name="component" type="t:component" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="component">
    <!-- File path of component. -->
    <xs:attribute name="file" type="xs:string" use="required" />
    <!-- Size of component when cache information is generated. -->
    <xs:attribute name="size" type="xs:unsignedLong" use="required" />
    <!-- DEX file checksums within the component. Multidex files have multiple checksums. -->
    <xs:attribute name="checksums" type="xs:string" use="required" />
  </xs:complexType>

</xs:schema>
