<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="urn:iso:15118:2:2010:MsgDataTypes"
	xmlns="urn:iso:15118:2:2010:MsgDataTypes"
	xmlns:v2gci_b="urn:iso:15118:2:2010:MsgBody" 
	elementFormDefault="qualified" 
	attributeFormDefault="unqualified">

	<xs:import namespace="urn:iso:15118:2:2010:MsgBody" schemaLocation="V2G_CI_MsgBody.xsd"/>

	<!-- ===================   -->
	<!-- Complex types         -->
	<!-- ===================   -->
	<!-- 					   -->
	<!-- service-related types -->
	<!-- 					   -->
	<xs:complexType name="ServiceType">
		<xs:sequence>
			<xs:element name="ServiceTag" type="ServiceTagType"/>
			<xs:element name="FreeService" type="xs:boolean"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ServiceTagListType">
		<xs:sequence>
			<xs:element name="Service" type="ServiceType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ServiceTagType">
		<xs:sequence>
			<xs:element name="ServiceID" type="serviceIDType"/>
			<xs:element name="ServiceName" type="serviceNameType" minOccurs="0"/>
			<xs:element name="ServiceCategory" type="serviceCategoryType"/>
			<xs:element name="ServiceScope" type="serviceScopeType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SelectedServiceListType">
		<xs:sequence>
			<xs:element name="SelectedService" type="SelectedServiceType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SelectedServiceType">
		<xs:sequence>
			<xs:element name="ServiceID" type="serviceIDType"/>
			<xs:element name="ParameterSetID" type="xs:short" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ServiceParameterListType">
		<xs:sequence>
			<xs:element name="ParameterSet" type="ParameterSetType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ParameterSetType">
		<xs:sequence>
			<xs:element name="ParameterSetID" type="xs:short"/>
			<xs:element name="Parameter" type="ParameterType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ParameterType">
		<xs:choice>
			<xs:element name="boolValue" type="xs:boolean"/>
			<xs:element name="byteValue" type="xs:byte"/>
			<xs:element name="shortValue" type="xs:short"/>
			<xs:element name="intValue" type="xs:int"/>
			<xs:element name="physicalValue" type="PhysicalValueType"/>
			<xs:element name="stringValue" type="xs:string"/>
		</xs:choice>
		<xs:attribute name="Name" type="xs:string" use="required"/>
		<xs:attribute name="ValueType" type="valueType" use="required"/>
	</xs:complexType>
	<xs:simpleType name="valueType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="bool"/>
			<xs:enumeration value="byte"/>
			<xs:enumeration value="short"/>
			<xs:enumeration value="int"/>
			<xs:enumeration value="physicalValue"/>
			<xs:enumeration value="string"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="ServiceCharge" type="ServiceChargeType"/>
	<xs:complexType name="ServiceChargeType">
		<xs:complexContent>
			<xs:extension base="ServiceType">
				<xs:sequence>
					<xs:element name="EnergyTransferType" type="EVSESupportedEnergyTransferType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- 					   -->
	<!-- security related types -->
	<!-- 					   -->
	<xs:complexType name="CertificateChainType">
		<xs:sequence>
			<xs:element name="Certificate" type="certificateType"/>
			<xs:element name="SubCertificates" type="SubCertificatesType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SubCertificatesType">
		<xs:sequence>
			<xs:element name="Certificate" type="certificateType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ListOfRootCertificateIDsType">
		<xs:sequence>
			<xs:element name="RootCertificateID" type="rootCertificateIDType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- 					              -->
	<!-- metering related types -->
	<!-- 					              -->
	<xs:complexType name="MeterInfoType">
		<xs:sequence>
			<xs:element name="MeterID" type="meterIDType"/>
			<xs:element name="MeterReading" type="PhysicalValueType" minOccurs="0"/>
			<xs:element name="SigMeterReading" type="sigMeterReadingType" minOccurs="0"/>
			<xs:element name="MeterStatus" type="meterStatusType" minOccurs="0"/>
			<xs:element name="TMeter" type="xs:long" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="meterStatusType">
		<xs:restriction base="xs:short"/>
	</xs:simpleType>
	<!-- 					   -->
	<!-- Physical value type   -->
	<!-- 					   -->
	<xs:complexType name="PhysicalValueType">
		<xs:sequence>
			<xs:element name="Multiplier" type="unitMultiplierType"/>
			<xs:element name="Unit" type="unitSymbolType" minOccurs="0"/>
			<xs:element name="Value" type="xs:short"/>
		</xs:sequence>
	</xs:complexType>
	<!-- 			            -->
	<!-- header related types   -->
	<!-- 			            -->
	<xs:complexType name="NotificationType">
		<xs:sequence>
			<xs:element name="FaultCode" type="faultCodeType"/>
			<xs:element name="FaultMsg" type="faultMsgType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- 			            -->
	<!-- Tariff related types   -->
	<!-- 			            -->
	<xs:complexType name="SASchedulesType" abstract="true"/>
	<xs:element name="SASchedules" type="SASchedulesType"/>
	<xs:element name="SAScheduleList" type="SAScheduleListType" substitutionGroup="SASchedules"/>
	<xs:complexType name="SAScheduleListType">
		<xs:complexContent>
			<xs:extension base="SASchedulesType">
				<xs:sequence>
					<xs:element name="SAScheduleTuple" type="SAScheduleTupleType" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SAScheduleTupleType">
		<xs:sequence>
			<xs:element name="SAScheduleTupleID" type="SAIDType"/>
			<xs:element name="PMaxSchedule" type="PMaxScheduleType"/>
			<xs:element name="SalesTariff" type="SalesTariffType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SalesTariffType">
		<xs:sequence>
			<xs:element name="SalesTariffID" type="SAIDType"/>
			<xs:element name="SalesTariffDescription" type="tariffDescriptionType" minOccurs="0"/>
			<xs:element name="NumEPriceLevels" type="xs:unsignedByte"/>
			<xs:element ref="SalesTariffEntry" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="Id" type="xs:IDREF" use="required"/>
	</xs:complexType>
	<xs:complexType name="PMaxScheduleType">
		<xs:sequence>
			<xs:element name="PMaxScheduleID" type="SAIDType"/>
			<xs:element ref="PMaxScheduleEntry" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Entry" type="EntryType"/>
	<xs:complexType name="EntryType" abstract="true">
		<xs:sequence>
			<xs:element ref="TimeInterval"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SalesTariffEntry" type="SalesTariffEntryType" substitutionGroup="Entry"/>
	<xs:complexType name="SalesTariffEntryType">
		<xs:complexContent>
			<xs:extension base="EntryType">
				<xs:sequence>
					<xs:element name="EPriceLevel" type="xs:unsignedByte"/>
					<xs:element name="ConsumptionCost" type="ConsumptionCostType" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PMaxScheduleEntry" type="PMaxScheduleEntryType" substitutionGroup="Entry"/>
	<xs:complexType name="PMaxScheduleEntryType">
		<xs:complexContent>
			<xs:extension base="EntryType">
				<xs:sequence>
					<xs:element name="PMax" type="PMaxType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="IntervalType" abstract="true"/>
	<xs:element name="TimeInterval" type="IntervalType"/>
	<xs:element name="RelativeTimeInterval" type="RelativeTimeIntervalType" substitutionGroup="TimeInterval"/>
	<xs:complexType name="RelativeTimeIntervalType">
		<xs:complexContent>
			<xs:extension base="IntervalType">
				<xs:sequence>
					<xs:element name="start" type="xs:unsignedInt"/>
					<xs:element name="duration" type="xs:unsignedInt" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="ConsumptionCostType">
		<xs:sequence>
			<xs:element name="startValue" type="xs:unsignedInt"/>
			<xs:element name="Cost" type="CostType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CostType">
		<xs:sequence>
			<xs:element name="costKind" type="costKindType"/>
			<xs:element name="amount" type="xs:unsignedInt"/>
			<xs:element name="amountMultiplier" type="unitMultiplierType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- 			              -->
	<!-- EV/EVSE related types   -->
	<!-- 			              -->
	<xs:complexType name="EVSEStatusType" abstract="true"/>
	<xs:element name="EVSEStatus" type="EVSEStatusType"/>
	<xs:element name="AC_EVSEStatus" type="AC_EVSEStatusType" substitutionGroup="EVSEStatus"/>
	<xs:complexType name="AC_EVSEStatusType">
		<xs:complexContent>
			<xs:extension base="EVSEStatusType">
				<xs:sequence>
					<xs:element name="PowerSwitchClosed" type="xs:boolean"/>
					<xs:element name="RCD" type="xs:boolean"/>
					<xs:element name="NotificationMaxDelay" type="xs:unsignedInt"/>
					<xs:element name="EVSENotification" type="EVSENotificationType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="EVStatusType" abstract="true"/>
	<xs:element name="EVStatus" type="EVStatusType"/>
	<xs:element name="DC_EVSEStatus" type="DC_EVSEStatusType" substitutionGroup="EVSEStatus"/>
	<xs:complexType name="DC_EVSEStatusType">
		<xs:complexContent>
			<xs:extension base="EVSEStatusType">
				<xs:sequence>
					<xs:element name="EVSEIsolationStatus" type="isolationLevelType" minOccurs="0"/>
					<xs:element name="EVSEStatusCode" type="DC_EVSEStatusCodeType"/>
					<xs:element name="NotificationMaxDelay" type="xs:unsignedInt"/>
					<xs:element name="EVSENotification" type="EVSENotificationType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DC_EVStatus" type="DC_EVStatusType" substitutionGroup="EVStatus"/>
	<xs:complexType name="DC_EVStatusType">
		<xs:complexContent>
			<xs:extension base="EVStatusType">
				<xs:sequence>
					<xs:element name="EVReady" type="xs:boolean"/>
					<xs:element name="EVCabinConditioning" type="xs:boolean" minOccurs="0"/>
					<xs:element name="EVRESSConditioning" type="xs:boolean" minOccurs="0"/>
					<xs:element name="EVErrorCode" type="DC_EVErrorCodeType"/>
					<xs:element name="EVRESSSOC" type="percentValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- 		            	                   -->
	<!-- EVSE/EV Charge Parameter related types   -->
	<!-- 			                               -->
	<xs:complexType name="EVChargeParameterType" abstract="true"/>
	<xs:element name="EVChargeParameter" type="EVChargeParameterType"/>
	<xs:element name="AC_EVChargeParameter" type="AC_EVChargeParameterType" substitutionGroup="EVChargeParameter"/>
	<xs:complexType name="AC_EVChargeParameterType">
		<xs:complexContent>
			<xs:extension base="EVChargeParameterType">
				<xs:sequence>
					<xs:element name="DepartureTime" type="xs:unsignedInt"/>
					<xs:element name="EAmount" type="PhysicalValueType"/>
					<xs:element name="EVMaxVoltage" type="PhysicalValueType"/>
					<xs:element name="EVMaxCurrent" type="PhysicalValueType"/>
					<xs:element name="EVMinCurrent" type="PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DC_EVChargeParameter" type="DC_EVChargeParameterType" substitutionGroup="EVChargeParameter"/>
	<xs:complexType name="DC_EVChargeParameterType">
		<xs:complexContent>
			<xs:extension base="EVChargeParameterType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="DC_EVStatusType"/>
					<xs:element name="EVMaximumCurrentLimit" type="PhysicalValueType"/>
					<xs:element name="EVMaximumPowerLimit" type="PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVMaximumVoltageLimit" type="PhysicalValueType"/>
					<xs:element name="EVEnergyCapacity" type="PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVEnergyRequest" type="PhysicalValueType" minOccurs="0"/>
					<xs:element name="FullSOC" type="percentValueType" minOccurs="0"/>
					<xs:element name="BulkSOC" type="percentValueType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="EVSEChargeParameterType" abstract="true"/>
	<xs:element name="EVSEChargeParameter" type="EVSEChargeParameterType"/>
	<xs:element name="AC_EVSEChargeParameter" type="AC_EVSEChargeParameterType" substitutionGroup="EVSEChargeParameter"/>
	<xs:complexType name="AC_EVSEChargeParameterType">
		<xs:complexContent>
			<xs:extension base="EVSEChargeParameterType">
				<xs:sequence>
					<xs:element name="AC_EVSEStatus" type="AC_EVSEStatusType"/>
					<xs:element name="EVSEMaxVoltage" type="PhysicalValueType"/>
					<xs:element name="EVSEMaxCurrent" type="PhysicalValueType"/>
					<xs:element name="EVSEMinCurrent" type="PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DC_EVSEChargeParameter" type="DC_EVSEChargeParameterType" substitutionGroup="EVSEChargeParameter"/>
	<xs:complexType name="DC_EVSEChargeParameterType">
		<xs:complexContent>
			<xs:extension base="EVSEChargeParameterType">
				<xs:sequence>
					<xs:element name="DC_EVSEStatus" type="DC_EVSEStatusType"/>
					<xs:element name="EVSEMaximumCurrentLimit" type="PhysicalValueType"/>
					<xs:element name="EVSEMaximumPowerLimit" type="PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVSEMaximumVoltageLimit" type="PhysicalValueType"/>
					<xs:element name="EVSEMinimumCurrentLimit" type="PhysicalValueType"/>
					<xs:element name="EVSEMinimumVoltageLimit" type="PhysicalValueType"/>
					<xs:element name="EVSECurrentRegulationTolerance" type="PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVSEPeakCurrentRipple" type="PhysicalValueType"/>
					<xs:element name="EVSEEnergyToBeDelivered" type="PhysicalValueType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- 		            	                   -->
	<!-- EV Power Delivery related types          -->
	<!-- 			                               -->
	<xs:complexType name="EVPowerDeliveryParameterType" abstract="true"/>
	<xs:element name="EVPowerDeliveryParameter" type="EVPowerDeliveryParameterType"/>
	<xs:element name="DC_EVPowerDeliveryParameter" type="DC_EVPowerDeliveryParameterType" substitutionGroup="EVPowerDeliveryParameter"/>
	<xs:complexType name="DC_EVPowerDeliveryParameterType">
		<xs:complexContent>
			<xs:extension base="EVPowerDeliveryParameterType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="DC_EVStatusType"/>
					<xs:element name="BulkChargingComplete" type="xs:boolean" minOccurs="0"/>
					<xs:element name="ChargingComplete" type="xs:boolean"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- 		            	     -->
	<!-- ChargingProfileType         -->
	<!-- 			                 -->
	<xs:complexType name="ChargingProfileType">
		<xs:sequence>
			<xs:element name="SAScheduleTupleID" type="SAIDType"/>
			<xs:element name="ProfileEntry" type="ProfileEntryType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ProfileEntryType">
		<xs:sequence>
			<xs:element name="ChargingProfileEntryStart" type="xs:unsignedInt"/>
			<xs:element name="ChargingProfileEntryMaxPower" type="PMaxType"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ===================   -->
	<!-- Simple types          -->
	<!-- ===================   -->
	<!--               -->
	<!-- General Types -->
	<!--               -->
	<xs:simpleType name="PMaxType">
		<xs:restriction base="xs:short"/>
	</xs:simpleType>
	<xs:simpleType name="percentValueType">
		<xs:restriction base="xs:byte">
			<xs:minInclusive value="0"/>
			<xs:maxInclusive value="100"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="faultMsgType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="64"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="EVSEProcessingType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Finished"/>
			<xs:enumeration value="Ongoing"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="EVSENotificationType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="None"/>
			<xs:enumeration value="StopCharging"/>
			<xs:enumeration value="ReNegotiation"/>
		</xs:restriction>
	</xs:simpleType>
	<!--               		   -->
	<!-- service related types -->
	<!--               		   -->
	<xs:simpleType name="serviceNameType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="serviceCategoryType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="EVCharging"/>
			<xs:enumeration value="Internet"/>
			<xs:enumeration value="ContractCertificate"/>
			<xs:enumeration value="OtherCustom"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="serviceScopeType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<!--               		   -->
	<!-- EnergyTransferType    -->
	<!--               		   -->
	<xs:simpleType name="EVSESupportedEnergyTransferType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AC_single_phase_core"/>
			<xs:enumeration value="AC_three_phase_core"/>
			<xs:enumeration value="DC_core"/>
			<xs:enumeration value="DC_extended"/>
			<xs:enumeration value="DC_combo_core"/>
			<xs:enumeration value="DC_dual"/>
			<xs:enumeration value="AC_core1p_DC_extended"/>
			<xs:enumeration value="AC_single_DC_core"/>
			<xs:enumeration value="AC_single_phase_three_phase_core_DC_extended"/>
			<xs:enumeration value="AC_core3p_DC_extended"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="EVRequestedEnergyTransferType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AC_single_phase_core"/>
			<xs:enumeration value="AC_three_phase_core"/>
			<xs:enumeration value="DC_core"/>
			<xs:enumeration value="DC_extended"/>
			<xs:enumeration value="DC_combo_core"/>
			<xs:enumeration value="DC_unique"/>
		</xs:restriction>
	</xs:simpleType>
	<!--               		   -->
	<!-- security types        -->
	<!--               		   -->
	<xs:simpleType name="genChallengeType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="certificateType">
		<xs:restriction base="xs:base64Binary">
			<xs:maxLength value="1200"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="rootCertificateIDType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="40"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="dHParamsType">
		<xs:restriction base="xs:base64Binary">
			<xs:maxLength value="256"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="privateKeyType">
		<xs:restriction base="xs:base64Binary">
			<xs:maxLength value="128"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="sigMeterReadingType">
		<xs:restriction base="xs:base64Binary">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<!--                		   -->
	<!-- Identification Numbers    -->
	<!--               		       -->
	<xs:simpleType name="sessionIDType">
		<xs:restriction base="xs:hexBinary">
			<xs:length value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="evccIDType">
		<xs:restriction base="xs:hexBinary">
			<xs:maxLength value="8"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="evseIDType">
		<xs:restriction base="xs:hexBinary">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="serviceIDType">
		<xs:restriction base="xs:unsignedShort"/>
	</xs:simpleType>
	<xs:simpleType name="contractIDType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="24"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="meterIDType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<!--                	     -->
	<!-- Tariffs and payment     -->
	<!--               		     -->
	<xs:simpleType name="SAIDType">
		<xs:restriction base="xs:short"/>
	</xs:simpleType>
	<xs:simpleType name="tariffDescriptionType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="32"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="costKindType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="relativePricePercentage"/>
			<xs:enumeration value="RenewableGenerationPercentage"/>
			<xs:enumeration value="CarbonDioxideEmission"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="PaymentOptionsType">
		<xs:sequence>
			<xs:element name="PaymentOption" type="paymentOptionType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="paymentOptionType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Contract"/>
			<xs:enumeration value="ExternalPayment"/>
		</xs:restriction>
	</xs:simpleType>
	<!--                	              -->
	<!-- Fault and Response Codes         -->
	<!--               		              -->
	<xs:simpleType name="faultCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ParsingError"/>
			<xs:enumeration value="NoTLSRootCertificatAvailable"/>
			<xs:enumeration value="UnknownError"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="responseCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="OK"/>
			<xs:enumeration value="OK_NewSessionEstablished"/>
			<xs:enumeration value="OK_OldSessionJoined"/>
			<xs:enumeration value="OK_CertificateExpiresSoon"/>
			<xs:enumeration value="FAILED"/>
			<xs:enumeration value="FAILED_SequenceError"/>
			<xs:enumeration value="FAILED_ServiceIDInvalid"/>
			<xs:enumeration value="FAILED_UnknownSession"/>
			<xs:enumeration value="FAILED_ServiceSelectionInvalid"/>
			<xs:enumeration value="FAILED_PaymentSelectionInvalid"/>
			<xs:enumeration value="FAILED_CertificateExpired"/>
			<xs:enumeration value="FAILED_SignatureError"/>
			<xs:enumeration value="FAILED_NoCertificateAvailable"/>
			<xs:enumeration value="FAILED_CertChainError"/>
			<xs:enumeration value="FAILED_ChallengeInvalid"/>
			<xs:enumeration value="FAILED_ContractCanceled"/>
			<xs:enumeration value="FAILED_WrongChargeParameter"/>
			<xs:enumeration value="FAILED_PowerDeliveryNotApplied"/>
			<xs:enumeration value="FAILED_TariffSelectionInvalid"/>
			<xs:enumeration value="FAILED_ChargingProfileInvalid"/>
			<xs:enumeration value="FAILED_EVSEPresentVoltageToLow"/>
			<xs:enumeration value="FAILED_MeteringSignatureNotValid"/>
			<xs:enumeration value="FAILED_WrongEnergyTransferType"/>
		</xs:restriction>
	</xs:simpleType>
	<!--                	       -->
	<!-- Multiplier and Unit Types -->
	<!--               		       -->
	<xs:simpleType name="unitMultiplierType">
		<xs:restriction base="xs:byte">
			<xs:minInclusive value="-3"/>
			<xs:maxInclusive value="3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="unitSymbolType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="h">
				<xs:annotation>
					<xs:documentation>Time in hours</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="m">
				<xs:annotation>
					<xs:documentation>Time in minutes</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="s">
				<xs:annotation>
					<xs:documentation>Time in seconds</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="A">
				<xs:annotation>
					<xs:documentation>Current in Ampere</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Ah">
				<xs:annotation>
					<xs:documentation>Ampere hour</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="V">
				<xs:annotation>
					<xs:documentation>Voltage in Volt</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="VA">
				<xs:annotation>
					<xs:documentation>Apparent power in Volt Ampere</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="W">
				<xs:annotation>
					<xs:documentation>Active power in Watt</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="W/s">
				<xs:annotation>
					<xs:documentation>Watt per second</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Wh">
				<xs:annotation>
					<xs:documentation>Real energy in Watt hours</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<!--                  -->
	<!-- only DC related  -->
	<!--                  -->
	<xs:simpleType name="DC_EVSEStatusCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="EVSE_NotReady"/>
			<xs:enumeration value="EVSE_Ready"/>
			<xs:enumeration value="EVSE_Shutdown"/>
			<xs:enumeration value="EVSE_UtilityInterruptEvent"/>
			<xs:enumeration value="EVSE_Precharge"/>
			<xs:enumeration value="EVSE_IsolationMonitoringActive"/>
			<xs:enumeration value="EVSE_EmergencyShutdown"/>
			<xs:enumeration value="EVSE_Malfunction"/>
			<xs:enumeration value="Reserved_8"/>
			<xs:enumeration value="Reserved_9"/>
			<xs:enumeration value="Reserved_A"/>
			<xs:enumeration value="Reserved_B"/>
			<xs:enumeration value="Reserved_C"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="isolationLevelType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Invalid"/>
			<xs:enumeration value="Safe"/>
			<xs:enumeration value="Warning"/>
			<xs:enumeration value="Fault"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DC_EVErrorCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="NO_ERROR"/>
			<xs:enumeration value="FAILED_RESSTemperatureInhibit"/>
			<xs:enumeration value="FAILED_EVShiftPosition"/>
			<xs:enumeration value="FAILED_ChargerConnectorLockFault"/>
			<xs:enumeration value="FAILED_EVRESSMalfunction"/>
			<xs:enumeration value="FAILED_ChargingCurrentdifferential"/>
			<xs:enumeration value="FAILED_ChargingVoltageOutOfRange"/>
			<xs:enumeration value="Reserved_A"/>
			<xs:enumeration value="Reserved_B"/>
			<xs:enumeration value="Reserved_C"/>
			<xs:enumeration value="FAILED_ChargingSystemIncompatibility"/>
			<xs:enumeration value="NoData"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
