<?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_NextServiceAfterMeter" 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_NextServiceAfterMeter">
<xs:import namespace="http://schemas.dmtf.org/wbem/wscim/1/common" schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/common.xsd"/>
<xs:element name="PrecedingService" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The preceding MeterService, 'earlier' in the processing sequence for a packet.</cim:Qualifier>
<cim:Classorigin name="CIM_NextServiceAfterMeter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="FollowingService" type="cim:cimReference">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">The 'next' or following ConditioningService.</cim:Qualifier>
<cim:Classorigin name="CIM_NextServiceAfterMeter"/>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="MeterResult">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Qualifier name="Key" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">Information on the result of the metering. Traffic is distinguished as being conforming, non-conforming, or partially conforming. More complicated metering can be built either by extending the enumeration or by cascading meters.</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="0">Unknown</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="1">Conforming</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="2">Partially Conforming</cim:Qualifier>
<cim:Qualifier name="Values" type="cim:cimString" valuemap="3">Non-Conforming</cim:Qualifier>
<cim:Classorigin name="CIM_NextServiceAfterMeter"/>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="cim:cimUnsignedShort">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="CIM_NextServiceAfterMeter" type="class:CIM_NextServiceAfterMeter_Type">
<xs:annotation>
<xs:appinfo source="http://schemas.dmtf.org/wbem/wscim/1/common">
<cim:Class name="CIM_NextServiceAfterMeter"/>
<cim:Qualifier name="Association" type="cim:cimBoolean">true</cim:Qualifier>
<cim:Qualifier name="Version" type="cim:cimString">2.7.0</cim:Qualifier>
<cim:Qualifier name="UMLPackagePath" type="cim:cimString">CIM::Network::QoS</cim:Qualifier>
<cim:Qualifier name="Description" type="cim:cimString">This association describes a predecessor-successor relationship between a MeterService and one or more ConditioningService objects that process traffic from the meter. For example, for devices that implement preamble marking, the FollowingService reference (after the meter) is a PreambleMarkerService - to record the results of the metering in the preamble. 

It might be expected that the NextServiceAfterMeter association would subclass from NextService. However, meters are 1:n fan-out elements, and require a mechanism to distinguish between the different results/outputs of the meter. Therefore, this association defines a new key property, MeterResult, which is used to record the result and identify the output through which this traffic left the meter.</cim:Qualifier>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:complexType name="CIM_NextServiceAfterMeter_Type">
<xs:sequence>
<xs:element ref="class:FollowingService"/>
<xs:element ref="class:MeterResult"/>
<xs:element ref="class:PrecedingService"/>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>
