Sundong Ahn 33bca5b12b Add minOccurs="0"
For privapp-permissions and oem-permissions elements, some xml files
don't need to permission and deny-permission properties. So add the
minOccurs="0" for these elements.

Test: vts-tradefed run vts -m VtsValidatePermission
Bug: 143251304
Change-Id: Ib93a40e646f9c65bd62d23396c12ea31f2d735d8
2019-12-20 16:54:52 +09: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" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="deny-permission" minOccurs="0" 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" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="deny-permission" minOccurs="0" 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>