<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2020 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">
  <xs:element name="apex-info-list">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="apex-info" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="Partition">
    <xs:restriction base="xs:string">
        <xs:pattern value="SYSTEM"/>
        <xs:pattern value="SYSTEM_EXT"/>
        <xs:pattern value="PRODUCT"/>
        <xs:pattern value="VENDOR"/>
        <xs:pattern value="ODM"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="apex-info">
    <xs:complexType>
      <xs:attribute name="moduleName" type="xs:string" use="required"/>
      <xs:attribute name="modulePath" type="xs:string" use="required"/>
      <xs:attribute name="preinstalledModulePath" type="xs:string"/>
      <xs:attribute name="versionCode" type="xs:long" use="required"/>
      <xs:attribute name="versionName" type="xs:string" use="required"/>
      <xs:attribute name="isFactory" type="xs:boolean" use="required"/>
      <xs:attribute name="isActive" type="xs:boolean" use="required"/>
      <xs:attribute name="lastUpdateMillis" type="xs:long"/>
      <xs:attribute name="provideSharedApexLibs" type="xs:boolean" use="required"/>
      <xs:attribute name="partition" type="Partition" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
