| <?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. |
| --> |
| |
| <!-- |
| This defines the format of the XML file used to provide static configuration values |
| for the displays on a device. |
| It is parsed in com/android/server/display/DisplayDeviceConfig.java |
| --> |
| <xs:schema version="2.0" |
| elementFormDefault="qualified" |
| xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
| <xs:element name="displayConfiguration"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element type ="xs:string" name="name"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="densityMapping" name="densityMapping" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nitsMap" name="screenBrightnessMap"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="screenBrightnessDefault"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="thermalThrottling" name="thermalThrottling"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="highBrightnessMode" name="highBrightnessMode" minOccurs="0" |
| maxOccurs="1"/> |
| <xs:element type="displayQuirks" name="quirks" minOccurs="0" maxOccurs="1"/> |
| <xs:element type="autoBrightness" name="autoBrightness" minOccurs="0" |
| maxOccurs="1"/> |
| <xs:element type="refreshRateConfigs" name="refreshRate" minOccurs="0" |
| maxOccurs="1"/> |
| <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastDecrease"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="screenBrightnessRampFastIncrease"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowDecrease"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="screenBrightnessRampSlowIncrease"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Maximum time in milliseconds that a brightness increase animation |
| can take. --> |
| <xs:element type="xs:nonNegativeInteger" name="screenBrightnessRampIncreaseMaxMillis"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Maximum time in milliseconds that a brightness decrease animation |
| can take. --> |
| <xs:element type="xs:nonNegativeInteger" name="screenBrightnessRampDecreaseMaxMillis"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="sensorDetails" name="lightSensor"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="sensorDetails" name="screenOffBrightnessSensor"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="sensorDetails" name="proxSensor"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| |
| <!-- Length of the ambient light horizon used to calculate the long & short term |
| estimates of ambient light in milliseconds.--> |
| <xs:element type="xs:nonNegativeInteger" name="ambientLightHorizonLong"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="xs:nonNegativeInteger" name="ambientLightHorizonShort"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| |
| <!-- Set of thresholds that dictate the change needed for screen brightness |
| adaptations --> |
| <xs:element type="thresholds" name="displayBrightnessChangeThresholds"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Set of thresholds that dictate the change needed for ambient brightness |
| adaptations --> |
| <xs:element type="thresholds" name="ambientBrightnessChangeThresholds"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Set of thresholds that dictate the change needed for screen brightness |
| adaptations while in idle mode --> |
| <xs:element type="thresholds" name="displayBrightnessChangeThresholdsIdle" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Set of thresholds that dictate the change needed for ambient brightness |
| adaptations while in idle mode --> |
| <xs:element type="thresholds" name="ambientBrightnessChangeThresholdsIdle" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Table that translates sensor values from the screenOffBrightnessSensor |
| to lux values; -1 means the lux reading is not available. --> |
| <xs:element type="integer-array" name="screenOffBrightnessSensorValueToLux"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- The version of the Universal Stylus Initiative |
| (USI, https://universalstylus.org/) protocol supported by the display, if any. --> |
| <xs:element type="usiVersion" name="usiVersion"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| |
| <!-- Type definitions --> |
| <xs:complexType name="displayQuirks"> |
| <xs:sequence> |
| <xs:element name="quirk" type="xs:string" minOccurs="0" maxOccurs="unbounded" /> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="highBrightnessMode"> |
| <xs:all> |
| <xs:element name="transitionPoint" type="nonNegativeDecimal" minOccurs="1" |
| maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="minimumLux" type="nonNegativeDecimal" minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="timing" type="hbmTiming" minOccurs="1" maxOccurs="1"/> |
| <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="allowInLowPowerMode" type="xs:boolean" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- The minimum HDR video size at which high-brightness-mode is allowed to operate. |
| Default is 0.5 if not specified--> |
| <xs:element name="minimumHdrPercentOfScreen" type="nonNegativeDecimal" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- This LUT specifies how to boost HDR brightness at given SDR brightness (nits). --> |
| <xs:element type="sdrHdrRatioMap" name="sdrHdrRatioMap" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:all> |
| <xs:attribute name="enabled" type="xs:boolean" use="optional"/> |
| </xs:complexType> |
| |
| <xs:complexType name="hbmTiming"> |
| <xs:all> |
| <xs:element name="timeWindowSecs" type="xs:nonNegativeInteger" minOccurs="1" |
| maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="timeMaxSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="timeMinSecs" type="xs:nonNegativeInteger" minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:all> |
| </xs:complexType> |
| |
| <!-- Maps to PowerManager.THERMAL_STATUS_* values. --> |
| <xs:simpleType name="thermalStatus"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="none"/> |
| <xs:enumeration value="light"/> |
| <xs:enumeration value="moderate"/> |
| <xs:enumeration value="severe"/> |
| <xs:enumeration value="critical"/> |
| <xs:enumeration value="emergency"/> |
| <xs:enumeration value="shutdown"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <xs:complexType name="thermalThrottling"> |
| <xs:sequence> |
| <xs:element type="brightnessThrottlingMap" name="brightnessThrottlingMap" maxOccurs="unbounded"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="refreshRateThrottlingMap" name="refreshRateThrottlingMap" maxOccurs="unbounded"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateThrottlingMap"> |
| <xs:attribute name="id" type="xs:string" /> |
| <xs:sequence> |
| <xs:element name="refreshRateThrottlingPoint" type="refreshRateThrottlingPoint" maxOccurs="unbounded"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateThrottlingPoint"> |
| <xs:sequence> |
| <xs:element type="thermalStatus" name="thermalStatus"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="refreshRateRange" name="refreshRateRange"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="brightnessThrottlingMap"> |
| <xs:sequence> |
| <xs:element name="brightnessThrottlingPoint" type="brightnessThrottlingPoint" maxOccurs="unbounded" minOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| <xs:attribute name="id" type="xs:string"/> |
| </xs:complexType> |
| |
| <xs:complexType name="brightnessThrottlingPoint"> |
| <xs:sequence> |
| <xs:element type="thermalStatus" name="thermalStatus"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="brightness"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="nitsMap"> |
| <xs:sequence> |
| <xs:element name="point" type="point" maxOccurs="unbounded" minOccurs="2"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| <!-- valid value of interpolation if specified: linear --> |
| <xs:attribute name="interpolation" type="xs:string" use="optional"/> |
| </xs:complexType> |
| |
| <xs:complexType name="point"> |
| <xs:sequence> |
| <xs:element type="nonNegativeDecimal" name="value"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="nits"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="sdrHdrRatioMap"> |
| <xs:sequence> |
| <xs:element name="point" type="sdrHdrRatioPoint" maxOccurs="unbounded" minOccurs="2"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="sdrHdrRatioPoint"> |
| <xs:sequence> |
| <xs:element type="nonNegativeDecimal" name="sdrNits"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="hdrRatio"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:simpleType name="nonNegativeDecimal"> |
| <xs:restriction base="xs:decimal"> |
| <xs:minInclusive value="0.0"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <xs:complexType name="sensorDetails"> |
| <xs:sequence> |
| <xs:element type="xs:string" name="type" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="xs:string" name="name" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="refreshRateRange" name="refreshRate" minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="nullable"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateRange"> |
| <xs:sequence> |
| <xs:element type="xs:nonNegativeInteger" name="minimum" minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="xs:nonNegativeInteger" name="maximum" minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="densityMapping"> |
| <xs:sequence> |
| <xs:element name="density" type="density" maxOccurs="unbounded" minOccurs="1"> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="density"> |
| <xs:sequence> |
| <xs:element type="xs:nonNegativeInteger" name="width"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="xs:nonNegativeInteger" name="height"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="xs:nonNegativeInteger" name="density"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Thresholds for brightness changes. --> |
| <xs:complexType name="thresholds"> |
| <xs:sequence> |
| <!-- Brightening thresholds for active screen brightness mode. --> |
| <xs:element name="brighteningThresholds" type="brightnessThresholds" minOccurs="0" |
| maxOccurs="1" > |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Darkening thresholds for active screen brightness mode. --> |
| <xs:element name="darkeningThresholds" type="brightnessThresholds" minOccurs="0" |
| maxOccurs="1" > |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Brightening and darkening minimum change thresholds. --> |
| <xs:complexType name="brightnessThresholds"> |
| <!-- Minimum brightness change needed. --> |
| <xs:element name="minimum" type="nonNegativeDecimal" minOccurs="0" maxOccurs="1" > |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:sequence> |
| <!-- Thresholds as tenths of percent of current brightness level, at each level of |
| brightness --> |
| <xs:element name="brightnessThresholdPoints" type="thresholdPoints" maxOccurs="1" minOccurs="0"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="thresholdPoints"> |
| <xs:sequence> |
| <xs:element type="thresholdPoint" name="brightnessThresholdPoint" maxOccurs="unbounded" minOccurs="1"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="thresholdPoint"> |
| <xs:sequence> |
| <xs:element type="nonNegativeDecimal" name="threshold"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element type="nonNegativeDecimal" name="percentage"> |
| <xs:annotation name="nonnull"/> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="autoBrightness"> |
| <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/> |
| <xs:sequence> |
| <!-- Sets the debounce for autoBrightness brightening in millis--> |
| <xs:element name="brighteningLightDebounceMillis" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Sets the debounce for autoBrightness darkening in millis--> |
| <xs:element name="darkeningLightDebounceMillis" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <!-- Sets the brightness mapping of the desired screen brightness in nits to the |
| corresponding lux for the current display --> |
| <xs:element name="displayBrightnessMapping" type="displayBrightnessMapping" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Represents the brightness mapping of the desired screen brightness in nits to the |
| corresponding lux for the current display --> |
| <xs:complexType name="displayBrightnessMapping"> |
| <xs:sequence> |
| <!-- Sets the list of display brightness points, each representing the desired screen |
| brightness in nits to the corresponding lux for the current display |
| |
| The N entries of this array define N + 1 control points as follows: |
| (1-based arrays) |
| |
| Point 1: (0, nits[1]): currentLux <= 0 |
| Point 2: (lux[1], nits[2]): 0 < currentLux <= lux[1] |
| Point 3: (lux[2], nits[3]): lux[2] < currentLux <= lux[3] |
| ... |
| Point N+1: (lux[N], nits[N+1]): lux[N] < currentLux |
| |
| The control points must be strictly increasing. Each control point |
| corresponds to an entry in the brightness backlight values arrays. |
| For example, if currentLux == lux[1] (first element of the levels array) |
| then the brightness will be determined by nits[2] (second element |
| of the brightness values array). |
| --> |
| <xs:element name="displayBrightnessPoint" type="displayBrightnessPoint" |
| minOccurs="1" maxOccurs="unbounded"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Represents a point in the display brightness mapping, representing the lux level from the |
| light sensor to the desired screen brightness in nits at this level --> |
| <xs:complexType name="displayBrightnessPoint"> |
| <xs:sequence> |
| <!-- The lux level from the light sensor. This must be a non-negative integer --> |
| <xs:element name="lux" type="xs:nonNegativeInteger" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| |
| <!-- Desired screen brightness in nits corresponding to the suggested lux values. |
| The display brightness is defined as the measured brightness of an all-white image. |
| This must be a non-negative integer --> |
| <xs:element name="nits" type="nonNegativeDecimal" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateConfigs"> |
| <xs:element name="defaultRefreshRate" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="defaultPeakRefreshRate" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="refreshRateZoneProfiles" type="refreshRateZoneProfiles" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="defaultRefreshRateInHbmHdr" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="defaultRefreshRateInHbmSunlight" type="xs:nonNegativeInteger" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="lowerBlockingZoneConfigs" type="blockingZoneConfig" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="higherBlockingZoneConfigs" type="blockingZoneConfig" |
| minOccurs="0" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateZoneProfiles"> |
| <xs:sequence> |
| <xs:element name="refreshRateZoneProfile" type="refreshRateZone" |
| minOccurs="0" maxOccurs="unbounded"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="refreshRateZone"> |
| <xs:attribute name="id" use="required" type="xs:string" /> |
| <xs:element name="refreshRateRange" type="refreshRateRange"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:complexType> |
| |
| <xs:complexType name="blockingZoneConfig"> |
| <xs:element name="defaultRefreshRate" type="xs:nonNegativeInteger" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="blockingZoneThreshold" type="blockingZoneThreshold" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:complexType> |
| |
| <xs:complexType name="blockingZoneThreshold"> |
| <xs:sequence> |
| <xs:element name="displayBrightnessPoint" type="displayBrightnessPoint" |
| minOccurs="1" maxOccurs="unbounded"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="integer-array"> |
| <xs:sequence> |
| <xs:element name="item" type="xs:nonNegativeInteger" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="usiVersion"> |
| <xs:element name="majorVersion" type="xs:nonNegativeInteger" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| <xs:element name="minorVersion" type="xs:nonNegativeInteger" |
| minOccurs="1" maxOccurs="1"> |
| <xs:annotation name="final"/> |
| </xs:element> |
| </xs:complexType> |
| </xs:schema> |