Sundong Ahn 560de69213 Change to choice
The sequence element is changed to choice element with minOccurs="0" and
maxOccurs="unbounded" for supporting any order and any times sub
element. And maxOccurs of subelement is deleted because maxOccurs are
not needed.

Bug: 127435354
Test: m -j
Change-Id: I72866da5b2a8ac37d725f5b604dae37a06f30162
2019-04-04 01:32:55 +00:00

168 lines
8.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2019 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.
-->
<!-- TODO: define a targetNamespace. Note that it will break retrocompatibility -->
<xs:schema version="2.0"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="permissions">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="group" type="group"/>
<xs:element name="permission" type="permission"/>
<xs:element name="assign-permission" type="assign-permission"/>
<xs:element name="split-permission" type="split-permission"/>
<xs:element name="library" type="library"/>
<xs:element name="feature" type="feature"/>
<xs:element name="unavailable-feature" type="unavailable-feature"/>
<xs:element name="allow-in-power-save-except-idle" type="allow-in-power-save-except-idle"/>
<xs:element name="allow-in-power-save" type="allow-in-power-save"/>
<xs:element name="allow-in-data-usage-save" type="allow-in-data-usage-save"/>
<xs:element name="allow-unthrottled-location" type="allow-unthrottled-location"/>
<xs:element name="allow-ignore-location-settings" type="allow-ignore-location-settings"/>
<xs:element name="allow-implicit-broadcast" type="allow-implicit-broadcast"/>
<xs:element name="app-link" type="app-link"/>
<xs:element name="system-user-whitelisted-app" type="system-user-whitelisted-app"/>
<xs:element name="system-user-blacklisted-app" type="system-user-blacklisted-app"/>
<xs:element name="default-enabled-vr-app" type="default-enabled-vr-app"/>
<xs:element name="backup-transport-whitelisted-service" type="backup-transport-whitelisted-service"/>
<xs:element name="disabled-until-used-preinstalled-carrier-associated-app" type="disabled-until-used-preinstalled-carrier-associated-app"/>
<xs:element name="disabled-until-used-preinstalled-carrier-app" type="disabled-until-used-preinstalled-carrier-app"/>
<xs:element name="privapp-permissions" type="privapp-permissions"/>
<xs:element name="oem-permissions" type="oem-permissions"/>
<xs:element name="hidden-api-whitelisted-app" type="hidden-api-whitelisted-app"/>
<xs:element name="allow-association" type="allow-association"/>
<xs:element name="bugreport-whitelisted" type="bugreport-whitelisted"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:complexType name="group">
<xs:attribute name="gid" type="xs:int"/>
</xs:complexType>
<xs:complexType name="permission">
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="assign-permission">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="uid" type="xs:int"/>
</xs:complexType>
<xs:complexType name="split-permission">
<xs:sequence>
<xs:element name="library" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="targetSdk" type="xs:int"/>
</xs:complexType>
<xs:complexType name="library">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="file" type="xs:string"/>
<xs:attribute name="dependency" type="xs:string"/>
</xs:complexType>
<xs:complexType name="feature">
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="notLowRam" type="xs:string"/>
<xs:attribute name="version" type="xs:int"/>
</xs:complexType>
<xs:complexType name="unavailable-feature">
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-in-power-save-except-idle">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-in-power-save">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-in-data-usage-save">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-unthrottled-location">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-ignore-location-settings">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-implicit-broadcast">
<xs:attribute name="action" type="xs:string"/>
</xs:complexType>
<xs:complexType name="app-link">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="system-user-whitelisted-app">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="system-user-blacklisted-app">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="default-enabled-vr-app">
<xs:attribute name="package" type="xs:string"/>
<xs:attribute name="class" type="xs:string"/>
</xs:complexType>
<xs:complexType name="backup-transport-whitelisted-service">
<xs:attribute name="service" type="xs:string"/>
</xs:complexType>
<xs:complexType name="disabled-until-used-preinstalled-carrier-associated-app">
<xs:attribute name="package" type="xs:string"/>
<xs:attribute name="carrierAppPackage" type="xs:string"/>
</xs:complexType>
<xs:complexType name="disabled-until-used-preinstalled-carrier-app">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="privapp-permissions">
<xs:sequence>
<xs:element name="permission" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="deny-permission" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="oem-permissions">
<xs:sequence>
<xs:element name="permission" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="deny-permission" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="hidden-api-whitelisted-app">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
<xs:complexType name="allow-association">
<xs:attribute name="target" type="xs:string"/>
<xs:attribute name="allowed" type="xs:string"/>
</xs:complexType>
<xs:complexType name="bugreport-whitelisted">
<xs:attribute name="package" type="xs:string"/>
</xs:complexType>
</xs:schema>