<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:cim="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:class="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_CompositeExtentBasedOn" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" elementFormDefault="qualified" targetNamespace="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_CompositeExtentBasedOn">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<xs:element name="Antecedent" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Override" type="cim:cimString">Antecedent</cim:Qualifier>
<cim:Qualifier name="Min" type="cim:cimUnsignedInt">1</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The underlying StorageExtent.</cim:Qualifier>
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="Dependent" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Override" type="cim:cimString">Dependent</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The StorageExtent which is built on the StorageExtent.</cim:Qualifier>
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="OrderIndex" type="cim:cimUnsignedShort">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Required" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Override" type="cim:cimString">OrderIndex</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">Order matters to composite extents. An example of the use of this property is when defining a RAID-0 striped array of 3 disks. The resultant RAID array is a composite extent that is dependent on (as described by CompositeExtentBasedOn) the StorageExtents that represent each of the 3 disks. The OrderIndex of each CompositeExtentBasedOn association from the disk Extents to the RAID array could be specified as 1, 2 and 3 to indicate the order in which the disk Extents are used to access the RAID data.</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Protected Space Extent|001.1</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="LBAsMappedByDecrementing" nillable="true" type="cim:cimBoolean">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">True if logical blocks in the underlying StorageExtents are mapped in decrementing order. This property corresponds to the INCDEC value in the SCSI SCC-2 Volume Set PS_Extent Descriptor.</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="LBAMappingIncludesCheckData" nillable="true" type="cim:cimBoolean">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">True if the logical block mapping algorithm includes check data bytes. This property corresponds to the NOCHKSKIP attribute in the SCC-2 Volume Set PS_Extent Descriptor.</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="NumberOfBlocks" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The total number of blocks that will be consumed on the Dependent Extent. This is limited by the Antecedent's NumberOfBlocks, but is included explicitly to provide for the DMTF MIF mapping. In SCSI SCC, this is equivalent to the NUMBER OF LBA_PS(s) field in the Volume Set PS_Extent Descriptor.</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Protected Space Extent|001.3</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_StorageExtent.NumberOfBlocks</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="BlockSize" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">The Dependent's BlockSize is limited by the Antecedent's. In SCSI SCC, this is equivalent to the NUMBER OF BYTES PER LBA_PS field in the RedundancyGroup P_Extent Descriptor.</cim:Qualifier>
<cim:Qualifier name="Units" type="cim:cimString">Bytes</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Protected Space Extent|001.4</cim:Qualifier>
<cim:Qualifier name="ModelCorrespondence" type="cim:cimString">CIM_StorageExtent.BlockSize</cim:Qualifier>
<cim:Qualifier name="PUnit" type="cim:cimString">byte</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UserDataStripeDepth" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Number of bytes which form the stripe size for the Dependent StorageExtent. If the CompositeExtent is concatenated instead of striped, then UserDataStripeDepth should be set to zero.</cim:Qualifier>
<cim:Qualifier name="Units" type="cim:cimString">Bytes</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Protected Space Extent|001.6</cim:Qualifier>
<cim:Qualifier name="PUnit" type="cim:cimString">byte</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UnitsBeforeCheckDataInterleave" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Number of bytes of user data to skip before starting the check data interleave.</cim:Qualifier>
<cim:Qualifier name="Units" type="cim:cimString">Bytes</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Physical Extent|001.6</cim:Qualifier>
<cim:Qualifier name="PUnit" type="cim:cimString">byte</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UnitsOfCheckData" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Number of bytes to be reserved for check data.</cim:Qualifier>
<cim:Qualifier name="Units" type="cim:cimString">Bytes</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Physical Extent|001.7</cim:Qualifier>
<cim:Qualifier name="PUnit" type="cim:cimString">byte</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="UnitsOfUserData" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">Number of bytes to be reserved for user data.</cim:Qualifier>
<cim:Qualifier name="Units" type="cim:cimString">Bytes</cim:Qualifier>
<cim:Qualifier name="MappingStrings" type="cim:cimString">MIF.DMTF|Physical Extent|001.8</cim:Qualifier>
<cim:Qualifier name="PUnit" type="cim:cimString">byte</cim:Qualifier>
<cim:Classorigin name="CIM_CompositeExtentBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="StartingAddress" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">StartingAddress indicates where in lower level storage, the higher level Extent begins.</cim:Qualifier>
<cim:Classorigin name="CIM_AbstractBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="EndingAddress" nillable="true" type="cim:cimUnsignedLong">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Description" type="cim:cimString">EndingAddress indicates where in lower level storage, the higher level Extent ends. This property is useful when mapping non-contiguous Extents into a higher level grouping.</cim:Qualifier>
<cim:Classorigin name="CIM_AbstractBasedOn"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="CIM_CompositeExtentBasedOn" type="class:CIM_CompositeExtentBasedOn_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_CompositeExtentBasedOn" superclass="CIM_BasedOn"/>
<cim:Qualifier name="Association" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Version" type="cim:cimString">2.19.0</cim:Qualifier>
<cim:Qualifier name="ClassConstraint" type="cim:cimString">inv: self.Dependent.IsComposite = true</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::Device::StorageExtents</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">This specialization defines how data is striped across StorageExtents. Additionally, it includes information on distribution of check data so that the 'usual case' RAID devices can be created in one step.</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_CompositeExtentBasedOn_Type">
<xs:sequence>
<xs:element ref="class:Antecedent"/>
<xs:element minOccurs="0" ref="class:BlockSize"/>
<xs:element ref="class:Dependent"/>
<xs:element minOccurs="0" ref="class:EndingAddress"/>
<xs:element minOccurs="0" ref="class:LBAMappingIncludesCheckData"/>
<xs:element minOccurs="0" ref="class:LBAsMappedByDecrementing"/>
<xs:element minOccurs="0" ref="class:NumberOfBlocks"/>
<xs:element ref="class:OrderIndex"/>
<xs:element minOccurs="0" ref="class:StartingAddress"/>
<xs:element minOccurs="0" ref="class:UnitsBeforeCheckDataInterleave"/>
<xs:element minOccurs="0" ref="class:UnitsOfCheckData"/>
<xs:element minOccurs="0" ref="class:UnitsOfUserData"/>
<xs:element minOccurs="0" ref="class:UserDataStripeDepth"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
