diff options
Diffstat (limited to 'device_validator/dvlib/src/main/resources/com/android/dvlib/devices-7.xsd')
-rw-r--r-- | device_validator/dvlib/src/main/resources/com/android/dvlib/devices-7.xsd | 1209 |
1 files changed, 1209 insertions, 0 deletions
diff --git a/device_validator/dvlib/src/main/resources/com/android/dvlib/devices-7.xsd b/device_validator/dvlib/src/main/resources/com/android/dvlib/devices-7.xsd new file mode 100644 index 0000000000..0182975482 --- /dev/null +++ b/device_validator/dvlib/src/main/resources/com/android/dvlib/devices-7.xsd @@ -0,0 +1,1209 @@ +<?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. + --> + +<xsd:schema + targetNamespace="http://schemas.android.com/sdk/devices/7" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:c="http://schemas.android.com/sdk/devices/7" + elementFormDefault="qualified" + version="1"> + + <!-- The devices element contains a collection of device definitions. + + History: + - v1 is used by the dvlib in Tools r20-22.. + + - v2 is used by the dvlib in Tools r23. + - It adds support for new ABIs arm64-v8a, x86_64 and mips64. + - v3 is used by the dvlib in Tools r25 + - It adds an indicator for Google Play Store compatibility + - v4 adds support for foldable devices + - v5 adds support for no sdcard devices + - v6 adds support for multiple foldable regions + + --> + <xsd:element name="devices" type="c:devicesType" /> + + <xsd:complexType name="devicesType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The "devices" element is the root element of this schema. + + It must contain one or more "device" elements that each define the configurations + and states available for a given device. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="device" maxOccurs="unbounded"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + A device element contains one hardware profile for a device, along with + 1 or more software profiles and 1 or more states. Each software profile + defines the supported software for a given API release, and each state + profile defines a different possible state of the device (screen in + portrait orientation, screen in landscape orientation with the keyboard + out, etc.) + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="name" type= "xsd:token" /> + <xsd:element name="id" type= "xsd:token" minOccurs="0" /> + <xsd:element name="manufacturer" type= "xsd:token" /> + <xsd:element name="meta" type= "c:metaType" minOccurs="0" /> + <xsd:element name="playstore-enabled" + type="xsd:boolean" minOccurs="0" /> + <xsd:element name="hardware" type= "c:hardwareType" /> + <xsd:element name="software" type= "c:softwareType" + maxOccurs="unbounded" /> + <xsd:element name="state" type= "c:stateType" + maxOccurs="unbounded" /> + <xsd:element name="tag-id" type= "c:idType" minOccurs="0" /> + <xsd:element name="boot-props" type= "c:bootPropsType" minOccurs="0" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:simpleType name="idType"> + <xsd:annotation> + <xsd:documentation> + A tag string for a system image can only be a simple alphanumeric string. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:pattern value="[a-zA-Z0-9_-]+"/> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="bootPropsType" > + <xsd:annotation> + <xsd:documentation> + List of boot properties. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence minOccurs="0" maxOccurs="unbounded"> + <xsd:element name="boot-prop"> + <xsd:complexType> + <xsd:all> + <xsd:element name="prop-name"> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:pattern value="[^\n\r\t =]+"/> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="prop-value" type= "xsd:string" /> + </xsd:all> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="hardwareType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The hardwareType contains all of the hardware information for + a given device. This includes things like the GPU type, screen + size, mic presence, etc. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="screen" type= "c:screenType" /> + <xsd:element name="hinge" type="c:hingeType" + minOccurs="0" /> + <xsd:element name="networking" type= "c:networkingType" /> + <xsd:element name="sensors" type= "c:sensorsType" /> + <xsd:element name="mic" type= "c:micType" /> + <xsd:element name="camera" type= "c:cameraType" + minOccurs="0" maxOccurs="unbounded" /> + <xsd:element name="keyboard" type= "c:keyboardType" /> + <xsd:element name="nav" type= "c:navType" /> + <xsd:element name="ram" type= "c:ramType" /> + <xsd:element name="buttons" type= "c:buttonsType" /> + <xsd:element name="internal-storage" type= "c:internalStorageType" /> + <xsd:element name="removable-storage" type= "c:removableStorageType" + minOccurs="0" /> + <xsd:element name="cpu" type= "c:cpuType" /> + <xsd:element name="gpu" type= "c:gpuType" /> + <xsd:element name="abi" type= "c:abiType" /> + <xsd:element name="dock" type= "c:dockType" /> + <xsd:element name="power-type" type= "c:powerType" /> + <xsd:element name="skin" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Path to a custom skin directory. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="softwareType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The softwareType contains all of the device's software + information for a given API version. This includes things like + live wallpaper support, OpenGL version, etc. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="api-level"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies which API version(s) this this element is + defining. This can be in the form of a single number + or a range of low to high, separated with a dash and + with either limit missing. The default lower limit is + one, and the default upper limit is unbounded. + The following are valid: + 10 + 7-10 + -10 + 7- + - + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:pattern value="[\d]*-[\d]*|[\d]+" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="live-wallpaper-support" type="xsd:boolean"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the device supports live wallpapers. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="bluetooth-profiles"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies all of the available Bluetooth profiles. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:NMTOKEN"> + <xsd:enumeration value="A2DP" /> + <xsd:enumeration value="ATT" /> + <xsd:enumeration value="AVRCP" /> + <xsd:enumeration value="AVDTP" /> + <xsd:enumeration value="BIP" /> + <xsd:enumeration value="BPP" /> + <xsd:enumeration value="CIP" /> + <xsd:enumeration value="CTP" /> + <xsd:enumeration value="DIP" /> + <xsd:enumeration value="DUN" /> + <xsd:enumeration value="FAX" /> + <xsd:enumeration value="FTP" /> + <xsd:enumeration value="GAVDP" /> + <xsd:enumeration value="GAP" /> + <xsd:enumeration value="GATT" /> + <xsd:enumeration value="GOEP" /> + <xsd:enumeration value="HCRP" /> + <xsd:enumeration value="HDP" /> + <xsd:enumeration value="HFP" /> + <xsd:enumeration value="HID" /> + <xsd:enumeration value="HSP" /> + <xsd:enumeration value="ICP" /> + <xsd:enumeration value="LAP" /> + <xsd:enumeration value="MAP" /> + <xsd:enumeration value="OPP" /> + <xsd:enumeration value="PAN" /> + <xsd:enumeration value="PBA" /> + <xsd:enumeration value="PBAP" /> + <xsd:enumeration value="SPP" /> + <xsd:enumeration value="SDAP" /> + <xsd:enumeration value="SAP" /> + <xsd:enumeration value="SIM" /> + <xsd:enumeration value="rSAP" /> + <xsd:enumeration value="SYNCH" /> + <xsd:enumeration value="VDP" /> + <xsd:enumeration value="WAPB" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="gl-version"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the OpenGL version supported for this release. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:decimal"> + <xsd:pattern value="[0-9]\.[0-9]" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="gl-extensions"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies all of the supported OpenGL extensions for + this release. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:list itemType="xsd:NMTOKEN" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="status-bar" type="xsd:boolean"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the device has a status bar in this + software configuration. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="stateType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The stateType contains the information for a given state of + of the device. States include things like portrait mode, + landscape with the keyboard exposed, etc. States can also + modify the hardware attributes of a device. For instance, if + sliding out the keyboard increased the available screen + real estate, you can define a new screenType to override the + default one defined in the device's hardwareType. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="description" type="xsd:token"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + A description of the defined state. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="screen-orientation"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Defines the orientation of the screen. Use square if + the device's screen has equal height and width, + otherwise use landscape or portrait. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="port" /> + <xsd:enumeration value="land" /> + <xsd:enumeration value="square" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="keyboard-state"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Defines the state of the keyboard. If the device has no + keyboard use keysoft, otherwise use keysexposed or keyshidden. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="keyssoft" /> + <xsd:enumeration value="keyshidden" /> + <xsd:enumeration value="keysexposed" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="nav-state"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Defines the state of the primary non-touchscreen + navigation hardware on the devices. If the device + doesn't have non-touchscreen navigation hardware use + nonav, otherwise use navexposed or navhidden. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="nonav" /> + <xsd:enumeration value="navhidden" /> + <xsd:enumeration value="navexposed" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + <xsd:element name="screen" type="c:screenType" minOccurs="0" /> + <xsd:element name="networking" type="c:networkingType" + minOccurs="0" /> + <xsd:element name="sensors" type="c:sensorsType" minOccurs="0" /> + <xsd:element name="mic" type="c:micType" minOccurs="0" /> + <xsd:element name="camera" type="c:cameraType" + minOccurs="0" maxOccurs="unbounded" /> + <xsd:element name="keyboard" type="c:keyboardType" minOccurs="0" /> + <xsd:element name="nav" type="c:navType" minOccurs="0" /> + <xsd:element name="ram" type="c:ramType" minOccurs="0" /> + <xsd:element name="buttons" type="c:buttonsType" minOccurs="0" /> + <xsd:element name="internal-storage" type="c:internalStorageType" + minOccurs="0" /> + <xsd:element name="removable-storage" type="c:removableStorageType" + minOccurs="0" /> + <xsd:element name="cpu" type="c:cpuType" minOccurs="0" /> + <xsd:element name="gpu" type="c:gpuType" minOccurs="0" /> + <xsd:element name="abi" type="c:abiType" minOccurs="0" /> + <xsd:element name="dock" type="c:dockType" minOccurs="0" /> + <xsd:element name="power-type" type="c:powerType" + minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:token" /> + <xsd:attribute name="default" type="xsd:boolean" /> + </xsd:complexType> + + <xsd:complexType name="metaType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Details where more device information can be found, such as + icons and frame images. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="icons" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Contains the relative paths to the icon files for this + device. + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="sixty-four" type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Relative path for the 64x64 icon. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="sixteen" type="xsd:normalizedString" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Relative path for the 16x16 icon. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + <xsd:element name="frame" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Contains information about the frame for the device. + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="path" + type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The relative path to the emulator frame for + the device. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="portrait-x-offset" + type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The offset for the frame in the x direction, + in portrait mode. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="portrait-y-offset" + type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The offset for the frame in the y direction, + in portrait mode. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="landscape-x-offset" + type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The offset for the frame in the x direction, + in landscape mode. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="landscape-y-offset" + type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + The offset for the frame in the y direction, + in landscape mode. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="screenType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Contains the specifications for the device's screen. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="screen-size"> + <xsd:simpleType> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the class of the screen. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="small" /> + <xsd:enumeration value="normal" /> + <xsd:enumeration value="large" /> + <xsd:enumeration value="xlarge" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="diagonal-length"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the diagonal length of the screen in inches. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:decimal"> + <!-- Negative lengths are not valid --> + <xsd:minInclusive value="0" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="pixel-density"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the screen density of the device. The + medium density of traditional HVGA screens (mdpi) + is defined to be approximately 160dpi; low density + (ldpi) is 120, and high density (hdpi) is 240. There + is thus a 4:3 scaling factor between each density, + so a 9x9 bitmap in ldpi would be 12x12 in mdpi and + 16x16 in hdpi. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="ldpi" /> + <xsd:enumeration value="mdpi" /> + <xsd:enumeration value="tvdpi" /> + <xsd:enumeration value="hdpi" /> + <xsd:enumeration value="140dpi" /> + <xsd:enumeration value="180dpi" /> + <xsd:enumeration value="200dpi" /> + <xsd:enumeration value="260dpi" /> + <xsd:enumeration value="280dpi" /> + <xsd:enumeration value="300dpi" /> + <xsd:enumeration value="xhdpi" /> + <xsd:enumeration value="340dpi" /> + <xsd:enumeration value="360dpi" /> + <xsd:enumeration value="400dpi" /> + <xsd:enumeration value="420dpi" /> + <xsd:enumeration value="440dpi" /> + <xsd:enumeration value="xxhdpi" /> + <xsd:enumeration value="560dpi" /> + <xsd:enumeration value="xxxhdpi" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="screen-ratio"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the configuration is for a taller or + wider than traditional screen. This is based purely on + the aspect ratio of the screen: QVGA, HVGA, and VGA are + notlong; WQVGA, WVGA, FWVGA are long. Note that long may + mean either wide or tall, depending on the current + orientation. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="notlong" /> + <xsd:enumeration value="long" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="dimensions"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the device screen resolution in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="x-dimension"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the x-dimension's resolution in + pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-dimension"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the y-dimension's resolution in + pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:positiveInteger" /> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="xdpi"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the actual density in X of the device screen. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:decimal"> + <!-- Negative DPIs are not valid --> + <xsd:minInclusive value="0" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="ydpi"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the actual density in Y of the device screen. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:decimal"> + <!-- Negative DPIs are not valid --> + <xsd:minInclusive value="0" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="touch"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the touch properties of the device. + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="multitouch"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the multitouch capabilities of the + device. This can be none if multitouch is + not supported, basic if the device can track + only basic two finger gestures, distinct if + the device can track two or more fingers + simultaneously, or jazz-hands if the device + can track 5 or more fingers simultaneously. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="none" /> + <xsd:enumeration value="basic" /> + <xsd:enumeration value="distinct" /> + <xsd:enumeration value="jazz-hands" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="mechanism"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the mechanism the device was + created for. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="notouch" /> + <xsd:enumeration value="stylus" /> + <xsd:enumeration value="finger" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="screen-type"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the type of touch screen on the + device. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="notouch" /> + <xsd:enumeration value="capacitive" /> + <xsd:enumeration value="resistive" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="foldable-region" minOccurs="0" > + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the region of the device screen + that is active when the device is folded. + </xsd:documentation> + </xsd:annotation> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="x-folded-offset"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the foldable + region in the x-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-offset"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the foldable + region in the y-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="x-folded-dimension"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the x-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-dimension"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the y-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="x-folded-offset-2" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the second foldable + region in the x-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-offset-2" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the second foldable + region in the y-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="x-folded-dimension-2" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the x-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-dimension-2" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the y-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="x-folded-offset-3" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the third foldable + region in the x-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-offset-3" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the start of the third foldable + region in the y-dimension, in pixels. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="x-folded-dimension-3" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the x-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + <xsd:element name="y-folded-dimension-3" minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the number of pixels in the y-dimension + that are available when folded. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="hingeType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Contains the specifications for the hinge in a foldable + device. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="count" type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies number of hinges + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="type" type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the type of the hinge. The value + must match the type definition in the + emulator. 0: horizontal hinge; 1: vertical + hinge; 2: horizontal roll + (for rollable device); 3: vertical roll + (for rollable device). + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="sub-type" type="xsd:nonNegativeInteger"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the sub-type of the hinge. Currently + it doesn't do anything. 0: fold; 1: hinge. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="ranges" type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the folding range, in the format of + min-max. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="defaults" type="xsd:integer"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the default folding angle. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="areas" type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the area of the hinge, in the format + of xoffset-yoffset-width-height. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="fold-at-posture" type="xsd:nonNegativeInteger" + minOccurs="0"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the default folded posture. The value + must match the definition in the emulator. + 0: unknown; 1: closed; 2: half-opened; + 3: opened; 4: flipped; 5: tent. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="posture-list" type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies a list of postures, separated by + comma. The value of each posture must match + the definition in the emulator. + 0: unknown; 1: closed; 2: half-opened; + 3: opened; 4: flipped; 5: tent. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + <xsd:element name="hinge-angles-posture-definitions" type="xsd:normalizedString"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies hinge angle ranges that correspond + to each posture. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:simpleType name="networkingType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the available networking hardware. + </xsd:documentation> + </xsd:annotation> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="NFC" /> + <xsd:enumeration value="Bluetooth" /> + <xsd:enumeration value="Wifi" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + + <xsd:simpleType name="sensorsType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the available sensors. + </xsd:documentation> + </xsd:annotation> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="Accelerometer" /> + <xsd:enumeration value="Barometer" /> + <xsd:enumeration value="Compass" /> + <xsd:enumeration value="GPS" /> + <xsd:enumeration value="Gyroscope" /> + <xsd:enumeration value="LightSensor" /> + <xsd:enumeration value="ProximitySensor" /> + <xsd:enumeration value="StepCounter" /> + <xsd:enumeration value="StepDetector" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + + <xsd:simpleType name="micType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the device has a mic or not. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:boolean" /> + </xsd:simpleType> + + <xsd:complexType name="cameraType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the attributes of the camera. + </xsd:documentation> + </xsd:annotation> + <xsd:sequence> + <xsd:element name="location"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the location of the camera. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="front" /> + <xsd:enumeration value="back" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:element> + + <xsd:element name="autofocus" type="xsd:boolean"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the camera can autofocus + </xsd:documentation> + </xsd:annotation> + </xsd:element> + + <xsd:element name="flash" type="xsd:boolean"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the camera has flash. + </xsd:documentation> + </xsd:annotation> + </xsd:element> + </xsd:sequence> + </xsd:complexType> + + <xsd:simpleType name="keyboardType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the type of keyboard on the device. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="qwerty" /> + <xsd:enumeration value="12key" /> + <xsd:enumeration value="nokeys" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:simpleType name="navType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the primary non-touchscreen navigation + hardware on the device. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="dpad" /> + <xsd:enumeration value="trackball" /> + <xsd:enumeration value="wheel" /> + <xsd:enumeration value="nonav" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="ramType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the amount of RAM on the device in the unit provided. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleContent> + <xsd:extension base="xsd:positiveInteger"> + <xsd:attribute name="unit" type="c:storageUnitType" use="required" /> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <xsd:simpleType name="buttonsType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the device has physical (hard) buttons + (Home, Search, etc.), or uses soft buttons. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="hard" /> + <xsd:enumeration value="soft" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:complexType name="internalStorageType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + A list specifying the sizes of internal storage in + the device, in the storage size unit provided. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleContent> + <xsd:extension base="c:storageListType"> + <xsd:attribute name="unit" type="c:storageUnitType" + use="required" /> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <xsd:complexType name="removableStorageType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the range of available removable storage sizes + in the unit provided. A positive value indicates the device is + available with that storage size included while a zero value + indicates an empty storage slot. + </xsd:documentation> + </xsd:annotation> + <xsd:simpleContent> + <xsd:extension base="c:storageListType"> + <xsd:attribute name="unit" type="c:storageUnitType" + use="required" /> + </xsd:extension> + </xsd:simpleContent> + </xsd:complexType> + + <xsd:simpleType name="storageListType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Defines a list for storage configurations such as internal or + removable storage. A positive value indicates the device + has a storage unit of that size, while a zero value indicates + there is an empty location for a storage unit (such as an empty + SD card slot). + </xsd:documentation> + </xsd:annotation> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:nonNegativeInteger" /> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + <xsd:simpleType name="gpuType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the device's GPU. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:minLength value="1" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:simpleType name="cpuType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the device's CPU. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:minLength value="1" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:simpleType name="abiType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies which ABIs the device conforms to. + </xsd:documentation> + </xsd:annotation> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="armeabi" /> + <xsd:enumeration value="armeabi-v7a" /> + <xsd:enumeration value="arm64-v8a" /> + <xsd:enumeration value="x86" /> + <xsd:enumeration value="x86_64" /> + <xsd:enumeration value="mips" /> + <!-- TODO double-check this is appropriate value for mips64 --> + <xsd:enumeration value="mips64" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + + <xsd:simpleType name="dockType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the official docks available for the device. + </xsd:documentation> + </xsd:annotation> + <xsd:list> + <xsd:simpleType> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="desk" /> + <xsd:enumeration value="television" /> + <xsd:enumeration value="car" /> + </xsd:restriction> + </xsd:simpleType> + </xsd:list> + </xsd:simpleType> + + <xsd:simpleType name="powerType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies whether the device is plugged in. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="plugged-in" /> + <xsd:enumeration value="battery" /> + </xsd:restriction> + </xsd:simpleType> + + <xsd:simpleType name="storageUnitType"> + <xsd:annotation> + <xsd:documentation xml:lang="en"> + Specifies the unit of storage. This can be MiB, GiB, etc. + </xsd:documentation> + </xsd:annotation> + <xsd:restriction base="xsd:token"> + <xsd:enumeration value="B" /> + <xsd:enumeration value="KiB" /> + <xsd:enumeration value="MiB" /> + <xsd:enumeration value="GiB" /> + <xsd:enumeration value="TiB" /> + </xsd:restriction> + </xsd:simpleType> + +</xsd:schema> |