Commit 87aa7176 authored by filatov's avatar filatov
Browse files

XSD files and TTCN representations

parent b5c5e06d
Loading
Loading
Loading
Loading
+55 −0
Original line number Diff line number Diff line
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns="urn:iso:15118:2:2010:AppProtocol" 
	targetNamespace="urn:iso:15118:2:2010:AppProtocol">

	<xs:element name="supportedAppProtocolReq">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="AppProtocol" type="AppProtocolType" maxOccurs="20"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="supportedAppProtocolRes">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ResponseCode" type="responseCodeType"/>
				<xs:element name="SchemaID" type="idType" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="AppProtocolType">
		<xs:sequence>
			<xs:element name="ProtocolNamespace" type="protocolNamespaceType"/>
			<xs:element name="VersionNumberMajor" type="xs:unsignedInt"/>
			<xs:element name="VersionNumberMinor" type="xs:unsignedInt"/>
			<xs:element name="SchemaID" type="idType"/>
			<xs:element name="Priority" type="priorityType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="idType">
		<xs:restriction base="xs:unsignedByte"/>
	</xs:simpleType>
	<xs:simpleType name="protocolNameType">
		<xs:restriction base="xs:string">
			<xs:maxLength value="30"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="protocolNamespaceType">
		<xs:restriction base="xs:anyURI">
			<xs:maxLength value="100"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="priorityType">
		<xs:restriction base="xs:unsignedByte">
			<xs:minInclusive value="1"/>
			<xs:maxInclusive value="20"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="responseCodeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="OK_SuccessfulNegotiation"/>
			<xs:enumeration value="OK_SuccessfulNegotiationWithMinorDeviation"/>
			<xs:enumeration value="Failed_NoNegotiation"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
+482 −0
Original line number Diff line number Diff line
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="urn:iso:15118:2:2010:MsgBody"
	xmlns="urn:iso:15118:2:2010:MsgBody" 
	xmlns:v2gci_d="urn:iso:15118:2:2010:MsgDef"
	xmlns:v2gci_t="urn:iso:15118:2:2010:MsgDataTypes" 
	elementFormDefault="qualified" 
	attributeFormDefault="unqualified">

	<xs:import namespace="urn:iso:15118:2:2010:MsgDef" schemaLocation="V2G_CI_MsgDef.xsd"/>
	<xs:import namespace="urn:iso:15118:2:2010:MsgDataTypes" schemaLocation="V2G_CI_MsgDataTypes.xsd"/>
	<!-- ....................... -->
	<!-- Common Messages (AC/DC) -->
	<!-- ....................... -->
	<!--               -->
	<!-- Session Setup -->
	<!--               -->
	<xs:element name="SessionSetupReq" type="SessionSetupReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="SessionSetupReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="EVCCID" type="v2gci_t:evccIDType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SessionSetupRes" type="SessionSetupResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="SessionSetupResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="EVSEID" type="v2gci_t:evseIDType"/>
					<xs:element name="DateTimeNow" type="xs:long" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                   -->
	<!-- Service Discovery -->
	<!--                   -->
	<xs:element name="ServiceDiscoveryReq" type="ServiceDiscoveryReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServiceDiscoveryReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ServiceScope" type="v2gci_t:serviceScopeType" minOccurs="0"/>
					<xs:element name="ServiceCategory" type="v2gci_t:serviceCategoryType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ServiceDiscoveryRes" type="ServiceDiscoveryResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServiceDiscoveryResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="PaymentOptions" type="v2gci_t:PaymentOptionsType"/>
					<xs:element name="ChargeService" type="v2gci_t:ServiceChargeType"/>
					<xs:element name="ServiceList" type="v2gci_t:ServiceTagListType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                   -->
	<!-- Service Detail    -->
	<!--                   -->
	<xs:element name="ServiceDetailReq" type="ServiceDetailReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServiceDetailReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ServiceID" type="v2gci_t:serviceIDType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ServiceDetailRes" type="ServiceDetailResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServiceDetailResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="ServiceID" type="v2gci_t:serviceIDType"/>
					<xs:element name="ServiceParameterList" type="v2gci_t:ServiceParameterListType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                             -->
	<!-- Service Payment & Selection -->
	<!--                             -->
	<xs:element name="ServicePaymentSelectionReq" type="ServicePaymentSelectionReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServicePaymentSelectionReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="SelectedPaymentOption" type="v2gci_t:paymentOptionType"/>
					<xs:element name="SelectedServiceList" type="v2gci_t:SelectedServiceListType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ServicePaymentSelectionRes" type="ServicePaymentSelectionResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ServicePaymentSelectionResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                 -->
	<!-- Payment Details -->
	<!--                 -->
	<xs:element name="PaymentDetailsReq" type="PaymentDetailsReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PaymentDetailsReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ContractID" type="v2gci_t:contractIDType"/>
					<xs:element name="ContractSignatureCertChain" type="v2gci_t:CertificateChainType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PaymentDetailsRes" type="PaymentDetailsResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PaymentDetailsResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="GenChallenge" type="v2gci_t:genChallengeType"/>
					<xs:element name="DateTimeNow" type="xs:long"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                           -->
	<!-- Contract Authentification -->
	<!--                           -->
	<xs:element name="ContractAuthenticationReq" type="ContractAuthenticationReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ContractAuthenticationReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="GenChallenge" type="v2gci_t:genChallengeType" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ContractAuthenticationRes" type="ContractAuthenticationResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ContractAuthenticationResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="EVSEProcessing" type="v2gci_t:EVSEProcessingType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                            -->
	<!-- Charge Parameter Discovery -->
	<!--                            -->
	<xs:element name="ChargeParameterDiscoveryReq" type="ChargeParameterDiscoveryReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ChargeParameterDiscoveryReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="EVRequestedEnergyTransferType" type="v2gci_t:EVRequestedEnergyTransferType"/>
					<xs:element ref="v2gci_t:EVChargeParameter"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ChargeParameterDiscoveryRes" type="ChargeParameterDiscoveryResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ChargeParameterDiscoveryResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element ref="v2gci_t:SASchedules"/>
					<xs:element ref="v2gci_t:EVSEChargeParameter"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                            -->
	<!-- Power Delivery             -->
	<!--                            -->
	<xs:element name="PowerDeliveryReq" type="PowerDeliveryReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PowerDeliveryReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ReadyToChargeState" type="xs:boolean"/>
					<xs:element name="ChargingProfile" type="v2gci_t:ChargingProfileType" minOccurs="0"/>
					<xs:element ref="v2gci_t:EVPowerDeliveryParameter" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PowerDeliveryRes" type="PowerDeliveryResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PowerDeliveryResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element ref="v2gci_t:EVSEStatus"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                            -->
	<!-- Charging Status            -->
	<!--                            -->
	<xs:element name="ChargingStatusReq" type="ChargingStatusReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<!-- 	<xs:element name="MeteringStatusReq" type="MeteringStatusReqType" substitutionGroup="v2gci_d:BodyElement"/> -->
	<xs:complexType name="ChargingStatusReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ChargingStatusRes" type="ChargingStatusResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="ChargingStatusResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="EVSEID" type="v2gci_t:evseIDType"/>
					<xs:element name="SAScheduleTupleID" type="v2gci_t:SAIDType"/>
					<xs:element name="EVSEMaxCurrent" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="MeterInfo" type="v2gci_t:MeterInfoType" minOccurs="0"/>
					<xs:element name="ReceiptRequired" type="xs:boolean"/>
					<xs:element name="AC_EVSEStatus" type="v2gci_t:AC_EVSEStatusType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                            -->
	<!-- Metering Receipt           -->
	<!--                            -->
	<xs:element name="MeteringReceiptReq" type="MeteringReceiptReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="MeteringReceiptReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="SessionID" type="v2gci_t:sessionIDType"/>
					<xs:element name="SAScheduleTupleID" type="v2gci_t:SAIDType" minOccurs="0"/>
					<xs:element name="MeterInfo" type="v2gci_t:MeterInfoType"/>
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF"/>
			</xs:extension>
			<!-- only needed if receipt is required -->
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="MeteringReceiptRes" type="MeteringReceiptResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="MeteringReceiptResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="AC_EVSEStatus" type="v2gci_t:AC_EVSEStatusType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                    -->
	<!-- SessionStop        -->
	<!--                    -->
	<xs:element name="SessionStopReq" type="SessionStopType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="SessionStopType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="SessionStopRes" type="SessionStopResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="SessionStopResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                        -->
	<!-- Certificate Update     -->
	<!--                        -->
	<xs:element name="CertificateUpdateReq" type="CertificateUpdateReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CertificateUpdateReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ContractSignatureCertChain" type="v2gci_t:CertificateChainType"/>
					<xs:element name="ContractID" type="v2gci_t:contractIDType"/>
					<xs:element name="ListOfRootCertificateIDs" type="v2gci_t:ListOfRootCertificateIDsType"/>
					<xs:element name="DHParams" type="v2gci_t:dHParamsType"/>
					<!-- new -->
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CertificateUpdateRes" type="CertificateUpdateResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CertificateUpdateResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="ContractSignatureCertChain" type="v2gci_t:CertificateChainType"/>
					<xs:element name="ContractSignatureEncryptedPrivateKey" type="v2gci_t:privateKeyType"/>
					<xs:element name="DHParams" type="v2gci_t:dHParamsType"/>
					<xs:element name="ContractID" type="v2gci_t:contractIDType"/>
					<xs:element name="RetryCounter" type="xs:short"/>
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                              -->
	<!-- Certificate Installation     -->
	<!--                              -->
	<xs:element name="CertificateInstallationReq" type="CertificateInstallationReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CertificateInstallationReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="OEMProvisioningCert" type="v2gci_t:certificateType"/>
					<xs:element name="ListOfRootCertificateIDs" type="v2gci_t:ListOfRootCertificateIDsType"/>
					<xs:element name="DHParams" type="v2gci_t:dHParamsType"/>
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CertificateInstallationRes" type="CertificateInstallationResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CertificateInstallationResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="ContractSignatureCertChain" type="v2gci_t:CertificateChainType"/>
					<xs:element name="ContractSignatureEncryptedPrivateKey" type="v2gci_t:privateKeyType"/>
					<xs:element name="DHParams" type="v2gci_t:dHParamsType"/>
					<xs:element name="ContractID" type="v2gci_t:contractIDType"/>
				</xs:sequence>
				<xs:attribute name="Id" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- ....................... -->
	<!-- DC-Messages             -->
	<!-- ....................... -->
	<!--               -->
	<!-- Cable Check   -->
	<!--               -->
	<xs:element name="CableCheckReq" type="CableCheckReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CableCheckReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="v2gci_t:DC_EVStatusType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CableCheckRes" type="CableCheckResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CableCheckResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="DC_EVSEStatus" type="v2gci_t:DC_EVSEStatusType"/>
					<xs:element name="EVSEProcessing" type="v2gci_t:EVSEProcessingType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--               -->
	<!-- Pre-Charge    -->
	<!--               -->
	<xs:element name="PreChargeReq" type="PreChargeReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PreChargeReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="v2gci_t:DC_EVStatusType"/>
					<xs:element name="EVTargetVoltage" type="v2gci_t:PhysicalValueType"/>
					<xs:element name="EVTargetCurrent" type="v2gci_t:PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PreChargeRes" type="PreChargeResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="PreChargeResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="DC_EVSEStatus" type="v2gci_t:DC_EVSEStatusType"/>
					<xs:element name="EVSEPresentVoltage" type="v2gci_t:PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                   -->
	<!-- Current Demand    -->
	<!--                   -->
	<xs:element name="CurrentDemandReq" type="CurrentDemandReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CurrentDemandReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="v2gci_t:DC_EVStatusType"/>
					<xs:element name="EVTargetCurrent" type="v2gci_t:PhysicalValueType"/>
					<xs:element name="EVMaximumVoltageLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVMaximumCurrentLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVMaximumPowerLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="BulkChargingComplete" type="xs:boolean" minOccurs="0"/>
					<xs:element name="ChargingComplete" type="xs:boolean"/>
					<xs:element name="RemainingTimeToFullSoC" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="RemainingTimeToBulkSoC" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVTargetVoltage" type="v2gci_t:PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="CurrentDemandRes" type="CurrentDemandResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="CurrentDemandResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="DC_EVSEStatus" type="v2gci_t:DC_EVSEStatusType"/>
					<xs:element name="EVSEPresentVoltage" type="v2gci_t:PhysicalValueType"/>
					<xs:element name="EVSEPresentCurrent" type="v2gci_t:PhysicalValueType"/>
					<xs:element name="EVSECurrentLimitAchieved" type="xs:boolean"/>
					<xs:element name="EVSEVoltageLimitAchieved" type="xs:boolean"/>
					<xs:element name="EVSEPowerLimitAchieved" type="xs:boolean"/>
					<xs:element name="EVSEMaximumVoltageLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVSEMaximumCurrentLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
					<xs:element name="EVSEMaximumPowerLimit" type="v2gci_t:PhysicalValueType" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--                   -->
	<!-- Welding Detection -->
	<!--                   -->
	<xs:element name="WeldingDetectionReq" type="WeldingDetectionReqType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="WeldingDetectionReqType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="DC_EVStatus" type="v2gci_t:DC_EVStatusType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="WeldingDetectionRes" type="WeldingDetectionResType" substitutionGroup="v2gci_d:BodyElement"/>
	<xs:complexType name="WeldingDetectionResType">
		<xs:complexContent>
			<xs:extension base="v2gci_d:BodyBaseType">
				<xs:sequence>
					<xs:element name="ResponseCode" type="v2gci_t:responseCodeType"/>
					<xs:element name="DC_EVSEStatus" type="v2gci_t:DC_EVSEStatusType"/>
					<xs:element name="EVSEPresentVoltage" type="v2gci_t:PhysicalValueType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>
+696 −0

File added.

Preview size limit exceeded, changes collapsed.

+28 −0
Original line number Diff line number Diff line
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
	targetNamespace="urn:iso:15118:2:2010:MsgDef"
	xmlns="urn:iso:15118:2:2010:MsgDef" 
	xmlns:v2gci_h="urn:iso:15118:2:2010:MsgHeader" 
	elementFormDefault="qualified" 
	attributeFormDefault="unqualified">

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

	<!-- Message Structure -->
	<xs:element name="V2G_Message">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Header" type="v2gci_h:MessageHeaderType"/>
				<xs:element name="Body" type="BodyType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- Body -->
	<xs:complexType name="BodyType">
		<xs:sequence>
			<xs:element ref="BodyElement" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="BodyElement" type="BodyBaseType"/>
	<xs:complexType name="BodyBaseType" abstract="true"/>
</xs:schema>
+22 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading