diff --git a/.cproject b/.cproject
deleted file mode 100644
index 691cbe6..0000000
--- a/.cproject
+++ /dev/null
@@ -1,627 +0,0 @@
-
-
-
-
Code generated by EXISeGen
- * - ********************************************************************/ - - - #include "appHand_service.h" - #include "appHand_dataTypes.h" - #include "EXITypes.h" - #include "appHandEXIDecoder.h" - #include "appHandEXIEncoder.h" - #include "StringTable.h" - #include "appHandQNameDefines.h" - #includeCode generated by EXISeGen
- * - ********************************************************************/ - - -#include "appHand_service.h" -#include "appHand_dataTypes.h" -#include "EXITypes.h" -#include "StringTable.h" -#include "appHandEXIEncoder.h" -#include "appHandQNameDefines.h" -#includeCode generated by EXISeGen
- * - ********************************************************************/ - - -#include "EXITypes.h" -#include "appHand_dataTypes.h" - - -static void init_protocolNamespaceType(struct protocolNamespaceType* type) -{ - type->arraylen.data=0; - -} - -static void init_AppProtocolType(struct AppProtocolType* type) -{ - init_protocolNamespaceType(&(type->ProtocolNamespace)); - -} - -void init_AnonType_supportedAppProtocolReq(struct AnonType_supportedAppProtocolReq* type) -{ - int i_loop; - - for(i_loop=0; i_loop<20;i_loop++) - { - init_AppProtocolType(&(type->AppProtocol[i_loop])); - } - - type->arraylen.AppProtocol=0; - -} - -void init_AnonType_supportedAppProtocolRes(struct AnonType_supportedAppProtocolRes* type) -{ - type->isused.SchemaID=0; - -} - -void init_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type) -{ - type->isused.supportedAppProtocolReq=0; - type->isused.supportedAppProtocolRes=0; - -} diff --git a/src/appHandshake/appHand_dataTypes.h b/src/appHandshake/appHand_dataTypes.h deleted file mode 100644 index a66fedb..0000000 --- a/src/appHandshake/appHand_dataTypes.h +++ /dev/null @@ -1,133 +0,0 @@ - -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef APPHANDDATATYPES_H -#define APPHANDDATATYPES_H - -#include "EXITypes.h" - - - - -enum responseCodeType_appHand -{ - OK_SuccessfulNegotiation_responseCodeType=0, - OK_SuccessfulNegotiationWithMinorDeviation_responseCodeType=1, - Failed_NoNegotiation_responseCodeType=2 - -}; - - - - -struct arraylen_protocolNamespaceType -{ - size_t data; - - -}; - -struct protocolNamespaceType -{ - uint32_t data[100]; - struct arraylen_protocolNamespaceType arraylen; - -}; - -struct AppProtocolType -{ - struct protocolNamespaceType ProtocolNamespace; - uint32_t VersionNumberMajor; - uint32_t VersionNumberMinor; - uint8_t SchemaID; - uint8_t Priority; - - -}; - -struct arraylen_AnonType_supportedAppProtocolReq -{ - size_t AppProtocol; - - -}; - -struct AnonType_supportedAppProtocolReq -{ - struct AppProtocolType AppProtocol[20]; - struct arraylen_AnonType_supportedAppProtocolReq arraylen; - -}; - -struct selection_EXIDocumentType_appHand -{ - unsigned int supportedAppProtocolReq:1; - unsigned int supportedAppProtocolRes:1; - - -}; - -struct selection_AnonType_supportedAppProtocolRes -{ - unsigned int SchemaID:1; - - -}; - -struct AnonType_supportedAppProtocolRes -{ - enum responseCodeType_appHand ResponseCode; - uint8_t SchemaID; - struct selection_AnonType_supportedAppProtocolRes isused; - -}; - -struct EXIDocumentType_appHand -{ - struct AnonType_supportedAppProtocolReq* supportedAppProtocolReq; - struct AnonType_supportedAppProtocolRes* supportedAppProtocolRes; - struct selection_EXIDocumentType_appHand isused; - -}; - - -void init_EXIDocumentType_appHand(struct EXIDocumentType_appHand* type); -void init_AnonType_supportedAppProtocolRes(struct AnonType_supportedAppProtocolRes* type); -void init_AnonType_supportedAppProtocolReq(struct AnonType_supportedAppProtocolReq* type); - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/appHandshake/appHand_service.h b/src/appHandshake/appHand_service.h deleted file mode 100644 index 454a131..0000000 --- a/src/appHandshake/appHand_service.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2007-2010 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "DecoderChannel.h" -#include "CoderChannel.h" -#include "BitInputStream.h" -#include "EXIOptions.h" -#include "EXITypes.h" -#include "MethodsBag.h" -#include "EXICoder.h" -#include "ErrorCodes.h" - - -#ifndef ABSTRACT_DECODER_CHANNEL_C -#define ABSTRACT_DECODER_CHANNEL_C - -/* unsigned long == 64 bits, 10 * 7bits = 70 bits */ -#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_64 10 -/* unsigned int == 32 bits, 5 * 7bits = 35 bits */ -#define MAX_OCTETS_FOR_UNSIGNED_INTEGER_32 5 - -/* buffer for reading (arbitrary) large integer values */ -static uint8_t maskedOctets[MAX_OCTETS_FOR_UNSIGNED_INTEGER_64]; - - -static int _decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv, int negative) { - int errn = 0; - int i, k; - uint8_t b; - - for (i = 0; i < MAX_OCTETS_FOR_UNSIGNED_INTEGER_64; i++) { - /* Read the next octet */ - errn = decode(stream, &b); - /* If the most significant bit of the octet was 1, - another octet is going to come */ - if (b < 128) { - /* no more octets */ - - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - - switch(i) { - case 0: /* 7 bits */ - if (negative) { - iv->val.int8 = - ( b + 1); - iv->type = EXI_INTEGER_8; - } else { - iv->val.uint8 = b; - iv->type = EXI_UNSIGNED_INTEGER_8; - } - return 0; - case 1: /* 14 bits */ - maskedOctets[i] = b; - iv->val.uint16 = 0; - for (k = i; k >= 0 ; k--) { - iv->val.uint16 = (iv->val.uint16 << 7) | maskedOctets[k]; - } - if (negative) { - iv->val.int16 = - ( iv->val.uint16 + 1 ); - iv->type = EXI_INTEGER_16; - } else { - iv->type = EXI_UNSIGNED_INTEGER_16; - } - return 0; - case 2: /* 21 bits */ - case 3: /* 28 bits */ - maskedOctets[i] = b; - iv->val.uint32 = 0; - for (k = i; k >= 0 ; k--) { - iv->val.uint32 = (iv->val.uint32 << 7) | maskedOctets[k]; - } - if (negative) { - iv->val.int32 = (-1) * ( iv->val.uint32 + 1 ); - if (iv->val.int32 <= INT16_MAX && iv->val.int32 >= INT16_MIN ) { - iv->type = EXI_INTEGER_16; - } else { - iv->type = EXI_INTEGER_32; - } - } else { - if (iv->val.uint32 <= UINT16_MAX) { - iv->type = EXI_UNSIGNED_INTEGER_16; - } else { - iv->type = EXI_UNSIGNED_INTEGER_32; - } - } - return 0; - case 4: /* 35 bits */ - case 5: /* 42 bits */ - case 6: /* 49 bits */ - case 7: /* 56 bits */ - case 8: /* 63 bits */ - case 9: /* 70 bits */ - maskedOctets[i] = b; - iv->val.uint64 = 0; - for (k = i; k >= 0 ; k--) { - iv->val.uint64 = (iv->val.uint64 << 7) | maskedOctets[k]; - } - if (negative) { - if (i > 8) { - /* too large */ - return EXI_UNSUPPORTED_INTEGER_VALUE; - } - iv->val.int64 = (-1) * ( iv->val.uint64 + 1 ); - if (iv->val.int64 <= INT32_MAX && iv->val.int64 >= INT32_MIN ) { - iv->type = EXI_INTEGER_32; - } else { - iv->type = EXI_INTEGER_64; - } - } else { - if (iv->val.uint64 <= UINT32_MAX) { - iv->type = EXI_UNSIGNED_INTEGER_32; - /* iv->val.uint32 = iv->val.uint64;*/ - } else { - iv->type = EXI_UNSIGNED_INTEGER_64; - } - } - return 0; - default: - return EXI_UNSUPPORTED_INTEGER_VALUE; - } - } else { - /* the 7 least significant bits hold the actual value */ - maskedOctets[i] = (b & 127); - } - } - - - return EXI_UNSUPPORTED_INTEGER_VALUE; -} - -int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) { - return _decodeUnsignedInteger(stream, iv, 0); -} - -int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16) { - unsigned int mShift = 0; - int errn = 0; - uint8_t b; - *uint16 = 0; - - do { - /* 1. Read the next octet */ - errn = decode(stream, &b); - /* 2. Multiply the value of the unsigned number represented by the 7 - * least significant - * bits of the octet by the current multiplier and add the result to - * the current value */ - *uint16 += (b & 127) << mShift; - /* 3. Multiply the multiplier by 128 */ - mShift += 7; - /* 4. If the most significant bit of the octet was 1, go back to step 1 */ - } while (errn >= 0 && (b >> 7) == 1); - - return errn; -} - -int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32) { - /* 0XXXXXXX ... 1XXXXXXX 1XXXXXXX */ - unsigned int mShift = 0; - int errn = 0; - uint8_t b; - *uint32 = 0; - - do { - /* 1. Read the next octet */ - errn = decode(stream, &b); - /* 2. Multiply the value of the unsigned number represented by the 7 - * least significant - * bits of the octet by the current multiplier and add the result to - * the current value */ - *uint32 += (b & 127) << mShift; - /* 3. Multiply the multiplier by 128 */ - mShift += 7; - /* 4. If the most significant bit of the octet was 1, go back to step 1 */ - } while (errn >= 0 && (b >> 7) == 1); - - return errn; -} - -/** - * Decode an arbitrary precision non negative integer using a sequence of - * octets. The most significant bit of the last octet is set to zero to - * indicate sequence termination. Only seven bits per octet are used to - * store the integer's value. - */ -int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64) { - unsigned int mShift = 0; - int errn = 0; - uint8_t b; - *uint64 = 0L; - - do { - errn = decode(stream, &b); - *uint64 += ((uint64_t) (b & 127)) << mShift; - mShift += 7; - } while (errn >= 0 && (b >> 7) == 1); - - return errn; -} - - -int decodeInteger(bitstream_t* stream, exi_integer_t* iv) { - int b; - int errn = decodeBoolean(stream, &b); - if (errn < 0) { - return errn; - } - - return _decodeUnsignedInteger(stream, iv, b); -} - - -/** - * Decode an arbitrary precision integer using a sign bit followed by a - * sequence of octets. The most significant bit of the last octet is set to - * zero to indicate sequence termination. Only seven bits per octet are used - * to store the integer's value. - */ -int decodeInteger16(bitstream_t* stream, int16_t* int16) { - int b; - uint16_t uint16; - int errn = decodeBoolean(stream, &b); - - if (errn < 0) { - return errn; - } - - if (b) { - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - errn = decodeUnsignedInteger16(stream, &uint16); - *int16 = -(uint16 + 1); - } else { - /* positive */ - errn = decodeUnsignedInteger16(stream, &uint16); - *int16 = (int16_t)(uint16); - } - - return errn; -} - -/** - * Decode an arbitrary precision integer using a sign bit followed by a - * sequence of octets. The most significant bit of the last octet is set to - * zero to indicate sequence termination. Only seven bits per octet are used - * to store the integer's value. - */ -int decodeInteger32(bitstream_t* stream, int32_t* int32) { - int b; - uint32_t uint32; - int errn = decodeBoolean(stream, &b); - - if (errn < 0) { - return errn; - } - - if (b) { - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - errn = decodeUnsignedInteger32(stream, &uint32); - *int32 = (-1) * (uint32 + 1); - } else { - /* positive */ - errn = decodeUnsignedInteger32(stream, &uint32); - *int32 = (int32_t)(uint32); - } - - return errn; -} - -/** - * Decode an arbitrary precision integer using a sign bit followed by a - * sequence of octets. The most significant bit of the last octet is set to - * zero to indicate sequence termination. Only seven bits per octet are used - * to store the integer's value. - */ -int decodeInteger64(bitstream_t* stream, int64_t* int64) { - int b; - uint64_t uint64; - int errn = decodeBoolean(stream, &b); - - if (errn < 0) { - return errn; - } - - if (b) { - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - errn = decodeUnsignedInteger64(stream, &uint64); - *int64 = (-1) * (uint64 + 1); - } else { - /* positive */ - errn = decodeUnsignedInteger64(stream, &uint64); - *int64 = (int64_t)(uint64); - } - - return errn; -} - -/** - * Decode a Float datatype as two consecutive Integers. - * The first Integer represents the mantissa of the floating point - * number and the second Integer represents the base-10 exponent - * of the floating point number. - */ -int decodeFloat(bitstream_t* stream, exi_float_me_t* f) { - int errn = decodeInteger64(stream, &f->mantissa); - if (errn < 0) { - return errn; - } - return decodeInteger16(stream, &f->exponent); -} - -/** - * Decode a decimal represented as a Boolean sign followed by two Unsigned - * Integers. A sign value of zero (0) is used to represent positive Decimal - * values and a sign value of one (1) is used to represent negative Decimal - * values The first Integer represents the integral portion of the Decimal - * value. The second positive integer represents the fractional portion of - * the decimal with the digits in reverse order to preserve leading zeros. - */ -int decodeDecimal(bitstream_t* stream, exi_decimal_t* d) { - int errn = decodeBoolean(stream, &d->negative); - if (errn < 0) { - return errn; - } - errn = decodeUnsignedInteger(stream, &d->integral); - if (errn < 0) { - return errn; - } - errn = decodeUnsignedInteger(stream, &d->reverseFraction); - - return errn; -} - -/** - * Decode a sequence of characters for a given length. - */ -int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_ucs_t* s) { - int errn; - if (len > s->size) { - /* not enough space */ - return EXI_ERROR_OUT_OF_STRING_BUFFER; - } - errn = decodeCharacters(stream, len, s->codepoints); - s->len = len; - return errn; -} - -/** - * Decode a length prefixed sequence of characters. - */ -int decodeString(bitstream_t* stream, exi_string_ucs_t* s) { - int errn = decodeUnsignedInteger16(stream, &s->len); - if (errn < 0) { - return errn; - } - return decodeStringOnly(stream, s->len, s); -} - -/* -int decodeStringASCII(bitstream_t* stream, exi_string_ascii_t* s) { - uint16_t slen; - int errn = decodeUnsignedInteger16(stream, &slen); - if (errn < 0) { - return errn; - } - if (s->size < slen) { - return EXI_ERROR_OUT_OF_ASCII_BUFFER; - } - - return decodeCharactersASCII(stream, slen, s->chars); -} -*/ - - - -static int _readStringValueLocalHit(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, uint32_t* localID) { - int errn; - uint16_t codingLength; - - if(!(state->stringTable.sizeLocalStrings > qnameID)) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - - errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID], &codingLength); - if(errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, codingLength, localID); - - return errn; -} - - -static int _readStringValueGlobalHit(bitstream_t* stream, exi_state_t* state, uint32_t* globalID) { - int errn; - uint16_t codingLength; - - errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength); - if(errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, codingLength, globalID); - - return errn; -} - -int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s) { - uint16_t L; - int errn = decodeUnsignedInteger16(stream, &L); - if (errn < 0) { - return errn; - } - - switch (L) { - case 0: - /* local value partition */ - s->type = EXI_STRING_VALUE_LOCAL_HIT; - errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID); - break; - case 1: - /* found in global value partition */ - s->type = EXI_STRING_VALUE_GLOBAL_HIT; - errn = _readStringValueGlobalHit(stream, state, &s->globalID); - break; - default: - /* not found in global value (and local value) partition - * ==> string literal is encoded as a String with the length - * incremented by two */ - s->type = EXI_STRING_VALUE_MISS; - s->miss.len = L = L - 2; - errn = decodeStringOnly(stream, L, &(s->miss)); - if(errn) { - return errn; - } -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - /* If length L is greater than zero the string S is added */ - if(L > 0) { - /* After encoding the string value, it is added to both the - * associated "local" value string table partition and the global - * value string table partition */ -#if EXI_VALUE_MAX_LENGTH < 0 - errn = exi__IncrementStringValueCount(state, qnameID); -# else /* EXI_VALUE_MAX_LENGTH < 0 */ - if (L <= EXI_VALUE_MAX_LENGTH) { - errn = exi__IncrementStringValueCount(state, qnameID); - } -#endif /* EXI_VALUE_MAX_LENGTH < 0 */ - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - break; - } - - return errn; -} - -int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s) { - unsigned int i; - uint32_t cp; - uint16_t L; - int errn = decodeUnsignedInteger16(stream, &L); - if (errn < 0) { - return errn; - } - - switch (L) { - case 0: - /* local value partition */ - s->type = EXI_STRING_VALUE_LOCAL_HIT; - errn = _readStringValueLocalHit(stream, state, qnameID, &s->localID); - break; - case 1: - /* found in global value partition */ - s->type = EXI_STRING_VALUE_GLOBAL_HIT; - errn = _readStringValueGlobalHit(stream, state, &s->globalID); - break; - default: - /* not found in global value (and local value) partition - * ==> string literal is encoded as a String with the length - * incremented by two */ - s->type = EXI_STRING_VALUE_MISS; - s->miss.len = L = L - 2; - - if (L > s->miss.size) { - /* not enough space */ - return EXI_ERROR_OUT_OF_STRING_BUFFER; - } - - for (i = 0; i < L && errn >= 0; i++) { - errn = decodeNBitUnsignedInteger(stream, rcs->codingLength, &cp); - if (errn) { - return errn; - } - s->miss.codepoints[i] = rcs->codepoints[cp]; - } -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - /* If length L is greater than zero the string S is added */ - if(L > 0) { - /* After encoding the string value, it is added to both the - * associated "local" value string table partition and the global - * value string table partition */ -#if EXI_VALUE_MAX_LENGTH < 0 - errn = exi__IncrementStringValueCount(state, qnameID); -# else /* EXI_VALUE_MAX_LENGTH < 0 */ - if (L <= EXI_VALUE_MAX_LENGTH) { - errn = exi__IncrementStringValueCount(state, qnameID); - } -#endif /* EXI_VALUE_MAX_LENGTH < 0 */ - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - break; - } - - return errn; -} - -/** - * Decode a sequence of characters according to a given length. - * Each character is represented by its UCS [ISO/IEC 10646] - * code point encoded as an Unsigned Integer - */ -int decodeCharacters(bitstream_t* stream, uint16_t len, uint32_t* chars) { - unsigned int i; - int errn = 0; - for (i = 0; i < len && errn >= 0; i++) { - errn = decodeUnsignedInteger32(stream, &chars[i]); - if (errn < 0) { - return errn; - } - } - - return errn; -} - -/* -int decodeCharactersASCII(bitstream_t* stream, uint16_t len, char* chars) { - unsigned int i; - uint32_t c; - int errn = 0; - for (i = 0; i < len && errn >= 0; i++) { - errn = decodeUnsignedInteger32(stream, &c); - if (errn < 0) { - return errn; - } - if (c > 127) { - return EXI_ERROR_CONVERSION_NO_ASCII_CHARACTERS; - } - chars[i] = c; - } - chars[i] = '\0'; - - return errn; -} -*/ - - -/** - * Decode a binary value as a length-prefixed sequence of octets. - */ -int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes) { - unsigned int i; - uint8_t b; - int errn = decodeUnsignedInteger16(stream, &bytes->len); - if (errn < 0) { - return errn; - } - if (bytes->len > bytes->size) { - /* not enough space */ - return EXI_ERROR_OUT_OF_BYTE_BUFFER; - } - - for (i = 0; i < bytes->len && errn >= 0; i++) { - errn = decode(stream, &b); - if (errn < 0) { - return errn; - } - bytes->data[i] = (uint8_t)b; - } - - return errn; -} - -/** - * Decode Date-Time as sequence of values representing the individual - * components of the Date-Time. - */ -int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime) { - int errn; - - datetime->type = type; - - datetime->year = 0; - datetime->monthDay = 0; - datetime->time = 0; - datetime->presenceFractionalSecs = 0; - datetime->fractionalSecs = 0; - datetime->presenceTimezone = 0; - datetime->timezone = 0; - - switch (type) { - case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */ - errn = decodeInteger32(stream, &datetime->year); - if (errn < 0) { - return errn; - } - datetime->year += DATETIME_YEAR_OFFSET; - break; - case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */ - case EXI_DATETIME_DATE: - errn = decodeInteger32(stream, &datetime->year); - if (errn < 0) { - return errn; - } - datetime->year += DATETIME_YEAR_OFFSET; - errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay); - break; - case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */ - /* e.g. "0001-01-01T00:00:00.111+00:33" */ - errn = decodeInteger32(stream, &datetime->year); - if (errn < 0) { - return errn; - } - datetime->year += DATETIME_YEAR_OFFSET; - errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay); - if (errn < 0) { - return errn; - } - /* no break */ - case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */ - /* e.g. "12:34:56.135" */ - errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, &datetime->time); - if (errn < 0) { - return errn; - } - errn = decodeBoolean(stream, &datetime->presenceFractionalSecs); - if (errn < 0) { - return errn; - } - if (datetime->presenceFractionalSecs) { - errn = decodeUnsignedInteger32(stream, &datetime->fractionalSecs); - } - break; - case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */ - /* e.g. "--12" */ - case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */ - /* e.g. "--01-28" */ - case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */ - /* "---16" */ - errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, &datetime->monthDay ); - break; - default: - return -1; - } - - errn = decodeBoolean(stream, &datetime->presenceTimezone ); - if (errn < 0) { - return errn; - } - if (datetime->presenceTimezone) { - errn = decodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, &datetime->timezone); - datetime->timezone -= DATETIME_TIMEZONE_OFFSET_IN_MINUTES; - } - - return errn; -} - -#endif - diff --git a/src/codec/AbstractEncoderChannel.c b/src/codec/AbstractEncoderChannel.c deleted file mode 100644 index 66234de..0000000 --- a/src/codec/AbstractEncoderChannel.c +++ /dev/null @@ -1,573 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "EncoderChannel.h" -#include "CoderChannel.h" -#include "BitOutputStream.h" -#include "EXIOptions.h" -#include "EXITypes.h" -#include "ErrorCodes.h" -#include "MethodsBag.h" -#include "EXICoder.h" - -#ifndef ABSTRACT_ENCODER_CHANNEL_C -#define ABSTRACT_ENCODER_CHANNEL_C - -int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv) { - int errn = 0; - switch (iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - errn = encodeUnsignedInteger32(stream, iv->val.uint8); - break; - case EXI_UNSIGNED_INTEGER_16: - errn = encodeUnsignedInteger32(stream, iv->val.uint16); - break; - case EXI_UNSIGNED_INTEGER_32: - errn = encodeUnsignedInteger32(stream, iv->val.uint32); - break; - case EXI_UNSIGNED_INTEGER_64: - errn = encodeUnsignedInteger64(stream, iv->val.uint64); - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - if (iv->val.int8 < 0) { - return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; - } - errn = encodeUnsignedInteger32(stream, iv->val.int8); - break; - case EXI_INTEGER_16: - if (iv->val.int16 < 0) { - return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; - } - errn = encodeUnsignedInteger32(stream, iv->val.int16); - break; - case EXI_INTEGER_32: - if (iv->val.int32 < 0) { - return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; - } - errn = encodeUnsignedInteger32(stream, iv->val.int32); - break; - case EXI_INTEGER_64: - if (iv->val.int64 < 0) { - return EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE; - } - errn = encodeUnsignedInteger64(stream, iv->val.int64); - break; - default: - errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; - break; - } - - return errn; -} - -/** - * Encode an arbitrary precision non negative integer using a sequence of - * octets. The most significant bit of the last octet is set to zero to - * indicate sequence termination. Only seven bits per octet are used to - * store the integer's value. - */ -int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n) { - int errn = 0; - if (n < 128) { - /* write byte as is */ - errn = encode(stream, (uint8_t) n); - } else { - uint8_t n7BitBlocks = numberOf7BitBlocksToRepresent(n); - - switch (n7BitBlocks) { - case 5: - errn = encode(stream, (uint8_t) (128 | n)); - n = n >> 7; - if (errn < 0) { - break; - } - /* no break */ - case 4: - errn = encode(stream, (uint8_t) (128 | n)); - n = n >> 7; - if (errn < 0) { - break; - } - /* no break */ - case 3: - errn = encode(stream, (uint8_t) (128 | n)); - n = n >> 7; - if (errn < 0) { - break; - } - /* no break */ - case 2: - errn = encode(stream, (uint8_t) (128 | n)); - n = n >> 7; - if (errn < 0) { - break; - } - /* no break */ - case 1: - /* 0 .. 7 (last byte) */ - errn = encode(stream, (uint8_t) (0 | n)); - /* no break */ - } - } - - return errn; -} - -/** - * Encode an arbitrary precision non negative integer using a sequence of - * octets. The most significant bit of the last octet is set to zero to - * indicate sequence termination. Only seven bits per octet are used to - * store the integer's value. - */ -int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n) { - int errn = 0; - uint8_t lastEncode = (uint8_t) n; - n >>= 7; - - while (n != 0) { - errn = encode(stream, lastEncode | 128); - if (errn < 0) { - return errn; - } - lastEncode = (uint8_t) n; - n >>= 7; - } - - return encode(stream, lastEncode); -} - -int encodeInteger(bitstream_t* stream, exi_integer_t* iv) { - int errn = 0; - switch (iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - errn = encodeInteger32(stream, iv->val.uint8); - break; - case EXI_UNSIGNED_INTEGER_16: - errn = encodeInteger32(stream, iv->val.uint16); - break; - case EXI_UNSIGNED_INTEGER_32: - errn = encodeInteger64(stream, iv->val.uint32); - break; - case EXI_UNSIGNED_INTEGER_64: - errn = encodeInteger64(stream, iv->val.uint64); - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - errn = encodeInteger32(stream, iv->val.int8); - break; - case EXI_INTEGER_16: - errn = encodeInteger32(stream, iv->val.int16); - break; - case EXI_INTEGER_32: - errn = encodeInteger32(stream, iv->val.int32); - break; - case EXI_INTEGER_64: - errn = encodeInteger64(stream, iv->val.int64); - break; - default: - errn = EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; - break; - } - - return errn; -} - -/** - * Encode an arbitrary precision integer using a sign bit followed by a - * sequence of octets. The most significant bit of the last octet is set to - * zero to indicate sequence termination. Only seven bits per octet are used - * to store the integer's value. - */ -int encodeInteger32(bitstream_t* stream, int32_t n) { - int errn; - /* signalize sign */ - if (n < 0) { - errn = encodeBoolean(stream, 1); - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - n = (-n) - 1; - } else { - errn = encodeBoolean(stream, 0); - } - if (errn < 0) { - return errn; - } - return encodeUnsignedInteger32(stream, n); -} - -/** - * Encode an arbitrary precision integer using a sign bit followed by a - * sequence of octets. The most significant bit of the last octet is set to - * zero to indicate sequence termination. Only seven bits per octet are used - * to store the integer's value. - */ -int encodeInteger64(bitstream_t* stream, int64_t n) { - int errn; - /* signalize sign */ - if (n < 0) { - errn = encodeBoolean(stream, 1); - /* For negative values, the Unsigned Integer holds the - * magnitude of the value minus 1 */ - n = (-n) - 1; - } else { - errn = encodeBoolean(stream, 0); - } - if (errn < 0) { - return errn; - } - return encodeUnsignedInteger64(stream, n); -} - -/** - * The Float datatype representation is two consecutive Integers. - * The first Integer represents the mantissa of the floating point - * number and the second Integer represents the base-10 exponent - * of the floating point number. - */ -int encodeFloat(bitstream_t* stream, exi_float_me_t* f) { - int errn = encodeInteger64(stream, f->mantissa); - if (errn >= 0) { - errn = encodeInteger32(stream, f->exponent); - } - return errn; -} - -/** - * Encode a decimal represented as a Boolean sign followed by two Unsigned - * Integers. A sign value of zero (0) is used to represent positive Decimal - * values and a sign value of one (1) is used to represent negative Decimal - * values The first Integer represents the integral portion of the Decimal - * value. The second positive integer represents the fractional portion of - * the decimal with the digits in reverse order to preserve leading zeros. - */ -int encodeDecimal(bitstream_t* stream, exi_decimal_t* d) { - /* sign, integral, reverse fractional */ - int errn = encodeBoolean(stream, d->negative); - if (errn < 0) { - return errn; - } - errn = encodeUnsignedInteger(stream, &d->integral); - if (errn < 0) { - return errn; - } - errn = encodeUnsignedInteger(stream, &d->reverseFraction); - - return errn; -} - -/** - * Encode a length prefixed sequence of characters. - */ -/*int encodeASCII(bitstream_t* stream, const char* ascii) { - int errn; - uint32_t slen = (uint32_t) strlen(ascii); - errn = encodeUnsignedInteger32(stream, slen); - if (errn >= 0) { - errn = encodeASCIICharacters(stream, ascii, slen); - } - return errn; - }*/ - -int encodeString(bitstream_t* stream, exi_string_ucs_t* string) { - int errn = encodeUnsignedInteger32(stream, string->len); - if (errn >= 0) { - errn = encodeUCSCharacters(stream, string->codepoints, string->len); - } - return errn; -} - -static int _writeStringValueLocalHit(bitstream_t* stream, exi_state_t* state, - uint16_t qnameID, uint32_t localID) { - int errn; - uint16_t codingLength; - - if(!(state->stringTable.sizeLocalStrings > qnameID)) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - - errn = exiGetCodingLength(state->stringTable.numberOfLocalStrings[qnameID], - &codingLength); - if (errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, codingLength, localID); - - return errn; -} - -static int _writeStringValueGlobalHit(bitstream_t* stream, exi_state_t* state, - uint32_t globalID) { - int errn; - uint16_t codingLength; - - errn = exiGetCodingLength(state->stringTable.numberOfGlobalStrings, &codingLength); - if (errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, codingLength, globalID); - - return errn; -} - -int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_string_value_t* string) { - int errn; - - switch (string->type) { - case EXI_STRING_VALUE_LOCAL_HIT: - errn = encodeUnsignedInteger32(stream, 0); - if (errn) { - return errn; - } - errn = _writeStringValueLocalHit(stream, state, qnameID, - string->localID); - break; - case EXI_STRING_VALUE_GLOBAL_HIT: - errn = encodeUnsignedInteger32(stream, 1); - if (errn) { - return errn; - } - errn = _writeStringValueGlobalHit(stream, state, string->globalID); - break; - case EXI_STRING_VALUE_MISS: - /* encode string as string table miss */ - errn = encodeUnsignedInteger32(stream, string->miss.len + 2); - if (errn >= 0) { - errn = encodeUCSCharacters(stream, string->miss.codepoints, - string->miss.len); - } -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - /* If length L is greater than zero the string S is added */ - if (string->miss.len > 0) { - /* After encoding the string value, it is added to both the - * associated "local" value string table partition and the global - * value string table partition */ -#if EXI_VALUE_MAX_LENGTH < 0 - errn = exi__IncrementStringValueCount(state, qnameID); -# else /* EXI_VALUE_MAX_LENGTH < 0 */ - if (string->miss.len <= EXI_VALUE_MAX_LENGTH) { - errn = exi__IncrementStringValueCount(state, - qnameID); - } -#endif /* EXI_VALUE_MAX_LENGTH < 0 */ - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - break; - default: - errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE; - break; - } - - return errn; -} - -int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state, - uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string) { - unsigned int i; - int errn; - uint32_t k; - - switch (string->type) { - case EXI_STRING_VALUE_LOCAL_HIT: - errn = encodeUnsignedInteger32(stream, 0); - if (errn) { - return errn; - } - errn = _writeStringValueLocalHit(stream, state, qnameID, - string->localID); - break; - case EXI_STRING_VALUE_GLOBAL_HIT: - errn = encodeUnsignedInteger32(stream, 1); - if (errn) { - return errn; - } - errn = _writeStringValueGlobalHit(stream, state, string->globalID); - break; - case EXI_STRING_VALUE_MISS: - /* encode string as string table miss */ - errn = encodeUnsignedInteger32(stream, string->miss.len + 2); - if (errn) { - return errn; - } - - for (i = 0; i < string->miss.len; i++) { - for (k = 0; k < rcs->size; k++) { - if (rcs->codepoints[k] == string->miss.codepoints[i]) { - errn = encodeNBitUnsignedInteger(stream, rcs->codingLength, - k); - if (errn) { - return errn; - } - break; /* break inner for loop */ - } - } - } -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - /* If length L is greater than zero the string S is added */ - if (string->miss.len > 0) { - /* After encoding the string value, it is added to both the - * associated "local" value string table partition and the global - * value string table partition */ -#if EXI_VALUE_MAX_LENGTH < 0 - errn = exi__IncrementStringValueCount(state, qnameID); -#else /* EXI_VALUE_MAX_LENGTH < 0 */ - if (string->miss.len <= EXI_VALUE_MAX_LENGTH) { - errn = exi__IncrementStringValueCount(state, - qnameID); - } -#endif /* EXI_VALUE_MAX_LENGTH < 0 */ - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - break; - default: - errn = EXI_UNSUPPORTED_STRING_VALUE_TYPE; - break; - } - - return errn; -} - -/** - * Encode a sequence of characters according to a given length. - * Each character is represented by its UCS [ISO/IEC 10646] - * code point encoded as an Unsigned Integer - */ -int encodeUCSCharacters(bitstream_t* stream, uint32_t* chars, uint16_t len) { - unsigned int i; - int errn = 0; - for (i = 0; i < len && errn >= 0; i++) { - errn = encodeUnsignedInteger32(stream, chars[i]); - } - return errn; -} - -/*int encodeASCIICharacters(bitstream_t* stream, const char* chars, uint16_t len) { - unsigned int i; - int errn = 0; - for (i = 0; i < len && errn >= 0; i++) { - errn = encode(stream, chars[i]); - } - return errn; - }*/ - -/** - * Encode a binary value as a length-prefixed sequence of octets. - */ -int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes) { - unsigned int i; - int errn = encodeUnsignedInteger32(stream, bytes->len); - - for (i = 0; i < bytes->len && errn >= 0; i++) { - errn = encode(stream, bytes->data[i]); - } - return errn; -} - -/** - * Encode a datetime representation which is a sequence of values - * representing the individual components of the Date-Time - */ -int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime) { - int errn = 0; - switch (datetime->type) { - case EXI_DATETIME_GYEAR: /* Year, [Time-Zone] */ - errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); - break; - case EXI_DATETIME_GYEARMONTH: /* Year, MonthDay, [TimeZone] */ - case EXI_DATETIME_DATE: /* Year, MonthDay, [TimeZone] */ - errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); - if (errn < 0) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, - datetime->monthDay); - break; - case EXI_DATETIME_DATETIME: /* Year, MonthDay, Time, [FractionalSecs], [TimeZone] */ - errn = encodeInteger32(stream, datetime->year - DATETIME_YEAR_OFFSET); - if (errn < 0) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, - datetime->monthDay); - if (errn < 0) { - return errn; - } - /* no break */ - case EXI_DATETIME_TIME: /* Time, [FractionalSecs], [TimeZone] */ - errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIME, - datetime->time); - if (errn < 0) { - return errn; - } - if (datetime->presenceFractionalSecs) { - encodeBoolean(stream, 1); - if (errn < 0) { - return errn; - } - encodeUnsignedInteger32(stream, datetime->fractionalSecs); - } else { - encodeBoolean(stream, 0); - } - break; - case EXI_DATETIME_GMONTH: /* MonthDay, [TimeZone] */ - case EXI_DATETIME_GMONTHDAY: /* MonthDay, [TimeZone] */ - case EXI_DATETIME_GDAY: /* MonthDay, [TimeZone] */ - errn = encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_MONTHDAY, - datetime->monthDay); - break; - default: - return EXI_UNSUPPORTED_DATETIME_TYPE; - } - if (errn < 0) { - return errn; - } - /* [TimeZone] */ - if (datetime->presenceTimezone) { - errn = encodeBoolean(stream, 1); - if (errn < 0) { - return errn; - } - encodeNBitUnsignedInteger(stream, DATETIME_NUMBER_BITS_TIMEZONE, - datetime->timezone + DATETIME_TIMEZONE_OFFSET_IN_MINUTES); - } else { - encodeBoolean(stream, 0); - } - - return errn; -} - -#endif - diff --git a/src/codec/BitDecoderChannel.c b/src/codec/BitDecoderChannel.c deleted file mode 100644 index b5a7634..0000000 --- a/src/codec/BitDecoderChannel.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "DecoderChannel.h" -#include "BitInputStream.h" -#include "EXITypes.h" -#include "ErrorCodes.h" - -#ifndef BIT_DECODER_CHANNEL_C -#define BIT_DECODER_CHANNEL_C - - -#if EXI_ALIGNMENT == BIT_PACKED - -int decode(bitstream_t* stream, uint8_t* b) { - uint32_t bb; - int errn = readBits(stream, 8, &bb); - if (errn < 0) { - return errn; - } - if (bb > 256) { - return EXI_ERROR_UNEXPECTED_BYTE_VALUE; - } else { - *b = (uint8_t)bb; - } - return errn; -} - -int decodeBoolean(bitstream_t* stream, int* b) { - uint32_t ub; - int errn = readBits(stream, 1, &ub); - *b = (ub == 0) ? 0 : 1; - return errn; -} - -int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) { - if (nbits == 0) { - *uint32 = 0; - return 0; - } else { - return readBits(stream, nbits, uint32); - } -} - -#endif - -#endif - diff --git a/src/codec/BitEncoderChannel.c b/src/codec/BitEncoderChannel.c deleted file mode 100644 index 83051d1..0000000 --- a/src/codec/BitEncoderChannel.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "EncoderChannel.h" -#include "CoderChannel.h" -#include "BitOutputStream.h" -#include "EXITypes.h" - -#ifndef BIT_ENCODER_CHANNEL_C -#define BIT_ENCODER_CHANNEL_C - -#if EXI_ALIGNMENT == BIT_PACKED - - -int encode(bitstream_t* stream, uint8_t b) { - return writeBits(stream, 8, b); -} - -/** - * Encode a single boolean value. A false value is encoded as bit 0 and true - * value is encode as bit 1. - */ -int encodeBoolean(bitstream_t* stream, int b) { - uint8_t val = b ? 1 : 0; - return writeBits(stream, 1, val); -} - - -/** - * Encode n-bit unsigned integer. The n least significant bits of parameter - * b starting with the most significant, i.e. from left to right. - */ -int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) { - if (nbits > 0) { - return writeBits(stream, nbits, val); - } - return 0; -} - -/** - * Flush underlying bit output stream. - */ -int encodeFinish(bitstream_t* stream) { - return flush(stream); -} - - -#endif /* alignment */ - -#endif - - - - - - - - - - - - diff --git a/src/codec/BitInputStream.c b/src/codec/BitInputStream.c deleted file mode 100644 index eefc3a2..0000000 --- a/src/codec/BitInputStream.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "BitInputStream.h" -#include "EXITypes.h" -#include "ErrorCodes.h" - -#ifndef BIT_INPUT_STREAM_C -#define BIT_INPUT_STREAM_C - -/* internal method to (re)fill buffer */ -static int readBuffer(bitstream_t* stream) -{ - int errn = 0; - if(stream->capacity==0) - { -#if EXI_STREAM == BYTE_ARRAY - if ( (*stream->pos) < stream->size ) { - stream->buffer = stream->data[(*stream->pos)++]; - stream->capacity = BITS_IN_BYTE; - } else { - errn = EXI_ERROR_INPUT_STREAM_EOF; - } -#endif -#if EXI_STREAM == FILE_STREAM - stream->buffer = (uint8_t)(getc(stream->file)); - /* EOF cannot be used, 0xFF valid value */ - if ( feof(stream->file) || ferror(stream->file) ) { - return EXI_ERROR_INPUT_STREAM_EOF; - } - stream->capacity = BITS_IN_BYTE; -#endif - } - return errn; -} - -int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b) -{ - int errn = readBuffer(stream); - if (errn < 0) { - return errn; - } - - /* read the bits in one step */ - if(num_bits <= stream->capacity) - { - stream->capacity -= (uint8_t)num_bits; - *b = (stream->buffer >> stream->capacity) & (0xff >> (BITS_IN_BYTE - num_bits)); - } - else - { - /* read bits as much as possible */ - *b = stream->buffer & (0xff >> (BITS_IN_BYTE - stream->capacity)); - num_bits -= stream->capacity; - stream->capacity = 0; - - /* read whole bytes */ - while(num_bits >= 8) - { - errn = readBuffer(stream); - if (errn < 0) { - return errn; - } - *b = ((*b) << BITS_IN_BYTE) | stream->buffer; - num_bits -= BITS_IN_BYTE; - stream->capacity = 0; - } - - /* read the spare bits in the buffer */ - if(num_bits>0) - { - errn = readBuffer(stream); - if (errn < 0) { - return errn; - } - *b = ((*b) << num_bits) | (stream->buffer >> (BITS_IN_BYTE - num_bits)); - stream->capacity = (uint8_t)(BITS_IN_BYTE - num_bits); - } - - } - - return errn; -} - -#endif diff --git a/src/codec/BitInputStream.h b/src/codec/BitInputStream.h deleted file mode 100644 index f733c8b..0000000 --- a/src/codec/BitInputStream.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file BitInputStream.h - * \brief Bit Input Stream - * - * Read bits and bytes from an underlying input stream. - * - */ - -#include "EXITypes.h" - -#ifndef BIT_INPUT_STREAM_H -#define BIT_INPUT_STREAM_H - -/** - * \brief Read bits - * - * Read the next num_bits bits and returns result an integer. - * - * \param stream Input Stream - * \param num_bits Number of bits - * \param b Integer value (out) - * \return Error-Code <> 0 - * - */ -int readBits(bitstream_t* stream, uint16_t num_bits, uint32_t* b); - - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/BitOutputStream.c b/src/codec/BitOutputStream.c deleted file mode 100644 index a80560f..0000000 --- a/src/codec/BitOutputStream.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "BitOutputStream.h" -#include "EXITypes.h" -#include "ErrorCodes.h" - -#ifndef BIT_OUTPUT_STREAM_C -#define BIT_OUTPUT_STREAM_C - -int writeBits(bitstream_t* stream, uint16_t nbits, uint32_t val) { - /* is there enough space in the buffer */ - if (nbits <= stream->capacity) { - /* all bits fit into the current buffer */ - stream->buffer = (stream->buffer << (nbits)) | (val & (0xff - >> (BITS_IN_BYTE - nbits))); - stream->capacity -= (uint8_t)nbits; - /* if the buffer is full write byte */ - if (stream->capacity == 0) { -#if EXI_STREAM == BYTE_ARRAY - if ((*stream->pos) >= stream->size) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } - stream->data[(*stream->pos)++] = stream->buffer; -#endif -#if EXI_STREAM == FILE_STREAM - if ( putc(stream->buffer, stream->file) == EOF ) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } -#endif - stream->capacity = BITS_IN_BYTE; - stream->buffer = 0; - } - } else { - /* the buffer is not enough - * fill the buffer */ - stream->buffer = (stream->buffer << stream->capacity) | ((val >> (nbits - - stream->capacity)) & (0xff >> (BITS_IN_BYTE - - stream->capacity))); - - nbits -= stream->capacity; -#if EXI_STREAM == BYTE_ARRAY - if ((*stream->pos) >= stream->size) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } - stream->data[(*stream->pos)++] = stream->buffer; -#endif -#if EXI_STREAM == FILE_STREAM - if ( putc(stream->buffer, stream->file) == EOF ) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } -#endif - stream->buffer = 0; - - /* write whole bytes */ - while (nbits >= BITS_IN_BYTE) { - nbits -= BITS_IN_BYTE; -#if EXI_STREAM == BYTE_ARRAY - if ((*stream->pos) >= stream->size) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } - stream->data[(*stream->pos)++] = (val >> (nbits)); -#endif -#if EXI_STREAM == FILE_STREAM - if ( putc((val >> (nbits)), stream->file) == EOF ) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } -#endif - } - - /* spared bits are kept in the buffer */ - stream->buffer = (uint8_t)val; /* Note: the high bits will be shifted out during further filling */ - stream->capacity = (uint8_t)(BITS_IN_BYTE - (nbits)); - } - - return 0; -} - -/** - * Flush output - */ -int flush(bitstream_t* stream) { - if (stream->capacity == BITS_IN_BYTE) { - /* nothing to do, no bits in buffer */ - return 0; - } else { - return writeBits(stream, stream->capacity, 0); - } -} - -#endif - diff --git a/src/codec/BitOutputStream.h b/src/codec/BitOutputStream.h deleted file mode 100644 index 69046db..0000000 --- a/src/codec/BitOutputStream.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file BitOutputStream.h - * \brief Bit Output Stream - * - * Write bits and bytes to an underlying output stream. - * - */ - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "DecoderChannel.h" -#include "CoderChannel.h" -#include "BitInputStream.h" -#include "EXITypes.h" -#include "ErrorCodes.h" - -#ifndef BYTE_DECODER_CHANNEL_C -#define BYTE_DECODER_CHANNEL_C - - -#if EXI_ALIGNMENT == BYTE_ALIGNMENT - -int decode(bitstream_t* stream, uint8_t* b) { - int errn = 0; -#if EXI_STREAM == BYTE_ARRAY - if ( (*stream->pos) < stream->size ) { - *b = stream->data[(*stream->pos)++]; - } else { - errn = EXI_ERROR_INPUT_STREAM_EOF; - } -#endif /* EXI_STREAM == BYTE_ARRAY */ -#if EXI_STREAM == FILE_STREAM - *b = (uint8_t)(getc(stream->file)); - /* EOF cannot be used, 0xFF valid value */ - if ( feof(stream->file) || ferror(stream->file) ) { - return EXI_ERROR_INPUT_STREAM_EOF; - } -#endif /* EXI_STREAM == FILE_STREAM */ - - return errn; -} - -int decodeBoolean(bitstream_t* stream, int* b) { - uint8_t bb; - int errn = decode(stream, &bb); - *b = (bb == 0) ? 0 : 1; - return errn; -} - -/** - * Decodes and returns an n-bit unsigned integer using the minimum number of - * bytes required for n bits. - */ -int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32) { - uint16_t bitsRead = 0; - uint8_t b; - int errn = 0; - *uint32 = 0; - - while (bitsRead < nbits) { - errn = decode(stream, &b); - if (errn != 0) { - return errn; - } - *uint32 += (b << bitsRead); - bitsRead += 8; - } - - return errn; -} - -#endif - -#endif - diff --git a/src/codec/ByteEncoderChannel.c b/src/codec/ByteEncoderChannel.c deleted file mode 100644 index bf8e730..0000000 --- a/src/codec/ByteEncoderChannel.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "EncoderChannel.h" -#include "CoderChannel.h" -#include "BitOutputStream.h" -#include "EXITypes.h" -#include "MethodsBag.h" -#include "ErrorCodes.h" - -#ifndef BYTE_ENCODER_CHANNEL_C -#define BYTE_ENCODER_CHANNEL_C - -#if EXI_ALIGNMENT == BYTE_ALIGNMENT - - -int encode(bitstream_t* stream, uint8_t b) { -#if EXI_STREAM == BYTE_ARRAY - if ( (*stream->pos) < stream->size ) { - stream->data[(*stream->pos)++] = b; - return 0; - } else { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } -#endif /* EXI_STREAM == BYTE_ARRAY */ -#if EXI_STREAM == FILE_STREAM - if ( putc(b, stream->file) == EOF ) { - return EXI_ERROR_OUTPUT_STREAM_EOF; - } else { - return 0; - } -#endif /* EXI_STREAM == FILE_STREAM */ -} - -/** - * Encode a single boolean value. A false value is encoded as byte 0 and true - * value is encode as byte 1. - */ -int encodeBoolean(bitstream_t* stream, int b) { - uint8_t val = b ? 1 : 0; - return encode(stream, val); -} - - -/** - * Encode n-bit unsigned integer. The n least significant bits of parameter - * b starting with the most significant, i.e. from left to right. - */ -int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val) { - if (nbits > 0) { - if (nbits < 9) { - /* 1 byte */ - encode(stream, val & 0xff); - } else if (nbits < 17) { - /* 2 bytes */ - encode(stream, val & 0x00ff); - encode(stream, (val & 0xff00) >> 8); - } else if (nbits < 25) { - /* 3 bytes */ - encode(stream, val & 0x0000ff); - encode(stream, (val & 0x00ff00) >> 8); - encode(stream, (uint8_t)((val & 0xff0000) >> 16)); - } else if (nbits < 33) { - /* 4 bytes */ - encode(stream, val & 0x000000ff); - encode(stream, (val & 0x0000ff00) >> 8); - encode(stream, (uint8_t)((val & 0x00ff0000) >> 16)); - encode(stream, (uint8_t)((val & 0xff000000) >> 24)); - } else { - /* TODO Currently not more than 4 Bytes allowed for NBitUnsignedInteger */ - return EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH; - } - } - return 0; -} - - -/** - * Flush underlying bit output stream. - */ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -int encodeFinish(bitstream_t* stream) { - /* no pending bits in byte-aligned mode */ - return 0; -} -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ - -#endif /* alignment */ - -#endif - - - - - - - - - - - - diff --git a/src/codec/ByteStream.c b/src/codec/ByteStream.c deleted file mode 100644 index 12ea6b5..0000000 --- a/src/codec/ByteStream.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -/* Avoid VS warning, put before your included header files */ -/* warning C4996: ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. */ -#define _CRT_SECURE_NO_DEPRECATE - -#include "EXITypes.h" -#include "ErrorCodes.h" - -#ifndef BYTE_STREAM_C -#define BYTE_STREAM_C - -int readBytesFromFile(const char * filename, uint8_t* data, uint32_t size, uint32_t pos) { - FILE* f; - int character; - - f = fopen(filename, "rb"); - - if (f == NULL) { - return EXI_ERROR_INPUT_FILE_HANDLE; - } else { - /* read bytes */ - while ((character = getc(f)) != EOF) { - if (pos >= size) { - return EXI_ERROR_OUT_OF_BYTE_BUFFER; - } - data[pos++] = (uint8_t) character; - } - fclose(f); - } - - return pos; -} - -int writeBytesToFile(uint8_t* data, uint32_t len, const char * filename) { - size_t rlen; - FILE* f = fopen(filename, "wb+"); - - if (f == NULL) { - return -1; - } else { - rlen = fwrite(data, sizeof(uint8_t), len, f); - fflush(f); - fclose(f); - if(rlen == len) { - return 0; - } else { - return EXI_ERROR_OUTPUT_FILE; - } - } -} - - -#endif - diff --git a/src/codec/ByteStream.h b/src/codec/ByteStream.h deleted file mode 100644 index 65960e7..0000000 --- a/src/codec/ByteStream.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -/** - * \file ByteStream.h - * \brief Byte Stream utilities - * - */ - -#ifndef BYTE_STREAM_H -#define BYTE_STREAM_H - -/** - * \brief Write bytes to file - * - * \param data byte array - * \param len length - * \param filename File name - * \return Error-Code <> 0 - * - */ -int writeBytesToFile(uint8_t* data, uint32_t len, const char * filename); - - -/** - * \brief Read bytes from file - * - * \param filename File name - * \param data byte array - * \param size byte array size - * \param pos byte array position - * \return Error-Code <> 0 - * - */ -int readBytesFromFile(const char * filename, uint8_t* data, uint32_t size, uint32_t pos); - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/CoderChannel.h b/src/codec/CoderChannel.h deleted file mode 100644 index d24a197..0000000 --- a/src/codec/CoderChannel.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -#ifndef CODER_CHANNEL_H -#define CODER_CHANNEL_H - -/** EXI alignment mode - Option bit-packed */ -#define BIT_PACKED 1 -/** EXI alignment mode - Option byte-packed */ -#define BYTE_ALIGNMENT 2 -/** EXI alignment mode */ -#define EXI_ALIGNMENT BIT_PACKED - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/DecoderChannel.h b/src/codec/DecoderChannel.h deleted file mode 100644 index 956ee64..0000000 --- a/src/codec/DecoderChannel.h +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file DecoderChannel.h - * \brief EXI Decoder Channel - * - */ - -#include "EXITypes.h" -#include "CoderChannel.h" - -#ifndef DECODER_CHANNEL_H -#define DECODER_CHANNEL_H - - -/** - * \brief Decode byte value - * - * \param stream Input Stream - * \param b byte (out) - * \return Error-Code <> 0 - * - */ -int decode(bitstream_t* stream, uint8_t* b); - - -/** - * \brief Decode boolean - * - * Decode a single boolean value. The value false is - * represented by 0, and the value true is represented by 1. - * - * \param stream Input Stream - * \param b boolean (out) - * \return Error-Code <> 0 - * - */ -int decodeBoolean(bitstream_t* stream, int* b); - - -/** - * \brief Decode n-bit unsigned integer - * - * Decodes and returns an n-bit unsigned integer. - * - * \param stream Input Stream - * \param nbits Number of bits - * \param uint32 Value (out) - * \return Error-Code <> 0 - * - */ -int decodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t* uint32); - - -/** - * \brief Decode unsigned integer - * - * Decode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param iv Unsigned Integer Value (out) - * \return Error-Code <> 0 - * - */ -int decodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv); - - -/** - * \brief Decode unsigned integer - * - * Decode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param uint16 Unsigned Integer Value 16 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeUnsignedInteger16(bitstream_t* stream, uint16_t* uint16); - - -/** - * \brief Decode unsigned integer - * - * Decode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param uint32 Unsigned Integer Value 32 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeUnsignedInteger32(bitstream_t* stream, uint32_t* uint32); - - -/** - * \brief Decode unsigned integer - * - * Decode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param uint64 Unsigned Integer Value 64 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeUnsignedInteger64(bitstream_t* stream, uint64_t* uint64); - - -/** - * \brief Decode integer - * - * Decode an arbitrary precision integer using a sign bit - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param iv Integer Value 64 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeInteger(bitstream_t* stream, exi_integer_t* iv); - - -/** - * \brief Decode integer - * - * Decode an arbitrary precision integer using a sign bit - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param int16 Integer Value 16 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeInteger16(bitstream_t* stream, int16_t* int16); - - -/** - * \brief Decode integer - * - * Decode an arbitrary precision integer using a sign bit - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param int32 Integer Value 32 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeInteger32(bitstream_t* stream, int32_t* int32); - - -/** - * \brief Decode integer - * - * Decode an arbitrary precision integer using a sign bit - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Input Stream - * \param int64 Integer Value 64 bits (out) - * \return Error-Code <> 0 - * - */ -int decodeInteger64(bitstream_t* stream, int64_t* int64); - - -/** - * \brief Decode float - * - * Decode a Float datatype as two consecutive Integers. The - * first Integer represents the mantissa of the floating point - * number and the second Integer represents the base-10 exponent - * of the floating point number. - * - * \param stream Input Stream - * \param f Float Value (out) - * \return Error-Code <> 0 - * - */ -int decodeFloat(bitstream_t* stream, exi_float_me_t* f); - - -/** - * \brief Decode decimal - * - * Decode a decimal represented as a Boolean sign followed by two - * Unsigned Integers. A sign value of zero (0) is used to represent - * positive Decimal values and a sign value of one (1) is used to - * represent negative Decimal values The first Integer represents - * the integral portion of the Decimal value. The second positive - * integer represents the fractional portion of the decimal with - * the digits in reverse order to preserve leading zeros. - * - * \param stream Input Stream - * \param d Decimal Value (out) - * \return Error-Code <> 0 - * - */ -int decodeDecimal(bitstream_t* stream, exi_decimal_t* d); - - -/** - * \brief Decode String (no length prefix) - * - * Decode a sequence of characters for a given length. - * - * \param stream Input Stream - * \param len Characters length - * \param s String Value (out) - * \return Error-Code <> 0 - * - */ -int decodeStringOnly(bitstream_t* stream, uint16_t len, exi_string_ucs_t* s); - - -/** - * \brief Decode String - * - * Decode a length prefixed sequence of characters. - * - * \param stream Input Stream - * \param s String Value (out) - * \return Error-Code <> 0 - * - */ -int decodeString(bitstream_t* stream, exi_string_ucs_t* s); - - - -/** - * \brief Decode String value - * - * Decode a length prefixed sequence of characters in the sense of string tables. - * length == 0: local value partition hit. - * length == 1: global value partition hit. - * length > 1: string literal is encoded as a String with the length incremented by two - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param s String Value (out) - * \return Error-Code <> 0 - * - */ -int decodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_string_value_t* s); - - -/** - * \brief Decode Restricted characters set string value - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param rcs Restricted character set - * \param s String Value (out) - * \return Error-Code <> 0 - * - */ -int decodeRCSStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* s); - - -/** - * \brief Decode characters - * - * Decode a sequence of characters according to a given length. - * - * \param stream Input Stream - * \param len Length - * \param chars Characters (out) - * \return Error-Code <> 0 - * - */ -int decodeCharacters(bitstream_t* stream, uint16_t len, uint32_t* chars); - - -/** - * \brief Decode Binary - * - * Decode a binary value as a length-prefixed sequence of octets. - * - * \param stream Input Stream - * \param bytes Bytes (out) - * \return Error-Code <> 0 - * - */ -int decodeBinary(bitstream_t* stream, exi_bytes_t* bytes); - - -/** - * \brief Decode DateTime - * - * Decode Date-Time as sequence of values representing the - * individual components of the Date-Time. - * - * \param stream Input Stream - * \param type Datetime type - * \param datetime Datetime (out) - * \return Error-Code <> 0 - * - */ -int decodeDateTime(bitstream_t* stream, exi_datetime_type_t type, exi_datetime_t* datetime); - -#endif - - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/EXICoder.c b/src/codec/EXICoder.c deleted file mode 100644 index 3ca3792..0000000 --- a/src/codec/EXICoder.c +++ /dev/null @@ -1,2962 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__CODER_C -#define EXI__CODER_C - -#include "EXICoder.h" - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitInputStream.h" -#include "DecoderChannel.h" -#include "ErrorCodes.h" - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */ -#endif /* __GNUC__ */ -int exi__IncrementStringValueCount(exi_state_t* state, uint16_t qnameID) { - int errn = 0; -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - /* increment global string count */ -#if EXI_VALUE_PARTITION_CAPACITY < 0 - state->stringTable.numberOfGlobalStrings++; -#else /* EXI_VALUE_PARTITION_CAPACITY < 0 */ - if (state->stringTable.numberOfGlobalStrings < EXI_VALUE_PARTITION_CAPACITY) { - state->stringTable.numberOfGlobalStrings++; - } -#endif /* EXI_VALUE_PARTITION_CAPACITY < 0 */ - /* increment local string count */ - if (qnameID < state->stringTable.sizeLocalStrings) { - state->stringTable.numberOfLocalStrings[qnameID]++; - /* printf("\tSV %d: lv=%d and gv=%d \n", qnameID, state->numberOfLocalStrings[qnameID], state->numberOfGlobalStrings);*/ - } else { - /* currently we do support a set of qnames only */ - errn = EXI_ERROR_OUT_OF_QNAMES; - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - - return errn; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */ -#endif /* __GNUC__ */ - - -int exi__PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID) { - /* eqname_t* eqn*/ - if ((state->stackIndex + 1) < EXI_ELEMENT_STACK_SIZE) { - state->grammarStack[++state->stackIndex] = newState; - /* qname */ - state->elementStack[state->stackIndex] = qnameID; - - /*if (eqn == NULL) { - // generic SE, UCD profile - } else { - // copy IDs - state->elementStack[state->stackIndex].localPart = eqn->localPart; - state->elementStack[state->stackIndex].namespaceURI = eqn->namespaceURI; - }*/ - return 0; - } else { - return EXI_ERROR_OUT_OF_GRAMMAR_STACK; - } -} - -int exi__PopStack(exi_state_t* state) { - if (state->stackIndex >= 1) { - state->stackIndex--; - return 0; - } else { - return EXI_ERROR_OUT_OF_BOUNDS; - } -} - -int exi__HandleXsiNilTrue(exi_state_t* state) { - switch (state->grammarStack[state->stackIndex]) { - - } - - return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL; -} - -int exi__HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType) { - switch(xsiType->namespaceURI) { - case 0: - switch(xsiType->localPart) { - } - break; - case 1: - switch(xsiType->localPart) { - } - break; - case 2: - switch(xsiType->localPart) { - } - break; - case 3: - switch(xsiType->localPart) { - case 0: - /* {3}0,ENTITIES */ - state->grammarStack[state->stackIndex] = 701; - break; - case 1: - /* {3}1,ENTITY */ - state->grammarStack[state->stackIndex] = 538; - break; - case 2: - /* {3}2,ID */ - state->grammarStack[state->stackIndex] = 527; - break; - case 3: - /* {3}3,IDREF */ - state->grammarStack[state->stackIndex] = 449; - break; - case 4: - /* {3}4,IDREFS */ - state->grammarStack[state->stackIndex] = 414; - break; - case 5: - /* {3}5,NCName */ - state->grammarStack[state->stackIndex] = 282; - break; - case 6: - /* {3}6,NMTOKEN */ - state->grammarStack[state->stackIndex] = 702; - break; - case 7: - /* {3}7,NMTOKENS */ - state->grammarStack[state->stackIndex] = 698; - break; - case 8: - /* {3}8,NOTATION */ - state->grammarStack[state->stackIndex] = 678; - break; - case 9: - /* {3}9,Name */ - state->grammarStack[state->stackIndex] = 459; - break; - case 10: - /* {3}10,QName */ - state->grammarStack[state->stackIndex] = 503; - break; - case 11: - /* {3}11,anySimpleType */ - state->grammarStack[state->stackIndex] = 375; - break; - case 12: - /* {3}12,anyType */ - state->grammarStack[state->stackIndex] = 52; - break; - case 13: - /* {3}13,anyURI */ - state->grammarStack[state->stackIndex] = 672; - break; - case 14: - /* {3}14,base64Binary */ - state->grammarStack[state->stackIndex] = 706; - break; - case 15: - /* {3}15,boolean */ - state->grammarStack[state->stackIndex] = 74; - break; - case 16: - /* {3}16,byte */ - state->grammarStack[state->stackIndex] = 367; - break; - case 17: - /* {3}17,date */ - state->grammarStack[state->stackIndex] = 255; - break; - case 18: - /* {3}18,dateTime */ - state->grammarStack[state->stackIndex] = 483; - break; - case 19: - /* {3}19,decimal */ - state->grammarStack[state->stackIndex] = 286; - break; - case 20: - /* {3}20,double */ - state->grammarStack[state->stackIndex] = 623; - break; - case 21: - /* {3}21,duration */ - state->grammarStack[state->stackIndex] = 380; - break; - case 22: - /* {3}22,float */ - state->grammarStack[state->stackIndex] = 659; - break; - case 23: - /* {3}23,gDay */ - state->grammarStack[state->stackIndex] = 525; - break; - case 24: - /* {3}24,gMonth */ - state->grammarStack[state->stackIndex] = 439; - break; - case 25: - /* {3}25,gMonthDay */ - state->grammarStack[state->stackIndex] = 270; - break; - case 26: - /* {3}26,gYear */ - state->grammarStack[state->stackIndex] = 546; - break; - case 27: - /* {3}27,gYearMonth */ - state->grammarStack[state->stackIndex] = 374; - break; - case 28: - /* {3}28,hexBinary */ - state->grammarStack[state->stackIndex] = 593; - break; - case 29: - /* {3}29,int */ - state->grammarStack[state->stackIndex] = 272; - break; - case 30: - /* {3}30,integer */ - state->grammarStack[state->stackIndex] = 111; - break; - case 31: - /* {3}31,language */ - state->grammarStack[state->stackIndex] = 32; - break; - case 32: - /* {3}32,long */ - state->grammarStack[state->stackIndex] = 495; - break; - case 33: - /* {3}33,negativeInteger */ - state->grammarStack[state->stackIndex] = 226; - break; - case 34: - /* {3}34,nonNegativeInteger */ - state->grammarStack[state->stackIndex] = 468; - break; - case 35: - /* {3}35,nonPositiveInteger */ - state->grammarStack[state->stackIndex] = 57; - break; - case 36: - /* {3}36,normalizedString */ - state->grammarStack[state->stackIndex] = 555; - break; - case 37: - /* {3}37,positiveInteger */ - state->grammarStack[state->stackIndex] = 648; - break; - case 38: - /* {3}38,short */ - state->grammarStack[state->stackIndex] = 294; - break; - case 39: - /* {3}39,string */ - state->grammarStack[state->stackIndex] = 398; - break; - case 40: - /* {3}40,time */ - state->grammarStack[state->stackIndex] = 695; - break; - case 41: - /* {3}41,token */ - state->grammarStack[state->stackIndex] = 688; - break; - case 42: - /* {3}42,unsignedByte */ - state->grammarStack[state->stackIndex] = 60; - break; - case 43: - /* {3}43,unsignedInt */ - state->grammarStack[state->stackIndex] = 583; - break; - case 44: - /* {3}44,unsignedLong */ - state->grammarStack[state->stackIndex] = 690; - break; - case 45: - /* {3}45,unsignedShort */ - state->grammarStack[state->stackIndex] = 704; - break; - } - break; - case 4: - switch(xsiType->localPart) { - case 1: - /* {4}1,CanonicalizationMethodType */ - state->grammarStack[state->stackIndex] = 108; - break; - case 2: - /* {4}2,CryptoBinary */ - state->grammarStack[state->stackIndex] = 275; - break; - case 4: - /* {4}4,DSAKeyValueType */ - state->grammarStack[state->stackIndex] = 146; - break; - case 6: - /* {4}6,DigestMethodType */ - state->grammarStack[state->stackIndex] = 147; - break; - case 8: - /* {4}8,DigestValueType */ - state->grammarStack[state->stackIndex] = 148; - break; - case 12: - /* {4}12,HMACOutputLengthType */ - state->grammarStack[state->stackIndex] = 266; - break; - case 15: - /* {4}15,KeyInfoType */ - state->grammarStack[state->stackIndex] = 153; - break; - case 18: - /* {4}18,KeyValueType */ - state->grammarStack[state->stackIndex] = 155; - break; - case 20: - /* {4}20,ManifestType */ - state->grammarStack[state->stackIndex] = 156; - break; - case 24: - /* {4}24,ObjectType */ - state->grammarStack[state->stackIndex] = 160; - break; - case 27: - /* {4}27,PGPDataType */ - state->grammarStack[state->stackIndex] = 161; - break; - case 33: - /* {4}33,RSAKeyValueType */ - state->grammarStack[state->stackIndex] = 168; - break; - case 35: - /* {4}35,ReferenceType */ - state->grammarStack[state->stackIndex] = 169; - break; - case 37: - /* {4}37,RetrievalMethodType */ - state->grammarStack[state->stackIndex] = 171; - break; - case 39: - /* {4}39,SPKIDataType */ - state->grammarStack[state->stackIndex] = 174; - break; - case 44: - /* {4}44,SignatureMethodType */ - state->grammarStack[state->stackIndex] = 187; - break; - case 46: - /* {4}46,SignaturePropertiesType */ - state->grammarStack[state->stackIndex] = 188; - break; - case 48: - /* {4}48,SignaturePropertyType */ - state->grammarStack[state->stackIndex] = 189; - break; - case 49: - /* {4}49,SignatureType */ - state->grammarStack[state->stackIndex] = 186; - break; - case 51: - /* {4}51,SignatureValueType */ - state->grammarStack[state->stackIndex] = 190; - break; - case 53: - /* {4}53,SignedInfoType */ - state->grammarStack[state->stackIndex] = 92; - break; - case 55: - /* {4}55,TransformType */ - state->grammarStack[state->stackIndex] = 192; - break; - case 57: - /* {4}57,TransformsType */ - state->grammarStack[state->stackIndex] = 193; - break; - case 61: - /* {4}61,X509DataType */ - state->grammarStack[state->stackIndex] = 196; - break; - case 64: - /* {4}64,X509IssuerSerialType */ - state->grammarStack[state->stackIndex] = 314; - break; - } - break; - case 5: - switch(xsiType->localPart) { - case 3: - /* {5}3,CableCheckReqType */ - state->grammarStack[state->stackIndex] = 130; - break; - case 5: - /* {5}5,CableCheckResType */ - state->grammarStack[state->stackIndex] = 131; - break; - case 7: - /* {5}7,CertificateInstallationReqType */ - state->grammarStack[state->stackIndex] = 132; - break; - case 9: - /* {5}9,CertificateInstallationResType */ - state->grammarStack[state->stackIndex] = 133; - break; - case 11: - /* {5}11,CertificateUpdateReqType */ - state->grammarStack[state->stackIndex] = 134; - break; - case 13: - /* {5}13,CertificateUpdateResType */ - state->grammarStack[state->stackIndex] = 135; - break; - case 15: - /* {5}15,ChargeParameterDiscoveryReqType */ - state->grammarStack[state->stackIndex] = 136; - break; - case 17: - /* {5}17,ChargeParameterDiscoveryResType */ - state->grammarStack[state->stackIndex] = 54; - break; - case 22: - /* {5}22,ChargingStatusReqType */ - state->grammarStack[state->stackIndex] = 137; - break; - case 24: - /* {5}24,ChargingStatusResType */ - state->grammarStack[state->stackIndex] = 138; - break; - case 26: - /* {5}26,ContractAuthenticationReqType */ - state->grammarStack[state->stackIndex] = 139; - break; - case 28: - /* {5}28,ContractAuthenticationResType */ - state->grammarStack[state->stackIndex] = 140; - break; - case 33: - /* {5}33,CurrentDemandReqType */ - state->grammarStack[state->stackIndex] = 141; - break; - case 35: - /* {5}35,CurrentDemandResType */ - state->grammarStack[state->stackIndex] = 142; - break; - case 62: - /* {5}62,MeteringReceiptReqType */ - state->grammarStack[state->stackIndex] = 157; - break; - case 64: - /* {5}64,MeteringReceiptResType */ - state->grammarStack[state->stackIndex] = 158; - break; - case 67: - /* {5}67,PaymentDetailsReqType */ - state->grammarStack[state->stackIndex] = 163; - break; - case 69: - /* {5}69,PaymentDetailsResType */ - state->grammarStack[state->stackIndex] = 164; - break; - case 72: - /* {5}72,PowerDeliveryReqType */ - state->grammarStack[state->stackIndex] = 165; - break; - case 74: - /* {5}74,PowerDeliveryResType */ - state->grammarStack[state->stackIndex] = 166; - break; - case 76: - /* {5}76,PreChargeReqType */ - state->grammarStack[state->stackIndex] = 167; - break; - case 78: - /* {5}78,PreChargeResType */ - state->grammarStack[state->stackIndex] = 86; - break; - case 90: - /* {5}90,ServiceDetailReqType */ - state->grammarStack[state->stackIndex] = 177; - break; - case 92: - /* {5}92,ServiceDetailResType */ - state->grammarStack[state->stackIndex] = 178; - break; - case 94: - /* {5}94,ServiceDiscoveryReqType */ - state->grammarStack[state->stackIndex] = 179; - break; - case 96: - /* {5}96,ServiceDiscoveryResType */ - state->grammarStack[state->stackIndex] = 180; - break; - case 101: - /* {5}101,ServicePaymentSelectionReqType */ - state->grammarStack[state->stackIndex] = 181; - break; - case 103: - /* {5}103,ServicePaymentSelectionResType */ - state->grammarStack[state->stackIndex] = 182; - break; - case 107: - /* {5}107,SessionSetupReqType */ - state->grammarStack[state->stackIndex] = 183; - break; - case 109: - /* {5}109,SessionSetupResType */ - state->grammarStack[state->stackIndex] = 184; - break; - case 112: - /* {5}112,SessionStopResType */ - state->grammarStack[state->stackIndex] = 78; - break; - case 113: - /* {5}113,SessionStopType */ - state->grammarStack[state->stackIndex] = 185; - break; - case 115: - /* {5}115,WeldingDetectionReqType */ - state->grammarStack[state->stackIndex] = 194; - break; - case 117: - /* {5}117,WeldingDetectionResType */ - state->grammarStack[state->stackIndex] = 195; - break; - } - break; - case 6: - switch(xsiType->localPart) { - case 1: - /* {6}1,AC_EVChargeParameterType */ - state->grammarStack[state->stackIndex] = 128; - break; - case 3: - /* {6}3,AC_EVSEChargeParameterType */ - state->grammarStack[state->stackIndex] = 47; - break; - case 5: - /* {6}5,AC_EVSEStatusType */ - state->grammarStack[state->stackIndex] = 49; - break; - case 9: - /* {6}9,CertificateChainType */ - state->grammarStack[state->stackIndex] = 9; - break; - case 13: - /* {6}13,ChargingProfileType */ - state->grammarStack[state->stackIndex] = 35; - break; - case 15: - /* {6}15,ConsumptionCostType */ - state->grammarStack[state->stackIndex] = 347; - break; - case 17: - /* {6}17,CostType */ - state->grammarStack[state->stackIndex] = 1; - break; - case 19: - /* {6}19,DC_EVChargeParameterType */ - state->grammarStack[state->stackIndex] = 143; - break; - case 20: - /* {6}20,DC_EVErrorCodeType */ - state->grammarStack[state->stackIndex] = 114; - break; - case 22: - /* {6}22,DC_EVPowerDeliveryParameterType */ - state->grammarStack[state->stackIndex] = 37; - break; - case 24: - /* {6}24,DC_EVSEChargeParameterType */ - state->grammarStack[state->stackIndex] = 144; - break; - case 26: - /* {6}26,DC_EVSEStatusCodeType */ - state->grammarStack[state->stackIndex] = 119; - break; - case 27: - /* {6}27,DC_EVSEStatusType */ - state->grammarStack[state->stackIndex] = 115; - break; - case 29: - /* {6}29,DC_EVStatusType */ - state->grammarStack[state->stackIndex] = 145; - break; - case 35: - /* {6}35,EVChargeParameterType */ - state->grammarStack[state->stackIndex] = 343; - break; - case 46: - /* {6}46,EVPowerDeliveryParameterType */ - state->grammarStack[state->stackIndex] = 528; - break; - case 50: - /* {6}50,EVRequestedEnergyTransferType */ - state->grammarStack[state->stackIndex] = 214; - break; - case 52: - /* {6}52,EVSEChargeParameterType */ - state->grammarStack[state->stackIndex] = 561; - break; - case 65: - /* {6}65,EVSENotificationType */ - state->grammarStack[state->stackIndex] = 371; - break; - case 67: - /* {6}67,EVSEProcessingType */ - state->grammarStack[state->stackIndex] = 31; - break; - case 70: - /* {6}70,EVSEStatusType */ - state->grammarStack[state->stackIndex] = 46; - break; - case 71: - /* {6}71,EVSESupportedEnergyTransferType */ - state->grammarStack[state->stackIndex] = 469; - break; - case 73: - /* {6}73,EVStatusType */ - state->grammarStack[state->stackIndex] = 432; - break; - case 76: - /* {6}76,EntryType */ - state->grammarStack[state->stackIndex] = 588; - break; - case 81: - /* {6}81,IntervalType */ - state->grammarStack[state->stackIndex] = 639; - break; - case 82: - /* {6}82,ListOfRootCertificateIDsType */ - state->grammarStack[state->stackIndex] = 360; - break; - case 84: - /* {6}84,MeterInfoType */ - state->grammarStack[state->stackIndex] = 355; - break; - case 89: - /* {6}89,NotificationType */ - state->grammarStack[state->stackIndex] = 329; - break; - case 94: - /* {6}94,PMaxScheduleEntryType */ - state->grammarStack[state->stackIndex] = 162; - break; - case 96: - /* {6}96,PMaxScheduleType */ - state->grammarStack[state->stackIndex] = 45; - break; - case 97: - /* {6}97,PMaxType */ - state->grammarStack[state->stackIndex] = 613; - break; - case 101: - /* {6}101,ParameterSetType */ - state->grammarStack[state->stackIndex] = 103; - break; - case 102: - /* {6}102,ParameterType */ - state->grammarStack[state->stackIndex] = 202; - break; - case 104: - /* {6}104,PaymentOptionsType */ - state->grammarStack[state->stackIndex] = 626; - break; - case 105: - /* {6}105,PhysicalValueType */ - state->grammarStack[state->stackIndex] = 26; - break; - case 108: - /* {6}108,ProfileEntryType */ - state->grammarStack[state->stackIndex] = 537; - break; - case 111: - /* {6}111,RelativeTimeIntervalType */ - state->grammarStack[state->stackIndex] = 170; - break; - case 113: - /* {6}113,SAIDType */ - state->grammarStack[state->stackIndex] = 209; - break; - case 115: - /* {6}115,SAScheduleListType */ - state->grammarStack[state->stackIndex] = 172; - break; - case 118: - /* {6}118,SAScheduleTupleType */ - state->grammarStack[state->stackIndex] = 321; - break; - case 120: - /* {6}120,SASchedulesType */ - state->grammarStack[state->stackIndex] = 393; - break; - case 124: - /* {6}124,SalesTariffEntryType */ - state->grammarStack[state->stackIndex] = 175; - break; - case 126: - /* {6}126,SalesTariffType */ - state->grammarStack[state->stackIndex] = 533; - break; - case 128: - /* {6}128,SelectedServiceListType */ - state->grammarStack[state->stackIndex] = 522; - break; - case 129: - /* {6}129,SelectedServiceType */ - state->grammarStack[state->stackIndex] = 524; - break; - case 133: - /* {6}133,ServiceChargeType */ - state->grammarStack[state->stackIndex] = 176; - break; - case 136: - /* {6}136,ServiceParameterListType */ - state->grammarStack[state->stackIndex] = 101; - break; - case 139: - /* {6}139,ServiceTagListType */ - state->grammarStack[state->stackIndex] = 259; - break; - case 140: - /* {6}140,ServiceTagType */ - state->grammarStack[state->stackIndex] = 95; - break; - case 141: - /* {6}141,ServiceType */ - state->grammarStack[state->stackIndex] = 93; - break; - case 144: - /* {6}144,SubCertificatesType */ - state->grammarStack[state->stackIndex] = 110; - break; - case 153: - /* {6}153,certificateType */ - state->grammarStack[state->stackIndex] = 11; - break; - case 154: - /* {6}154,contractIDType */ - state->grammarStack[state->stackIndex] = 357; - break; - case 156: - /* {6}156,costKindType */ - state->grammarStack[state->stackIndex] = 3; - break; - case 157: - /* {6}157,dHParamsType */ - state->grammarStack[state->stackIndex] = 269; - break; - case 159: - /* {6}159,evccIDType */ - state->grammarStack[state->stackIndex] = 223; - break; - case 160: - /* {6}160,evseIDType */ - state->grammarStack[state->stackIndex] = 531; - break; - case 161: - /* {6}161,faultCodeType */ - state->grammarStack[state->stackIndex] = 331; - break; - case 162: - /* {6}162,faultMsgType */ - state->grammarStack[state->stackIndex] = 550; - break; - case 163: - /* {6}163,genChallengeType */ - state->grammarStack[state->stackIndex] = 8; - break; - case 165: - /* {6}165,isolationLevelType */ - state->grammarStack[state->stackIndex] = 117; - break; - case 166: - /* {6}166,meterIDType */ - state->grammarStack[state->stackIndex] = 100; - break; - case 167: - /* {6}167,meterStatusType */ - state->grammarStack[state->stackIndex] = 311; - break; - case 168: - /* {6}168,paymentOptionType */ - state->grammarStack[state->stackIndex] = 245; - break; - case 169: - /* {6}169,percentValueType */ - state->grammarStack[state->stackIndex] = 308; - break; - case 171: - /* {6}171,privateKeyType */ - state->grammarStack[state->stackIndex] = 304; - break; - case 172: - /* {6}172,responseCodeType */ - state->grammarStack[state->stackIndex] = 17; - break; - case 173: - /* {6}173,rootCertificateIDType */ - state->grammarStack[state->stackIndex] = 362; - break; - case 174: - /* {6}174,serviceCategoryType */ - state->grammarStack[state->stackIndex] = 85; - break; - case 175: - /* {6}175,serviceIDType */ - state->grammarStack[state->stackIndex] = 65; - break; - case 176: - /* {6}176,serviceNameType */ - state->grammarStack[state->stackIndex] = 409; - break; - case 177: - /* {6}177,serviceScopeType */ - state->grammarStack[state->stackIndex] = 518; - break; - case 178: - /* {6}178,sessionIDType */ - state->grammarStack[state->stackIndex] = 41; - break; - case 180: - /* {6}180,sigMeterReadingType */ - state->grammarStack[state->stackIndex] = 534; - break; - case 184: - /* {6}184,tariffDescriptionType */ - state->grammarStack[state->stackIndex] = 635; - break; - case 185: - /* {6}185,unitMultiplierType */ - state->grammarStack[state->stackIndex] = 23; - break; - case 186: - /* {6}186,unitSymbolType */ - state->grammarStack[state->stackIndex] = 418; - break; - case 187: - /* {6}187,valueType */ - state->grammarStack[state->stackIndex] = 498; - break; - } - break; - case 7: - switch(xsiType->localPart) { - case 1: - /* {7}1,BodyBaseType */ - state->grammarStack[state->stackIndex] = 691; - break; - case 3: - /* {7}3,BodyType */ - state->grammarStack[state->stackIndex] = 290; - break; - } - break; - case 8: - switch(xsiType->localPart) { - case 0: - /* {8}0,MessageHeaderType */ - state->grammarStack[state->stackIndex] = 71; - break; - } - break; - } - - - return 0; -} - - -int exi__RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID) { - int errn = EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK; - int16_t i; - - /* schema-informed global element --> Stack ID */ - switch(qnameID) { - case 61: - return exi__PushStack(state, 108, 61); - case 64: - return exi__PushStack(state, 146, 64); - case 66: - return exi__PushStack(state, 147, 66); - case 68: - return exi__PushStack(state, 148, 68); - case 75: - return exi__PushStack(state, 153, 75); - case 77: - return exi__PushStack(state, 154, 77); - case 78: - return exi__PushStack(state, 155, 78); - case 80: - return exi__PushStack(state, 156, 80); - case 82: - return exi__PushStack(state, 159, 82); - case 84: - return exi__PushStack(state, 160, 84); - case 87: - return exi__PushStack(state, 161, 87); - case 93: - return exi__PushStack(state, 168, 93); - case 95: - return exi__PushStack(state, 169, 95); - case 97: - return exi__PushStack(state, 171, 97); - case 99: - return exi__PushStack(state, 174, 99); - case 103: - return exi__PushStack(state, 186, 103); - case 104: - return exi__PushStack(state, 187, 104); - case 106: - return exi__PushStack(state, 188, 106); - case 108: - return exi__PushStack(state, 189, 108); - case 111: - return exi__PushStack(state, 190, 111); - case 113: - return exi__PushStack(state, 92, 113); - case 115: - return exi__PushStack(state, 192, 115); - case 117: - return exi__PushStack(state, 193, 117); - case 121: - return exi__PushStack(state, 196, 121); - case 133: - return exi__PushStack(state, 130, 133); - case 135: - return exi__PushStack(state, 131, 135); - case 137: - return exi__PushStack(state, 132, 137); - case 139: - return exi__PushStack(state, 133, 139); - case 141: - return exi__PushStack(state, 134, 141); - case 143: - return exi__PushStack(state, 135, 143); - case 145: - return exi__PushStack(state, 136, 145); - case 147: - return exi__PushStack(state, 54, 147); - case 152: - return exi__PushStack(state, 137, 152); - case 154: - return exi__PushStack(state, 138, 154); - case 156: - return exi__PushStack(state, 139, 156); - case 158: - return exi__PushStack(state, 140, 158); - case 163: - return exi__PushStack(state, 141, 163); - case 165: - return exi__PushStack(state, 142, 165); - case 192: - return exi__PushStack(state, 157, 192); - case 194: - return exi__PushStack(state, 158, 194); - case 197: - return exi__PushStack(state, 163, 197); - case 199: - return exi__PushStack(state, 164, 199); - case 202: - return exi__PushStack(state, 165, 202); - case 204: - return exi__PushStack(state, 166, 204); - case 206: - return exi__PushStack(state, 167, 206); - case 208: - return exi__PushStack(state, 86, 208); - case 220: - return exi__PushStack(state, 177, 220); - case 222: - return exi__PushStack(state, 178, 222); - case 224: - return exi__PushStack(state, 179, 224); - case 226: - return exi__PushStack(state, 180, 226); - case 231: - return exi__PushStack(state, 181, 231); - case 233: - return exi__PushStack(state, 182, 233); - case 237: - return exi__PushStack(state, 183, 237); - case 239: - return exi__PushStack(state, 184, 239); - case 241: - return exi__PushStack(state, 185, 241); - case 242: - return exi__PushStack(state, 78, 242); - case 245: - return exi__PushStack(state, 194, 245); - case 247: - return exi__PushStack(state, 195, 247); - case 249: - return exi__PushStack(state, 128, 249); - case 251: - return exi__PushStack(state, 47, 251); - case 253: - return exi__PushStack(state, 49, 253); - case 267: - return exi__PushStack(state, 143, 267); - case 270: - return exi__PushStack(state, 37, 270); - case 272: - return exi__PushStack(state, 144, 272); - case 274: - return exi__PushStack(state, 115, 274); - case 277: - return exi__PushStack(state, 145, 277); - case 283: - return exi__PushStack(state, 149, 283); - case 294: - return exi__PushStack(state, 38, 294); - case 300: - return exi__PushStack(state, 56, 300); - case 317: - return exi__PushStack(state, 150, 317); - case 321: - return exi__PushStack(state, 151, 321); - case 324: - return exi__PushStack(state, 152, 324); - case 342: - return exi__PushStack(state, 162, 342); - case 359: - return exi__PushStack(state, 170, 359); - case 363: - return exi__PushStack(state, 172, 363); - case 368: - return exi__PushStack(state, 173, 368); - case 372: - return exi__PushStack(state, 175, 372); - case 381: - return exi__PushStack(state, 176, 381); - case 395: - return exi__PushStack(state, 191, 395); - case 439: - return exi__PushStack(state, 129, 439); - case 442: - return exi__PushStack(state, 69, 442); - - } - - - /* retrieve existing grammar for qname if any available */ - for(i=0; iCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI__CODER_H -#define EXI__CODER_H - -#include "EXITypes.h" - -#define DOCUMENT 0 -#define DOC_CONTENT 126 -#define DOC_END 127 -#define UR_TYPE_GRAMMAR_0 227 -#define UR_TYPE_GRAMMAR_1 228 - - -/* increments global and local string count */ -int exi__IncrementStringValueCount(exi_state_t* state, uint16_t qnameID); - -int exi__PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID); - -int exi__PopStack(exi_state_t* state); - -int exi__HandleXsiNilTrue(exi_state_t* state); - -int exi__HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType); - -int exi__RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID); - -int exi__LearnAttribute(exi_state_t* state, uint16_t qnameID, uint16_t uriID, uint16_t localID); - -int exi__IsStartContent(int16_t ruleID); - -int exi__MoveToElementContentRule(exi_state_t* state); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/EXIDecoder.c b/src/codec/EXIDecoder.c deleted file mode 100644 index db4a5c9..0000000 --- a/src/codec/EXIDecoder.c +++ /dev/null @@ -1,10835 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__DECODER_C -#define EXI__DECODER_C - - -#include "EXIDecoder.h" - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitInputStream.h" -#include "DecoderChannel.h" -#include "CoderChannel.h" - -#include "StringTable.h" -#include "NameTableEntries.h" -#include "MethodsBag.h" - -#include "EXICoder.h" -#include "EXIHeaderDecoder.h" -#include "ErrorCodes.h" - -#include "QNames.h" -#include "QNameDefines.h" - - - -/* local variables */ -static uint32_t xsi; -static uint32_t bits; -static int errn; -static exi_event_t currEvent; - -#define URI_CODEPOINTS_SIZE 35 -#define LOCALNAME_CODEPOINTS_SIZE 25 - -uint32_t codepointsUri[URI_CODEPOINTS_SIZE]; -uint32_t codepointsLocalName[LOCALNAME_CODEPOINTS_SIZE]; - -/*static exi_string_ucs_t stringUri = {URI_CODEPOINTS_SIZE, codepointsUri, 0};*/ -/*static exi_name_entry_t uri = {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}};*/ -/*static exi_name_entry_t localName = {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}};*/ -static exi_qname_t _qname = { - {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}}, - {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}} -}; - - -static int _decodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) { - int errn; - uint32_t val; - - errn = decodeNBitUnsignedInteger(stream, nbits, &val); - if(errn) { - return errn; - } - - /* TODO map integer value more fine-grained */ - iv->type = EXI_INTEGER_32; - iv->val.int32 = val + lowerBound; - - return errn; -} - - - -static int exiDecodeNext2Event(bitstream_t* stream, exi_state_t* state, - exi_event_t* nextEvent) { - uint32_t eventCode2 = 0; - int16_t ruleID = state->grammarStack[state->stackIndex]; - - switch (ruleID) { - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - state->eventCode += 0; - return errn; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 202: - /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ - case 192: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 187: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 135: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 133: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 108: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 190: - /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ - case 147: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 533: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - state->eventCode += 0; - return errn; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 6: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - state->eventCode += 0; - return errn; - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 189: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - state->eventCode += 0; - return errn; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 6: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 6: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ - case 4: - /* Element[CHARACTERS[STRING]] */ - case 15: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 24: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 29: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 42: - /* Element[CHARACTERS[ENUMERATION]] */ - case 43: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ - case 51: - /* Element[CHARACTERS[STRING]] */ - case 58: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - case 61: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - case 63: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 66: - /* Element[CHARACTERS[STRING]] */ - case 67: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 72: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - case 75: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 80: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 84: - /* Element[CHARACTERS[ENUMERATION]] */ - case 88: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 90: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 25: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 97: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - case 99: - /* Element[CHARACTERS[STRING]] */ - case 104: - /* Element[CHARACTERS[INTEGER]] */ - case 27: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 112: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 120: - /* Element[CHARACTERS[ENUMERATION]] */ - case 122: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - case 197: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 198: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - case 200: - /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 207: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - case 210: - /* Element[CHARACTERS[DATETIME]] */ - case 211: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 212: - /* Element[CHARACTERS[INTEGER]] */ - case 216: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 219: - /* Element[CHARACTERS[INTEGER]] */ - case 225: - /* Element[CHARACTERS[BOOLEAN]] */ - case 229: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 230: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 233: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - case 234: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ - case 236: - /* Element[CHARACTERS[DATETIME]] */ - case 237: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 243: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 253: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - case 201: - /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 262: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 271: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 273: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ - case 280: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ - case 284: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 287: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - case 217: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 70: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ - case 291: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 293: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 297: - /* Element[CHARACTERS[STRING]] */ - case 298: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 300: - /* Element[CHARACTERS[STRING]] */ - case 303: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - case 113: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ - case 312: - /* Element[CHARACTERS[INTEGER]] */ - case 319: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - case 322: - /* Element[CHARACTERS[LIST]] */ - case 325: - /* Element[CHARACTERS[DATETIME]] */ - case 332: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ - case 335: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 341: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ - case 344: - /* Element[CHARACTERS[LIST]] */ - case 351: - /* Element[CHARACTERS[STRING]] */ - case 40: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - case 359: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 7: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ - case 285: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 365: - /* Element[CHARACTERS[ENUMERATION]] */ - case 366: - /* Element[CHARACTERS[INTEGER]] */ - case 368: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 369: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - case 68: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - case 373: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 376: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 378: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 382: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 383: - /* Element[CHARACTERS[INTEGER]] */ - case 384: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 385: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 299: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 386: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 389: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 394: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 397: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - case 403: - /* Element[CHARACTERS[STRING]] */ - case 404: - /* Element[CHARACTERS[STRING]] */ - case 406: - /* Element[CHARACTERS[STRING]] */ - case 116: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 292: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 412: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 345: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ - case 419: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - case 422: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 98: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 427: - /* Element[CHARACTERS[ENUMERATION]] */ - case 428: - /* Element[CHARACTERS[STRING]] */ - case 429: - /* Element[CHARACTERS[STRING]] */ - case 309: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - case 433: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 435: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - case 436: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - case 59: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ - case 443: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 441: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ - case 445: - /* Element[CHARACTERS[ENUMERATION]] */ - case 446: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 208: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ - case 450: - /* Element[CHARACTERS[STRING]] */ - case 451: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 305: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ - case 452: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 453: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - case 455: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ - case 461: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ - case 460: - /* Element[CHARACTERS[STRING]] */ - case 464: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 462: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 465: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 466: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 467: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - case 475: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 477: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 478: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - case 274: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 482: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 484: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 493: - /* Element[CHARACTERS[STRING]] */ - case 497: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ - case 496: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - case 500: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ - case 499: - /* Element[CHARACTERS[DATETIME]] */ - case 242: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 501: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - case 506: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - case 508: - /* Element[CHARACTERS[DATETIME]] */ - case 91: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ - case 511: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 512: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 514: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - case 515: - /* Element[CHARACTERS[ENUMERATION]] */ - case 107: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ - case 520: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 519: - /* Element[CHARACTERS[STRING]] */ - case 94: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - case 526: - /* Element[CHARACTERS[STRING]] */ - case 529: - /* Element[CHARACTERS[DECIMAL]] */ - case 238: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - case 488: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 521: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 540: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - case 542: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ - case 544: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - case 263: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ - case 549: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - case 551: - /* Element[CHARACTERS[LIST]] */ - case 55: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 481: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 556: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 557: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - case 513: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 239: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - case 559: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 87: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 76: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - case 562: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 254: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ - case 379: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 567: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - case 566: - /* Element[CHARACTERS[INTEGER]] */ - case 571: - /* Element[CHARACTERS[ENUMERATION]] */ - case 486: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 574: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - case 575: - /* Element[CHARACTERS[ENUMERATION]] */ - case 576: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 578: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - case 579: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 582: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - case 260: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - case 586: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - case 589: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 543: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - case 590: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - case 592: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - case 356: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 596: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - case 595: - /* Element[CHARACTERS[FLOAT]] */ - case 281: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 598: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 602: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 600: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - case 603: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - case 199: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - case 604: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 608: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 610: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - case 485: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 611: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 612: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 614: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ - case 470: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ - case 615: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - case 434: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - case 617: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - case 619: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - case 618: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 430: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ - case 620: - /* Element[CHARACTERS[INTEGER]] */ - case 487: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 437: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 624: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - case 628: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ - case 580: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - case 631: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 632: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - case 633: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 638: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 342: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ - case 353: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - case 640: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - case 641: - /* Element[CHARACTERS[STRING]] */ - case 642: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 277: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 645: - /* Element[CHARACTERS[FLOAT]] */ - case 463: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ - case 649: - /* Element[CHARACTERS[ENUMERATION]] */ - case 650: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 652: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 653: - /* Element[CHARACTERS[STRING]] */ - case 568: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ - case 651: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - case 656: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 657: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 658: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 660: - /* Element[CHARACTERS[INTEGER]] */ - case 661: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ - case 664: - /* Element[CHARACTERS[STRING]] */ - case 665: - /* Element[CHARACTERS[STRING]] */ - case 666: - /* Element[CHARACTERS[DATETIME]] */ - case 667: - /* Element[CHARACTERS[ENUMERATION]] */ - case 668: - /* Element[CHARACTERS[DATETIME]] */ - case 669: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - case 673: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 662: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ - case 675: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - case 674: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - case 676: - /* Element[CHARACTERS[ENUMERATION]] */ - case 570: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ - case 677: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 679: - /* Element[CHARACTERS[DATETIME]] */ - case 123: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ - case 213: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ - case 548: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ - case 680: - /* Element[CHARACTERS[ENUMERATION]] */ - case 396: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 442: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ - case 336: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ - case 541: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ - case 682: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 683: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ - case 684: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 685: - /* Element[CHARACTERS[ENUMERATION]] */ - case 686: - /* Element[CHARACTERS[STRING]] */ - case 2: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ - case 364: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - case 687: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 689: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 411: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ - case 48: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ - case 692: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - case 118: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - case 694: - /* Element[CHARACTERS[INTEGER]] */ - case 517: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 696: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 697: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 416: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - case 699: - /* Element[CHARACTERS[STRING]] */ - case 700: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 703: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - case 456: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ - case 705: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 278: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ - case 296: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 2: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - state->eventCode += 0; - return errn; - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 5: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 203: - /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ - case 457: - /* StartTag[ATTRIBUTE[STRING](Target)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - state->eventCode += 0; - return errn; - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 13: - /* Element[END_ELEMENT] */ - case 18: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ - case 21: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ - case 33: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - case 50: - /* Element[END_ELEMENT] */ - case 82: - /* Element[END_ELEMENT] */ - case 83: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - case 96: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 109: - /* Element[END_ELEMENT] */ - case 121: - /* Element[END_ELEMENT] */ - case 125: - /* Element[END_ELEMENT] */ - case 30: - /* Element[END_ELEMENT] */ - case 204: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 218: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ - case 220: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 224: - /* Element[END_ELEMENT] */ - case 232: - /* Element[END_ELEMENT] */ - case 244: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ - case 250: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 256: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 257: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ - case 261: - /* Element[END_ELEMENT] */ - case 264: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 206: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ - case 279: - /* Element[END_ELEMENT] */ - case 283: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 301: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - case 310: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 323: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 326: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 327: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 337: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ - case 340: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ - case 346: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ - case 352: - /* Element[END_ELEMENT] */ - case 358: - /* Element[END_ELEMENT] */ - case 381: - /* Element[END_ELEMENT] */ - case 388: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 251: - /* Element[END_ELEMENT] */ - case 405: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 407: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 408: - /* Element[END_ELEMENT] */ - case 410: - /* Element[END_ELEMENT] */ - case 415: - /* Element[END_ELEMENT] */ - case 420: - /* Element[END_ELEMENT] */ - case 421: - /* Element[END_ELEMENT] */ - case 423: - /* Element[END_ELEMENT] */ - case 431: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ - case 81: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ - case 440: - /* Element[END_ELEMENT] */ - case 363: - /* Element[END_ELEMENT] */ - case 447: - /* Element[END_ELEMENT] */ - case 22: - /* Element[END_ELEMENT] */ - case 36: - /* Element[END_ELEMENT] */ - case 402: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 377: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ - case 328: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 265: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 295: - /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 471: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 473: - /* Element[END_ELEMENT] */ - case 480: - /* Element[END_ELEMENT] */ - case 324: - /* Element[END_ELEMENT] */ - case 489: - /* Element[END_ELEMENT] */ - case 444: - /* Element[END_ELEMENT] */ - case 494: - /* Element[END_ELEMENT] */ - case 392: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 64: - /* Element[END_ELEMENT] */ - case 349: - /* Element[END_ELEMENT] */ - case 504: - /* Element[END_ELEMENT] */ - case 354: - /* Element[END_ELEMENT] */ - case 505: - /* Element[END_ELEMENT] */ - case 10: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 490: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 516: - /* Element[END_ELEMENT] */ - case 44: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ - case 535: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 62: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ - case 228: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 330: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ - case 89: - /* Element[END_ELEMENT] */ - case 370: - /* Element[END_ELEMENT] */ - case 530: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ - case 523: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ - case 558: - /* Element[END_ELEMENT] */ - case 372: - /* Element[END_ELEMENT] */ - case 572: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 5: - /* Element[END_ELEMENT] */ - case 472: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 258: - /* Element[END_ELEMENT] */ - case 565: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 581: - /* Element[END_ELEMENT] */ - case 584: - /* Element[END_ELEMENT] */ - case 585: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 587: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ - case 53: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 601: - /* Element[END_ELEMENT] */ - case 448: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ - case 605: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 609: - /* Element[END_ELEMENT] */ - case 573: - /* Element[END_ELEMENT] */ - case 629: - /* Element[END_ELEMENT] */ - case 16: - /* Element[END_ELEMENT] */ - case 231: - /* Element[END_ELEMENT] */ - case 606: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 644: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 646: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 307: - /* Element[END_ELEMENT] */ - case 302: - /* Element[END_ELEMENT] */ - case 655: - /* Element[END_ELEMENT] */ - case 413: - /* Element[END_ELEMENT] */ - case 102: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ - case 607: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ - case 289: - /* Element[END_ELEMENT] */ - case 507: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 663: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 28: - /* Element[END_ELEMENT] */ - case 532: - /* Element[END_ELEMENT] */ - case 438: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ - case 479: - /* Element[END_ELEMENT] */ - case 671: - /* Element[END_ELEMENT] */ - case 670: - /* Element[END_ELEMENT] */ - case 333: - /* Element[END_ELEMENT] */ - case 509: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 361: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ - case 563: - /* Element[END_ELEMENT] */ - case 79: - /* Element[END_ELEMENT] */ - case 654: - /* Element[END_ELEMENT] */ - case 553: - /* Element[END_ELEMENT] */ - case 391: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 320: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ - case 387: - /* Element[END_ELEMENT] */ - case 19: - /* Element[END_ELEMENT] */ - case 249: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 681: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 73: - /* Element[END_ELEMENT] */ - case 560: - /* Element[END_ELEMENT] */ - case 594: - /* Element[END_ELEMENT] */ - case 539: - /* Element[END_ELEMENT] */ - case 288: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ - case 693: - /* Element[END_ELEMENT] */ - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 597: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ - case 491: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - case 536: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 248: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 313: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 235: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 34: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - state->eventCode += 0; - return errn; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 39: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 105: - /* StartTag[CHARACTERS[BINARY_BASE64]] */ - case 240: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 276: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 318: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 350: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 417: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - case 476: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 458: - /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 564: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 577: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 395: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 643: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - case 106: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 647: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - state->eventCode += 0; - return errn; - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 5: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 1: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - case 9: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 12: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 32: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 47: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - case 54: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 57: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 69: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - case 77: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 78: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 85: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 86: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 60: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 93: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 100: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 101: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - case 110: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 111: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 115: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 136: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - case 223: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 226: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 141: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 214: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 246: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 181: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - case 255: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 138: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 268: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 269: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 270: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 182: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 272: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 131: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 282: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 286: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - case 155: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 294: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 103: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - case 176: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 196: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - case 329: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - case 334: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 35: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 143: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 163: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 360: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - case 130: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 331: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 117: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 367: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 259: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - case 374: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 375: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 380: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 174: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - case 114: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 398: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 8: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 23: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 409: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 414: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 418: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 424: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 439: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 449: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 209: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 454: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 459: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 142: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 468: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 469: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 162: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 165: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - case 222: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 338: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 3: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 483: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 161: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - case 495: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 357: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 498: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 503: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 177: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 65: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 311: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 518: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 195: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 522: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - case 525: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 527: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 95: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 534: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 537: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - case 538: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 154: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 128: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - case 546: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 170: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - case 172: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - case 492: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 552: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 555: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 146: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 158: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 168: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - case 583: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 49: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - case 588: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 26: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - case 593: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 166: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 524: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 317: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 315: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 308: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 252: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 616: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 347: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - case 623: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 625: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 145: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - case 626: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - case 627: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 550: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 630: - /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 71: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - case 175: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 11: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 636: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 314: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - case 554: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 148: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 648: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 591: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 183: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - case 502: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 205: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 167: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 194: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 31: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 20: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 659: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 178: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 362: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 17: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 545: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 316: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 37: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 164: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 124: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 672: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 119: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 637: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 193: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - case 74: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - case 306: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 184: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 266: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 45: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - case 678: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 613: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 140: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 569: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 41: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 635: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 275: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 531: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 321: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 688: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 690: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 245: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 152: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 695: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 180: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 304: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 698: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 159: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 701: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 144: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - case 702: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 547: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 355: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - case 704: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 634: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 706: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 371: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 6: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 46: - /* FirstStartTag[END_ELEMENT] */ - case 52: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 56: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 137: - /* FirstStartTag[END_ELEMENT] */ - case 38: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 227: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 185: - /* FirstStartTag[END_ELEMENT] */ - case 343: - /* FirstStartTag[END_ELEMENT] */ - case 129: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 290: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - case 393: - /* FirstStartTag[END_ELEMENT] */ - case 173: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 432: - /* FirstStartTag[END_ELEMENT] */ - case 150: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 528: - /* FirstStartTag[END_ELEMENT] */ - case 561: - /* FirstStartTag[END_ELEMENT] */ - case 191: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 149: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 639: - /* FirstStartTag[END_ELEMENT] */ - case 179: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 151: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 691: - /* FirstStartTag[END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 5: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 247: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 390: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 474: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 348: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 401: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - - default: - if (ruleID < 0) { - /* built-in element grammar */ - if ( exi__IsStartContent(ruleID) ) { - /* TODO generate 2nd level productions */ - - /* StartTagContent grammar */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - if(errn) { - return errn; - } - switch(eventCode2) { - case 0: - /* 0: EE */ - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - break; - case 1: - /* 1: AT(*) */ - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - break; - case 2: - /* 2: SE(*) */ - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - break; - case 3: - /* 3: CH */ - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - break; - default: - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - break; - } - return errn; - } else { - /* TODO generate 2nd level productions */ - - /* ElementContent grammar */ - errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2); - if(errn) { - return errn; - } - switch(eventCode2) { - case 0: - /* 0: SE(*) */ - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - break; - case 1: - /* 1: CH */ - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - break; - default: - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - break; - } - - - - } - - } else { - *nextEvent = EXI_EVENT_ERROR; - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - } - break; - } - - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; -} - - - -static int _exiDecodeNamespaceUri(bitstream_t* stream, exi_state_t* state, - exi_name_entry_t* uri) { -/* exi_string_ascii_t* namespaceURI, uint32_t* uriID) {*/ - uint16_t uriSize, uriCodingLength; - uint32_t uriID; - int errn; - - errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize); - if (errn) { - return errn; - } - /* URI Entries + 1 */ - errn = exiGetCodingLength(uriSize + 1, &uriCodingLength); - if (errn) { - return errn; - } - - errn = decodeNBitUnsignedInteger(stream, uriCodingLength, &uriID); - if (errn) { - return errn; - } - - if (uriID == 0) { - /* uri string value was not found */ - /* ==> zero (0) as an n-nit unsigned integer */ - /* followed by uri encoded as string */ - uri->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID; - errn = decodeString(stream, &uri->str); - if (errn) { - return errn; - } - /* after encoding string value is added to table */ - errn = exiAddUri(&state->nameTablePrepopulated, &state->nameTableRuntime); /*, namespaceURI->chars); */ - if (errn) { - return errn; - } - uri->id = uriSize; - /* uriID = uriSize; */ - } else { - /* uri string value found */ - /* ==> value(i+1) is encoded as n-bit unsigned integer */ - uri->type = EXI_NAME_ENTRY_TYPE_ID; - uri->id = (uint16_t)(uriID - 1); - /* *uriID = *uriID - 1; */ - } - - return 0; -} - -static int _exiDecodeLocalName(bitstream_t* stream, exi_state_t* state, - uint16_t uriID, exi_name_entry_t* localName) { -/* exi_string_ascii_t* localName, - uint32_t* localNameID, uint32_t uriID) { */ - uint32_t localNameID; - uint16_t slen; - uint16_t localNameSize; - uint16_t localNameCodingLength; - - - int errn = decodeUnsignedInteger16(stream, &slen); - if (errn) { - return errn; - } - - if (slen > 0) { - /* string value was not found in local partition */ - /* ==> string literal is encoded as a String */ - /* with the length of the string incremented by one */ - localName->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID; - if (slen-- >= (localName->str.size) ) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - localName->str.len = slen; - errn = decodeCharacters(stream, slen, localName->str.codepoints); - - /*if (slen-- >= localName->size) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - errn = decodeCharactersASCII(stream, slen, localName->chars); */ - - if (errn) { - return errn; - } - /* After encoding the string value, it is added to the string table */ - /* partition and assigned the next available compact identifier */ - errn = exiAddLocalName(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localName->id); /* uriID); *//*, localName->chars); */ - - /*if (errn) { - return errn; - }*/ - /* TODO UCD Profile */ - /* qname = addLocalName(localName, uriID); */ - } else { - /* string value found in local partition */ - /* ==> string value is represented as zero (0) encoded as an */ - /* Unsigned Integer */ - /* followed by an the compact identifier of the string value as an */ - /* n-bit unsigned integer */ - /* n is log2 m and m is the number of entries in the string table */ - /* partition */ - localName->type = EXI_NAME_ENTRY_TYPE_ID; - errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); /* uriID, &localNameSize); */ - if (errn) { - return errn; - } - errn = exiGetCodingLength(localNameSize, &localNameCodingLength); - if (errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, localNameCodingLength, &localNameID); /* localNameID);*/ - localName->id = (uint16_t)(localNameID); - /*if (errn) { - return errn; - }*/ - } - - return errn; -} - -static int _exiDecodeQName(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID, exi_qname_t* qname) { - - /*uint32_t uriID; - uint32_t localNameID;*/ - /* const char * clocalName; */ - - /* uri */ - int errn =_exiDecodeNamespaceUri(stream, state, &qname->uri); /* &qname->namespaceURI, &uriID); */ - if (errn) { - return errn; - } - /* localName */ - errn = _exiDecodeLocalName(stream, state, qname->uri.id, &qname->localName); /* &qname->localName, &localNameID, uriID); */ - if (errn) { - return errn; - } - - /* - errn = exiGetLocalName(nameTable, runtimeTable, uriID, localNameID, &clocalName); - if (errn) { - return errn; - } - strcpy ( qname->localName.chars, clocalName ); - */ - - if (_qname.localName.type == EXI_NAME_ENTRY_TYPE_STRING_AND_ID) { - errn = exiAddEQName(state, qnameID, qname->uri.id, qname->localName.id); - } else { - /* IDs known --> retrieve qnameID */ - errn = exiGetQNameID(state, qname->uri.id, qname->localName.id, qnameID); - } - - - return errn; -} - - -static int _exiDecodeStartElement(exi_state_t* state, uint16_t qnameID, - uint16_t stackId, uint16_t newState) { - /*uint16_t ns, uint16_t ln, uint16_t qn, */ - /*se->namespaceURI = ns; - se->localPart = ln; - se->qname = qn;*/ - /* move on */ - state->grammarStack[state->stackIndex] = stackId; - /* push element on stack */ - return exi__PushStack(state, newState, qnameID); /* se);*/ -} - - -int exiGetLastQName(exi_qname_t** qname) { - *qname = &_qname; - return 0; -} - - -int exiDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) { - uint32_t uint32; - - val->type = lt.type; - - switch(lt.type) { - case EXI_DATATYPE_BINARY_BASE64: - case EXI_DATATYPE_BINARY_HEX: - errn = decodeBinary(stream, &val->binary); - break; - case EXI_DATATYPE_BOOLEAN: - errn = decodeBoolean(stream, &val->boolean); - break; - case EXI_DATATYPE_BOOLEAN_FACET: - errn = decodeNBitUnsignedInteger(stream, 2, &uint32); - val->boolean = uint32 > 1; - break; - case EXI_DATATYPE_DECIMAL: - errn = decodeDecimal(stream, &val->decimal); - break; - case EXI_DATATYPE_FLOAT: - errn = decodeFloat(stream, &val->float_me); - break; - case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER: - errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE; - break; - case EXI_DATATYPE_UNSIGNED_INTEGER: - errn = decodeUnsignedInteger(stream, &val->integer); - break; - case EXI_DATATYPE_INTEGER: - errn = decodeInteger(stream, &val->integer); - break; - case EXI_DATATYPE_DATETIME: - errn = decodeDateTime(stream,lt.datetimeType, &val->datetime); - break; - case EXI_DATATYPE_STRING: - errn = decodeStringValue(stream, state, qnameID, &val->str); - break; - default: - return EXI_UNSUPPORTED_LIST_VALUE_TYPE; - } - - return errn; -} - - - - -int exiInitDecoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable) { -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - int i; -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - /* init grammar state */ - state->stackIndex = 0; - state->grammarStack[0] = DOCUMENT; - /* name table */ - state->nameTablePrepopulated = exiNameTablePrepopulated; - state->nameTableRuntime = runtimeTable; - /* next qname ID */ - state->nextQNameID = EXI_NUMBER_OF_PREPOPULATED_QNAMES; - /* string table */ - state->stringTable = stringTable; - state->stringTable.numberOfGlobalStrings = 0; -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - for(i=0; i<(state->stringTable.sizeLocalStrings); i++) { - state->stringTable.numberOfLocalStrings[i] = 0; - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - - /* runtime grammars */ - state->numberOfRuntimeGrammars = 0; - - /* Avoid warning: Unused declaration of variable 'name' */ - xsi = 0; - bits = 0; - - /* decode header */ - return readEXIHeader(stream); -} - -int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state, - exi_event_t* nextEvent) { - uint16_t codingLength; - uint16_t numberOfProductions; - uint32_t eventCode1; - int16_t ruleID = state->grammarStack[state->stackIndex]; - state->eventCode = 0; - errn = 0; - - switch (ruleID) { - case 83: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - case 491: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 155: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 576: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 296: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 200: - /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 201: - /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 458: - /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 204: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 490: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 647: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - case 692: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 6: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 126: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ - errn = decodeNBitUnsignedInteger(stream, 7, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 81: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 33: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - case 472: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 536: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 235: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 3: - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 5: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 24: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 332: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ - case 98: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 446: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 146: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 486: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 589: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 463: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ - case 213: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 8: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 9: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 10: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 4: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 5: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 6: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 313: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 6: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 7: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 18: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ - case 21: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ - case 218: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ - case 244: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ - case 250: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 256: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 257: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ - case 206: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ - case 323: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 326: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 337: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ - case 340: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ - case 346: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ - case 407: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 431: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ - case 81: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ - case 377: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ - case 328: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 474: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 10: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ - case 44: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ - case 62: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ - case 330: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ - case 530: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ - case 523: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ - case 572: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 565: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 587: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ - case 448: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ - case 348: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 606: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 646: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 102: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ - case 607: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ - case 663: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 438: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ - case 361: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ - case 320: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ - case 288: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ - case 597: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 202: - /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ - case 192: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 187: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 135: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 133: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 108: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 147: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - case 533: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - case 203: - /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ - case 457: - /* StartTag[ATTRIBUTE[STRING](Target)] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 310: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 327: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 388: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 585: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 605: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 507: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 509: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 179: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 34: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 1: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - case 6: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ - case 9: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 15: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 29: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 39: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 43: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ - case 47: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - case 54: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 58: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - case 61: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - case 63: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 67: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 69: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - case 72: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - case 75: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 78: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 80: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 86: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 88: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 90: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 93: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 97: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - case 101: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - case 27: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 110: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 112: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 122: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - case 198: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - case 207: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - case 136: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - case 216: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 230: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 233: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - case 234: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ - case 141: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 237: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 243: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - case 253: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - case 181: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - case 138: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 262: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 271: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 182: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 273: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ - case 280: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ - case 131: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 284: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 287: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - case 217: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 70: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ - case 291: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 298: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 303: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - case 103: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - case 113: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ - case 176: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 318: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 319: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - case 329: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - case 35: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 143: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 350: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - case 163: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 360: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - case 130: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 7: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ - case 285: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 259: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - case 369: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - case 68: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - case 376: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 378: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 382: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 174: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - case 299: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 386: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 394: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 116: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 292: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 412: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - case 417: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - case 345: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ - case 419: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - case 422: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 309: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - case 433: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 435: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - case 436: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - case 59: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ - case 441: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ - case 208: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ - case 305: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ - case 453: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - case 455: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ - case 461: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ - case 462: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 142: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 466: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 467: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - case 165: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - case 476: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 338: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 477: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 478: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - case 482: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 497: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ - case 496: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - case 500: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ - case 501: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - case 177: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - case 506: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - case 91: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ - case 512: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 514: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - case 107: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ - case 520: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 195: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 94: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - case 522: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - case 95: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 238: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - case 537: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - case 488: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 521: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 540: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - case 542: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ - case 128: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - case 170: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - case 172: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - case 263: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ - case 55: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 481: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 556: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 557: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - case 513: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 239: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - case 87: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 158: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 76: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - case 254: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ - case 564: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 379: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - case 567: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - case 168: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - case 574: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - case 577: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - case 578: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - case 579: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 582: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - case 395: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 260: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - case 586: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - case 49: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - case 590: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - case 592: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - case 26: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - case 356: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - case 596: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - case 166: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 281: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - case 598: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 600: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - case 603: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - case 199: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - case 604: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 524: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 608: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 610: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - case 612: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 614: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ - case 470: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ - case 617: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - case 619: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - case 618: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 430: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ - case 347: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - case 437: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - case 624: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - case 145: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - case 626: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - case 628: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ - case 71: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - case 632: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - case 638: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - case 342: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ - case 353: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - case 314: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - case 640: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - case 642: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 277: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 183: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - case 643: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - case 568: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ - case 167: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 194: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - case 656: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 658: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 178: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 661: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ - case 106: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - case 37: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - case 164: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 669: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - case 662: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ - case 675: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - case 674: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - case 570: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ - case 193: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - case 184: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 45: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - case 123: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ - case 548: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ - case 140: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 396: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - case 442: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ - case 336: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ - case 541: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ - case 682: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 683: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ - case 684: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 2: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ - case 364: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - case 321: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - case 687: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - case 689: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 411: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ - case 48: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ - case 118: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - case 180: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 517: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 696: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - case 700: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - case 144: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - case 703: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - case 355: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - case 456: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ - case 705: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - case 278: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 0: - /* Document[START_DOCUMENT] */ - case 425: - /* Fragment[START_DOCUMENT] */ - *nextEvent = EXI_EVENT_START_DOCUMENT; - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 2: - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 127: - /* DocEnd[END_DOCUMENT] */ - *nextEvent = EXI_EVENT_END_DOCUMENT; - break; - case 295: - /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 1: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 220: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 264: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 190: - /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - *nextEvent = EXI_EVENT_CHARACTERS; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 4: - /* Element[CHARACTERS[STRING]] */ - case 12: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 32: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 42: - /* Element[CHARACTERS[ENUMERATION]] */ - case 51: - /* Element[CHARACTERS[STRING]] */ - case 57: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 66: - /* Element[CHARACTERS[STRING]] */ - case 77: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 84: - /* Element[CHARACTERS[ENUMERATION]] */ - case 85: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 60: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 100: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 99: - /* Element[CHARACTERS[STRING]] */ - case 104: - /* Element[CHARACTERS[INTEGER]] */ - case 105: - /* StartTag[CHARACTERS[BINARY_BASE64]] */ - case 111: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 120: - /* Element[CHARACTERS[ENUMERATION]] */ - case 210: - /* Element[CHARACTERS[DATETIME]] */ - case 211: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 212: - /* Element[CHARACTERS[INTEGER]] */ - case 219: - /* Element[CHARACTERS[INTEGER]] */ - case 223: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 225: - /* Element[CHARACTERS[BOOLEAN]] */ - case 226: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 229: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 236: - /* Element[CHARACTERS[DATETIME]] */ - case 214: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 246: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 255: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 268: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 269: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 270: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 272: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 282: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 286: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - case 293: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 294: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 297: - /* Element[CHARACTERS[STRING]] */ - case 300: - /* Element[CHARACTERS[STRING]] */ - case 312: - /* Element[CHARACTERS[INTEGER]] */ - case 322: - /* Element[CHARACTERS[LIST]] */ - case 325: - /* Element[CHARACTERS[DATETIME]] */ - case 334: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 344: - /* Element[CHARACTERS[LIST]] */ - case 351: - /* Element[CHARACTERS[STRING]] */ - case 359: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 331: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 117: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 365: - /* Element[CHARACTERS[ENUMERATION]] */ - case 366: - /* Element[CHARACTERS[INTEGER]] */ - case 367: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 368: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 374: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 375: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 380: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 383: - /* Element[CHARACTERS[INTEGER]] */ - case 384: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 385: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 389: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 114: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 398: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 8: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 403: - /* Element[CHARACTERS[STRING]] */ - case 404: - /* Element[CHARACTERS[STRING]] */ - case 406: - /* Element[CHARACTERS[STRING]] */ - case 23: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 409: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 414: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 418: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 424: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 427: - /* Element[CHARACTERS[ENUMERATION]] */ - case 428: - /* Element[CHARACTERS[STRING]] */ - case 429: - /* Element[CHARACTERS[STRING]] */ - case 439: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 445: - /* Element[CHARACTERS[ENUMERATION]] */ - case 449: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 450: - /* Element[CHARACTERS[STRING]] */ - case 209: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 452: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 454: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 460: - /* Element[CHARACTERS[STRING]] */ - case 459: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 468: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 469: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 475: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 222: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 3: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 483: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 493: - /* Element[CHARACTERS[STRING]] */ - case 495: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 357: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 499: - /* Element[CHARACTERS[DATETIME]] */ - case 498: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 503: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 508: - /* Element[CHARACTERS[DATETIME]] */ - case 65: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 511: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 311: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 515: - /* Element[CHARACTERS[ENUMERATION]] */ - case 518: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 519: - /* Element[CHARACTERS[STRING]] */ - case 525: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 526: - /* Element[CHARACTERS[STRING]] */ - case 527: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 529: - /* Element[CHARACTERS[DECIMAL]] */ - case 534: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 538: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 154: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 546: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 492: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 551: - /* Element[CHARACTERS[LIST]] */ - case 552: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 555: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 559: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 562: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 566: - /* Element[CHARACTERS[INTEGER]] */ - case 571: - /* Element[CHARACTERS[ENUMERATION]] */ - case 575: - /* Element[CHARACTERS[ENUMERATION]] */ - case 583: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 593: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 595: - /* Element[CHARACTERS[FLOAT]] */ - case 611: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 317: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 315: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 308: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 252: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 616: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 620: - /* Element[CHARACTERS[INTEGER]] */ - case 623: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 625: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 627: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 550: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 631: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 630: - /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 633: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 11: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 636: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 554: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 641: - /* Element[CHARACTERS[STRING]] */ - case 645: - /* Element[CHARACTERS[FLOAT]] */ - case 148: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 648: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 649: - /* Element[CHARACTERS[ENUMERATION]] */ - case 650: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 591: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 652: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 653: - /* Element[CHARACTERS[STRING]] */ - case 502: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 205: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 31: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 657: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 20: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 659: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 660: - /* Element[CHARACTERS[INTEGER]] */ - case 362: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 17: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 664: - /* Element[CHARACTERS[STRING]] */ - case 665: - /* Element[CHARACTERS[STRING]] */ - case 666: - /* Element[CHARACTERS[DATETIME]] */ - case 667: - /* Element[CHARACTERS[ENUMERATION]] */ - case 545: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 316: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - case 668: - /* Element[CHARACTERS[DATETIME]] */ - case 124: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 672: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 673: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 119: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 637: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 676: - /* Element[CHARACTERS[ENUMERATION]] */ - case 74: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - case 306: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 677: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 266: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 678: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 613: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 679: - /* Element[CHARACTERS[DATETIME]] */ - case 680: - /* Element[CHARACTERS[ENUMERATION]] */ - case 569: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 41: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 635: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 275: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 685: - /* Element[CHARACTERS[ENUMERATION]] */ - case 686: - /* Element[CHARACTERS[STRING]] */ - case 531: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 688: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 690: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 245: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 694: - /* Element[CHARACTERS[INTEGER]] */ - case 695: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 697: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 304: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 698: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 699: - /* Element[CHARACTERS[STRING]] */ - case 159: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - case 701: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 702: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 547: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 704: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 634: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - case 706: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 371: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_CHARACTERS; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 240: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 464: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - case 242: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 7: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 8: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 9: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 7: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 8: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 9: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 10: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 96: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 247: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 283: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 390: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 405: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 402: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 265: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 392: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 228: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 53: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 644: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 391: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 249: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 681: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 401: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 248: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 3: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 4: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 5: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 25: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - case 115: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 197: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - case 276: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 335: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 341: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ - case 40: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - case 373: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - case 397: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - case 443: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 451: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - case 465: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - case 162: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 274: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - case 161: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - case 544: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - case 588: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 543: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - case 602: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 615: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - case 434: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - case 487: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - case 580: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - case 175: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 651: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - case 152: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - case 416: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 471: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 535: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 4: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 5: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 426: - /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ - errn = decodeNBitUnsignedInteger(stream, 8, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: - case 39: - case 40: - case 41: - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - case 58: - case 59: - case 60: - case 61: - case 62: - case 63: - case 64: - case 65: - case 66: - case 67: - case 68: - case 69: - case 70: - case 71: - case 72: - case 73: - case 74: - case 75: - case 76: - case 77: - case 78: - case 79: - case 80: - case 81: - case 82: - case 83: - case 84: - case 85: - case 86: - case 87: - case 88: - case 89: - case 90: - case 91: - case 92: - case 93: - case 94: - case 95: - case 96: - case 97: - case 98: - case 99: - case 100: - case 101: - case 102: - case 103: - case 104: - case 105: - case 106: - case 107: - case 108: - case 109: - case 110: - case 111: - case 112: - case 113: - case 114: - case 115: - case 116: - case 117: - case 118: - case 119: - case 120: - case 121: - case 122: - case 123: - case 124: - case 125: - case 126: - case 127: - case 128: - case 129: - case 130: - case 131: - case 132: - case 133: - case 134: - case 135: - case 136: - case 137: - case 138: - case 139: - case 140: - case 141: - case 142: - case 143: - case 144: - case 145: - case 146: - case 147: - case 148: - case 149: - case 150: - case 151: - case 152: - case 153: - case 154: - case 155: - case 156: - case 157: - case 158: - case 159: - case 160: - case 161: - case 162: - case 163: - case 164: - case 165: - case 166: - case 167: - case 168: - case 169: - case 170: - case 171: - case 172: - case 173: - case 174: - case 175: - case 176: - case 177: - case 178: - case 179: - case 180: - case 181: - case 182: - case 183: - case 184: - case 185: - case 186: - case 187: - case 188: - case 189: - case 190: - case 191: - case 192: - case 193: - case 194: - case 195: - case 196: - case 197: - case 198: - case 199: - case 200: - case 201: - case 202: - case 203: - case 204: - case 205: - case 206: - case 207: - case 208: - case 209: - case 210: - case 211: - case 212: - case 213: - case 214: - case 215: - case 216: - case 217: - case 218: - case 219: - case 220: - case 221: - case 222: - case 223: - case 224: - case 225: - case 226: - case 227: - case 228: - case 229: - case 230: - case 231: - case 232: - case 233: - case 234: - case 235: - case 236: - case 237: - case 238: - case 239: - case 240: - case 241: - case 242: - case 243: - case 244: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 245: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 246: - *nextEvent = EXI_EVENT_END_DOCUMENT; - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 52: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 227: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 484: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 5: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 196: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - case 549: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 6: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 13: - /* Element[END_ELEMENT] */ - case 46: - /* FirstStartTag[END_ELEMENT] */ - case 50: - /* Element[END_ELEMENT] */ - case 56: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 82: - /* Element[END_ELEMENT] */ - case 109: - /* Element[END_ELEMENT] */ - case 121: - /* Element[END_ELEMENT] */ - case 125: - /* Element[END_ELEMENT] */ - case 137: - /* FirstStartTag[END_ELEMENT] */ - case 30: - /* Element[END_ELEMENT] */ - case 38: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 224: - /* Element[END_ELEMENT] */ - case 185: - /* FirstStartTag[END_ELEMENT] */ - case 232: - /* Element[END_ELEMENT] */ - case 261: - /* Element[END_ELEMENT] */ - case 279: - /* Element[END_ELEMENT] */ - case 343: - /* FirstStartTag[END_ELEMENT] */ - case 129: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 352: - /* Element[END_ELEMENT] */ - case 358: - /* Element[END_ELEMENT] */ - case 381: - /* Element[END_ELEMENT] */ - case 393: - /* FirstStartTag[END_ELEMENT] */ - case 251: - /* Element[END_ELEMENT] */ - case 408: - /* Element[END_ELEMENT] */ - case 410: - /* Element[END_ELEMENT] */ - case 173: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 415: - /* Element[END_ELEMENT] */ - case 420: - /* Element[END_ELEMENT] */ - case 421: - /* Element[END_ELEMENT] */ - case 423: - /* Element[END_ELEMENT] */ - case 432: - /* FirstStartTag[END_ELEMENT] */ - case 440: - /* Element[END_ELEMENT] */ - case 363: - /* Element[END_ELEMENT] */ - case 447: - /* Element[END_ELEMENT] */ - case 22: - /* Element[END_ELEMENT] */ - case 36: - /* Element[END_ELEMENT] */ - case 473: - /* Element[END_ELEMENT] */ - case 480: - /* Element[END_ELEMENT] */ - case 324: - /* Element[END_ELEMENT] */ - case 489: - /* Element[END_ELEMENT] */ - case 444: - /* Element[END_ELEMENT] */ - case 494: - /* Element[END_ELEMENT] */ - case 64: - /* Element[END_ELEMENT] */ - case 150: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 349: - /* Element[END_ELEMENT] */ - case 504: - /* Element[END_ELEMENT] */ - case 354: - /* Element[END_ELEMENT] */ - case 505: - /* Element[END_ELEMENT] */ - case 516: - /* Element[END_ELEMENT] */ - case 528: - /* FirstStartTag[END_ELEMENT] */ - case 89: - /* Element[END_ELEMENT] */ - case 370: - /* Element[END_ELEMENT] */ - case 558: - /* Element[END_ELEMENT] */ - case 372: - /* Element[END_ELEMENT] */ - case 561: - /* FirstStartTag[END_ELEMENT] */ - case 5: - /* Element[END_ELEMENT] */ - case 258: - /* Element[END_ELEMENT] */ - case 581: - /* Element[END_ELEMENT] */ - case 584: - /* Element[END_ELEMENT] */ - case 601: - /* Element[END_ELEMENT] */ - case 609: - /* Element[END_ELEMENT] */ - case 191: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 573: - /* Element[END_ELEMENT] */ - case 149: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 629: - /* Element[END_ELEMENT] */ - case 16: - /* Element[END_ELEMENT] */ - case 231: - /* Element[END_ELEMENT] */ - case 639: - /* FirstStartTag[END_ELEMENT] */ - case 307: - /* Element[END_ELEMENT] */ - case 302: - /* Element[END_ELEMENT] */ - case 655: - /* Element[END_ELEMENT] */ - case 413: - /* Element[END_ELEMENT] */ - case 289: - /* Element[END_ELEMENT] */ - case 28: - /* Element[END_ELEMENT] */ - case 532: - /* Element[END_ELEMENT] */ - case 479: - /* Element[END_ELEMENT] */ - case 671: - /* Element[END_ELEMENT] */ - case 670: - /* Element[END_ELEMENT] */ - case 333: - /* Element[END_ELEMENT] */ - case 563: - /* Element[END_ELEMENT] */ - case 79: - /* Element[END_ELEMENT] */ - case 151: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 654: - /* Element[END_ELEMENT] */ - case 553: - /* Element[END_ELEMENT] */ - case 387: - /* Element[END_ELEMENT] */ - case 19: - /* Element[END_ELEMENT] */ - case 73: - /* Element[END_ELEMENT] */ - case 560: - /* Element[END_ELEMENT] */ - case 691: - /* FirstStartTag[END_ELEMENT] */ - case 594: - /* Element[END_ELEMENT] */ - case 539: - /* Element[END_ELEMENT] */ - case 693: - /* Element[END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 301: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - case 290: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 6, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 20: - case 21: - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - case 34: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 35: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 36: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 485: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 189: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - - default: - if(ruleID < 0) { - /* built-in element grammar */ - numberOfProductions = state->runtimeGrammars[(ruleID + 1)*(-1)].numberOfProductions; - if(numberOfProductions > 0) { - /* decode 1st level event code */ - errn = exiGetCodingLength(numberOfProductions + 1, &codingLength); - if(errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, codingLength, &eventCode1); - if(errn) { - return errn; - } - - if(eventCode1 == numberOfProductions) { - /* 2nd level */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - } else { - /* 1st level event not supported in profile */ - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - } - } else { - errn = exiDecodeNext2Event(stream, state, nextEvent); - } - } else { - *nextEvent = EXI_EVENT_ERROR; - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - } - break; - } - - currEvent = *nextEvent; - return errn; -} - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiDecodeStartDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 126; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 425 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 426; - return 0; - } - - return EXI_ERROR_UNEXPECTED_START_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiDecodeEndDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 127) { - return 0; - } - if ( state->grammarStack[state->stackIndex] == 426) { - return 0; - } - - return EXI_ERROR_UNEXPECTED_END_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID) { - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - - switch(currEvent) { - case EXI_EVENT_START_ELEMENT: - switch (state->grammarStack[state->stackIndex]) { - case 1: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 404, 2, 3); - break; - } - break; - case 2: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 398, 21, 627); - break; - } - break; - case 6: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 189, 7, 8); - break; - } - break; - case 7: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 170, 232, 334); - break; - } - break; - case 9: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 257, 10, 11); - break; - } - break; - case 10: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 392, 421, 110); - break; - } - break; - case 15: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 16, 17); - break; - } - break; - case 18: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 407, 19, 20); - break; - } - break; - case 21: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 399, 22, 23); - break; - } - break; - case 24: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 213, 25, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 212, 27, 26); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 188, 28, 26); - break; - } - break; - case 25: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 212, 27, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 188, 28, 26); - break; - } - break; - case 26: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 336, 544, 23); - break; - } - break; - case 27: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 188, 28, 26); - break; - } - break; - case 29: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 185, 30, 31); - break; - } - break; - case 33: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 151, 34, 35); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 270, 36, 37); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 294, 36, 38); - break; - } - break; - case 34: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 270, 36, 37); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 294, 36, 38); - break; - } - break; - case 35: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 366, 342, 209); - break; - } - break; - case 37: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 277, 580, 145); - break; - } - break; - case 39: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 236, 40, 41); - break; - } - break; - case 40: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 216, 353, 209); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 191, 354, 355); - break; - } - break; - case 43: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 341, 44, 45); - break; - } - break; - case 44: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 370, 532, 533); - break; - } - break; - case 45: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 344, 208, 209); - break; - } - break; - case 47: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 253, 48, 49); - break; - } - break; - case 48: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 306, 661, 26); - break; - } - break; - case 49: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 355, 541, 74); - break; - } - break; - case 54: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 55, 17); - break; - } - break; - case 55: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 185, 341, 31); - break; - } - break; - case 58: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 339, 59, 60); - break; - } - break; - case 59: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 372, 438, 175); - break; - } - break; - case 61: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 315, 62, 26); - break; - } - break; - case 62: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 303, 539, 26); - break; - } - break; - case 63: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 228, 64, 65); - break; - } - break; - case 67: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 188, 68, 26); - break; - } - break; - case 68: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 187, 372, 26); - break; - } - break; - case 69: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 441, 70, 71); - break; - } - break; - case 70: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 437, 289, 290); - break; - } - break; - case 71: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 445, 507, 41); - break; - } - break; - case 72: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 259, 73, 74); - break; - } - break; - case 75: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 211, 76, 74); - break; - } - break; - case 76: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 131, 560, 49); - break; - } - break; - case 78: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 79, 17); - break; - } - break; - case 80: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 257, 81, 11); - break; - } - break; - case 81: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 257, 81, 11); - break; - } - break; - case 86: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 87, 17); - break; - } - break; - case 87: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 167, 412, 115); - break; - } - break; - case 88: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 184, 89, 26); - break; - } - break; - case 90: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 113, 91, 92); - break; - } - break; - case 91: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 111, 509, 190); - break; - } - break; - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 61, 107, 108); - break; - } - break; - case 93: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 387, 94, 95); - break; - } - break; - case 94: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 328, 505, 74); - break; - } - break; - case 95: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 383, 434, 65); - break; - } - break; - case 97: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 298, 98, 74); - break; - } - break; - case 98: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 282, 197, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 296, 112, 74); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 287, 113, 114); - break; - } - break; - case 101: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 348, 102, 103); - break; - } - break; - case 102: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 348, 102, 103); - break; - } - break; - case 103: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 349, 305, 306); - break; - } - break; - case 106: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 61, 107, 108); - break; - } - break; - case 107: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 104, 517, 187); - break; - } - break; - case 110: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 257, 81, 11); - break; - } - break; - case 112: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 287, 113, 114); - break; - } - break; - case 113: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 297, 307, 308); - break; - } - break; - case 115: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 304, 116, 117); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 318, 118, 119); - break; - } - break; - case 116: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 318, 118, 119); - break; - } - break; - case 118: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 337, 478, 12); - break; - } - break; - case 122: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 261, 123, 124); - break; - } - break; - case 123: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 260, 224, 613); - break; - } - break; - case 126: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 249, 127, 128); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 251, 127, 47); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 253, 127, 49); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 439, 127, 129); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 133, 127, 130); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 135, 127, 131); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 61, 127, 108); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 137, 127, 132); - break; - case 8: - errn = _exiDecodeStartElement(state, *qnameID = 139, 127, 133); - break; - case 9: - errn = _exiDecodeStartElement(state, *qnameID = 141, 127, 134); - break; - case 10: - errn = _exiDecodeStartElement(state, *qnameID = 143, 127, 135); - break; - case 11: - errn = _exiDecodeStartElement(state, *qnameID = 145, 127, 136); - break; - case 12: - errn = _exiDecodeStartElement(state, *qnameID = 147, 127, 54); - break; - case 13: - errn = _exiDecodeStartElement(state, *qnameID = 152, 127, 137); - break; - case 14: - errn = _exiDecodeStartElement(state, *qnameID = 154, 127, 138); - break; - case 15: - errn = _exiDecodeStartElement(state, *qnameID = 156, 127, 139); - break; - case 16: - errn = _exiDecodeStartElement(state, *qnameID = 158, 127, 140); - break; - case 17: - errn = _exiDecodeStartElement(state, *qnameID = 163, 127, 141); - break; - case 18: - errn = _exiDecodeStartElement(state, *qnameID = 165, 127, 142); - break; - case 19: - errn = _exiDecodeStartElement(state, *qnameID = 267, 127, 143); - break; - case 20: - errn = _exiDecodeStartElement(state, *qnameID = 270, 127, 37); - break; - case 21: - errn = _exiDecodeStartElement(state, *qnameID = 272, 127, 144); - break; - case 22: - errn = _exiDecodeStartElement(state, *qnameID = 274, 127, 115); - break; - case 23: - errn = _exiDecodeStartElement(state, *qnameID = 277, 127, 145); - break; - case 24: - errn = _exiDecodeStartElement(state, *qnameID = 64, 127, 146); - break; - case 25: - errn = _exiDecodeStartElement(state, *qnameID = 66, 127, 147); - break; - case 26: - errn = _exiDecodeStartElement(state, *qnameID = 68, 127, 148); - break; - case 27: - errn = _exiDecodeStartElement(state, *qnameID = 283, 127, 149); - break; - case 28: - errn = _exiDecodeStartElement(state, *qnameID = 294, 127, 38); - break; - case 29: - errn = _exiDecodeStartElement(state, *qnameID = 300, 127, 56); - break; - case 30: - errn = _exiDecodeStartElement(state, *qnameID = 317, 127, 150); - break; - case 31: - errn = _exiDecodeStartElement(state, *qnameID = 321, 127, 151); - break; - case 32: - errn = _exiDecodeStartElement(state, *qnameID = 324, 127, 152); - break; - case 33: - errn = _exiDecodeStartElement(state, *qnameID = 75, 127, 153); - break; - case 34: - errn = _exiDecodeStartElement(state, *qnameID = 77, 127, 154); - break; - case 35: - errn = _exiDecodeStartElement(state, *qnameID = 78, 127, 155); - break; - case 36: - errn = _exiDecodeStartElement(state, *qnameID = 80, 127, 156); - break; - case 37: - errn = _exiDecodeStartElement(state, *qnameID = 192, 127, 157); - break; - case 38: - errn = _exiDecodeStartElement(state, *qnameID = 194, 127, 158); - break; - case 39: - errn = _exiDecodeStartElement(state, *qnameID = 82, 127, 159); - break; - case 40: - errn = _exiDecodeStartElement(state, *qnameID = 84, 127, 160); - break; - case 41: - errn = _exiDecodeStartElement(state, *qnameID = 87, 127, 161); - break; - case 42: - errn = _exiDecodeStartElement(state, *qnameID = 342, 127, 162); - break; - case 43: - errn = _exiDecodeStartElement(state, *qnameID = 197, 127, 163); - break; - case 44: - errn = _exiDecodeStartElement(state, *qnameID = 199, 127, 164); - break; - case 45: - errn = _exiDecodeStartElement(state, *qnameID = 202, 127, 165); - break; - case 46: - errn = _exiDecodeStartElement(state, *qnameID = 204, 127, 166); - break; - case 47: - errn = _exiDecodeStartElement(state, *qnameID = 206, 127, 167); - break; - case 48: - errn = _exiDecodeStartElement(state, *qnameID = 208, 127, 86); - break; - case 49: - errn = _exiDecodeStartElement(state, *qnameID = 93, 127, 168); - break; - case 50: - errn = _exiDecodeStartElement(state, *qnameID = 95, 127, 169); - break; - case 51: - errn = _exiDecodeStartElement(state, *qnameID = 359, 127, 170); - break; - case 52: - errn = _exiDecodeStartElement(state, *qnameID = 97, 127, 171); - break; - case 53: - errn = _exiDecodeStartElement(state, *qnameID = 363, 127, 172); - break; - case 54: - errn = _exiDecodeStartElement(state, *qnameID = 368, 127, 173); - break; - case 55: - errn = _exiDecodeStartElement(state, *qnameID = 99, 127, 174); - break; - case 56: - errn = _exiDecodeStartElement(state, *qnameID = 372, 127, 175); - break; - case 57: - errn = _exiDecodeStartElement(state, *qnameID = 381, 127, 176); - break; - case 58: - errn = _exiDecodeStartElement(state, *qnameID = 220, 127, 177); - break; - case 59: - errn = _exiDecodeStartElement(state, *qnameID = 222, 127, 178); - break; - case 60: - errn = _exiDecodeStartElement(state, *qnameID = 224, 127, 179); - break; - case 61: - errn = _exiDecodeStartElement(state, *qnameID = 226, 127, 180); - break; - case 62: - errn = _exiDecodeStartElement(state, *qnameID = 231, 127, 181); - break; - case 63: - errn = _exiDecodeStartElement(state, *qnameID = 233, 127, 182); - break; - case 64: - errn = _exiDecodeStartElement(state, *qnameID = 237, 127, 183); - break; - case 65: - errn = _exiDecodeStartElement(state, *qnameID = 239, 127, 184); - break; - case 66: - errn = _exiDecodeStartElement(state, *qnameID = 241, 127, 185); - break; - case 67: - errn = _exiDecodeStartElement(state, *qnameID = 242, 127, 78); - break; - case 68: - errn = _exiDecodeStartElement(state, *qnameID = 103, 127, 186); - break; - case 69: - errn = _exiDecodeStartElement(state, *qnameID = 104, 127, 187); - break; - case 70: - errn = _exiDecodeStartElement(state, *qnameID = 106, 127, 188); - break; - case 71: - errn = _exiDecodeStartElement(state, *qnameID = 108, 127, 189); - break; - case 72: - errn = _exiDecodeStartElement(state, *qnameID = 111, 127, 190); - break; - case 73: - errn = _exiDecodeStartElement(state, *qnameID = 113, 127, 92); - break; - case 74: - errn = _exiDecodeStartElement(state, *qnameID = 395, 127, 191); - break; - case 75: - errn = _exiDecodeStartElement(state, *qnameID = 115, 127, 192); - break; - case 76: - errn = _exiDecodeStartElement(state, *qnameID = 117, 127, 193); - break; - case 77: - errn = _exiDecodeStartElement(state, *qnameID = 442, 127, 69); - break; - case 78: - errn = _exiDecodeStartElement(state, *qnameID = 245, 127, 194); - break; - case 79: - errn = _exiDecodeStartElement(state, *qnameID = 247, 127, 195); - break; - case 80: - errn = _exiDecodeStartElement(state, *qnameID = 121, 127, 196); - break; - } - break; - case 128: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 279, 497, 545); - break; - } - break; - case 130: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 363, 145); - break; - } - break; - case 131: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 281, 17); - break; - } - break; - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 196, 199, 11); - break; - } - break; - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 161, 396, 9); - break; - } - break; - case 136: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 175, 213, 214); - break; - } - break; - case 138: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 260, 17); - break; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 189, 349, 8); - break; - } - break; - case 140: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 379, 17); - break; - } - break; - case 141: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 239, 145); - break; - } - break; - case 142: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 271, 17); - break; - } - break; - case 143: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 277, 345, 145); - break; - } - break; - case 144: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 274, 542, 115); - break; - } - break; - case 145: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 298, 98, 74); - break; - } - break; - case 146: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 86, 273, 275); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 71, 481, 275); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 130, 327, 275); - break; - } - break; - case 152: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 444, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 444, 191); - break; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 77, 241, 154); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 78, 241, 155); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 97, 241, 171); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 121, 241, 196); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 87, 241, 161); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 99, 241, 174); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 82, 241, 159); - break; - } - break; - case 155: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 64, 295, 146); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 93, 295, 168); - break; - } - break; - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 95, 565, 169); - break; - } - break; - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 236, 40, 41); - break; - } - break; - case 158: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 419, 17); - break; - } - break; - case 161: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 89, 490, 246); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 90, 491, 492); - break; - } - break; - case 162: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 470, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 470, 191); - break; - } - break; - case 163: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 160, 356, 357); - break; - } - break; - case 164: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 6, 17); - break; - } - break; - case 165: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 210, 33, 74); - break; - } - break; - case 166: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 463, 17); - break; - } - break; - case 167: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 67, 145); - break; - } - break; - case 168: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 83, 570, 275); - break; - } - break; - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 117, 277, 193); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 170: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 430, 18, 547); - break; - } - break; - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 117, 82, 193); - break; - } - break; - case 172: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 365, 320, 321); - break; - } - break; - case 174: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 101, 204, 205); - break; - } - break; - case 175: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 336, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 336, 191); - break; - } - break; - case 176: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 387, 309, 95); - break; - } - break; - case 177: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 228, 64, 65); - break; - } - break; - case 178: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 217, 17); - break; - } - break; - case 179: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 235, 572, 518); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 219, 573, 85); - break; - } - break; - case 180: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 628, 17); - break; - } - break; - case 181: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 217, 254, 245); - break; - } - break; - case 182: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 16, 17); - break; - } - break; - case 183: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 171, 629, 223); - break; - } - break; - case 184: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 238, 17); - break; - } - break; - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 113, 91, 92); - break; - } - break; - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 108, 377, 189); - break; - } - break; - case 193: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 115, 431, 192); - break; - } - break; - case 194: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 231, 145); - break; - } - break; - case 195: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 521, 17); - break; - } - break; - case 196: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 124, 313, 314); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 126, 313, 77); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 128, 313, 315); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 120, 313, 316); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 119, 313, 317); - break; - } - break; - case 197: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 296, 112, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 287, 113, 114); - break; - } - break; - case 198: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 196, 199, 11); - break; - } - break; - case 199: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 190, 386, 360); - break; - } - break; - case 204: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 101, 204, 205); - break; - } - break; - case 206: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 101, 204, 205); - break; - } - break; - case 207: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 344, 208, 209); - break; - } - break; - case 208: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 342, 448, 162); - break; - } - break; - case 213: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 249, 670, 128); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 267, 670, 143); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 283, 670, 149); - break; - } - break; - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 129, 221, 222); - break; - } - break; - case 216: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 217, 17); - break; - } - break; - case 217: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 228, 288, 65); - break; - } - break; - case 218: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 265, 218, 1); - break; - } - break; - case 220: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 129, 221, 222); - break; - } - break; - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 129, 221, 222); - break; - } - break; - case 230: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 231, 145); - break; - } - break; - case 233: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 175, 213, 214); - break; - } - break; - case 234: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 182, 235, 74); - break; - } - break; - case 235: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 181, 605, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 179, 606, 26); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 180, 516, 26); - break; - } - break; - case 237: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 238, 17); - break; - } - break; - case 238: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 177, 530, 531); - break; - } - break; - case 239: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 187, 484, 26); - break; - } - break; - case 240: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 77, 241, 154); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 78, 241, 155); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 97, 241, 171); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 121, 241, 196); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 87, 241, 161); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 99, 241, 174); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 82, 241, 159); - break; - } - break; - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 77, 241, 154); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 78, 241, 155); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 97, 241, 171); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 121, 241, 196); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 87, 241, 161); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 99, 241, 174); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 82, 241, 159); - break; - } - break; - case 242: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 77, 241, 154); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 78, 241, 155); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 97, 241, 171); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 121, 241, 196); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 87, 241, 161); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 99, 241, 174); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 82, 241, 159); - break; - } - break; - case 243: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 257, 10, 11); - break; - } - break; - case 244: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 352, 244, 245); - break; - } - break; - case 250: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 394, 251, 252); - break; - } - break; - case 253: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 352, 244, 245); - break; - } - break; - case 254: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 218, 494, 522); - break; - } - break; - case 256: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 117, 82, 193); - break; - } - break; - case 257: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 229, 258, 259); - break; - } - break; - case 259: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 379, 337, 338); - break; - } - break; - case 260: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 177, 461, 531); - break; - } - break; - case 262: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 184, 263, 26); - break; - } - break; - case 263: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 183, 548, 26); - break; - } - break; - case 264: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 72, 265, 266); - break; - } - break; - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 72, 265, 266); - break; - } - break; - case 271: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 167, 262, 115); - break; - } - break; - case 273: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 92, 274, 275); - break; - } - break; - case 274: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 71, 481, 275); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 130, 327, 275); - break; - } - break; - case 276: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 117, 277, 193); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 277: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 278: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 68, 601, 148); - break; - } - break; - case 280: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 91, 125, 275); - break; - } - break; - case 281: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 167, 29, 115); - break; - } - break; - case 284: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 285, 17); - break; - } - break; - case 285: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 161, 364, 9); - break; - } - break; - case 287: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 253, 48, 49); - break; - } - break; - case 288: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 230, 558, 101); - break; - } - break; - case 290: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 439, 302, 129); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 133, 302, 130); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 135, 302, 131); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 137, 302, 132); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 139, 302, 133); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 141, 302, 134); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 143, 302, 135); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 145, 302, 136); - break; - case 8: - errn = _exiDecodeStartElement(state, *qnameID = 147, 302, 54); - break; - case 9: - errn = _exiDecodeStartElement(state, *qnameID = 152, 302, 137); - break; - case 10: - errn = _exiDecodeStartElement(state, *qnameID = 154, 302, 138); - break; - case 11: - errn = _exiDecodeStartElement(state, *qnameID = 156, 302, 139); - break; - case 12: - errn = _exiDecodeStartElement(state, *qnameID = 158, 302, 140); - break; - case 13: - errn = _exiDecodeStartElement(state, *qnameID = 163, 302, 141); - break; - case 14: - errn = _exiDecodeStartElement(state, *qnameID = 165, 302, 142); - break; - case 15: - errn = _exiDecodeStartElement(state, *qnameID = 192, 302, 157); - break; - case 16: - errn = _exiDecodeStartElement(state, *qnameID = 194, 302, 158); - break; - case 17: - errn = _exiDecodeStartElement(state, *qnameID = 197, 302, 163); - break; - case 18: - errn = _exiDecodeStartElement(state, *qnameID = 199, 302, 164); - break; - case 19: - errn = _exiDecodeStartElement(state, *qnameID = 202, 302, 165); - break; - case 20: - errn = _exiDecodeStartElement(state, *qnameID = 204, 302, 166); - break; - case 21: - errn = _exiDecodeStartElement(state, *qnameID = 206, 302, 167); - break; - case 22: - errn = _exiDecodeStartElement(state, *qnameID = 208, 302, 86); - break; - case 23: - errn = _exiDecodeStartElement(state, *qnameID = 220, 302, 177); - break; - case 24: - errn = _exiDecodeStartElement(state, *qnameID = 222, 302, 178); - break; - case 25: - errn = _exiDecodeStartElement(state, *qnameID = 224, 302, 179); - break; - case 26: - errn = _exiDecodeStartElement(state, *qnameID = 226, 302, 180); - break; - case 27: - errn = _exiDecodeStartElement(state, *qnameID = 231, 302, 181); - break; - case 28: - errn = _exiDecodeStartElement(state, *qnameID = 233, 302, 182); - break; - case 29: - errn = _exiDecodeStartElement(state, *qnameID = 237, 302, 183); - break; - case 30: - errn = _exiDecodeStartElement(state, *qnameID = 239, 302, 184); - break; - case 31: - errn = _exiDecodeStartElement(state, *qnameID = 241, 302, 185); - break; - case 32: - errn = _exiDecodeStartElement(state, *qnameID = 242, 302, 78); - break; - case 33: - errn = _exiDecodeStartElement(state, *qnameID = 245, 302, 194); - break; - case 34: - errn = _exiDecodeStartElement(state, *qnameID = 247, 302, 195); - break; - } - break; - case 291: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 169, 292, 269); - break; - } - break; - case 292: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 160, 411, 357); - break; - } - break; - case 296: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 64, 295, 146); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 93, 295, 168); - break; - } - break; - case 298: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 299, 17); - break; - } - break; - case 299: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 161, 303, 9); - break; - } - break; - case 301: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 439, 302, 129); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 133, 302, 130); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 135, 302, 131); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 137, 302, 132); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 139, 302, 133); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 141, 302, 134); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 143, 302, 135); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 145, 302, 136); - break; - case 8: - errn = _exiDecodeStartElement(state, *qnameID = 147, 302, 54); - break; - case 9: - errn = _exiDecodeStartElement(state, *qnameID = 152, 302, 137); - break; - case 10: - errn = _exiDecodeStartElement(state, *qnameID = 154, 302, 138); - break; - case 11: - errn = _exiDecodeStartElement(state, *qnameID = 156, 302, 139); - break; - case 12: - errn = _exiDecodeStartElement(state, *qnameID = 158, 302, 140); - break; - case 13: - errn = _exiDecodeStartElement(state, *qnameID = 163, 302, 141); - break; - case 14: - errn = _exiDecodeStartElement(state, *qnameID = 165, 302, 142); - break; - case 15: - errn = _exiDecodeStartElement(state, *qnameID = 192, 302, 157); - break; - case 16: - errn = _exiDecodeStartElement(state, *qnameID = 194, 302, 158); - break; - case 17: - errn = _exiDecodeStartElement(state, *qnameID = 197, 302, 163); - break; - case 18: - errn = _exiDecodeStartElement(state, *qnameID = 199, 302, 164); - break; - case 19: - errn = _exiDecodeStartElement(state, *qnameID = 202, 302, 165); - break; - case 20: - errn = _exiDecodeStartElement(state, *qnameID = 204, 302, 166); - break; - case 21: - errn = _exiDecodeStartElement(state, *qnameID = 206, 302, 167); - break; - case 22: - errn = _exiDecodeStartElement(state, *qnameID = 208, 302, 86); - break; - case 23: - errn = _exiDecodeStartElement(state, *qnameID = 220, 302, 177); - break; - case 24: - errn = _exiDecodeStartElement(state, *qnameID = 222, 302, 178); - break; - case 25: - errn = _exiDecodeStartElement(state, *qnameID = 224, 302, 179); - break; - case 26: - errn = _exiDecodeStartElement(state, *qnameID = 226, 302, 180); - break; - case 27: - errn = _exiDecodeStartElement(state, *qnameID = 231, 302, 181); - break; - case 28: - errn = _exiDecodeStartElement(state, *qnameID = 233, 302, 182); - break; - case 29: - errn = _exiDecodeStartElement(state, *qnameID = 237, 302, 183); - break; - case 30: - errn = _exiDecodeStartElement(state, *qnameID = 239, 302, 184); - break; - case 31: - errn = _exiDecodeStartElement(state, *qnameID = 241, 302, 185); - break; - case 32: - errn = _exiDecodeStartElement(state, *qnameID = 242, 302, 78); - break; - case 33: - errn = _exiDecodeStartElement(state, *qnameID = 245, 302, 194); - break; - case 34: - errn = _exiDecodeStartElement(state, *qnameID = 247, 302, 195); - break; - } - break; - case 303: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 162, 291, 304); - break; - } - break; - case 305: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 347, 340, 202); - break; - } - break; - case 309: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 328, 430, 74); - break; - } - break; - case 310: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 335, 250, 311); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 394, 251, 252); - break; - } - break; - case 313: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 124, 313, 314); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 126, 313, 77); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 128, 313, 315); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 120, 313, 316); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 119, 313, 317); - break; - } - break; - case 314: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 123, 568, 569); - break; - } - break; - case 318: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 299, 17); - break; - } - break; - case 319: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 365, 320, 321); - break; - } - break; - case 320: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 365, 320, 321); - break; - } - break; - case 321: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 366, 43, 209); - break; - } - break; - case 323: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 256, 324, 308); - break; - } - break; - case 326: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 84, 326, 160); - break; - } - break; - case 327: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 74, 328, 275); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 102, 280, 275); - break; - } - break; - case 328: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 102, 280, 275); - break; - } - break; - case 329: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 326, 330, 331); - break; - } - break; - case 330: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 327, 420, 550); - break; - } - break; - case 332: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 251, 333, 47); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 272, 333, 144); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 300, 333, 56); - break; - } - break; - case 335: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 336, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 336, 191); - break; - } - break; - case 336: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 281, 346, 60); - break; - } - break; - case 337: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 379, 337, 338); - break; - } - break; - case 338: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 387, 94, 95); - break; - } - break; - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 72, 265, 266); - break; - } - break; - case 340: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 347, 340, 202); - break; - } - break; - case 341: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 363, 332, 172); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 368, 332, 173); - break; - } - break; - case 342: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 356, 587, 537); - break; - } - break; - case 345: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 290, 416, 26); - break; - } - break; - case 346: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 263, 346, 347); - break; - } - break; - case 347: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 431, 218, 552); - break; - } - break; - case 348: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 189, 349, 8); - break; - } - break; - case 350: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 113, 91, 92); - break; - } - break; - case 353: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 191, 354, 355); - break; - } - break; - case 355: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 332, 535, 100); - break; - } - break; - case 356: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 161, 594, 9); - break; - } - break; - case 360: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 361, 361, 362); - break; - } - break; - case 361: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 361, 361, 362); - break; - } - break; - case 364: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 162, 512, 304); - break; - } - break; - case 369: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 313, 370, 371); - break; - } - break; - case 373: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 191, 75, 355); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 211, 76, 74); - break; - } - break; - case 376: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 108, 377, 189); - break; - } - break; - case 377: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 108, 377, 189); - break; - } - break; - case 378: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 379, 17); - break; - } - break; - case 379: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 185, 563, 31); - break; - } - break; - case 382: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 387, 94, 95); - break; - } - break; - case 386: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 169, 387, 269); - break; - } - break; - case 388: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 329, 323, 308); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 256, 324, 308); - break; - } - break; - case 394: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 239, 145); - break; - } - break; - case 395: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 161, 396, 9); - break; - } - break; - case 396: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 160, 436, 357); - break; - } - break; - case 397: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 302, 61, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 315, 62, 26); - break; - } - break; - case 407: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 95, 407, 169); - break; - } - break; - case 411: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 215, 671, 616); - break; - } - break; - case 412: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 184, 413, 26); - break; - } - break; - case 416: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 291, 578, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 292, 471, 26); - break; - } - break; - case 417: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 196, 199, 11); - break; - } - break; - case 419: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 131, 109, 49); - break; - } - break; - case 422: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 363, 145); - break; - } - break; - case 426: - /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 249, 426, 128); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 251, 426, 47); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 131, 426, 49); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 253, 426, 49); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 437, 426, 290); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 439, 426, 129); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 132, 426, 74); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 255, 426, 74); - break; - case 8: - errn = _exiDecodeStartElement(state, *qnameID = 256, 426, 308); - break; - case 9: - errn = _exiDecodeStartElement(state, *qnameID = 133, 426, 130); - break; - case 10: - errn = _exiDecodeStartElement(state, *qnameID = 135, 426, 131); - break; - case 11: - errn = _exiDecodeStartElement(state, *qnameID = 61, 426, 108); - break; - case 12: - errn = _exiDecodeStartElement(state, *qnameID = 257, 426, 11); - break; - case 13: - errn = _exiDecodeStartElement(state, *qnameID = 137, 426, 132); - break; - case 14: - errn = _exiDecodeStartElement(state, *qnameID = 139, 426, 133); - break; - case 15: - errn = _exiDecodeStartElement(state, *qnameID = 141, 426, 134); - break; - case 16: - errn = _exiDecodeStartElement(state, *qnameID = 143, 426, 135); - break; - case 17: - errn = _exiDecodeStartElement(state, *qnameID = 145, 426, 136); - break; - case 18: - errn = _exiDecodeStartElement(state, *qnameID = 147, 426, 54); - break; - case 19: - errn = _exiDecodeStartElement(state, *qnameID = 149, 426, 176); - break; - case 20: - errn = _exiDecodeStartElement(state, *qnameID = 150, 426, 74); - break; - case 21: - errn = _exiDecodeStartElement(state, *qnameID = 259, 426, 74); - break; - case 22: - errn = _exiDecodeStartElement(state, *qnameID = 151, 426, 35); - break; - case 23: - errn = _exiDecodeStartElement(state, *qnameID = 260, 426, 613); - break; - case 24: - errn = _exiDecodeStartElement(state, *qnameID = 261, 426, 124); - break; - case 25: - errn = _exiDecodeStartElement(state, *qnameID = 152, 426, 137); - break; - case 26: - errn = _exiDecodeStartElement(state, *qnameID = 154, 426, 138); - break; - case 27: - errn = _exiDecodeStartElement(state, *qnameID = 263, 426, 347); - break; - case 28: - errn = _exiDecodeStartElement(state, *qnameID = 156, 426, 139); - break; - case 29: - errn = _exiDecodeStartElement(state, *qnameID = 158, 426, 140); - break; - case 30: - errn = _exiDecodeStartElement(state, *qnameID = 160, 426, 357); - break; - case 31: - errn = _exiDecodeStartElement(state, *qnameID = 161, 426, 9); - break; - case 32: - errn = _exiDecodeStartElement(state, *qnameID = 162, 426, 304); - break; - case 33: - errn = _exiDecodeStartElement(state, *qnameID = 265, 426, 1); - break; - case 34: - errn = _exiDecodeStartElement(state, *qnameID = 163, 426, 141); - break; - case 35: - errn = _exiDecodeStartElement(state, *qnameID = 165, 426, 142); - break; - case 36: - errn = _exiDecodeStartElement(state, *qnameID = 267, 426, 143); - break; - case 37: - errn = _exiDecodeStartElement(state, *qnameID = 270, 426, 37); - break; - case 38: - errn = _exiDecodeStartElement(state, *qnameID = 272, 426, 144); - break; - case 39: - errn = _exiDecodeStartElement(state, *qnameID = 167, 426, 115); - break; - case 40: - errn = _exiDecodeStartElement(state, *qnameID = 274, 426, 115); - break; - case 41: - errn = _exiDecodeStartElement(state, *qnameID = 168, 426, 145); - break; - case 42: - errn = _exiDecodeStartElement(state, *qnameID = 277, 426, 145); - break; - case 43: - errn = _exiDecodeStartElement(state, *qnameID = 169, 426, 269); - break; - case 44: - errn = _exiDecodeStartElement(state, *qnameID = 64, 426, 146); - break; - case 45: - errn = _exiDecodeStartElement(state, *qnameID = 170, 426, 554); - break; - case 46: - errn = _exiDecodeStartElement(state, *qnameID = 279, 426, 545); - break; - case 47: - errn = _exiDecodeStartElement(state, *qnameID = 66, 426, 147); - break; - case 48: - errn = _exiDecodeStartElement(state, *qnameID = 68, 426, 148); - break; - case 49: - errn = _exiDecodeStartElement(state, *qnameID = 280, 426, 26); - break; - case 50: - errn = _exiDecodeStartElement(state, *qnameID = 281, 426, 60); - break; - case 51: - errn = _exiDecodeStartElement(state, *qnameID = 171, 426, 223); - break; - case 52: - errn = _exiDecodeStartElement(state, *qnameID = 282, 426, 74); - break; - case 53: - errn = _exiDecodeStartElement(state, *qnameID = 283, 426, 149); - break; - case 54: - errn = _exiDecodeStartElement(state, *qnameID = 285, 426, 26); - break; - case 55: - errn = _exiDecodeStartElement(state, *qnameID = 286, 426, 26); - break; - case 56: - errn = _exiDecodeStartElement(state, *qnameID = 287, 426, 114); - break; - case 57: - errn = _exiDecodeStartElement(state, *qnameID = 288, 426, 26); - break; - case 58: - errn = _exiDecodeStartElement(state, *qnameID = 289, 426, 26); - break; - case 59: - errn = _exiDecodeStartElement(state, *qnameID = 172, 426, 26); - break; - case 60: - errn = _exiDecodeStartElement(state, *qnameID = 290, 426, 26); - break; - case 61: - errn = _exiDecodeStartElement(state, *qnameID = 173, 426, 26); - break; - case 62: - errn = _exiDecodeStartElement(state, *qnameID = 291, 426, 26); - break; - case 63: - errn = _exiDecodeStartElement(state, *qnameID = 174, 426, 26); - break; - case 64: - errn = _exiDecodeStartElement(state, *qnameID = 292, 426, 26); - break; - case 65: - errn = _exiDecodeStartElement(state, *qnameID = 293, 426, 26); - break; - case 66: - errn = _exiDecodeStartElement(state, *qnameID = 294, 426, 38); - break; - case 67: - errn = _exiDecodeStartElement(state, *qnameID = 296, 426, 74); - break; - case 68: - errn = _exiDecodeStartElement(state, *qnameID = 297, 426, 308); - break; - case 69: - errn = _exiDecodeStartElement(state, *qnameID = 298, 426, 74); - break; - case 70: - errn = _exiDecodeStartElement(state, *qnameID = 175, 426, 214); - break; - case 71: - errn = _exiDecodeStartElement(state, *qnameID = 300, 426, 56); - break; - case 72: - errn = _exiDecodeStartElement(state, *qnameID = 176, 426, 74); - break; - case 73: - errn = _exiDecodeStartElement(state, *qnameID = 302, 426, 26); - break; - case 74: - errn = _exiDecodeStartElement(state, *qnameID = 303, 426, 26); - break; - case 75: - errn = _exiDecodeStartElement(state, *qnameID = 177, 426, 531); - break; - case 76: - errn = _exiDecodeStartElement(state, *qnameID = 304, 426, 117); - break; - case 77: - errn = _exiDecodeStartElement(state, *qnameID = 178, 426, 26); - break; - case 78: - errn = _exiDecodeStartElement(state, *qnameID = 305, 426, 26); - break; - case 79: - errn = _exiDecodeStartElement(state, *qnameID = 306, 426, 26); - break; - case 80: - errn = _exiDecodeStartElement(state, *qnameID = 179, 426, 26); - break; - case 81: - errn = _exiDecodeStartElement(state, *qnameID = 307, 426, 26); - break; - case 82: - errn = _exiDecodeStartElement(state, *qnameID = 180, 426, 26); - break; - case 83: - errn = _exiDecodeStartElement(state, *qnameID = 308, 426, 26); - break; - case 84: - errn = _exiDecodeStartElement(state, *qnameID = 181, 426, 26); - break; - case 85: - errn = _exiDecodeStartElement(state, *qnameID = 309, 426, 26); - break; - case 86: - errn = _exiDecodeStartElement(state, *qnameID = 310, 426, 26); - break; - case 87: - errn = _exiDecodeStartElement(state, *qnameID = 311, 426, 26); - break; - case 88: - errn = _exiDecodeStartElement(state, *qnameID = 312, 426, 26); - break; - case 89: - errn = _exiDecodeStartElement(state, *qnameID = 313, 426, 371); - break; - case 90: - errn = _exiDecodeStartElement(state, *qnameID = 315, 426, 26); - break; - case 91: - errn = _exiDecodeStartElement(state, *qnameID = 182, 426, 74); - break; - case 92: - errn = _exiDecodeStartElement(state, *qnameID = 183, 426, 26); - break; - case 93: - errn = _exiDecodeStartElement(state, *qnameID = 184, 426, 26); - break; - case 94: - errn = _exiDecodeStartElement(state, *qnameID = 185, 426, 31); - break; - case 95: - errn = _exiDecodeStartElement(state, *qnameID = 317, 426, 150); - break; - case 96: - errn = _exiDecodeStartElement(state, *qnameID = 318, 426, 119); - break; - case 97: - errn = _exiDecodeStartElement(state, *qnameID = 186, 426, 74); - break; - case 98: - errn = _exiDecodeStartElement(state, *qnameID = 321, 426, 151); - break; - case 99: - errn = _exiDecodeStartElement(state, *qnameID = 187, 426, 26); - break; - case 100: - errn = _exiDecodeStartElement(state, *qnameID = 188, 426, 26); - break; - case 101: - errn = _exiDecodeStartElement(state, *qnameID = 323, 426, 469); - break; - case 102: - errn = _exiDecodeStartElement(state, *qnameID = 324, 426, 152); - break; - case 103: - errn = _exiDecodeStartElement(state, *qnameID = 70, 426, 275); - break; - case 104: - errn = _exiDecodeStartElement(state, *qnameID = 326, 426, 331); - break; - case 105: - errn = _exiDecodeStartElement(state, *qnameID = 327, 426, 550); - break; - case 106: - errn = _exiDecodeStartElement(state, *qnameID = 328, 426, 74); - break; - case 107: - errn = _exiDecodeStartElement(state, *qnameID = 329, 426, 308); - break; - case 108: - errn = _exiDecodeStartElement(state, *qnameID = 71, 426, 275); - break; - case 109: - errn = _exiDecodeStartElement(state, *qnameID = 189, 426, 8); - break; - case 110: - errn = _exiDecodeStartElement(state, *qnameID = 72, 426, 266); - break; - case 111: - errn = _exiDecodeStartElement(state, *qnameID = 441, 426, 71); - break; - case 112: - errn = _exiDecodeStartElement(state, *qnameID = 74, 426, 275); - break; - case 113: - errn = _exiDecodeStartElement(state, *qnameID = 75, 426, 153); - break; - case 114: - errn = _exiDecodeStartElement(state, *qnameID = 77, 426, 154); - break; - case 115: - errn = _exiDecodeStartElement(state, *qnameID = 78, 426, 155); - break; - case 116: - errn = _exiDecodeStartElement(state, *qnameID = 190, 426, 360); - break; - case 117: - errn = _exiDecodeStartElement(state, *qnameID = 80, 426, 156); - break; - case 118: - errn = _exiDecodeStartElement(state, *qnameID = 332, 426, 100); - break; - case 119: - errn = _exiDecodeStartElement(state, *qnameID = 191, 426, 355); - break; - case 120: - errn = _exiDecodeStartElement(state, *qnameID = 334, 426, 26); - break; - case 121: - errn = _exiDecodeStartElement(state, *qnameID = 335, 426, 311); - break; - case 122: - errn = _exiDecodeStartElement(state, *qnameID = 192, 426, 157); - break; - case 123: - errn = _exiDecodeStartElement(state, *qnameID = 194, 426, 158); - break; - case 124: - errn = _exiDecodeStartElement(state, *qnameID = 82, 426, 159); - break; - case 125: - errn = _exiDecodeStartElement(state, *qnameID = 83, 426, 275); - break; - case 126: - errn = _exiDecodeStartElement(state, *qnameID = 336, 426, 23); - break; - case 127: - errn = _exiDecodeStartElement(state, *qnameID = 444, 426, 329); - break; - case 128: - errn = _exiDecodeStartElement(state, *qnameID = 337, 426, 12); - break; - case 129: - errn = _exiDecodeStartElement(state, *qnameID = 339, 426, 60); - break; - case 130: - errn = _exiDecodeStartElement(state, *qnameID = 196, 426, 11); - break; - case 131: - errn = _exiDecodeStartElement(state, *qnameID = 84, 426, 160); - break; - case 132: - errn = _exiDecodeStartElement(state, *qnameID = 86, 426, 275); - break; - case 133: - errn = _exiDecodeStartElement(state, *qnameID = 87, 426, 161); - break; - case 134: - errn = _exiDecodeStartElement(state, *qnameID = 89, 426, 246); - break; - case 135: - errn = _exiDecodeStartElement(state, *qnameID = 90, 426, 424); - break; - case 136: - errn = _exiDecodeStartElement(state, *qnameID = 340, 426, 613); - break; - case 137: - errn = _exiDecodeStartElement(state, *qnameID = 341, 426, 45); - break; - case 138: - errn = _exiDecodeStartElement(state, *qnameID = 342, 426, 162); - break; - case 139: - errn = _exiDecodeStartElement(state, *qnameID = 344, 426, 209); - break; - case 140: - errn = _exiDecodeStartElement(state, *qnameID = 347, 426, 202); - break; - case 141: - errn = _exiDecodeStartElement(state, *qnameID = 348, 426, 103); - break; - case 142: - errn = _exiDecodeStartElement(state, *qnameID = 349, 426, 634); - break; - case 143: - errn = _exiDecodeStartElement(state, *qnameID = 197, 426, 163); - break; - case 144: - errn = _exiDecodeStartElement(state, *qnameID = 199, 426, 164); - break; - case 145: - errn = _exiDecodeStartElement(state, *qnameID = 352, 426, 245); - break; - case 146: - errn = _exiDecodeStartElement(state, *qnameID = 201, 426, 626); - break; - case 147: - errn = _exiDecodeStartElement(state, *qnameID = 91, 426, 275); - break; - case 148: - errn = _exiDecodeStartElement(state, *qnameID = 202, 426, 165); - break; - case 149: - errn = _exiDecodeStartElement(state, *qnameID = 204, 426, 166); - break; - case 150: - errn = _exiDecodeStartElement(state, *qnameID = 355, 426, 74); - break; - case 151: - errn = _exiDecodeStartElement(state, *qnameID = 206, 426, 167); - break; - case 152: - errn = _exiDecodeStartElement(state, *qnameID = 208, 426, 86); - break; - case 153: - errn = _exiDecodeStartElement(state, *qnameID = 356, 426, 537); - break; - case 154: - errn = _exiDecodeStartElement(state, *qnameID = 92, 426, 275); - break; - case 155: - errn = _exiDecodeStartElement(state, *qnameID = 358, 426, 74); - break; - case 156: - errn = _exiDecodeStartElement(state, *qnameID = 93, 426, 168); - break; - case 157: - errn = _exiDecodeStartElement(state, *qnameID = 210, 426, 74); - break; - case 158: - errn = _exiDecodeStartElement(state, *qnameID = 211, 426, 74); - break; - case 159: - errn = _exiDecodeStartElement(state, *qnameID = 95, 426, 169); - break; - case 160: - errn = _exiDecodeStartElement(state, *qnameID = 359, 426, 170); - break; - case 161: - errn = _exiDecodeStartElement(state, *qnameID = 212, 426, 26); - break; - case 162: - errn = _exiDecodeStartElement(state, *qnameID = 213, 426, 26); - break; - case 163: - errn = _exiDecodeStartElement(state, *qnameID = 214, 426, 17); - break; - case 164: - errn = _exiDecodeStartElement(state, *qnameID = 97, 426, 171); - break; - case 165: - errn = _exiDecodeStartElement(state, *qnameID = 215, 426, 616); - break; - case 166: - errn = _exiDecodeStartElement(state, *qnameID = 361, 426, 362); - break; - case 167: - errn = _exiDecodeStartElement(state, *qnameID = 363, 426, 172); - break; - case 168: - errn = _exiDecodeStartElement(state, *qnameID = 365, 426, 321); - break; - case 169: - errn = _exiDecodeStartElement(state, *qnameID = 216, 426, 209); - break; - case 170: - errn = _exiDecodeStartElement(state, *qnameID = 366, 426, 209); - break; - case 171: - errn = _exiDecodeStartElement(state, *qnameID = 368, 426, 173); - break; - case 172: - errn = _exiDecodeStartElement(state, *qnameID = 99, 426, 174); - break; - case 173: - errn = _exiDecodeStartElement(state, *qnameID = 101, 426, 205); - break; - case 174: - errn = _exiDecodeStartElement(state, *qnameID = 370, 426, 533); - break; - case 175: - errn = _exiDecodeStartElement(state, *qnameID = 371, 426, 635); - break; - case 176: - errn = _exiDecodeStartElement(state, *qnameID = 372, 426, 175); - break; - case 177: - errn = _exiDecodeStartElement(state, *qnameID = 374, 426, 209); - break; - case 178: - errn = _exiDecodeStartElement(state, *qnameID = 102, 426, 275); - break; - case 179: - errn = _exiDecodeStartElement(state, *qnameID = 217, 426, 245); - break; - case 180: - errn = _exiDecodeStartElement(state, *qnameID = 376, 426, 524); - break; - case 181: - errn = _exiDecodeStartElement(state, *qnameID = 218, 426, 522); - break; - case 182: - errn = _exiDecodeStartElement(state, *qnameID = 379, 426, 338); - break; - case 183: - errn = _exiDecodeStartElement(state, *qnameID = 219, 426, 85); - break; - case 184: - errn = _exiDecodeStartElement(state, *qnameID = 380, 426, 85); - break; - case 185: - errn = _exiDecodeStartElement(state, *qnameID = 381, 426, 176); - break; - case 186: - errn = _exiDecodeStartElement(state, *qnameID = 220, 426, 177); - break; - case 187: - errn = _exiDecodeStartElement(state, *qnameID = 222, 426, 178); - break; - case 188: - errn = _exiDecodeStartElement(state, *qnameID = 224, 426, 179); - break; - case 189: - errn = _exiDecodeStartElement(state, *qnameID = 226, 426, 180); - break; - case 190: - errn = _exiDecodeStartElement(state, *qnameID = 228, 426, 65); - break; - case 191: - errn = _exiDecodeStartElement(state, *qnameID = 383, 426, 65); - break; - case 192: - errn = _exiDecodeStartElement(state, *qnameID = 229, 426, 259); - break; - case 193: - errn = _exiDecodeStartElement(state, *qnameID = 384, 426, 409); - break; - case 194: - errn = _exiDecodeStartElement(state, *qnameID = 230, 426, 101); - break; - case 195: - errn = _exiDecodeStartElement(state, *qnameID = 231, 426, 181); - break; - case 196: - errn = _exiDecodeStartElement(state, *qnameID = 233, 426, 182); - break; - case 197: - errn = _exiDecodeStartElement(state, *qnameID = 235, 426, 518); - break; - case 198: - errn = _exiDecodeStartElement(state, *qnameID = 386, 426, 518); - break; - case 199: - errn = _exiDecodeStartElement(state, *qnameID = 387, 426, 95); - break; - case 200: - errn = _exiDecodeStartElement(state, *qnameID = 236, 426, 41); - break; - case 201: - errn = _exiDecodeStartElement(state, *qnameID = 445, 426, 41); - break; - case 202: - errn = _exiDecodeStartElement(state, *qnameID = 237, 426, 183); - break; - case 203: - errn = _exiDecodeStartElement(state, *qnameID = 239, 426, 184); - break; - case 204: - errn = _exiDecodeStartElement(state, *qnameID = 241, 426, 185); - break; - case 205: - errn = _exiDecodeStartElement(state, *qnameID = 242, 426, 78); - break; - case 206: - errn = _exiDecodeStartElement(state, *qnameID = 391, 426, 534); - break; - case 207: - errn = _exiDecodeStartElement(state, *qnameID = 103, 426, 186); - break; - case 208: - errn = _exiDecodeStartElement(state, *qnameID = 104, 426, 187); - break; - case 209: - errn = _exiDecodeStartElement(state, *qnameID = 106, 426, 188); - break; - case 210: - errn = _exiDecodeStartElement(state, *qnameID = 108, 426, 189); - break; - case 211: - errn = _exiDecodeStartElement(state, *qnameID = 111, 426, 190); - break; - case 212: - errn = _exiDecodeStartElement(state, *qnameID = 113, 426, 92); - break; - case 213: - errn = _exiDecodeStartElement(state, *qnameID = 392, 426, 110); - break; - case 214: - errn = _exiDecodeStartElement(state, *qnameID = 394, 426, 252); - break; - case 215: - errn = _exiDecodeStartElement(state, *qnameID = 395, 426, 191); - break; - case 216: - errn = _exiDecodeStartElement(state, *qnameID = 115, 426, 192); - break; - case 217: - errn = _exiDecodeStartElement(state, *qnameID = 117, 426, 193); - break; - case 218: - errn = _exiDecodeStartElement(state, *qnameID = 396, 426, 418); - break; - case 219: - errn = _exiDecodeStartElement(state, *qnameID = 442, 426, 69); - break; - case 220: - errn = _exiDecodeStartElement(state, *qnameID = 397, 426, 502); - break; - case 221: - errn = _exiDecodeStartElement(state, *qnameID = 245, 426, 194); - break; - case 222: - errn = _exiDecodeStartElement(state, *qnameID = 247, 426, 195); - break; - case 223: - errn = _exiDecodeStartElement(state, *qnameID = 119, 426, 317); - break; - case 224: - errn = _exiDecodeStartElement(state, *qnameID = 120, 426, 316); - break; - case 225: - errn = _exiDecodeStartElement(state, *qnameID = 121, 426, 196); - break; - case 226: - errn = _exiDecodeStartElement(state, *qnameID = 123, 426, 569); - break; - case 227: - errn = _exiDecodeStartElement(state, *qnameID = 124, 426, 314); - break; - case 228: - errn = _exiDecodeStartElement(state, *qnameID = 126, 426, 77); - break; - case 229: - errn = _exiDecodeStartElement(state, *qnameID = 127, 426, 625); - break; - case 230: - errn = _exiDecodeStartElement(state, *qnameID = 128, 426, 315); - break; - case 231: - errn = _exiDecodeStartElement(state, *qnameID = 129, 426, 222); - break; - case 232: - errn = _exiDecodeStartElement(state, *qnameID = 130, 426, 275); - break; - case 233: - errn = _exiDecodeStartElement(state, *qnameID = 398, 426, 627); - break; - case 234: - errn = _exiDecodeStartElement(state, *qnameID = 399, 426, 23); - break; - case 235: - errn = _exiDecodeStartElement(state, *qnameID = 400, 426, 74); - break; - case 236: - errn = _exiDecodeStartElement(state, *qnameID = 401, 426, 630); - break; - case 237: - errn = _exiDecodeStartElement(state, *qnameID = 404, 426, 3); - break; - case 238: - errn = _exiDecodeStartElement(state, *qnameID = 407, 426, 20); - break; - case 239: - errn = _exiDecodeStartElement(state, *qnameID = 413, 426, 454); - break; - case 240: - errn = _exiDecodeStartElement(state, *qnameID = 419, 426, 26); - break; - case 241: - errn = _exiDecodeStartElement(state, *qnameID = 428, 426, 636); - break; - case 242: - errn = _exiDecodeStartElement(state, *qnameID = 430, 426, 547); - break; - case 243: - errn = _exiDecodeStartElement(state, *qnameID = 431, 426, 552); - break; - case 244: - errn = _exiDecodeStartElement(state, *qnameID = 432, 426, 637); - break; - } - break; - case 430: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 323, 279, 469); - break; - } - break; - case 431: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 115, 431, 192); - break; - } - break; - case 433: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 383, 434, 65); - break; - } - break; - case 434: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 384, 596, 409); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 380, 597, 85); - break; - } - break; - case 435: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 326, 330, 331); - break; - } - break; - case 436: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 190, 437, 360); - break; - } - break; - case 437: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 169, 489, 269); - break; - } - break; - case 438: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 372, 438, 175); - break; - } - break; - case 441: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 311, 442, 26); - break; - } - break; - case 442: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 312, 397, 26); - break; - } - break; - case 443: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 444, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 444, 191); - break; - } - break; - case 446: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 178, 373, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 191, 75, 355); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 211, 76, 74); - break; - } - break; - case 448: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 342, 448, 162); - break; - } - break; - case 451: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 117, 277, 193); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 453: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 379, 337, 338); - break; - } - break; - case 455: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 289, 456, 26); - break; - } - break; - case 456: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 288, 683, 26); - break; - } - break; - case 461: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 216, 446, 209); - break; - } - break; - case 462: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 463, 17); - break; - } - break; - case 463: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 253, 352, 49); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 274, 352, 115); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 317, 352, 150); - break; - } - break; - case 464: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 77, 241, 154); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 78, 241, 155); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 97, 241, 171); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 121, 241, 196); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 87, 241, 161); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 99, 241, 174); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 82, 241, 159); - break; - } - break; - case 465: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 304, 116, 117); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 318, 118, 119); - break; - } - break; - case 466: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 55, 17); - break; - } - break; - case 467: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 115, 431, 192); - break; - } - break; - case 470: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 340, 584, 613); - break; - } - break; - case 471: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 285, 472, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 286, 388, 26); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 329, 323, 308); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 256, 324, 308); - break; - } - break; - case 472: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 286, 388, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 329, 323, 308); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 256, 324, 308); - break; - } - break; - case 474: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 117, 82, 193); - break; - } - break; - case 476: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 285, 17); - break; - } - break; - case 477: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 79, 17); - break; - } - break; - case 478: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 313, 479, 371); - break; - } - break; - case 481: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 130, 327, 275); - break; - } - break; - case 482: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 161, 396, 9); - break; - } - break; - case 484: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 174, 485, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 172, 486, 26); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 173, 487, 26); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 132, 488, 74); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 150, 24, 74); - break; - } - break; - case 485: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 172, 486, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 173, 487, 26); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 132, 488, 74); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 150, 24, 74); - break; - } - break; - case 486: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 173, 487, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 132, 488, 74); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 150, 24, 74); - break; - } - break; - case 487: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 132, 488, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 150, 24, 74); - break; - } - break; - case 488: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 150, 24, 74); - break; - } - break; - case 490: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 90, 83, 424); - break; - } - break; - case 496: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 349, 305, 306); - break; - } - break; - case 497: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 280, 455, 26); - break; - } - break; - case 500: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 149, 257, 176); - break; - } - break; - case 501: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 397, 423, 502); - break; - } - break; - case 506: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 445, 507, 41); - break; - } - break; - case 507: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 444, 646, 329); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 103, 408, 186); - break; - } - break; - case 509: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 75, 326, 153); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 84, 326, 160); - break; - } - break; - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 129, 221, 222); - break; - } - break; - case 512: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 169, 513, 269); - break; - } - break; - case 513: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 160, 440, 357); - break; - } - break; - case 514: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 309, 441, 26); - break; - } - break; - case 517: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 95, 407, 169); - break; - } - break; - case 520: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 260, 17); - break; - } - break; - case 521: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 167, 88, 115); - break; - } - break; - case 522: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 376, 523, 524); - break; - } - break; - case 523: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 376, 523, 524); - break; - } - break; - case 524: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 383, 607, 65); - break; - } - break; - case 530: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 170, 553, 554); - break; - } - break; - case 535: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 334, 536, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 391, 310, 534); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 335, 250, 311); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 394, 251, 252); - break; - } - break; - case 536: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 391, 310, 534); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 335, 250, 311); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 394, 251, 252); - break; - } - break; - case 537: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 261, 123, 124); - break; - } - break; - case 540: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 355, 541, 74); - break; - } - break; - case 541: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 358, 590, 74); - break; - } - break; - case 542: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 307, 543, 26); - break; - } - break; - case 543: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 308, 514, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 309, 441, 26); - break; - } - break; - case 544: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 396, 501, 418); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 397, 423, 502); - break; - } - break; - case 548: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 176, 614, 74); - break; - } - break; - case 549: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 124, 313, 314); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 126, 313, 77); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 128, 313, 315); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 120, 313, 316); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 119, 313, 317); - break; - } - break; - case 556: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 366, 342, 209); - break; - } - break; - case 557: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 431, 218, 552); - break; - } - break; - case 564: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 95, 565, 169); - break; - } - break; - case 565: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 95, 565, 169); - break; - } - break; - case 567: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 123, 568, 569); - break; - } - break; - case 568: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 127, 654, 625); - break; - } - break; - case 570: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 70, 410, 275); - break; - } - break; - case 572: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 219, 573, 85); - break; - } - break; - case 574: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 101, 204, 205); - break; - } - break; - case 576: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 64, 295, 146); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 93, 295, 168); - break; - } - break; - case 577: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 108, 377, 189); - break; - } - break; - case 578: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 292, 471, 26); - break; - } - break; - case 579: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 277, 580, 145); - break; - } - break; - case 580: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 255, 72, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 259, 73, 74); - break; - } - break; - case 582: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 210, 33, 74); - break; - } - break; - case 585: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 235, 572, 518); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 219, 573, 85); - break; - } - break; - case 586: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 348, 102, 103); - break; - } - break; - case 587: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 356, 587, 537); - break; - } - break; - case 588: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 444, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 444, 191); - break; - } - break; - case 589: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 86, 273, 275); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 71, 481, 275); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 130, 327, 275); - break; - } - break; - case 590: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 337, 369, 591); - break; - } - break; - case 592: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 441, 70, 71); - break; - } - break; - case 596: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 380, 597, 85); - break; - } - break; - case 597: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 386, 504, 518); - break; - } - break; - case 598: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 419, 17); - break; - } - break; - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 117, 82, 193); - break; - } - break; - case 600: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 217, 254, 245); - break; - } - break; - case 602: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 359, 470, 170); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 395, 470, 191); - break; - } - break; - case 603: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 430, 18, 547); - break; - } - break; - case 604: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 168, 67, 145); - break; - } - break; - case 605: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 179, 606, 26); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 180, 516, 26); - break; - } - break; - case 606: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 180, 516, 26); - break; - } - break; - case 607: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 349, 447, 634); - break; - } - break; - case 608: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 277, 345, 145); - break; - } - break; - case 610: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 332, 535, 100); - break; - } - break; - case 612: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 366, 43, 209); - break; - } - break; - case 614: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 186, 234, 74); - break; - } - break; - case 615: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 89, 490, 246); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 90, 491, 492); - break; - } - break; - case 617: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 376, 523, 524); - break; - } - break; - case 618: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 6, 17); - break; - } - break; - case 619: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 274, 542, 115); - break; - } - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 117, 277, 193); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 117, 277, 193); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 66, 278, 147); - break; - } - break; - case 624: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 336, 544, 23); - break; - } - break; - case 626: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 352, 244, 245); - break; - } - break; - case 628: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 201, 500, 626); - break; - } - break; - case 632: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 361, 361, 362); - break; - } - break; - case 638: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 387, 309, 95); - break; - } - break; - case 640: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 279, 497, 545); - break; - } - break; - case 642: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 271, 17); - break; - } - break; - case 643: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 374, 651, 209); - break; - } - break; - case 646: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 103, 408, 186); - break; - } - break; - case 647: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 400, 13, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 401, 13, 630); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 428, 13, 636); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 413, 13, 454); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 419, 13, 26); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 432, 13, 637); - break; - } - break; - case 651: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 371, 58, 635); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 339, 59, 60); - break; - } - break; - case 656: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 61, 107, 108); - break; - } - break; - case 658: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 160, 356, 357); - break; - } - break; - case 661: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 305, 662, 26); - break; - } - break; - case 662: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 310, 415, 26); - break; - } - break; - case 663: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 189, 349, 8); - break; - } - break; - case 669: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 404, 2, 3); - break; - } - break; - case 674: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 171, 629, 223); - break; - } - break; - case 675: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 374, 651, 209); - break; - } - break; - case 682: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 281, 17); - break; - } - break; - case 683: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 293, 50, 26); - break; - } - break; - case 684: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 87, 17); - break; - } - break; - case 687: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 383, 607, 65); - break; - } - break; - case 689: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 628, 17); - break; - } - break; - case 692: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 400, 13, 74); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 401, 13, 630); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 428, 13, 636); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 413, 13, 454); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 419, 13, 26); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 432, 13, 637); - break; - } - break; - case 696: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 236, 40, 41); - break; - } - break; - case 700: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 214, 521, 17); - break; - } - break; - case 703: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 83, 570, 275); - break; - } - break; - case 705: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 95, 565, 169); - break; - } - break; - - } - break; - case EXI_EVENT_START_ELEMENT_NS: - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - break; - case EXI_EVENT_START_ELEMENT_GENERIC: - case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED: - errn = _exiDecodeQName(stream, state, qnameID, - &_qname); - if (errn) { - return errn; - } - - /* update current rule --> element content rule (if not already) */ - errn = exi__MoveToElementContentRule(state); - if (errn) { - return errn; - } - - /* retrieve global grammar(existing OR runtime) and push it stack */ - errn = exi__RetrieveAndPushGlobalGrammar(state, *qnameID); - break; - default: - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - break; - } - - return errn; -} - - - -/*int exiDecodeStartElementGeneric(bitstream_t* stream, exi_state_t* state, - qname_t* qname) { - // decode qname - int errn = _exiDecodeQName(stream, &(state->nameTablePrepopulated), &(state->nameTableRuntime), qname); - if (errn) { - return errn; - } - - switch (state->grammarStack[state->stackIndex]) { - // $EXI_DECODE_START_ELEMENT_GENERIC$ - case DOC_CONTENT: - // move on to DocEnd - state->grammarStack[state->stackIndex] = DOC_END; - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - case UR_TYPE_GRAMMAR_0: - // move on to UR_TYPE_GRAMMAR_1 - state->grammarStack[state->stackIndex] = UR_TYPE_GRAMMAR_1; - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - case UR_TYPE_GRAMMAR_1: - // remain in UR_TYPE_GRAMMAR_1 - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - default: - return EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC; - } - - return EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC; -}*/ - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiDecodeEndElement(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID) { - int16_t currentID; - switch(currEvent) { - case EXI_EVENT_END_ELEMENT_UNDECLARED: - currentID = state->grammarStack[state->stackIndex]; - if (currentID < 0) { - /* runtime grammars do have IDs smaller than 0 */ - /* TODO learn EE event */ - return -1; - } - /* Note: no break statement */ - default: - /* copy IDs */ - *qnameID = state->elementStack[state->stackIndex]; - /*ee->localPart = state->elementStack[state->stackIndex].localPart; - ee->namespaceURI = state->elementStack[state->stackIndex].namespaceURI;*/ - - return exi__PopStack(state); - } -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - -/*int exiDecodeEndElementUndeclared(bitstream_t* stream, exi_state_t* state, eqname_t* ee) { - int16_t currentID = state->grammarStack[state->stackIndex]; - if (currentID < 0) { - // runtime grammars do have IDs smaller than 0 - // TODO learn EE event - return -1; - } - - return exiDecodeEndElement(stream, state, ee); -}*/ - -int exiDecodeCharacters(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int16_t moveOnID = 0; - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - - switch(currEvent) { - case EXI_EVENT_CHARACTERS: - case EXI_EVENT_CHARACTERS_GENERIC: - switch (state->grammarStack[state->stackIndex]) { - case 483: - /* DATETIME */ - case 668: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_DATETIME, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 221: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 221; /* move on ID */ - break; - case 679: - /* DATETIME */ - case 695: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_TIME, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 42: - /* ENUMERATION */ - case 114: - /* ENUMERATION */ - case 418: - /* ENUMERATION */ - case 469: - /* ENUMERATION */ - case 515: - /* ENUMERATION */ - case 667: - /* ENUMERATION */ - case 119: - /* ENUMERATION */ - case 685: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 4, &val->enumeration); - moveOnID = 5; /* move on ID */ - break; - case 223: - /* BINARY_HEX */ - case 475: - /* BINARY_HEX */ - case 593: - /* BINARY_HEX */ - case 633: - /* BINARY_HEX */ - case 652: - /* BINARY_HEX */ - case 677: - /* BINARY_HEX */ - case 41: - /* BINARY_HEX */ - case 531: - /* BINARY_HEX */ - val->type = EXI_DATATYPE_BINARY_HEX; - errn = decodeBinary(stream, &val->binary); - moveOnID = 5; /* move on ID */ - break; - case 160: - /* STRING */ - case 402: - /* STRING */ - case 400: - /* STRING */ - case 399: - /* STRING */ - case 681: - /* STRING */ - case 401: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; /* move on ID */ - break; - case 225: - /* BOOLEAN */ - case 74: - /* BOOLEAN */ - val->type = EXI_DATATYPE_BOOLEAN; - errn = decodeBoolean(stream, &val->boolean); - moveOnID = 5; /* move on ID */ - break; - case 236: - /* DATETIME */ - case 525: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GDAY, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 367: - /* NBIT_UNSIGNED_INTEGER */ - case 611: - /* NBIT_UNSIGNED_INTEGER */ - case 630: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 5; /* move on ID */ - break; - case 391: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 391; /* move on ID */ - break; - case 227: - /* STRING */ - case 228: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 228; /* move on ID */ - break; - case 220: - /* STRING */ - case 510: - /* STRING */ - case 215: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 220; /* move on ID */ - break; - case 390: - /* STRING */ - case 392: - /* STRING */ - case 644: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 392; /* move on ID */ - break; - case 295: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 295; /* move on ID */ - break; - case 384: - /* NBIT_UNSIGNED_INTEGER */ - case 23: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 3, -3); - moveOnID = 5; /* move on ID */ - break; - case 210: - /* DATETIME */ - case 439: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GMONTH, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 595: - /* FLOAT */ - case 623: - /* FLOAT */ - case 645: - /* FLOAT */ - case 659: - /* FLOAT */ - val->type = EXI_DATATYPE_FLOAT; - errn = decodeFloat(stream, &val->float_me); - moveOnID = 5; /* move on ID */ - break; - case 322: - /* LIST */ - case 344: - /* LIST */ - case 414: - /* LIST */ - case 551: - /* LIST */ - case 698: - /* LIST */ - case 701: - /* LIST */ - val->type = EXI_DATATYPE_LIST; - val->list.type = EXI_DATATYPE_STRING; - errn = decodeUnsignedInteger16(stream, &val->list.len); - moveOnID = 5; /* move on ID */ - break; - case 649: - /* ENUMERATION */ - case 31: - /* ENUMERATION */ - case 680: - /* ENUMERATION */ - case 245: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 1, &val->enumeration); - moveOnID = 5; /* move on ID */ - break; - case 84: - /* ENUMERATION */ - case 214: - /* ENUMERATION */ - case 498: - /* ENUMERATION */ - case 571: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 3, &val->enumeration); - moveOnID = 5; /* move on ID */ - break; - case 286: - /* DECIMAL */ - case 529: - /* DECIMAL */ - val->type = EXI_DATATYPE_DECIMAL; - errn = decodeDecimal(stream, &val->decimal); - moveOnID = 5; /* move on ID */ - break; - case 57: - /* INTEGER */ - case 104: - /* INTEGER */ - case 111: - /* INTEGER */ - case 212: - /* INTEGER */ - case 219: - /* INTEGER */ - case 226: - /* INTEGER */ - case 272: - /* INTEGER */ - case 294: - /* INTEGER */ - case 312: - /* INTEGER */ - case 334: - /* INTEGER */ - case 366: - /* INTEGER */ - case 383: - /* INTEGER */ - case 209: - /* INTEGER */ - case 454: - /* INTEGER */ - case 495: - /* INTEGER */ - case 311: - /* INTEGER */ - case 566: - /* INTEGER */ - case 252: - /* INTEGER */ - case 616: - /* INTEGER */ - case 620: - /* INTEGER */ - case 625: - /* INTEGER */ - case 636: - /* INTEGER */ - case 554: - /* INTEGER */ - case 502: - /* INTEGER */ - case 660: - /* INTEGER */ - case 306: - /* INTEGER */ - case 266: - /* INTEGER */ - case 613: - /* INTEGER */ - case 694: - /* INTEGER */ - case 634: - /* INTEGER */ - val->type = EXI_DATATYPE_INTEGER; - errn = decodeInteger(stream, &val->integer); - moveOnID = 5; /* move on ID */ - break; - case 240: - /* STRING */ - case 153: - /* STRING */ - case 464: - /* STRING */ - case 242: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 242; /* move on ID */ - break; - case 508: - /* DATETIME */ - case 546: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GYEAR, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 374: - /* DATETIME */ - case 499: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GYEARMONTH, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 241: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 241; /* move on ID */ - break; - case 255: - /* DATETIME */ - case 325: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_DATE, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 427: - /* ENUMERATION */ - case 17: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 5, &val->enumeration); - moveOnID = 5; /* move on ID */ - break; - case 200: - /* STRING */ - case 201: - /* STRING */ - case 458: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 201; /* move on ID */ - break; - case 96: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 96; /* move on ID */ - break; - case 283: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 283; /* move on ID */ - break; - case 12: - /* UNSIGNED_INTEGER */ - case 211: - /* UNSIGNED_INTEGER */ - case 229: - /* UNSIGNED_INTEGER */ - case 359: - /* UNSIGNED_INTEGER */ - case 385: - /* UNSIGNED_INTEGER */ - case 468: - /* UNSIGNED_INTEGER */ - case 65: - /* UNSIGNED_INTEGER */ - case 511: - /* UNSIGNED_INTEGER */ - case 552: - /* UNSIGNED_INTEGER */ - case 583: - /* UNSIGNED_INTEGER */ - case 627: - /* UNSIGNED_INTEGER */ - case 648: - /* UNSIGNED_INTEGER */ - case 591: - /* UNSIGNED_INTEGER */ - case 20: - /* UNSIGNED_INTEGER */ - case 545: - /* UNSIGNED_INTEGER */ - case 124: - /* UNSIGNED_INTEGER */ - case 673: - /* UNSIGNED_INTEGER */ - case 690: - /* UNSIGNED_INTEGER */ - case 547: - /* UNSIGNED_INTEGER */ - case 704: - /* UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_UNSIGNED_INTEGER; - errn = decodeUnsignedInteger(stream, &val->integer); - moveOnID = 5; /* move on ID */ - break; - case 308: - /* NBIT_UNSIGNED_INTEGER */ - case 650: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 7, 0); - moveOnID = 5; /* move on ID */ - break; - case 265: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 265; /* move on ID */ - break; - case 77: - /* BINARY_BASE64 */ - case 105: - /* BINARY_BASE64 */ - case 246: - /* BINARY_BASE64 */ - case 268: - /* BINARY_BASE64 */ - case 269: - /* BINARY_BASE64 */ - case 293: - /* BINARY_BASE64 */ - case 368: - /* BINARY_BASE64 */ - case 424: - /* BINARY_BASE64 */ - case 452: - /* BINARY_BASE64 */ - case 534: - /* BINARY_BASE64 */ - case 492: - /* BINARY_BASE64 */ - case 559: - /* BINARY_BASE64 */ - case 562: - /* BINARY_BASE64 */ - case 317: - /* BINARY_BASE64 */ - case 190: - /* BINARY_BASE64 */ - case 631: - /* BINARY_BASE64 */ - case 11: - /* BINARY_BASE64 */ - case 148: - /* BINARY_BASE64 */ - case 205: - /* BINARY_BASE64 */ - case 657: - /* BINARY_BASE64 */ - case 316: - /* BINARY_BASE64 */ - case 275: - /* BINARY_BASE64 */ - case 697: - /* BINARY_BASE64 */ - case 304: - /* BINARY_BASE64 */ - case 706: - /* BINARY_BASE64 */ - val->type = EXI_DATATYPE_BINARY_BASE64; - errn = decodeBinary(stream, &val->binary); - moveOnID = 5; /* move on ID */ - break; - case 264: - /* STRING */ - case 339: - /* STRING */ - case 267: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 267; /* move on ID */ - break; - case 85: - /* ENUMERATION */ - case 120: - /* ENUMERATION */ - case 331: - /* ENUMERATION */ - case 117: - /* ENUMERATION */ - case 365: - /* ENUMERATION */ - case 445: - /* ENUMERATION */ - case 3: - /* ENUMERATION */ - case 575: - /* ENUMERATION */ - case 676: - /* ENUMERATION */ - case 371: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 2, &val->enumeration); - moveOnID = 5; /* move on ID */ - break; - case 270: - /* DATETIME */ - case 666: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GMONTHDAY, &val->datetime); - moveOnID = 5; /* move on ID */ - break; - case 155: - /* STRING */ - case 576: - /* STRING */ - case 296: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 296; /* move on ID */ - break; - case 60: - /* NBIT_UNSIGNED_INTEGER */ - case 389: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 5; /* move on ID */ - break; - case 52: - /* STRING */ - case 53: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 53; /* move on ID */ - break; - case 248: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 248; /* move on ID */ - break; - case 4: - /* STRING */ - case 32: - /* STRING */ - case 51: - /* STRING */ - case 66: - /* STRING */ - case 99: - /* STRING */ - case 100: - /* STRING */ - case 282: - /* STRING */ - case 297: - /* STRING */ - case 300: - /* STRING */ - case 351: - /* STRING */ - case 375: - /* STRING */ - case 380: - /* STRING */ - case 398: - /* STRING */ - case 8: - /* STRING */ - case 403: - /* STRING */ - case 404: - /* STRING */ - case 406: - /* STRING */ - case 409: - /* STRING */ - case 428: - /* STRING */ - case 429: - /* STRING */ - case 449: - /* STRING */ - case 450: - /* STRING */ - case 459: - /* STRING */ - case 460: - /* STRING */ - case 222: - /* STRING */ - case 493: - /* STRING */ - case 357: - /* STRING */ - case 503: - /* STRING */ - case 518: - /* STRING */ - case 519: - /* STRING */ - case 526: - /* STRING */ - case 527: - /* STRING */ - case 538: - /* STRING */ - case 154: - /* STRING */ - case 555: - /* STRING */ - case 315: - /* STRING */ - case 550: - /* STRING */ - case 641: - /* STRING */ - case 653: - /* STRING */ - case 362: - /* STRING */ - case 664: - /* STRING */ - case 665: - /* STRING */ - case 672: - /* STRING */ - case 637: - /* STRING */ - case 678: - /* STRING */ - case 569: - /* STRING */ - case 635: - /* STRING */ - case 686: - /* STRING */ - case 688: - /* STRING */ - case 699: - /* STRING */ - case 159: - /* STRING */ - case 702: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 5; /* move on ID */ - break; - case 247: - /* STRING */ - case 405: - /* STRING */ - case 249: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 249; /* move on ID */ - break; - - } - if (errn) { - /* error */ - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - break; - case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED: - if (state->grammarStack[state->stackIndex] < 0) { - /* runtime grammars do have IDs smaller than 0 */ - return EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH; - } - - /* update current rule --> element content rule (if not already) */ - errn = exi__MoveToElementContentRule(state); - if (errn) { - return errn; - } - - /* read content value as STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - break; - default: - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - break; - } - - return errn; -} - -/*int exiDecodeCharactersGeneric(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - return exiDecodeCharacters(stream, state, val); -}*/ - -/*int exiDecodeCharactersGenericUndeclared(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int errn = 0; - if (state->grammarStack[state->stackIndex] < 0) { - // runtime grammars do have IDs smaller than 0 - // TODO learn CH event - return -1; - } - - // update current rule --> element content rule (if not already) - errn = exiMoveToElementContentRule(state); - if (errn) { - return errn; - } - - // read content value - // STRING - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, &val->string); - return errn; -}*/ - -int exiDecodeAttributeGenericValue(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID, exi_value_t* val) { - int16_t currentID; - - if (_qname.uri.id == 2 && _qname.localName.id == 1 ) { - /* xsi:type --> QName type */ - errn = exiDecodeAttributeXsiType(stream, state, val); - } else { - currentID = state->grammarStack[state->stackIndex]; - if (currentID >= 0) { - /* if schema-informed value type according global attribute */ - switch(*qnameID) { - - default: - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - break; - } - - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - } - - return errn; -} - -int exiDecodeAttribute(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID, exi_value_t* val) { - int16_t moveOnID = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - - switch(currEvent) { - case EXI_EVENT_ATTRIBUTE: - case EXI_EVENT_ATTRIBUTE_INVALID_VALUE: - switch (currentID) { - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 106; /* move on ID */ - break; - } - break; - case 108: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(state->eventCode) { - case 0: - *qnameID = 0; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 247; /* move on ID */ - break; - } - break; - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 417; /* move on ID */ - break; - } - break; - case 133: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 476; /* move on ID */ - break; - } - break; - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 395; /* move on ID */ - break; - } - break; - case 135: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 318; /* move on ID */ - break; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 348; /* move on ID */ - break; - } - break; - case 147: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(state->eventCode) { - case 0: - *qnameID = 0; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 390; /* move on ID */ - break; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 240; /* move on ID */ - break; - } - break; - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 564; /* move on ID */ - break; - } - break; - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 39; /* move on ID */ - break; - } - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - *qnameID = 1; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 399; /* move on ID */ - break; - case 1: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 400; /* move on ID */ - break; - case 2: - *qnameID = 3; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 401; /* move on ID */ - break; - } - break; - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 621; /* move on ID */ - break; - case 1: - *qnameID = 6; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 622; /* move on ID */ - break; - case 2: - *qnameID = 7; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 276; /* move on ID */ - break; - } - break; - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - *qnameID = 6; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 599; /* move on ID */ - break; - case 1: - *qnameID = 7; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 474; /* move on ID */ - break; - } - break; - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 350; /* move on ID */ - break; - } - break; - case 187: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(state->eventCode) { - case 0: - *qnameID = 0; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 339; /* move on ID */ - break; - } - break; - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 577; /* move on ID */ - break; - } - break; - case 189: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 457; /* move on ID */ - break; - case 1: - *qnameID = 5; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 458; /* move on ID */ - break; - } - break; - case 190: - /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 105; /* move on ID */ - break; - } - break; - case 192: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(state->eventCode) { - case 0: - *qnameID = 0; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 215; /* move on ID */ - break; - } - break; - case 202: - /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ - switch(state->eventCode) { - case 0: - *qnameID = 4; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 203; /* move on ID */ - break; - } - break; - case 203: - /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ - switch(state->eventCode) { - case 0: - *qnameID = 8; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 3, &val->enumeration); - } - moveOnID = 647; /* move on ID */ - break; - } - break; - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 400; /* move on ID */ - break; - case 1: - *qnameID = 3; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 401; /* move on ID */ - break; - } - break; - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(state->eventCode) { - case 0: - *qnameID = 3; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 401; /* move on ID */ - break; - } - break; - case 457: - /* StartTag[ATTRIBUTE[STRING](Target)] */ - switch(state->eventCode) { - case 0: - *qnameID = 5; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 458; /* move on ID */ - break; - } - break; - case 533: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(state->eventCode) { - case 0: - *qnameID = 2; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 643; /* move on ID */ - break; - } - break; - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - *qnameID = 7; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 474; /* move on ID */ - break; - } - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - *qnameID = 6; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 622; /* move on ID */ - break; - case 1: - *qnameID = 7; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 276; /* move on ID */ - break; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(state->eventCode) { - case 0: - *qnameID = 7; - if(currEvent == EXI_EVENT_ATTRIBUTE_INVALID_VALUE) { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - moveOnID = 276; /* move on ID */ - break; - } - break; - - } - - if (errn) { - /* error */ - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - break; - case EXI_EVENT_ATTRIBUTE_GENERIC: - case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED: - errn = _exiDecodeQName(stream, state, qnameID, &_qname); - if (errn) { - return errn; - } - /* learn attribute ? */ - errn = exi__LearnAttribute(state, *qnameID, _qname.uri.id, _qname.localName.id); - if (errn) { - return errn; - } - /* decode attribute value */ - errn = exiDecodeAttributeGenericValue(stream, state, qnameID, val); - break; - default: - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - break; - } - - return errn; -} - - - -/*int exiDecodeAttributeGenericUndeclared(bitstream_t* stream, exi_state_t* state, - qname_t* at, exi_value_t* val) { - int errn; - int16_t currentID = state->grammarStack[state->stackIndex]; - - if (currentID < 0) { - // TODO runtime elements - return -1; - } else { - // decode qname - errn = _exiDecodeQName(stream, &(state->nameTablePrepopulated), &(state->nameTableRuntime), at); - if (errn) { - return errn; - } - } - - - if (currentID < 0) { - // TODO learn AT event - return -1; - } - - decode attribute value - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, &val->string); - - // we do not move forward in grammars - - return errn; -}*/ - - - -int exiDecodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - errn = decodeBoolean(stream, &val->boolean); - if (errn >= 0 && val->boolean) { - /* handle xsi:nil == true */ - errn = exi__HandleXsiNilTrue(state); - } - return errn; -} - - -int exiDecodeAttributeXsiType(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - /*uint32_t uriID; - uint32_t localNameID; */ - /* uri */ - errn =_exiDecodeNamespaceUri(stream, state, &_qname.uri); /* NULL, &uriID); */ - if (errn) { - return errn; - } - /* localName */ - errn = _exiDecodeLocalName(stream, state, _qname.uri.id, &_qname.localName); /* NULL, &localNameID, uriID);*/ - if (errn) { - return errn; - } - - val->type = EXI_DATATYPE_QNAME; - val->eqname.namespaceURI = _qname.uri.id; /* uriID; */ - val->eqname.localPart = _qname.localName.id; /* localNameID; */ - - /* handle xsi type cast */ - errn = exi__HandleXsiType(state, &val->eqname); - - return errn; -} - - - -#endif - diff --git a/src/codec/EXIDecoder.h b/src/codec/EXIDecoder.h deleted file mode 100644 index babadc7..0000000 --- a/src/codec/EXIDecoder.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI__DECODER_H -#define EXI__DECODER_H - -/** -* \file EXIDecoder.h -* \brief EXI Decoder -* -*/ - -#include "EXITypes.h" - -/** - * \brief Initialize EXI decoder - * - * Resets & initializes the EXI decoder. - * - * \param stream Input Stream - * \param state Codec state - * \param runtimeTable Runtime name-tables - * \param stringTable String table - * \return Error-Code <> 0 - * - */ -int exiInitDecoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable); - - -/** - * \brief Reports last decoded qualified name - * - * Note: Qualified name only available for previously unknown qname. Otherwise make use of name table entries. - * - * \param qname Qualified name - * \return Error-Code <> 0 - * - */ -int exiGetLastQName(exi_qname_t** qname); - - -/** - * \brief Decodes next event - * - * Inspects EXI stream and decodes next EXI event. - * - * \param stream Input Stream - * \param state Codec state - * \param nextEvent Next event - * \return Error-Code <> 0 - * - */ -int exiDecodeNextEvent(bitstream_t* stream, - exi_state_t* state, exi_event_t* nextEvent); - - -/** - * \brief Decodes StartDocument (SD) event - * - * \param stream Input Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiDecodeStartDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Decodes EndDocument (ED) event - * - * \param stream Input Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiDecodeEndDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Decodes StartElemnt (SE) event - * - * Note: The first time a qnameID is larger than schema-informed NUMBER_OF_QNAMES it is possible to retrieve the qname by calling GetLastQName(...). - * It is up to the caller to track qnames. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \return Error-Code <> 0 - * - */ -int -exiDecodeStartElement(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID); - - -/** - * \brief Decodes EndElement (EE) event - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \return Error-Code <> 0 - * - */ -int exiDecodeEndElement(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID); - - -/** - * \brief Decodes Characters (CH) event. - * - * Reports characters value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiDecodeCharacters(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes Attribute (AT) event. - * - * Reports attribute qname and value. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiDecodeAttribute(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID, exi_value_t* val); - - -/** - * \brief Decodes attribute xsi:nil - * - * Reports value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiDecodeAttributeXsiNil(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes attribute xsi:type - * - * Reports value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiDecodeAttributeXsiType(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes attribute/characters list value - * - * List values are special and are processed one by one. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param val List value - * \param lt List type - * \return Error-Code <> 0 - * - */ -int exiDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val, exi_list_t lt); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/EXIEncoder.c b/src/codec/EXIEncoder.c deleted file mode 100644 index df48752..0000000 --- a/src/codec/EXIEncoder.c +++ /dev/null @@ -1,8463 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__ENCODER_C -#define EXI__ENCODER_C - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitOutputStream.h" -#include "EncoderChannel.h" - -#include "StringTable.h" -#include "NameTableEntries.h" -#include "MethodsBag.h" - -#include "EXIOptions.h" - -#include "EXICoder.h" -#include "EXIHeaderEncoder.h" -#include "ErrorCodes.h" -#include "QNames.h" -#include "QNameDefines.h" - - - - -/* local variables */ -static uint32_t bits; -static int errn; - -/* ==================================== */ - -static int _encodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) { - int errn; - uint32_t val; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - val = iv->val.int8 - lowerBound; - break; - case EXI_UNSIGNED_INTEGER_16: - val = iv->val.int16 - lowerBound; - break; - case EXI_UNSIGNED_INTEGER_32: - val = (uint32_t)(iv->val.int32 - lowerBound); - break; - case EXI_UNSIGNED_INTEGER_64: - val = (uint32_t)(iv->val.int64 - lowerBound); - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - val = iv->val.uint8 - lowerBound; - break; - case EXI_INTEGER_16: - val = iv->val.uint16 - lowerBound; - break; - case EXI_INTEGER_32: - val = iv->val.uint32 - lowerBound; - break; - case EXI_INTEGER_64: - val = (uint32_t)(iv->val.uint64 - lowerBound); - break; - default: - return EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; - break; - } - - errn = encodeNBitUnsignedInteger(stream, nbits, val); - return errn; -} - - - -static int _exiValueToString(exi_value_t* val) { - if (val->type == EXI_DATATYPE_STRING) { - return 0; - } else { - /* TODO convert typed value to string */ - return EXI_ERROR_CONVERSION_TYPE_TO_STRING; - } -} - - - -static int _exiEncodeEventCode2(bitstream_t* stream, exi_state_t* state, exi_event_t event2) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -static int _exiEncodeNamespaceUriHit(bitstream_t* stream, exi_state_t* state, uint16_t uriID) { - int errn; - uint16_t uriCodingLength; - uint16_t uriSize; - - errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize); - if (errn) { - return errn; - } - /* URI Entries + 1 */ - errn = exiGetCodingLength(uriSize + 1, &uriCodingLength); - if (errn) { - return errn; - } - - /* uri string value found */ - /* ==> value(i+1) is encoded as n-bit unsigned integer */ - errn = encodeNBitUnsignedInteger(stream, uriCodingLength, uriID+1); - - return errn; -} - - -static int _exiEncodeNamespaceMiss(bitstream_t* stream, exi_state_t* state, - exi_string_ucs_t* uri, uint16_t* uriID) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - - -static int _exiEncodeLocalNameHit(bitstream_t* stream, exi_state_t* state, - uint16_t uriID, uint16_t localNameID) { - int errn; - uint16_t localNameSize; - uint16_t localNameCodingLength; - - /* string value found in local partition */ - /* ==> string value is represented as zero (0) encoded as an */ - errn = encodeUnsignedInteger32(stream, 0 ); - if (errn < 0) { - return errn; - } - /* Unsigned Integer followed by an the compact identifier of the */ - /* string value as an n-bit unsigned integer n is log2 m and m is */ - /* the number of entries in the string table partition */ - errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); - if (errn < 0) { - return errn; - } - errn = exiGetCodingLength(localNameSize, &localNameCodingLength); - if (errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, localNameCodingLength, localNameID); - return errn; - -} - - -static int _exiEncodeLocalNameMiss(bitstream_t* stream, exi_state_t* state, - exi_string_ucs_t* localName, uint16_t uriID, uint16_t* localNameID) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -static int _encodeAttributeXsiTypeContent(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - - /* encode qname */ - errn = _exiEncodeNamespaceUriHit(stream, state, val->eqname.namespaceURI); - if (errn < 0) { - return errn; - } - errn = _exiEncodeLocalNameHit(stream, state, val->eqname.namespaceURI, val->eqname.localPart); - if (errn < 0) { - return errn; - } - - /* handle xsi type cast */ - errn = exi__HandleXsiType(state, &val->eqname); - - return errn; -} - - -static int _exiEncodeStartElement(bitstream_t* stream, uint16_t nbits, - uint32_t val, exi_state_t* state, uint16_t qnameID, uint16_t stackId, - uint16_t newState) { - /* event-code */ - int errn = encodeNBitUnsignedInteger(stream, nbits, val); - if (errn) { - return errn; - } - /* move on */ - state->grammarStack[state->stackIndex] = stackId; - /* push element on stack */ - return exi__PushStack(state, newState, qnameID); -} - - -static int _exiEncodeEndElementUndeclared(bitstream_t* stream, exi_state_t* state) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - -static int _encode2ndLevelAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiEncodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) { - - switch(lt.type) { - case EXI_DATATYPE_BINARY_BASE64: - case EXI_DATATYPE_BINARY_HEX: - errn = encodeBinary(stream, &val->binary); - break; - case EXI_DATATYPE_BOOLEAN: - errn = encodeBoolean(stream, val->boolean); - break; - case EXI_DATATYPE_BOOLEAN_FACET: - errn = encodeNBitUnsignedInteger(stream, 2, val->boolean ? 2 : 0); - break; - case EXI_DATATYPE_DECIMAL: - errn = encodeDecimal(stream, &val->decimal); - break; - case EXI_DATATYPE_FLOAT: - errn = encodeFloat(stream, &val->float_me); - break; - case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER: - errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE; - break; - case EXI_DATATYPE_UNSIGNED_INTEGER: - errn = encodeUnsignedInteger(stream, &val->integer); - break; - case EXI_DATATYPE_INTEGER: - errn = encodeInteger(stream, &val->integer); - break; - case EXI_DATATYPE_DATETIME: - errn = encodeDateTime(stream, &val->datetime); - break; - case EXI_DATATYPE_STRING: - errn = encodeStringValue(stream, state, qnameID, &val->str); - break; - default: - return EXI_UNSUPPORTED_LIST_VALUE_TYPE; - } - - return errn; -} - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiEncodeStartDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 126; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 126; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 425 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 426; - return 0; - } - - return EXI_ERROR_UNEXPECTED_START_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiEncodeEndDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 127) { - encodeFinish(stream); - return 0; - } - if ( state->grammarStack[state->stackIndex] == 426) { - encodeFinish(stream); - return 0; - } - - return EXI_ERROR_UNEXPECTED_END_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -int exiInitEncoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable) { -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - int i; -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - /* init grammar state */ - state->stackIndex = 0; - state->grammarStack[0] = DOCUMENT; - /* name tables */ - state->nameTablePrepopulated = exiNameTablePrepopulated; - state->nameTableRuntime = runtimeTable; - /* next qname ID */ - state->nextQNameID = EXI_NUMBER_OF_PREPOPULATED_QNAMES; - /* string tables */ - state->stringTable = stringTable; - state->stringTable.numberOfGlobalStrings = 0; -#if EXI_VALUE_PARTITION_CAPACITY != 0 -#if EXI_VALUE_MAX_LENGTH != 0 - for(i=0; i<(state->stringTable.sizeLocalStrings); i++) { - state->stringTable.numberOfLocalStrings[i] = 0; - } -#endif /* EXI_VALUE_MAX_LENGTH != 0 */ -#endif /* EXI_VALUE_PARTITION_CAPACITY != 0 */ - - /* runtime grammars */ - state->numberOfRuntimeGrammars = 0; - - /* Avoid warning: Unused declaration of variable 'name' */ - bits = 0; - - /* encode header */ - return writeEXIHeader(stream); -} - - -int exiEncodeStartElement(bitstream_t* stream, exi_state_t* state, uint16_t qnameID) { - uint16_t namespaceUriID, localNameID; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - - switch (currentID) { - case 1: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - switch(qnameID) { - case 404: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}costKind ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 2, 3); - break; - } - break; - case 2: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount)] */ - switch(qnameID) { - case 398: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}amount ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 21, 627); - break; - } - break; - case 6: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge)] */ - switch(qnameID) { - case 189: - /* SE( {urn:iso:15118:2:2010:MsgBody}GenChallenge ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 7, 8); - break; - } - break; - case 7: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow)] */ - switch(qnameID) { - case 170: - /* SE( {urn:iso:15118:2:2010:MsgBody}DateTimeNow ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 232, 334); - break; - } - break; - case 9: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(qnameID) { - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 10, 11); - break; - } - break; - case 10: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ - switch(qnameID) { - case 392: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SubCertificates ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 421, 110); - break; - } - break; - case 15: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 16, 17); - break; - } - break; - case 18: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ - switch(qnameID) { - case 407: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}duration ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 19, 20); - break; - } - break; - case 21: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ - switch(qnameID) { - case 399: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 22, 23); - break; - } - break; - case 24: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(qnameID) { - case 213: - /* SE( {urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 25, 26); - break; - case 212: - /* SE( {urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 27, 26); - break; - case 188: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 28, 26); - break; - } - break; - case 25: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(qnameID) { - case 212: - /* SE( {urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 27, 26); - break; - case 188: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 28, 26); - break; - } - break; - case 26: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - switch(qnameID) { - case 336: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Multiplier ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 544, 23); - break; - } - break; - case 27: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(qnameID) { - case 188: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 28, 26); - break; - } - break; - case 29: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(qnameID) { - case 185: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEProcessing ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 30, 31); - break; - } - break; - case 33: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - switch(qnameID) { - case 151: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingProfile ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 34, 35); - break; - case 270: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 36, 37); - break; - case 294: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 36, 38); - break; - } - break; - case 34: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - switch(qnameID) { - case 270: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 36, 37); - break; - case 294: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 36, 38); - break; - } - break; - case 35: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(qnameID) { - case 366: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 342, 209); - break; - } - break; - case 37: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(qnameID) { - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 580, 145); - break; - } - break; - case 39: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(qnameID) { - case 236: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 40, 41); - break; - } - break; - case 40: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - switch(qnameID) { - case 216: - /* SE( {urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 353, 209); - break; - case 191: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeterInfo ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 354, 355); - break; - } - break; - case 43: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule)] */ - switch(qnameID) { - case 341: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 44, 45); - break; - } - break; - case 44: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ - switch(qnameID) { - case 370: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariff ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 532, 533); - break; - } - break; - case 45: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - switch(qnameID) { - case 344: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 208, 209); - break; - } - break; - case 47: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - switch(qnameID) { - case 253: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 48, 49); - break; - } - break; - case 48: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage)] */ - switch(qnameID) { - case 306: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 661, 26); - break; - } - break; - case 49: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - switch(qnameID) { - case 355: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 541, 74); - break; - } - break; - case 54: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 55, 17); - break; - } - break; - case 55: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(qnameID) { - case 185: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEProcessing ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 341, 31); - break; - } - break; - case 58: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - switch(qnameID) { - case 339: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 59, 60); - break; - } - break; - case 59: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry)] */ - switch(qnameID) { - case 372: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 438, 175); - break; - } - break; - case 61: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - switch(qnameID) { - case 315: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 62, 26); - break; - } - break; - case 62: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ - switch(qnameID) { - case 303: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 539, 26); - break; - } - break; - case 63: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(qnameID) { - case 228: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 64, 65); - break; - } - break; - case 67: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage)] */ - switch(qnameID) { - case 188: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 68, 26); - break; - } - break; - case 68: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - switch(qnameID) { - case 187: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 372, 26); - break; - } - break; - case 69: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - switch(qnameID) { - case 441: - /* SE( {urn:iso:15118:2:2010:MsgDef}Header ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 70, 71); - break; - } - break; - case 70: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */ - switch(qnameID) { - case 437: - /* SE( {urn:iso:15118:2:2010:MsgDef}Body ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 289, 290); - break; - } - break; - case 71: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - switch(qnameID) { - case 445: - /* SE( {urn:iso:15118:2:2010:MsgHeader}SessionID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 507, 41); - break; - } - break; - case 72: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - switch(qnameID) { - case 259: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 73, 74); - break; - } - break; - case 75: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(qnameID) { - case 211: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReceiptRequired ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 76, 74); - break; - } - break; - case 76: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - switch(qnameID) { - case 131: - /* SE( {urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 560, 49); - break; - } - break; - case 78: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 79, 17); - break; - } - break; - case 80: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(qnameID) { - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 81, 11); - break; - } - break; - case 81: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ - switch(qnameID) { - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 81, 11); - break; - } - break; - case 86: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 87, 17); - break; - } - break; - case 87: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(qnameID) { - case 167: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 412, 115); - break; - } - break; - case 88: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(qnameID) { - case 184: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 89, 26); - break; - } - break; - case 90: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(qnameID) { - case 113: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 91, 92); - break; - } - break; - case 91: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue)] */ - switch(qnameID) { - case 111: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 509, 190); - break; - } - break; - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(qnameID) { - case 61: - /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 107, 108); - break; - } - break; - case 93: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(qnameID) { - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 94, 95); - break; - } - break; - case 94: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - switch(qnameID) { - case 328: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FreeService ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 505, 74); - break; - } - break; - case 95: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(qnameID) { - case 383: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 434, 65); - break; - } - break; - case 97: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - switch(qnameID) { - case 298: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVReady ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 98, 74); - break; - } - break; - case 98: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(qnameID) { - case 282: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 197, 74); - break; - case 296: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 112, 74); - break; - case 287: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 113, 114); - break; - } - break; - case 101: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - switch(qnameID) { - case 348: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSet ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 102, 103); - break; - } - break; - case 102: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ - switch(qnameID) { - case 348: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSet ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 102, 103); - break; - } - break; - case 103: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - switch(qnameID) { - case 349: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 305, 306); - break; - } - break; - case 106: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(qnameID) { - case 61: - /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 107, 108); - break; - } - break; - case 107: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod)] */ - switch(qnameID) { - case 104: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 517, 187); - break; - } - break; - case 110: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(qnameID) { - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 81, 11); - break; - } - break; - case 112: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(qnameID) { - case 287: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 113, 114); - break; - } - break; - case 113: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC)] */ - switch(qnameID) { - case 297: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 307, 308); - break; - } - break; - case 115: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(qnameID) { - case 304: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 116, 117); - break; - case 318: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 118, 119); - break; - } - break; - case 116: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(qnameID) { - case 318: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 118, 119); - break; - } - break; - case 118: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - switch(qnameID) { - case 337: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 478, 12); - break; - } - break; - case 122: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - switch(qnameID) { - case 261: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 123, 124); - break; - } - break; - case 123: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */ - switch(qnameID) { - case 260: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 224, 613); - break; - } - break; - case 126: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT_GENERIC] */ - switch(qnameID) { - case 249: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 0, state, qnameID, 127, 128); - break; - case 251: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 1, state, qnameID, 127, 47); - break; - case 253: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 7, 2, state, qnameID, 127, 49); - break; - case 439: - /* SE( {urn:iso:15118:2:2010:MsgDef}BodyElement ) */ - errn = _exiEncodeStartElement(stream, 7, 3, state, qnameID, 127, 129); - break; - case 133: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckReq ) */ - errn = _exiEncodeStartElement(stream, 7, 4, state, qnameID, 127, 130); - break; - case 135: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckRes ) */ - errn = _exiEncodeStartElement(stream, 7, 5, state, qnameID, 127, 131); - break; - case 61: - /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */ - errn = _exiEncodeStartElement(stream, 7, 6, state, qnameID, 127, 108); - break; - case 137: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq ) */ - errn = _exiEncodeStartElement(stream, 7, 7, state, qnameID, 127, 132); - break; - case 139: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes ) */ - errn = _exiEncodeStartElement(stream, 7, 8, state, qnameID, 127, 133); - break; - case 141: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq ) */ - errn = _exiEncodeStartElement(stream, 7, 9, state, qnameID, 127, 134); - break; - case 143: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes ) */ - errn = _exiEncodeStartElement(stream, 7, 10, state, qnameID, 127, 135); - break; - case 145: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 7, 11, state, qnameID, 127, 136); - break; - case 147: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 7, 12, state, qnameID, 127, 54); - break; - case 152: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusReq ) */ - errn = _exiEncodeStartElement(stream, 7, 13, state, qnameID, 127, 137); - break; - case 154: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusRes ) */ - errn = _exiEncodeStartElement(stream, 7, 14, state, qnameID, 127, 138); - break; - case 156: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq ) */ - errn = _exiEncodeStartElement(stream, 7, 15, state, qnameID, 127, 139); - break; - case 158: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes ) */ - errn = _exiEncodeStartElement(stream, 7, 16, state, qnameID, 127, 140); - break; - case 163: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandReq ) */ - errn = _exiEncodeStartElement(stream, 7, 17, state, qnameID, 127, 141); - break; - case 165: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandRes ) */ - errn = _exiEncodeStartElement(stream, 7, 18, state, qnameID, 127, 142); - break; - case 267: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 19, state, qnameID, 127, 143); - break; - case 270: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 20, state, qnameID, 127, 37); - break; - case 272: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 21, state, qnameID, 127, 144); - break; - case 274: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 7, 22, state, qnameID, 127, 115); - break; - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 7, 23, state, qnameID, 127, 145); - break; - case 64: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 7, 24, state, qnameID, 127, 146); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 7, 25, state, qnameID, 127, 147); - break; - case 68: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */ - errn = _exiEncodeStartElement(stream, 7, 26, state, qnameID, 127, 148); - break; - case 283: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 27, state, qnameID, 127, 149); - break; - case 294: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 28, state, qnameID, 127, 38); - break; - case 300: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 7, 29, state, qnameID, 127, 56); - break; - case 317: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 7, 30, state, qnameID, 127, 150); - break; - case 321: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVStatus ) */ - errn = _exiEncodeStartElement(stream, 7, 31, state, qnameID, 127, 151); - break; - case 324: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Entry ) */ - errn = _exiEncodeStartElement(stream, 7, 32, state, qnameID, 127, 152); - break; - case 75: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */ - errn = _exiEncodeStartElement(stream, 7, 33, state, qnameID, 127, 153); - break; - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 7, 34, state, qnameID, 127, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 7, 35, state, qnameID, 127, 155); - break; - case 80: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */ - errn = _exiEncodeStartElement(stream, 7, 36, state, qnameID, 127, 156); - break; - case 192: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq ) */ - errn = _exiEncodeStartElement(stream, 7, 37, state, qnameID, 127, 157); - break; - case 194: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes ) */ - errn = _exiEncodeStartElement(stream, 7, 38, state, qnameID, 127, 158); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 7, 39, state, qnameID, 127, 159); - break; - case 84: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */ - errn = _exiEncodeStartElement(stream, 7, 40, state, qnameID, 127, 160); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 7, 41, state, qnameID, 127, 161); - break; - case 342: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry ) */ - errn = _exiEncodeStartElement(stream, 7, 42, state, qnameID, 127, 162); - break; - case 197: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq ) */ - errn = _exiEncodeStartElement(stream, 7, 43, state, qnameID, 127, 163); - break; - case 199: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes ) */ - errn = _exiEncodeStartElement(stream, 7, 44, state, qnameID, 127, 164); - break; - case 202: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq ) */ - errn = _exiEncodeStartElement(stream, 7, 45, state, qnameID, 127, 165); - break; - case 204: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes ) */ - errn = _exiEncodeStartElement(stream, 7, 46, state, qnameID, 127, 166); - break; - case 206: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeReq ) */ - errn = _exiEncodeStartElement(stream, 7, 47, state, qnameID, 127, 167); - break; - case 208: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeRes ) */ - errn = _exiEncodeStartElement(stream, 7, 48, state, qnameID, 127, 86); - break; - case 93: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 7, 49, state, qnameID, 127, 168); - break; - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 7, 50, state, qnameID, 127, 169); - break; - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 7, 51, state, qnameID, 127, 170); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 7, 52, state, qnameID, 127, 171); - break; - case 363: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList ) */ - errn = _exiEncodeStartElement(stream, 7, 53, state, qnameID, 127, 172); - break; - case 368: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SASchedules ) */ - errn = _exiEncodeStartElement(stream, 7, 54, state, qnameID, 127, 173); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 7, 55, state, qnameID, 127, 174); - break; - case 372: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry ) */ - errn = _exiEncodeStartElement(stream, 7, 56, state, qnameID, 127, 175); - break; - case 381: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge ) */ - errn = _exiEncodeStartElement(stream, 7, 57, state, qnameID, 127, 176); - break; - case 220: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailReq ) */ - errn = _exiEncodeStartElement(stream, 7, 58, state, qnameID, 127, 177); - break; - case 222: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailRes ) */ - errn = _exiEncodeStartElement(stream, 7, 59, state, qnameID, 127, 178); - break; - case 224: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 7, 60, state, qnameID, 127, 179); - break; - case 226: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 7, 61, state, qnameID, 127, 180); - break; - case 231: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq ) */ - errn = _exiEncodeStartElement(stream, 7, 62, state, qnameID, 127, 181); - break; - case 233: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes ) */ - errn = _exiEncodeStartElement(stream, 7, 63, state, qnameID, 127, 182); - break; - case 237: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupReq ) */ - errn = _exiEncodeStartElement(stream, 7, 64, state, qnameID, 127, 183); - break; - case 239: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupRes ) */ - errn = _exiEncodeStartElement(stream, 7, 65, state, qnameID, 127, 184); - break; - case 241: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopReq ) */ - errn = _exiEncodeStartElement(stream, 7, 66, state, qnameID, 127, 185); - break; - case 242: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopRes ) */ - errn = _exiEncodeStartElement(stream, 7, 67, state, qnameID, 127, 78); - break; - case 103: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */ - errn = _exiEncodeStartElement(stream, 7, 68, state, qnameID, 127, 186); - break; - case 104: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */ - errn = _exiEncodeStartElement(stream, 7, 69, state, qnameID, 127, 187); - break; - case 106: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */ - errn = _exiEncodeStartElement(stream, 7, 70, state, qnameID, 127, 188); - break; - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 7, 71, state, qnameID, 127, 189); - break; - case 111: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */ - errn = _exiEncodeStartElement(stream, 7, 72, state, qnameID, 127, 190); - break; - case 113: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */ - errn = _exiEncodeStartElement(stream, 7, 73, state, qnameID, 127, 92); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 7, 74, state, qnameID, 127, 191); - break; - case 115: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */ - errn = _exiEncodeStartElement(stream, 7, 75, state, qnameID, 127, 192); - break; - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 7, 76, state, qnameID, 127, 193); - break; - case 442: - /* SE( {urn:iso:15118:2:2010:MsgDef}V2G_Message ) */ - errn = _exiEncodeStartElement(stream, 7, 77, state, qnameID, 127, 69); - break; - case 245: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq ) */ - errn = _exiEncodeStartElement(stream, 7, 78, state, qnameID, 127, 194); - break; - case 247: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes ) */ - errn = _exiEncodeStartElement(stream, 7, 79, state, qnameID, 127, 195); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 7, 80, state, qnameID, 127, 196); - break; - } - break; - case 128: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - switch(qnameID) { - case 279: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DepartureTime ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 497, 545); - break; - } - break; - case 130: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 363, 145); - break; - } - break; - case 131: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 281, 17); - break; - } - break; - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(qnameID) { - case 196: - /* SE( {urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 199, 11); - break; - } - break; - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 396, 9); - break; - } - break; - case 136: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - switch(qnameID) { - case 175: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 213, 214); - break; - } - break; - case 138: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 260, 17); - break; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(qnameID) { - case 189: - /* SE( {urn:iso:15118:2:2010:MsgBody}GenChallenge ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 349, 8); - break; - } - break; - case 140: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 379, 17); - break; - } - break; - case 141: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 239, 145); - break; - } - break; - case 142: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 271, 17); - break; - } - break; - case 143: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(qnameID) { - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 345, 145); - break; - } - break; - case 144: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - switch(qnameID) { - case 274: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 542, 115); - break; - } - break; - case 145: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady)] */ - switch(qnameID) { - case 298: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVReady ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 98, 74); - break; - } - break; - case 146: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(qnameID) { - case 86: - /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 273, 275); - break; - case 71: - /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 481, 275); - break; - case 130: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 327, 275); - break; - } - break; - case 152: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 444, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 444, 191); - break; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 241, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 241, 155); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 241, 171); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 241, 196); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 241, 161); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 241, 174); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 4, 7, state, qnameID, 241, 159); - break; - } - break; - case 155: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 64: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 295, 146); - break; - case 93: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 295, 168); - break; - } - break; - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 565, 169); - break; - } - break; - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(qnameID) { - case 236: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionID ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 40, 41); - break; - } - break; - case 158: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 419, 17); - break; - } - break; - case 161: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - switch(qnameID) { - case 89: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 490, 246); - break; - case 90: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 491, 492); - break; - } - break; - case 162: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 470, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 470, 191); - break; - } - break; - case 163: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(qnameID) { - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 356, 357); - break; - } - break; - case 164: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 6, 17); - break; - } - break; - case 165: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - switch(qnameID) { - case 210: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReadyToChargeState ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 33, 74); - break; - } - break; - case 166: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 463, 17); - break; - } - break; - case 167: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 67, 145); - break; - } - break; - case 168: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - switch(qnameID) { - case 83: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 570, 275); - break; - } - break; - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 277, 193); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 278, 147); - break; - } - break; - case 170: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - switch(qnameID) { - case 430: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}start ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 18, 547); - break; - } - break; - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 82, 193); - break; - } - break; - case 172: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - switch(qnameID) { - case 365: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 320, 321); - break; - } - break; - case 174: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - switch(qnameID) { - case 101: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 204, 205); - break; - } - break; - case 175: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 336, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 336, 191); - break; - } - break; - case 176: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(qnameID) { - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 309, 95); - break; - } - break; - case 177: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(qnameID) { - case 228: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 64, 65); - break; - } - break; - case 178: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 217, 17); - break; - } - break; - case 179: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(qnameID) { - case 235: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceScope ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 572, 518); - break; - case 219: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 573, 85); - break; - } - break; - case 180: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 628, 17); - break; - } - break; - case 181: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - switch(qnameID) { - case 217: - /* SE( {urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 254, 245); - break; - } - break; - case 182: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 16, 17); - break; - } - break; - case 183: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - switch(qnameID) { - case 171: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVCCID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 629, 223); - break; - } - break; - case 184: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 238, 17); - break; - } - break; - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(qnameID) { - case 113: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 91, 92); - break; - } - break; - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(qnameID) { - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 377, 189); - break; - } - break; - case 193: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - switch(qnameID) { - case 115: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 431, 192); - break; - } - break; - case 194: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 231, 145); - break; - } - break; - case 195: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 521, 17); - break; - } - break; - case 196: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - switch(qnameID) { - case 124: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 313, 314); - break; - case 126: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 313, 77); - break; - case 128: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 313, 315); - break; - case 120: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 313, 316); - break; - case 119: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 313, 317); - break; - } - break; - case 197: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode)] */ - switch(qnameID) { - case 296: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 112, 74); - break; - case 287: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 113, 114); - break; - } - break; - case 198: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(qnameID) { - case 196: - /* SE( {urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 199, 11); - break; - } - break; - case 199: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - switch(qnameID) { - case 190: - /* SE( {urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 386, 360); - break; - } - break; - case 204: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(qnameID) { - case 101: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 204, 205); - break; - } - break; - case 206: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ - switch(qnameID) { - case 101: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 204, 205); - break; - } - break; - case 207: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID)] */ - switch(qnameID) { - case 344: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 208, 209); - break; - } - break; - case 208: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry)] */ - switch(qnameID) { - case 342: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 448, 162); - break; - } - break; - case 213: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter)] */ - switch(qnameID) { - case 249: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 670, 128); - break; - case 267: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 670, 143); - break; - case 283: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 670, 149); - break; - } - break; - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 129: - /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 221, 222); - break; - } - break; - case 216: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 217, 17); - break; - } - break; - case 217: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID)] */ - switch(qnameID) { - case 228: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 288, 65); - break; - } - break; - case 218: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ - switch(qnameID) { - case 265: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Cost ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 218, 1); - break; - } - break; - case 220: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 129: - /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 221, 222); - break; - } - break; - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 129: - /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 221, 222); - break; - } - break; - case 230: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 231, 145); - break; - } - break; - case 233: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType)] */ - switch(qnameID) { - case 175: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 213, 214); - break; - } - break; - case 234: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved)] */ - switch(qnameID) { - case 182: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 235, 74); - break; - } - break; - case 235: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(qnameID) { - case 181: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 605, 26); - break; - case 179: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 606, 26); - break; - case 180: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 516, 26); - break; - } - break; - case 237: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 238, 17); - break; - } - break; - case 238: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - switch(qnameID) { - case 177: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 530, 531); - break; - } - break; - case 239: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent)] */ - switch(qnameID) { - case 187: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 484, 26); - break; - } - break; - case 240: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 241, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 241, 155); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 241, 171); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 241, 196); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 241, 161); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 241, 174); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 241, 159); - break; - } - break; - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 241, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 241, 155); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 241, 171); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 241, 196); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 241, 161); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 241, 174); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 241, 159); - break; - } - break; - case 242: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 241, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 241, 155); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 241, 171); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 241, 196); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 241, 161); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 241, 174); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 241, 159); - break; - } - break; - case 243: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate)] */ - switch(qnameID) { - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 10, 11); - break; - } - break; - case 244: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ - switch(qnameID) { - case 352: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PaymentOption ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 244, 245); - break; - } - break; - case 250: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(qnameID) { - case 394: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TMeter ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 251, 252); - break; - } - break; - case 253: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - switch(qnameID) { - case 352: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PaymentOption ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 244, 245); - break; - } - break; - case 254: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList)] */ - switch(qnameID) { - case 218: - /* SE( {urn:iso:15118:2:2010:MsgBody}SelectedServiceList ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 494, 522); - break; - } - break; - case 256: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 82, 193); - break; - } - break; - case 257: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ - switch(qnameID) { - case 229: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceList ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 258, 259); - break; - } - break; - case 259: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - switch(qnameID) { - case 379: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Service ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 337, 338); - break; - } - break; - case 260: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */ - switch(qnameID) { - case 177: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 461, 531); - break; - } - break; - case 262: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(qnameID) { - case 184: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 263, 26); - break; - } - break; - case 263: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent)] */ - switch(qnameID) { - case 183: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 548, 26); - break; - } - break; - case 264: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 72: - /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 265, 266); - break; - } - break; - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 72: - /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 265, 266); - break; - } - break; - case 271: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(qnameID) { - case 167: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 262, 115); - break; - } - break; - case 273: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q)] */ - switch(qnameID) { - case 92: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 274, 275); - break; - } - break; - case 274: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(qnameID) { - case 71: - /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 481, 275); - break; - case 130: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 327, 275); - break; - } - break; - case 276: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 277, 193); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 278, 147); - break; - } - break; - case 277: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 278, 147); - break; - } - break; - case 278: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue)] */ - switch(qnameID) { - case 68: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 601, 148); - break; - } - break; - case 280: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter)] */ - switch(qnameID) { - case 91: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 125, 275); - break; - } - break; - case 281: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(qnameID) { - case 167: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 29, 115); - break; - } - break; - case 284: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 285, 17); - break; - } - break; - case 285: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 364, 9); - break; - } - break; - case 287: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus)] */ - switch(qnameID) { - case 253: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 48, 49); - break; - } - break; - case 288: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ - switch(qnameID) { - case 230: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceParameterList ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 558, 101); - break; - } - break; - case 290: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - switch(qnameID) { - case 439: - /* SE( {urn:iso:15118:2:2010:MsgDef}BodyElement ) */ - errn = _exiEncodeStartElement(stream, 6, 0, state, qnameID, 302, 129); - break; - case 133: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckReq ) */ - errn = _exiEncodeStartElement(stream, 6, 1, state, qnameID, 302, 130); - break; - case 135: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckRes ) */ - errn = _exiEncodeStartElement(stream, 6, 2, state, qnameID, 302, 131); - break; - case 137: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq ) */ - errn = _exiEncodeStartElement(stream, 6, 3, state, qnameID, 302, 132); - break; - case 139: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes ) */ - errn = _exiEncodeStartElement(stream, 6, 4, state, qnameID, 302, 133); - break; - case 141: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq ) */ - errn = _exiEncodeStartElement(stream, 6, 5, state, qnameID, 302, 134); - break; - case 143: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes ) */ - errn = _exiEncodeStartElement(stream, 6, 6, state, qnameID, 302, 135); - break; - case 145: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 7, state, qnameID, 302, 136); - break; - case 147: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 8, state, qnameID, 302, 54); - break; - case 152: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusReq ) */ - errn = _exiEncodeStartElement(stream, 6, 9, state, qnameID, 302, 137); - break; - case 154: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusRes ) */ - errn = _exiEncodeStartElement(stream, 6, 10, state, qnameID, 302, 138); - break; - case 156: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq ) */ - errn = _exiEncodeStartElement(stream, 6, 11, state, qnameID, 302, 139); - break; - case 158: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes ) */ - errn = _exiEncodeStartElement(stream, 6, 12, state, qnameID, 302, 140); - break; - case 163: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandReq ) */ - errn = _exiEncodeStartElement(stream, 6, 13, state, qnameID, 302, 141); - break; - case 165: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandRes ) */ - errn = _exiEncodeStartElement(stream, 6, 14, state, qnameID, 302, 142); - break; - case 192: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq ) */ - errn = _exiEncodeStartElement(stream, 6, 15, state, qnameID, 302, 157); - break; - case 194: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes ) */ - errn = _exiEncodeStartElement(stream, 6, 16, state, qnameID, 302, 158); - break; - case 197: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq ) */ - errn = _exiEncodeStartElement(stream, 6, 17, state, qnameID, 302, 163); - break; - case 199: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes ) */ - errn = _exiEncodeStartElement(stream, 6, 18, state, qnameID, 302, 164); - break; - case 202: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 19, state, qnameID, 302, 165); - break; - case 204: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 20, state, qnameID, 302, 166); - break; - case 206: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeReq ) */ - errn = _exiEncodeStartElement(stream, 6, 21, state, qnameID, 302, 167); - break; - case 208: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeRes ) */ - errn = _exiEncodeStartElement(stream, 6, 22, state, qnameID, 302, 86); - break; - case 220: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailReq ) */ - errn = _exiEncodeStartElement(stream, 6, 23, state, qnameID, 302, 177); - break; - case 222: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailRes ) */ - errn = _exiEncodeStartElement(stream, 6, 24, state, qnameID, 302, 178); - break; - case 224: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 25, state, qnameID, 302, 179); - break; - case 226: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 26, state, qnameID, 302, 180); - break; - case 231: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq ) */ - errn = _exiEncodeStartElement(stream, 6, 27, state, qnameID, 302, 181); - break; - case 233: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes ) */ - errn = _exiEncodeStartElement(stream, 6, 28, state, qnameID, 302, 182); - break; - case 237: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupReq ) */ - errn = _exiEncodeStartElement(stream, 6, 29, state, qnameID, 302, 183); - break; - case 239: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupRes ) */ - errn = _exiEncodeStartElement(stream, 6, 30, state, qnameID, 302, 184); - break; - case 241: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopReq ) */ - errn = _exiEncodeStartElement(stream, 6, 31, state, qnameID, 302, 185); - break; - case 242: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopRes ) */ - errn = _exiEncodeStartElement(stream, 6, 32, state, qnameID, 302, 78); - break; - case 245: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq ) */ - errn = _exiEncodeStartElement(stream, 6, 33, state, qnameID, 302, 194); - break; - case 247: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes ) */ - errn = _exiEncodeStartElement(stream, 6, 34, state, qnameID, 302, 195); - break; - } - break; - case 291: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(qnameID) { - case 169: - /* SE( {urn:iso:15118:2:2010:MsgBody}DHParams ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 292, 269); - break; - } - break; - case 292: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(qnameID) { - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 411, 357); - break; - } - break; - case 296: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 64: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 295, 146); - break; - case 93: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 295, 168); - break; - } - break; - case 298: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 299, 17); - break; - } - break; - case 299: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 303, 9); - break; - } - break; - case 301: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - switch(qnameID) { - case 439: - /* SE( {urn:iso:15118:2:2010:MsgDef}BodyElement ) */ - errn = _exiEncodeStartElement(stream, 6, 0, state, qnameID, 302, 129); - break; - case 133: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckReq ) */ - errn = _exiEncodeStartElement(stream, 6, 1, state, qnameID, 302, 130); - break; - case 135: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckRes ) */ - errn = _exiEncodeStartElement(stream, 6, 2, state, qnameID, 302, 131); - break; - case 137: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq ) */ - errn = _exiEncodeStartElement(stream, 6, 3, state, qnameID, 302, 132); - break; - case 139: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes ) */ - errn = _exiEncodeStartElement(stream, 6, 4, state, qnameID, 302, 133); - break; - case 141: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq ) */ - errn = _exiEncodeStartElement(stream, 6, 5, state, qnameID, 302, 134); - break; - case 143: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes ) */ - errn = _exiEncodeStartElement(stream, 6, 6, state, qnameID, 302, 135); - break; - case 145: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 7, state, qnameID, 302, 136); - break; - case 147: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 8, state, qnameID, 302, 54); - break; - case 152: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusReq ) */ - errn = _exiEncodeStartElement(stream, 6, 9, state, qnameID, 302, 137); - break; - case 154: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusRes ) */ - errn = _exiEncodeStartElement(stream, 6, 10, state, qnameID, 302, 138); - break; - case 156: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq ) */ - errn = _exiEncodeStartElement(stream, 6, 11, state, qnameID, 302, 139); - break; - case 158: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes ) */ - errn = _exiEncodeStartElement(stream, 6, 12, state, qnameID, 302, 140); - break; - case 163: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandReq ) */ - errn = _exiEncodeStartElement(stream, 6, 13, state, qnameID, 302, 141); - break; - case 165: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandRes ) */ - errn = _exiEncodeStartElement(stream, 6, 14, state, qnameID, 302, 142); - break; - case 192: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq ) */ - errn = _exiEncodeStartElement(stream, 6, 15, state, qnameID, 302, 157); - break; - case 194: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes ) */ - errn = _exiEncodeStartElement(stream, 6, 16, state, qnameID, 302, 158); - break; - case 197: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq ) */ - errn = _exiEncodeStartElement(stream, 6, 17, state, qnameID, 302, 163); - break; - case 199: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes ) */ - errn = _exiEncodeStartElement(stream, 6, 18, state, qnameID, 302, 164); - break; - case 202: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 19, state, qnameID, 302, 165); - break; - case 204: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 20, state, qnameID, 302, 166); - break; - case 206: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeReq ) */ - errn = _exiEncodeStartElement(stream, 6, 21, state, qnameID, 302, 167); - break; - case 208: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeRes ) */ - errn = _exiEncodeStartElement(stream, 6, 22, state, qnameID, 302, 86); - break; - case 220: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailReq ) */ - errn = _exiEncodeStartElement(stream, 6, 23, state, qnameID, 302, 177); - break; - case 222: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailRes ) */ - errn = _exiEncodeStartElement(stream, 6, 24, state, qnameID, 302, 178); - break; - case 224: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 6, 25, state, qnameID, 302, 179); - break; - case 226: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 6, 26, state, qnameID, 302, 180); - break; - case 231: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq ) */ - errn = _exiEncodeStartElement(stream, 6, 27, state, qnameID, 302, 181); - break; - case 233: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes ) */ - errn = _exiEncodeStartElement(stream, 6, 28, state, qnameID, 302, 182); - break; - case 237: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupReq ) */ - errn = _exiEncodeStartElement(stream, 6, 29, state, qnameID, 302, 183); - break; - case 239: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupRes ) */ - errn = _exiEncodeStartElement(stream, 6, 30, state, qnameID, 302, 184); - break; - case 241: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopReq ) */ - errn = _exiEncodeStartElement(stream, 6, 31, state, qnameID, 302, 185); - break; - case 242: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopRes ) */ - errn = _exiEncodeStartElement(stream, 6, 32, state, qnameID, 302, 78); - break; - case 245: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq ) */ - errn = _exiEncodeStartElement(stream, 6, 33, state, qnameID, 302, 194); - break; - case 247: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes ) */ - errn = _exiEncodeStartElement(stream, 6, 34, state, qnameID, 302, 195); - break; - } - break; - case 303: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - switch(qnameID) { - case 162: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 291, 304); - break; - } - break; - case 305: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter)] */ - switch(qnameID) { - case 347: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Parameter ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 340, 202); - break; - } - break; - case 309: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService)] */ - switch(qnameID) { - case 328: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FreeService ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 430, 74); - break; - } - break; - case 310: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(qnameID) { - case 335: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 250, 311); - break; - case 394: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TMeter ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 251, 252); - break; - } - break; - case 313: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(qnameID) { - case 124: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 313, 314); - break; - case 126: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 313, 77); - break; - case 128: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 313, 315); - break; - case 120: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 313, 316); - break; - case 119: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 313, 317); - break; - } - break; - case 314: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - switch(qnameID) { - case 123: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 568, 569); - break; - } - break; - case 318: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 299, 17); - break; - } - break; - case 319: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple)] */ - switch(qnameID) { - case 365: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 320, 321); - break; - } - break; - case 320: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ - switch(qnameID) { - case 365: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 320, 321); - break; - } - break; - case 321: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(qnameID) { - case 366: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 209); - break; - } - break; - case 323: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(qnameID) { - case 256: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 324, 308); - break; - } - break; - case 326: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - switch(qnameID) { - case 84: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 326, 160); - break; - } - break; - case 327: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - switch(qnameID) { - case 74: - /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 328, 275); - break; - case 102: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 280, 275); - break; - } - break; - case 328: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - switch(qnameID) { - case 102: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 280, 275); - break; - } - break; - case 329: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - switch(qnameID) { - case 326: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FaultCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 330, 331); - break; - } - break; - case 330: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ - switch(qnameID) { - case 327: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FaultMsg ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 420, 550); - break; - } - break; - case 332: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter)] */ - switch(qnameID) { - case 251: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 333, 47); - break; - case 272: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 333, 144); - break; - case 300: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 333, 56); - break; - } - break; - case 335: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 336, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 336, 191); - break; - } - break; - case 336: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel)] */ - switch(qnameID) { - case 281: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 346, 60); - break; - } - break; - case 337: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ - switch(qnameID) { - case 379: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Service ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 337, 338); - break; - } - break; - case 338: - /* First(xsi:type)StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(qnameID) { - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 94, 95); - break; - } - break; - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 72: - /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 265, 266); - break; - } - break; - case 340: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ - switch(qnameID) { - case 347: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Parameter ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 340, 202); - break; - } - break; - case 341: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules)] */ - switch(qnameID) { - case 363: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 332, 172); - break; - case 368: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SASchedules ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 332, 173); - break; - } - break; - case 342: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry)] */ - switch(qnameID) { - case 356: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 587, 537); - break; - } - break; - case 345: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit)] */ - switch(qnameID) { - case 290: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 416, 26); - break; - } - break; - case 346: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ - switch(qnameID) { - case 263: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 346, 347); - break; - } - break; - case 347: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - switch(qnameID) { - case 431: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}startValue ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 218, 552); - break; - } - break; - case 348: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(qnameID) { - case 189: - /* SE( {urn:iso:15118:2:2010:MsgBody}GenChallenge ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 349, 8); - break; - } - break; - case 350: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(qnameID) { - case 113: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 91, 92); - break; - } - break; - case 353: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */ - switch(qnameID) { - case 191: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeterInfo ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 354, 355); - break; - } - break; - case 355: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - switch(qnameID) { - case 332: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 535, 100); - break; - } - break; - case 356: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 594, 9); - break; - } - break; - case 360: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - switch(qnameID) { - case 361: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 361, 362); - break; - } - break; - case 361: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ - switch(qnameID) { - case 361: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 361, 362); - break; - } - break; - case 364: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey)] */ - switch(qnameID) { - case 162: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 512, 304); - break; - } - break; - case 369: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - switch(qnameID) { - case 313: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSENotification ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 370, 371); - break; - } - break; - case 373: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(qnameID) { - case 191: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeterInfo ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 75, 355); - break; - case 211: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReceiptRequired ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 76, 74); - break; - } - break; - case 376: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(qnameID) { - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 377, 189); - break; - } - break; - case 377: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ - switch(qnameID) { - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 377, 189); - break; - } - break; - case 378: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 379, 17); - break; - } - break; - case 379: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing)] */ - switch(qnameID) { - case 185: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEProcessing ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 563, 31); - break; - } - break; - case 382: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(qnameID) { - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 94, 95); - break; - } - break; - case 386: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(qnameID) { - case 169: - /* SE( {urn:iso:15118:2:2010:MsgBody}DHParams ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 387, 269); - break; - } - break; - case 388: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(qnameID) { - case 329: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FullSOC ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 323, 308); - break; - case 256: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 324, 308); - break; - } - break; - case 394: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 239, 145); - break; - } - break; - case 395: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 396, 9); - break; - } - break; - case 396: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(qnameID) { - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 436, 357); - break; - } - break; - case 397: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple)] */ - switch(qnameID) { - case 302: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 61, 26); - break; - case 315: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 62, 26); - break; - } - break; - case 407: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 407, 169); - break; - } - break; - case 411: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter)] */ - switch(qnameID) { - case 215: - /* SE( {urn:iso:15118:2:2010:MsgBody}RetryCounter ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 671, 616); - break; - } - break; - case 412: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage)] */ - switch(qnameID) { - case 184: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 413, 26); - break; - } - break; - case 416: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - switch(qnameID) { - case 291: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 578, 26); - break; - case 292: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 471, 26); - break; - } - break; - case 417: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(qnameID) { - case 196: - /* SE( {urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 199, 11); - break; - } - break; - case 419: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus)] */ - switch(qnameID) { - case 131: - /* SE( {urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 109, 49); - break; - } - break; - case 422: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 363, 145); - break; - } - break; - case 426: - /* FragmentContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVReady), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEProcessing), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVTargetVoltage), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Entry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FreeService), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Manifest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PgenCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Q), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}RetryCounter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SASchedules), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperties), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDef}V2G_Message), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amount), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue), START_ELEMENT_GENERIC, END_DOCUMENT] */ - switch(qnameID) { - case 249: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 0, state, qnameID, 426, 128); - break; - case 251: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 1, state, qnameID, 426, 47); - break; - case 131: - /* SE( {urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 2, state, qnameID, 426, 49); - break; - case 253: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 3, state, qnameID, 426, 49); - break; - case 437: - /* SE( {urn:iso:15118:2:2010:MsgDef}Body ) */ - errn = _exiEncodeStartElement(stream, 8, 4, state, qnameID, 426, 290); - break; - case 439: - /* SE( {urn:iso:15118:2:2010:MsgDef}BodyElement ) */ - errn = _exiEncodeStartElement(stream, 8, 5, state, qnameID, 426, 129); - break; - case 132: - /* SE( {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 8, 6, state, qnameID, 426, 74); - break; - case 255: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 8, 7, state, qnameID, 426, 74); - break; - case 256: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC ) */ - errn = _exiEncodeStartElement(stream, 8, 8, state, qnameID, 426, 308); - break; - case 133: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckReq ) */ - errn = _exiEncodeStartElement(stream, 8, 9, state, qnameID, 426, 130); - break; - case 135: - /* SE( {urn:iso:15118:2:2010:MsgBody}CableCheckRes ) */ - errn = _exiEncodeStartElement(stream, 8, 10, state, qnameID, 426, 131); - break; - case 61: - /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */ - errn = _exiEncodeStartElement(stream, 8, 11, state, qnameID, 426, 108); - break; - case 257: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Certificate ) */ - errn = _exiEncodeStartElement(stream, 8, 12, state, qnameID, 426, 11); - break; - case 137: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq ) */ - errn = _exiEncodeStartElement(stream, 8, 13, state, qnameID, 426, 132); - break; - case 139: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes ) */ - errn = _exiEncodeStartElement(stream, 8, 14, state, qnameID, 426, 133); - break; - case 141: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq ) */ - errn = _exiEncodeStartElement(stream, 8, 15, state, qnameID, 426, 134); - break; - case 143: - /* SE( {urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes ) */ - errn = _exiEncodeStartElement(stream, 8, 16, state, qnameID, 426, 135); - break; - case 145: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 8, 17, state, qnameID, 426, 136); - break; - case 147: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 8, 18, state, qnameID, 426, 54); - break; - case 149: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeService ) */ - errn = _exiEncodeStartElement(stream, 8, 19, state, qnameID, 426, 176); - break; - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 8, 20, state, qnameID, 426, 74); - break; - case 259: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 8, 21, state, qnameID, 426, 74); - break; - case 151: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingProfile ) */ - errn = _exiEncodeStartElement(stream, 8, 22, state, qnameID, 426, 35); - break; - case 260: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower ) */ - errn = _exiEncodeStartElement(stream, 8, 23, state, qnameID, 426, 613); - break; - case 261: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart ) */ - errn = _exiEncodeStartElement(stream, 8, 24, state, qnameID, 426, 124); - break; - case 152: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusReq ) */ - errn = _exiEncodeStartElement(stream, 8, 25, state, qnameID, 426, 137); - break; - case 154: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingStatusRes ) */ - errn = _exiEncodeStartElement(stream, 8, 26, state, qnameID, 426, 138); - break; - case 263: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost ) */ - errn = _exiEncodeStartElement(stream, 8, 27, state, qnameID, 426, 347); - break; - case 156: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq ) */ - errn = _exiEncodeStartElement(stream, 8, 28, state, qnameID, 426, 139); - break; - case 158: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes ) */ - errn = _exiEncodeStartElement(stream, 8, 29, state, qnameID, 426, 140); - break; - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 8, 30, state, qnameID, 426, 357); - break; - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 8, 31, state, qnameID, 426, 9); - break; - case 162: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey ) */ - errn = _exiEncodeStartElement(stream, 8, 32, state, qnameID, 426, 304); - break; - case 265: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Cost ) */ - errn = _exiEncodeStartElement(stream, 8, 33, state, qnameID, 426, 1); - break; - case 163: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandReq ) */ - errn = _exiEncodeStartElement(stream, 8, 34, state, qnameID, 426, 141); - break; - case 165: - /* SE( {urn:iso:15118:2:2010:MsgBody}CurrentDemandRes ) */ - errn = _exiEncodeStartElement(stream, 8, 35, state, qnameID, 426, 142); - break; - case 267: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 36, state, qnameID, 426, 143); - break; - case 270: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 37, state, qnameID, 426, 37); - break; - case 272: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 38, state, qnameID, 426, 144); - break; - case 167: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 39, state, qnameID, 426, 115); - break; - case 274: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 40, state, qnameID, 426, 115); - break; - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 41, state, qnameID, 426, 145); - break; - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 42, state, qnameID, 426, 145); - break; - case 169: - /* SE( {urn:iso:15118:2:2010:MsgBody}DHParams ) */ - errn = _exiEncodeStartElement(stream, 8, 43, state, qnameID, 426, 269); - break; - case 64: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 8, 44, state, qnameID, 426, 146); - break; - case 170: - /* SE( {urn:iso:15118:2:2010:MsgBody}DateTimeNow ) */ - errn = _exiEncodeStartElement(stream, 8, 45, state, qnameID, 426, 554); - break; - case 279: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DepartureTime ) */ - errn = _exiEncodeStartElement(stream, 8, 46, state, qnameID, 426, 545); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 8, 47, state, qnameID, 426, 147); - break; - case 68: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestValue ) */ - errn = _exiEncodeStartElement(stream, 8, 48, state, qnameID, 426, 148); - break; - case 280: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EAmount ) */ - errn = _exiEncodeStartElement(stream, 8, 49, state, qnameID, 426, 26); - break; - case 281: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel ) */ - errn = _exiEncodeStartElement(stream, 8, 50, state, qnameID, 426, 60); - break; - case 171: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVCCID ) */ - errn = _exiEncodeStartElement(stream, 8, 51, state, qnameID, 426, 223); - break; - case 282: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning ) */ - errn = _exiEncodeStartElement(stream, 8, 52, state, qnameID, 426, 74); - break; - case 283: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 53, state, qnameID, 426, 149); - break; - case 285: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity ) */ - errn = _exiEncodeStartElement(stream, 8, 54, state, qnameID, 426, 26); - break; - case 286: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest ) */ - errn = _exiEncodeStartElement(stream, 8, 55, state, qnameID, 426, 26); - break; - case 287: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode ) */ - errn = _exiEncodeStartElement(stream, 8, 56, state, qnameID, 426, 114); - break; - case 288: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 57, state, qnameID, 426, 26); - break; - case 289: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage ) */ - errn = _exiEncodeStartElement(stream, 8, 58, state, qnameID, 426, 26); - break; - case 172: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 59, state, qnameID, 426, 26); - break; - case 290: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 60, state, qnameID, 426, 26); - break; - case 173: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 61, state, qnameID, 426, 26); - break; - case 291: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 62, state, qnameID, 426, 26); - break; - case 174: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 63, state, qnameID, 426, 26); - break; - case 292: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 64, state, qnameID, 426, 26); - break; - case 293: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 65, state, qnameID, 426, 26); - break; - case 294: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 66, state, qnameID, 426, 38); - break; - case 296: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning ) */ - errn = _exiEncodeStartElement(stream, 8, 67, state, qnameID, 426, 74); - break; - case 297: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC ) */ - errn = _exiEncodeStartElement(stream, 8, 68, state, qnameID, 426, 308); - break; - case 298: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVReady ) */ - errn = _exiEncodeStartElement(stream, 8, 69, state, qnameID, 426, 74); - break; - case 175: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType ) */ - errn = _exiEncodeStartElement(stream, 8, 70, state, qnameID, 426, 214); - break; - case 300: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter ) */ - errn = _exiEncodeStartElement(stream, 8, 71, state, qnameID, 426, 56); - break; - case 176: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 8, 72, state, qnameID, 426, 74); - break; - case 302: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance ) */ - errn = _exiEncodeStartElement(stream, 8, 73, state, qnameID, 426, 26); - break; - case 303: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered ) */ - errn = _exiEncodeStartElement(stream, 8, 74, state, qnameID, 426, 26); - break; - case 177: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEID ) */ - errn = _exiEncodeStartElement(stream, 8, 75, state, qnameID, 426, 531); - break; - case 304: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 76, state, qnameID, 426, 117); - break; - case 178: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 77, state, qnameID, 426, 26); - break; - case 305: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 78, state, qnameID, 426, 26); - break; - case 306: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage ) */ - errn = _exiEncodeStartElement(stream, 8, 79, state, qnameID, 426, 26); - break; - case 179: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 80, state, qnameID, 426, 26); - break; - case 307: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 81, state, qnameID, 426, 26); - break; - case 180: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 82, state, qnameID, 426, 26); - break; - case 308: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 83, state, qnameID, 426, 26); - break; - case 181: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 84, state, qnameID, 426, 26); - break; - case 309: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 85, state, qnameID, 426, 26); - break; - case 310: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 86, state, qnameID, 426, 26); - break; - case 311: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 87, state, qnameID, 426, 26); - break; - case 312: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 8, 88, state, qnameID, 426, 26); - break; - case 313: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSENotification ) */ - errn = _exiEncodeStartElement(stream, 8, 89, state, qnameID, 426, 371); - break; - case 315: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple ) */ - errn = _exiEncodeStartElement(stream, 8, 90, state, qnameID, 426, 26); - break; - case 182: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 8, 91, state, qnameID, 426, 74); - break; - case 183: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 92, state, qnameID, 426, 26); - break; - case 184: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage ) */ - errn = _exiEncodeStartElement(stream, 8, 93, state, qnameID, 426, 26); - break; - case 185: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEProcessing ) */ - errn = _exiEncodeStartElement(stream, 8, 94, state, qnameID, 426, 31); - break; - case 317: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 95, state, qnameID, 426, 150); - break; - case 318: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode ) */ - errn = _exiEncodeStartElement(stream, 8, 96, state, qnameID, 426, 119); - break; - case 186: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 8, 97, state, qnameID, 426, 74); - break; - case 321: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 98, state, qnameID, 426, 151); - break; - case 187: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetCurrent ) */ - errn = _exiEncodeStartElement(stream, 8, 99, state, qnameID, 426, 26); - break; - case 188: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage ) */ - errn = _exiEncodeStartElement(stream, 8, 100, state, qnameID, 426, 26); - break; - case 323: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType ) */ - errn = _exiEncodeStartElement(stream, 8, 101, state, qnameID, 426, 469); - break; - case 324: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Entry ) */ - errn = _exiEncodeStartElement(stream, 8, 102, state, qnameID, 426, 152); - break; - case 70: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */ - errn = _exiEncodeStartElement(stream, 8, 103, state, qnameID, 426, 275); - break; - case 326: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FaultCode ) */ - errn = _exiEncodeStartElement(stream, 8, 104, state, qnameID, 426, 331); - break; - case 327: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FaultMsg ) */ - errn = _exiEncodeStartElement(stream, 8, 105, state, qnameID, 426, 550); - break; - case 328: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FreeService ) */ - errn = _exiEncodeStartElement(stream, 8, 106, state, qnameID, 426, 74); - break; - case 329: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FullSOC ) */ - errn = _exiEncodeStartElement(stream, 8, 107, state, qnameID, 426, 308); - break; - case 71: - /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */ - errn = _exiEncodeStartElement(stream, 8, 108, state, qnameID, 426, 275); - break; - case 189: - /* SE( {urn:iso:15118:2:2010:MsgBody}GenChallenge ) */ - errn = _exiEncodeStartElement(stream, 8, 109, state, qnameID, 426, 8); - break; - case 72: - /* SE( {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength ) */ - errn = _exiEncodeStartElement(stream, 8, 110, state, qnameID, 426, 266); - break; - case 441: - /* SE( {urn:iso:15118:2:2010:MsgDef}Header ) */ - errn = _exiEncodeStartElement(stream, 8, 111, state, qnameID, 426, 71); - break; - case 74: - /* SE( {http://www.w3.org/2000/09/xmldsig#}J ) */ - errn = _exiEncodeStartElement(stream, 8, 112, state, qnameID, 426, 275); - break; - case 75: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */ - errn = _exiEncodeStartElement(stream, 8, 113, state, qnameID, 426, 153); - break; - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 8, 114, state, qnameID, 426, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 8, 115, state, qnameID, 426, 155); - break; - case 190: - /* SE( {urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs ) */ - errn = _exiEncodeStartElement(stream, 8, 116, state, qnameID, 426, 360); - break; - case 80: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Manifest ) */ - errn = _exiEncodeStartElement(stream, 8, 117, state, qnameID, 426, 156); - break; - case 332: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterID ) */ - errn = _exiEncodeStartElement(stream, 8, 118, state, qnameID, 426, 100); - break; - case 191: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeterInfo ) */ - errn = _exiEncodeStartElement(stream, 8, 119, state, qnameID, 426, 355); - break; - case 334: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterReading ) */ - errn = _exiEncodeStartElement(stream, 8, 120, state, qnameID, 426, 26); - break; - case 335: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterStatus ) */ - errn = _exiEncodeStartElement(stream, 8, 121, state, qnameID, 426, 311); - break; - case 192: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq ) */ - errn = _exiEncodeStartElement(stream, 8, 122, state, qnameID, 426, 157); - break; - case 194: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes ) */ - errn = _exiEncodeStartElement(stream, 8, 123, state, qnameID, 426, 158); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 8, 124, state, qnameID, 426, 159); - break; - case 83: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */ - errn = _exiEncodeStartElement(stream, 8, 125, state, qnameID, 426, 275); - break; - case 336: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Multiplier ) */ - errn = _exiEncodeStartElement(stream, 8, 126, state, qnameID, 426, 23); - break; - case 444: - /* SE( {urn:iso:15118:2:2010:MsgHeader}Notification ) */ - errn = _exiEncodeStartElement(stream, 8, 127, state, qnameID, 426, 329); - break; - case 337: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay ) */ - errn = _exiEncodeStartElement(stream, 8, 128, state, qnameID, 426, 12); - break; - case 339: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels ) */ - errn = _exiEncodeStartElement(stream, 8, 129, state, qnameID, 426, 60); - break; - case 196: - /* SE( {urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert ) */ - errn = _exiEncodeStartElement(stream, 8, 130, state, qnameID, 426, 11); - break; - case 84: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */ - errn = _exiEncodeStartElement(stream, 8, 131, state, qnameID, 426, 160); - break; - case 86: - /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */ - errn = _exiEncodeStartElement(stream, 8, 132, state, qnameID, 426, 275); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 8, 133, state, qnameID, 426, 161); - break; - case 89: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */ - errn = _exiEncodeStartElement(stream, 8, 134, state, qnameID, 426, 246); - break; - case 90: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */ - errn = _exiEncodeStartElement(stream, 8, 135, state, qnameID, 426, 424); - break; - case 340: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMax ) */ - errn = _exiEncodeStartElement(stream, 8, 136, state, qnameID, 426, 613); - break; - case 341: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule ) */ - errn = _exiEncodeStartElement(stream, 8, 137, state, qnameID, 426, 45); - break; - case 342: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry ) */ - errn = _exiEncodeStartElement(stream, 8, 138, state, qnameID, 426, 162); - break; - case 344: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID ) */ - errn = _exiEncodeStartElement(stream, 8, 139, state, qnameID, 426, 209); - break; - case 347: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Parameter ) */ - errn = _exiEncodeStartElement(stream, 8, 140, state, qnameID, 426, 202); - break; - case 348: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSet ) */ - errn = _exiEncodeStartElement(stream, 8, 141, state, qnameID, 426, 103); - break; - case 349: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID ) */ - errn = _exiEncodeStartElement(stream, 8, 142, state, qnameID, 426, 634); - break; - case 197: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq ) */ - errn = _exiEncodeStartElement(stream, 8, 143, state, qnameID, 426, 163); - break; - case 199: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes ) */ - errn = _exiEncodeStartElement(stream, 8, 144, state, qnameID, 426, 164); - break; - case 352: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PaymentOption ) */ - errn = _exiEncodeStartElement(stream, 8, 145, state, qnameID, 426, 245); - break; - case 201: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentOptions ) */ - errn = _exiEncodeStartElement(stream, 8, 146, state, qnameID, 426, 626); - break; - case 91: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PgenCounter ) */ - errn = _exiEncodeStartElement(stream, 8, 147, state, qnameID, 426, 275); - break; - case 202: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq ) */ - errn = _exiEncodeStartElement(stream, 8, 148, state, qnameID, 426, 165); - break; - case 204: - /* SE( {urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes ) */ - errn = _exiEncodeStartElement(stream, 8, 149, state, qnameID, 426, 166); - break; - case 355: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed ) */ - errn = _exiEncodeStartElement(stream, 8, 150, state, qnameID, 426, 74); - break; - case 206: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeReq ) */ - errn = _exiEncodeStartElement(stream, 8, 151, state, qnameID, 426, 167); - break; - case 208: - /* SE( {urn:iso:15118:2:2010:MsgBody}PreChargeRes ) */ - errn = _exiEncodeStartElement(stream, 8, 152, state, qnameID, 426, 86); - break; - case 356: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry ) */ - errn = _exiEncodeStartElement(stream, 8, 153, state, qnameID, 426, 537); - break; - case 92: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Q ) */ - errn = _exiEncodeStartElement(stream, 8, 154, state, qnameID, 426, 275); - break; - case 358: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RCD ) */ - errn = _exiEncodeStartElement(stream, 8, 155, state, qnameID, 426, 74); - break; - case 93: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 8, 156, state, qnameID, 426, 168); - break; - case 210: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReadyToChargeState ) */ - errn = _exiEncodeStartElement(stream, 8, 157, state, qnameID, 426, 74); - break; - case 211: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReceiptRequired ) */ - errn = _exiEncodeStartElement(stream, 8, 158, state, qnameID, 426, 74); - break; - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 8, 159, state, qnameID, 426, 169); - break; - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 8, 160, state, qnameID, 426, 170); - break; - case 212: - /* SE( {urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC ) */ - errn = _exiEncodeStartElement(stream, 8, 161, state, qnameID, 426, 26); - break; - case 213: - /* SE( {urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC ) */ - errn = _exiEncodeStartElement(stream, 8, 162, state, qnameID, 426, 26); - break; - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 8, 163, state, qnameID, 426, 17); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 8, 164, state, qnameID, 426, 171); - break; - case 215: - /* SE( {urn:iso:15118:2:2010:MsgBody}RetryCounter ) */ - errn = _exiEncodeStartElement(stream, 8, 165, state, qnameID, 426, 616); - break; - case 361: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID ) */ - errn = _exiEncodeStartElement(stream, 8, 166, state, qnameID, 426, 362); - break; - case 363: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList ) */ - errn = _exiEncodeStartElement(stream, 8, 167, state, qnameID, 426, 172); - break; - case 365: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple ) */ - errn = _exiEncodeStartElement(stream, 8, 168, state, qnameID, 426, 321); - break; - case 216: - /* SE( {urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 8, 169, state, qnameID, 426, 209); - break; - case 366: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 8, 170, state, qnameID, 426, 209); - break; - case 368: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SASchedules ) */ - errn = _exiEncodeStartElement(stream, 8, 171, state, qnameID, 426, 173); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 8, 172, state, qnameID, 426, 174); - break; - case 101: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */ - errn = _exiEncodeStartElement(stream, 8, 173, state, qnameID, 426, 205); - break; - case 370: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariff ) */ - errn = _exiEncodeStartElement(stream, 8, 174, state, qnameID, 426, 533); - break; - case 371: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription ) */ - errn = _exiEncodeStartElement(stream, 8, 175, state, qnameID, 426, 635); - break; - case 372: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry ) */ - errn = _exiEncodeStartElement(stream, 8, 176, state, qnameID, 426, 175); - break; - case 374: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID ) */ - errn = _exiEncodeStartElement(stream, 8, 177, state, qnameID, 426, 209); - break; - case 102: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Seed ) */ - errn = _exiEncodeStartElement(stream, 8, 178, state, qnameID, 426, 275); - break; - case 217: - /* SE( {urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption ) */ - errn = _exiEncodeStartElement(stream, 8, 179, state, qnameID, 426, 245); - break; - case 376: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SelectedService ) */ - errn = _exiEncodeStartElement(stream, 8, 180, state, qnameID, 426, 524); - break; - case 218: - /* SE( {urn:iso:15118:2:2010:MsgBody}SelectedServiceList ) */ - errn = _exiEncodeStartElement(stream, 8, 181, state, qnameID, 426, 522); - break; - case 379: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Service ) */ - errn = _exiEncodeStartElement(stream, 8, 182, state, qnameID, 426, 338); - break; - case 219: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 8, 183, state, qnameID, 426, 85); - break; - case 380: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 8, 184, state, qnameID, 426, 85); - break; - case 381: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge ) */ - errn = _exiEncodeStartElement(stream, 8, 185, state, qnameID, 426, 176); - break; - case 220: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailReq ) */ - errn = _exiEncodeStartElement(stream, 8, 186, state, qnameID, 426, 177); - break; - case 222: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDetailRes ) */ - errn = _exiEncodeStartElement(stream, 8, 187, state, qnameID, 426, 178); - break; - case 224: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq ) */ - errn = _exiEncodeStartElement(stream, 8, 188, state, qnameID, 426, 179); - break; - case 226: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes ) */ - errn = _exiEncodeStartElement(stream, 8, 189, state, qnameID, 426, 180); - break; - case 228: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 8, 190, state, qnameID, 426, 65); - break; - case 383: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 8, 191, state, qnameID, 426, 65); - break; - case 229: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceList ) */ - errn = _exiEncodeStartElement(stream, 8, 192, state, qnameID, 426, 259); - break; - case 384: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceName ) */ - errn = _exiEncodeStartElement(stream, 8, 193, state, qnameID, 426, 409); - break; - case 230: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceParameterList ) */ - errn = _exiEncodeStartElement(stream, 8, 194, state, qnameID, 426, 101); - break; - case 231: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq ) */ - errn = _exiEncodeStartElement(stream, 8, 195, state, qnameID, 426, 181); - break; - case 233: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes ) */ - errn = _exiEncodeStartElement(stream, 8, 196, state, qnameID, 426, 182); - break; - case 235: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceScope ) */ - errn = _exiEncodeStartElement(stream, 8, 197, state, qnameID, 426, 518); - break; - case 386: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceScope ) */ - errn = _exiEncodeStartElement(stream, 8, 198, state, qnameID, 426, 518); - break; - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 8, 199, state, qnameID, 426, 95); - break; - case 236: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionID ) */ - errn = _exiEncodeStartElement(stream, 8, 200, state, qnameID, 426, 41); - break; - case 445: - /* SE( {urn:iso:15118:2:2010:MsgHeader}SessionID ) */ - errn = _exiEncodeStartElement(stream, 8, 201, state, qnameID, 426, 41); - break; - case 237: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupReq ) */ - errn = _exiEncodeStartElement(stream, 8, 202, state, qnameID, 426, 183); - break; - case 239: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionSetupRes ) */ - errn = _exiEncodeStartElement(stream, 8, 203, state, qnameID, 426, 184); - break; - case 241: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopReq ) */ - errn = _exiEncodeStartElement(stream, 8, 204, state, qnameID, 426, 185); - break; - case 242: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionStopRes ) */ - errn = _exiEncodeStartElement(stream, 8, 205, state, qnameID, 426, 78); - break; - case 391: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading ) */ - errn = _exiEncodeStartElement(stream, 8, 206, state, qnameID, 426, 534); - break; - case 103: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */ - errn = _exiEncodeStartElement(stream, 8, 207, state, qnameID, 426, 186); - break; - case 104: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureMethod ) */ - errn = _exiEncodeStartElement(stream, 8, 208, state, qnameID, 426, 187); - break; - case 106: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperties ) */ - errn = _exiEncodeStartElement(stream, 8, 209, state, qnameID, 426, 188); - break; - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 8, 210, state, qnameID, 426, 189); - break; - case 111: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureValue ) */ - errn = _exiEncodeStartElement(stream, 8, 211, state, qnameID, 426, 190); - break; - case 113: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignedInfo ) */ - errn = _exiEncodeStartElement(stream, 8, 212, state, qnameID, 426, 92); - break; - case 392: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SubCertificates ) */ - errn = _exiEncodeStartElement(stream, 8, 213, state, qnameID, 426, 110); - break; - case 394: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TMeter ) */ - errn = _exiEncodeStartElement(stream, 8, 214, state, qnameID, 426, 252); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 8, 215, state, qnameID, 426, 191); - break; - case 115: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */ - errn = _exiEncodeStartElement(stream, 8, 216, state, qnameID, 426, 192); - break; - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 8, 217, state, qnameID, 426, 193); - break; - case 396: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Unit ) */ - errn = _exiEncodeStartElement(stream, 8, 218, state, qnameID, 426, 418); - break; - case 442: - /* SE( {urn:iso:15118:2:2010:MsgDef}V2G_Message ) */ - errn = _exiEncodeStartElement(stream, 8, 219, state, qnameID, 426, 69); - break; - case 397: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Value ) */ - errn = _exiEncodeStartElement(stream, 8, 220, state, qnameID, 426, 502); - break; - case 245: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq ) */ - errn = _exiEncodeStartElement(stream, 8, 221, state, qnameID, 426, 194); - break; - case 247: - /* SE( {urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes ) */ - errn = _exiEncodeStartElement(stream, 8, 222, state, qnameID, 426, 195); - break; - case 119: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */ - errn = _exiEncodeStartElement(stream, 8, 223, state, qnameID, 426, 317); - break; - case 120: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */ - errn = _exiEncodeStartElement(stream, 8, 224, state, qnameID, 426, 316); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 8, 225, state, qnameID, 426, 196); - break; - case 123: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */ - errn = _exiEncodeStartElement(stream, 8, 226, state, qnameID, 426, 569); - break; - case 124: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */ - errn = _exiEncodeStartElement(stream, 8, 227, state, qnameID, 426, 314); - break; - case 126: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */ - errn = _exiEncodeStartElement(stream, 8, 228, state, qnameID, 426, 77); - break; - case 127: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */ - errn = _exiEncodeStartElement(stream, 8, 229, state, qnameID, 426, 625); - break; - case 128: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */ - errn = _exiEncodeStartElement(stream, 8, 230, state, qnameID, 426, 315); - break; - case 129: - /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */ - errn = _exiEncodeStartElement(stream, 8, 231, state, qnameID, 426, 222); - break; - case 130: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */ - errn = _exiEncodeStartElement(stream, 8, 232, state, qnameID, 426, 275); - break; - case 398: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}amount ) */ - errn = _exiEncodeStartElement(stream, 8, 233, state, qnameID, 426, 627); - break; - case 399: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier ) */ - errn = _exiEncodeStartElement(stream, 8, 234, state, qnameID, 426, 23); - break; - case 400: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}boolValue ) */ - errn = _exiEncodeStartElement(stream, 8, 235, state, qnameID, 426, 74); - break; - case 401: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}byteValue ) */ - errn = _exiEncodeStartElement(stream, 8, 236, state, qnameID, 426, 630); - break; - case 404: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}costKind ) */ - errn = _exiEncodeStartElement(stream, 8, 237, state, qnameID, 426, 3); - break; - case 407: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}duration ) */ - errn = _exiEncodeStartElement(stream, 8, 238, state, qnameID, 426, 20); - break; - case 413: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}intValue ) */ - errn = _exiEncodeStartElement(stream, 8, 239, state, qnameID, 426, 454); - break; - case 419: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}physicalValue ) */ - errn = _exiEncodeStartElement(stream, 8, 240, state, qnameID, 426, 26); - break; - case 428: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}shortValue ) */ - errn = _exiEncodeStartElement(stream, 8, 241, state, qnameID, 426, 636); - break; - case 430: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}start ) */ - errn = _exiEncodeStartElement(stream, 8, 242, state, qnameID, 426, 547); - break; - case 431: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}startValue ) */ - errn = _exiEncodeStartElement(stream, 8, 243, state, qnameID, 426, 552); - break; - case 432: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}stringValue ) */ - errn = _exiEncodeStartElement(stream, 8, 244, state, qnameID, 426, 637); - break; - } - break; - case 430: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType)] */ - switch(qnameID) { - case 323: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 279, 469); - break; - } - break; - case 431: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ - switch(qnameID) { - case 115: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 431, 192); - break; - } - break; - case 433: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(qnameID) { - case 383: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 434, 65); - break; - } - break; - case 434: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - switch(qnameID) { - case 384: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceName ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 596, 409); - break; - case 380: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 597, 85); - break; - } - break; - case 435: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultCode)] */ - switch(qnameID) { - case 326: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FaultCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 330, 331); - break; - } - break; - case 436: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs)] */ - switch(qnameID) { - case 190: - /* SE( {urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 437, 360); - break; - } - break; - case 437: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(qnameID) { - case 169: - /* SE( {urn:iso:15118:2:2010:MsgBody}DHParams ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 489, 269); - break; - } - break; - case 438: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ - switch(qnameID) { - case 372: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 438, 175); - break; - } - break; - case 441: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit)] */ - switch(qnameID) { - case 311: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 442, 26); - break; - } - break; - case 442: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit)] */ - switch(qnameID) { - case 312: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 397, 26); - break; - } - break; - case 443: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 444, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 444, 191); - break; - } - break; - case 446: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReceiptRequired)] */ - switch(qnameID) { - case 178: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 373, 26); - break; - case 191: - /* SE( {urn:iso:15118:2:2010:MsgBody}MeterInfo ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 75, 355); - break; - case 211: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReceiptRequired ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 76, 74); - break; - } - break; - case 448: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ - switch(qnameID) { - case 342: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 448, 162); - break; - } - break; - case 451: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 277, 193); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 278, 147); - break; - } - break; - case 453: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */ - switch(qnameID) { - case 379: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Service ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 337, 338); - break; - } - break; - case 455: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage)] */ - switch(qnameID) { - case 289: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 456, 26); - break; - } - break; - case 456: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent)] */ - switch(qnameID) { - case 288: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 683, 26); - break; - } - break; - case 461: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID)] */ - switch(qnameID) { - case 216: - /* SE( {urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 446, 209); - break; - } - break; - case 462: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 463, 17); - break; - } - break; - case 463: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus)] */ - switch(qnameID) { - case 253: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 352, 49); - break; - case 274: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 352, 115); - break; - case 317: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 352, 150); - break; - } - break; - case 464: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 77: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyName ) */ - errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 241, 154); - break; - case 78: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyValue ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 241, 155); - break; - case 97: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 241, 171); - break; - case 121: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Data ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 241, 196); - break; - case 87: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPData ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 241, 161); - break; - case 99: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKIData ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 241, 174); - break; - case 82: - /* SE( {http://www.w3.org/2000/09/xmldsig#}MgmtData ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 241, 159); - break; - } - break; - case 465: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode)] */ - switch(qnameID) { - case 304: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 116, 117); - break; - case 318: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 118, 119); - break; - } - break; - case 466: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 55, 17); - break; - } - break; - case 467: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform)] */ - switch(qnameID) { - case 115: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transform ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 431, 192); - break; - } - break; - case 470: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMax)] */ - switch(qnameID) { - case 340: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PMax ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 584, 613); - break; - } - break; - case 471: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(qnameID) { - case 285: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 472, 26); - break; - case 286: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 388, 26); - break; - case 329: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FullSOC ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 323, 308); - break; - case 256: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 324, 308); - break; - } - break; - case 472: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - switch(qnameID) { - case 286: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 388, 26); - break; - case 329: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}FullSOC ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 323, 308); - break; - case 256: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 324, 308); - break; - } - break; - case 474: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 82, 193); - break; - } - break; - case 476: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 285, 17); - break; - } - break; - case 477: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 79, 17); - break; - } - break; - case 478: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSENotification)] */ - switch(qnameID) { - case 313: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSENotification ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 479, 371); - break; - } - break; - case 481: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(qnameID) { - case 130: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 327, 275); - break; - } - break; - case 482: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 161: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 396, 9); - break; - } - break; - case 484: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(qnameID) { - case 174: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 485, 26); - break; - case 172: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 486, 26); - break; - case 173: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 487, 26); - break; - case 132: - /* SE( {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 488, 74); - break; - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 24, 74); - break; - } - break; - case 485: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(qnameID) { - case 172: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 486, 26); - break; - case 173: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 487, 26); - break; - case 132: - /* SE( {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 488, 74); - break; - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 24, 74); - break; - } - break; - case 486: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(qnameID) { - case 173: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 487, 26); - break; - case 132: - /* SE( {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 488, 74); - break; - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 24, 74); - break; - } - break; - case 487: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(qnameID) { - case 132: - /* SE( {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 488, 74); - break; - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 24, 74); - break; - } - break; - case 488: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingComplete)] */ - switch(qnameID) { - case 150: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 24, 74); - break; - } - break; - case 490: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ - switch(qnameID) { - case 90: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 83, 424); - break; - } - break; - case 496: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID)] */ - switch(qnameID) { - case 349: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 305, 306); - break; - } - break; - case 497: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EAmount)] */ - switch(qnameID) { - case 280: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EAmount ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 455, 26); - break; - } - break; - case 500: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeService)] */ - switch(qnameID) { - case 149: - /* SE( {urn:iso:15118:2:2010:MsgBody}ChargeService ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 257, 176); - break; - } - break; - case 501: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - switch(qnameID) { - case 397: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Value ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 423, 502); - break; - } - break; - case 506: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}SessionID)] */ - switch(qnameID) { - case 445: - /* SE( {urn:iso:15118:2:2010:MsgHeader}SessionID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 507, 41); - break; - } - break; - case 507: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - switch(qnameID) { - case 444: - /* SE( {urn:iso:15118:2:2010:MsgHeader}Notification ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 646, 329); - break; - case 103: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 408, 186); - break; - } - break; - case 509: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - switch(qnameID) { - case 75: - /* SE( {http://www.w3.org/2000/09/xmldsig#}KeyInfo ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 326, 153); - break; - case 84: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Object ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 326, 160); - break; - } - break; - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 129: - /* SE( {http://www.w3.org/2000/09/xmldsig#}XPath ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 221, 222); - break; - } - break; - case 512: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DHParams)] */ - switch(qnameID) { - case 169: - /* SE( {urn:iso:15118:2:2010:MsgBody}DHParams ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 513, 269); - break; - } - break; - case 513: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(qnameID) { - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 440, 357); - break; - } - break; - case 514: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - switch(qnameID) { - case 309: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 441, 26); - break; - } - break; - case 517: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 407, 169); - break; - } - break; - case 520: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 260, 17); - break; - } - break; - case 521: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus)] */ - switch(qnameID) { - case 167: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 88, 115); - break; - } - break; - case 522: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - switch(qnameID) { - case 376: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SelectedService ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 523, 524); - break; - } - break; - case 523: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ - switch(qnameID) { - case 376: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SelectedService ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 523, 524); - break; - } - break; - case 524: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(qnameID) { - case 383: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 607, 65); - break; - } - break; - case 530: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ - switch(qnameID) { - case 170: - /* SE( {urn:iso:15118:2:2010:MsgBody}DateTimeNow ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 553, 554); - break; - } - break; - case 535: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(qnameID) { - case 334: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterReading ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 536, 26); - break; - case 391: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 310, 534); - break; - case 335: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterStatus ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 250, 311); - break; - case 394: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TMeter ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 251, 252); - break; - } - break; - case 536: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - switch(qnameID) { - case 391: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 310, 534); - break; - case 335: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterStatus ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 250, 311); - break; - case 394: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TMeter ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 251, 252); - break; - } - break; - case 537: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */ - switch(qnameID) { - case 261: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 123, 124); - break; - } - break; - case 540: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */ - switch(qnameID) { - case 355: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 541, 74); - break; - } - break; - case 541: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */ - switch(qnameID) { - case 358: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RCD ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 590, 74); - break; - } - break; - case 542: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit)] */ - switch(qnameID) { - case 307: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 543, 26); - break; - } - break; - case 543: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit)] */ - switch(qnameID) { - case 308: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 514, 26); - break; - case 309: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 441, 26); - break; - } - break; - case 544: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */ - switch(qnameID) { - case 396: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Unit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 501, 418); - break; - case 397: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Value ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 423, 502); - break; - } - break; - case 548: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved)] */ - switch(qnameID) { - case 176: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 614, 74); - break; - } - break; - case 549: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC] */ - switch(qnameID) { - case 124: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 313, 314); - break; - case 126: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SKI ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 313, 77); - break; - case 128: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SubjectName ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 313, 315); - break; - case 120: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509Certificate ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 313, 316); - break; - case 119: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509CRL ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 313, 317); - break; - } - break; - case 556: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(qnameID) { - case 366: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 342, 209); - break; - } - break; - case 557: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}startValue)] */ - switch(qnameID) { - case 431: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}startValue ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 218, 552); - break; - } - break; - case 564: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 565, 169); - break; - } - break; - case 565: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 565, 169); - break; - } - break; - case 567: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerName)] */ - switch(qnameID) { - case 123: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509IssuerName ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 568, 569); - break; - } - break; - case 568: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SerialNumber)] */ - switch(qnameID) { - case 127: - /* SE( {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 654, 625); - break; - } - break; - case 570: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Exponent)] */ - switch(qnameID) { - case 70: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Exponent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 410, 275); - break; - } - break; - case 572: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(qnameID) { - case 219: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 573, 85); - break; - } - break; - case 574: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp)] */ - switch(qnameID) { - case 101: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SPKISexp ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 204, 205); - break; - } - break; - case 576: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 64: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 295, 146); - break; - case 93: - /* SE( {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 295, 168); - break; - } - break; - case 577: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(qnameID) { - case 108: - /* SE( {http://www.w3.org/2000/09/xmldsig#}SignatureProperty ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 377, 189); - break; - } - break; - case 578: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit)] */ - switch(qnameID) { - case 292: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 471, 26); - break; - } - break; - case 579: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(qnameID) { - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 580, 145); - break; - } - break; - case 580: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete)] */ - switch(qnameID) { - case 255: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 72, 74); - break; - case 259: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 73, 74); - break; - } - break; - case 582: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReadyToChargeState)] */ - switch(qnameID) { - case 210: - /* SE( {urn:iso:15118:2:2010:MsgBody}ReadyToChargeState ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 33, 74); - break; - } - break; - case 585: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - switch(qnameID) { - case 235: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceScope ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 572, 518); - break; - case 219: - /* SE( {urn:iso:15118:2:2010:MsgBody}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 573, 85); - break; - } - break; - case 586: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet)] */ - switch(qnameID) { - case 348: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSet ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 102, 103); - break; - } - break; - case 587: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ - switch(qnameID) { - case 356: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 587, 537); - break; - } - break; - case 588: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 444, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 444, 191); - break; - } - break; - case 589: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}P), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}G), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Y)] */ - switch(qnameID) { - case 86: - /* SE( {http://www.w3.org/2000/09/xmldsig#}P ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 273, 275); - break; - case 71: - /* SE( {http://www.w3.org/2000/09/xmldsig#}G ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 481, 275); - break; - case 130: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Y ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 327, 275); - break; - } - break; - case 590: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay)] */ - switch(qnameID) { - case 337: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 369, 591); - break; - } - break; - case 592: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */ - switch(qnameID) { - case 441: - /* SE( {urn:iso:15118:2:2010:MsgDef}Header ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 70, 71); - break; - } - break; - case 596: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory)] */ - switch(qnameID) { - case 380: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 597, 85); - break; - } - break; - case 597: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ - switch(qnameID) { - case 386: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceScope ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 504, 518); - break; - } - break; - case 598: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 419, 17); - break; - } - break; - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 82, 193); - break; - } - break; - case 600: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption)] */ - switch(qnameID) { - case 217: - /* SE( {urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 254, 245); - break; - } - break; - case 602: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TimeInterval)] */ - switch(qnameID) { - case 359: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 470, 170); - break; - case 395: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 470, 191); - break; - } - break; - case 603: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}start)] */ - switch(qnameID) { - case 430: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}start ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 18, 547); - break; - } - break; - case 604: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DC_EVStatus)] */ - switch(qnameID) { - case 168: - /* SE( {urn:iso:15118:2:2010:MsgBody}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 67, 145); - break; - } - break; - case 605: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(qnameID) { - case 179: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 606, 26); - break; - case 180: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 516, 26); - break; - } - break; - case 606: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - switch(qnameID) { - case 180: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 516, 26); - break; - } - break; - case 607: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ - switch(qnameID) { - case 349: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 447, 634); - break; - } - break; - case 608: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus)] */ - switch(qnameID) { - case 277: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 345, 145); - break; - } - break; - case 610: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID)] */ - switch(qnameID) { - case 332: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}MeterID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 535, 100); - break; - } - break; - case 612: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID)] */ - switch(qnameID) { - case 366: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 43, 209); - break; - } - break; - case 614: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved)] */ - switch(qnameID) { - case 186: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 234, 74); - break; - } - break; - case 615: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyID), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket)] */ - switch(qnameID) { - case 89: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 490, 246); - break; - case 90: - /* SE( {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 491, 492); - break; - } - break; - case 617: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService)] */ - switch(qnameID) { - case 376: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SelectedService ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 523, 524); - break; - } - break; - case 618: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 6, 17); - break; - } - break; - case 619: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus)] */ - switch(qnameID) { - case 274: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 542, 115); - break; - } - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 277, 193); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 278, 147); - break; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 117: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Transforms ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 277, 193); - break; - case 66: - /* SE( {http://www.w3.org/2000/09/xmldsig#}DigestMethod ) */ - errn = _exiEncodeStartElement(stream, 2, 2, state, qnameID, 278, 147); - break; - } - break; - case 624: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */ - switch(qnameID) { - case 336: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}Multiplier ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 544, 23); - break; - } - break; - case 626: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption)] */ - switch(qnameID) { - case 352: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}PaymentOption ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 244, 245); - break; - } - break; - case 628: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentOptions)] */ - switch(qnameID) { - case 201: - /* SE( {urn:iso:15118:2:2010:MsgBody}PaymentOptions ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 500, 626); - break; - } - break; - case 632: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID)] */ - switch(qnameID) { - case 361: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 361, 362); - break; - } - break; - case 638: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceTag)] */ - switch(qnameID) { - case 387: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 309, 95); - break; - } - break; - case 640: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DepartureTime)] */ - switch(qnameID) { - case 279: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}DepartureTime ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 497, 545); - break; - } - break; - case 642: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 271, 17); - break; - } - break; - case 643: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - switch(qnameID) { - case 374: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 651, 209); - break; - } - break; - case 646: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - switch(qnameID) { - case 103: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Signature ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 408, 186); - break; - } - break; - case 647: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - switch(qnameID) { - case 400: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}boolValue ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 13, 74); - break; - case 401: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}byteValue ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 13, 630); - break; - case 428: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}shortValue ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 13, 636); - break; - case 413: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}intValue ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 13, 454); - break; - case 419: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}physicalValue ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 13, 26); - break; - case 432: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}stringValue ) */ - errn = _exiEncodeStartElement(stream, 3, 5, state, qnameID, 13, 637); - break; - } - break; - case 651: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels)] */ - switch(qnameID) { - case 371: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 58, 635); - break; - case 339: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 59, 60); - break; - } - break; - case 656: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(qnameID) { - case 61: - /* SE( {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 107, 108); - break; - } - break; - case 658: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */ - switch(qnameID) { - case 160: - /* SE( {urn:iso:15118:2:2010:MsgBody}ContractID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 356, 357); - break; - } - break; - case 661: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent)] */ - switch(qnameID) { - case 305: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 662, 26); - break; - } - break; - case 662: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent)] */ - switch(qnameID) { - case 310: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 415, 26); - break; - } - break; - case 663: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(qnameID) { - case 189: - /* SE( {urn:iso:15118:2:2010:MsgBody}GenChallenge ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 349, 8); - break; - } - break; - case 669: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}costKind)] */ - switch(qnameID) { - case 404: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}costKind ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 2, 3); - break; - } - break; - case 674: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVCCID)] */ - switch(qnameID) { - case 171: - /* SE( {urn:iso:15118:2:2010:MsgBody}EVCCID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 629, 223); - break; - } - break; - case 675: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID)] */ - switch(qnameID) { - case 374: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 651, 209); - break; - } - break; - case 682: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 281, 17); - break; - } - break; - case 683: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent)] */ - switch(qnameID) { - case 293: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 50, 26); - break; - } - break; - case 684: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 87, 17); - break; - } - break; - case 687: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */ - switch(qnameID) { - case 383: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}ServiceID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 607, 65); - break; - } - break; - case 689: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 628, 17); - break; - } - break; - case 692: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}boolValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}byteValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}shortValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}intValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}physicalValue), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}stringValue)] */ - switch(qnameID) { - case 400: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}boolValue ) */ - errn = _exiEncodeStartElement(stream, 3, 0, state, qnameID, 13, 74); - break; - case 401: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}byteValue ) */ - errn = _exiEncodeStartElement(stream, 3, 1, state, qnameID, 13, 630); - break; - case 428: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}shortValue ) */ - errn = _exiEncodeStartElement(stream, 3, 2, state, qnameID, 13, 636); - break; - case 413: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}intValue ) */ - errn = _exiEncodeStartElement(stream, 3, 3, state, qnameID, 13, 454); - break; - case 419: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}physicalValue ) */ - errn = _exiEncodeStartElement(stream, 3, 4, state, qnameID, 13, 26); - break; - case 432: - /* SE( {urn:iso:15118:2:2010:MsgDataTypes}stringValue ) */ - errn = _exiEncodeStartElement(stream, 3, 5, state, qnameID, 13, 637); - break; - } - break; - case 696: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(qnameID) { - case 236: - /* SE( {urn:iso:15118:2:2010:MsgBody}SessionID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 40, 41); - break; - } - break; - case 700: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */ - switch(qnameID) { - case 214: - /* SE( {urn:iso:15118:2:2010:MsgBody}ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 521, 17); - break; - } - break; - case 703: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Modulus)] */ - switch(qnameID) { - case 83: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Modulus ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 570, 275); - break; - } - break; - case 705: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(qnameID) { - case 95: - /* SE( {http://www.w3.org/2000/09/xmldsig#}Reference ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 565, 169); - break; - } - break; - - default: - /* element qname not expected */ - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } - - return errn; -} - - - -int exiEncodeStartElementNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiEncodeStartElementGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - - -int exiEncodeEndElement(bitstream_t* stream, exi_state_t* state) { - int errn = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - switch (currentID) { - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = encodeNBitUnsignedInteger(stream, 4, 8); - break; - case 313: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SKI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509SubjectName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Certificate), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509CRL), START_ELEMENT_GENERIC, END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 3, 6); - break; - case 52: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 220: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 227: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 264: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = encodeNBitUnsignedInteger(stream, 3, 2); - break; - case 18: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}duration), END_ELEMENT] */ - case 21: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier), END_ELEMENT] */ - case 83: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - case 96: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 218: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Cost), END_ELEMENT] */ - case 244: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PaymentOption), END_ELEMENT] */ - case 247: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 250: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 256: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 257: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */ - case 206: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), END_ELEMENT] */ - case 283: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 323: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 326: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 337: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */ - case 340: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Parameter), END_ELEMENT] */ - case 346: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost), END_ELEMENT] */ - case 390: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 405: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 407: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 431: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transform), END_ELEMENT] */ - case 81: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Certificate), END_ELEMENT] */ - case 402: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 377: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty), END_ELEMENT] */ - case 328: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 265: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 474: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 392: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 10: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SubCertificates), END_ELEMENT] */ - case 44: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariff), END_ELEMENT] */ - case 62: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered), END_ELEMENT] */ - case 228: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 330: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), END_ELEMENT] */ - case 530: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}DateTimeNow), END_ELEMENT] */ - case 523: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SelectedService), END_ELEMENT] */ - case 572: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 565: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference), END_ELEMENT] */ - case 587: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry), END_ELEMENT] */ - case 53: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 448: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry), END_ELEMENT] */ - case 348: - /* StartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 606: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 644: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 646: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 102: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSet), END_ELEMENT] */ - case 607: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID), END_ELEMENT] */ - case 663: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 438: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry), END_ELEMENT] */ - case 361: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID), END_ELEMENT] */ - case 320: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple), END_ELEMENT] */ - case 391: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 249: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 681: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 288: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceParameterList), END_ELEMENT] */ - case 597: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */ - case 491: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT] */ - case 401: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 248: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = encodeNBitUnsignedInteger(stream, 2, 1); - break; - case 13: - /* Element[END_ELEMENT] */ - case 46: - /* FirstStartTag[END_ELEMENT] */ - case 50: - /* Element[END_ELEMENT] */ - case 56: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 82: - /* Element[END_ELEMENT] */ - case 109: - /* Element[END_ELEMENT] */ - case 121: - /* Element[END_ELEMENT] */ - case 125: - /* Element[END_ELEMENT] */ - case 30: - /* Element[END_ELEMENT] */ - case 137: - /* FirstStartTag[END_ELEMENT] */ - case 38: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 224: - /* Element[END_ELEMENT] */ - case 185: - /* FirstStartTag[END_ELEMENT] */ - case 232: - /* Element[END_ELEMENT] */ - case 261: - /* Element[END_ELEMENT] */ - case 279: - /* Element[END_ELEMENT] */ - case 343: - /* FirstStartTag[END_ELEMENT] */ - case 129: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 352: - /* Element[END_ELEMENT] */ - case 358: - /* Element[END_ELEMENT] */ - case 381: - /* Element[END_ELEMENT] */ - case 393: - /* FirstStartTag[END_ELEMENT] */ - case 251: - /* Element[END_ELEMENT] */ - case 408: - /* Element[END_ELEMENT] */ - case 410: - /* Element[END_ELEMENT] */ - case 173: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 415: - /* Element[END_ELEMENT] */ - case 420: - /* Element[END_ELEMENT] */ - case 421: - /* Element[END_ELEMENT] */ - case 423: - /* Element[END_ELEMENT] */ - case 432: - /* FirstStartTag[END_ELEMENT] */ - case 440: - /* Element[END_ELEMENT] */ - case 363: - /* Element[END_ELEMENT] */ - case 447: - /* Element[END_ELEMENT] */ - case 22: - /* Element[END_ELEMENT] */ - case 36: - /* Element[END_ELEMENT] */ - case 473: - /* Element[END_ELEMENT] */ - case 480: - /* Element[END_ELEMENT] */ - case 324: - /* Element[END_ELEMENT] */ - case 489: - /* Element[END_ELEMENT] */ - case 444: - /* Element[END_ELEMENT] */ - case 494: - /* Element[END_ELEMENT] */ - case 64: - /* Element[END_ELEMENT] */ - case 150: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 349: - /* Element[END_ELEMENT] */ - case 504: - /* Element[END_ELEMENT] */ - case 354: - /* Element[END_ELEMENT] */ - case 505: - /* Element[END_ELEMENT] */ - case 516: - /* Element[END_ELEMENT] */ - case 528: - /* FirstStartTag[END_ELEMENT] */ - case 89: - /* Element[END_ELEMENT] */ - case 370: - /* Element[END_ELEMENT] */ - case 558: - /* Element[END_ELEMENT] */ - case 372: - /* Element[END_ELEMENT] */ - case 561: - /* FirstStartTag[END_ELEMENT] */ - case 5: - /* Element[END_ELEMENT] */ - case 258: - /* Element[END_ELEMENT] */ - case 581: - /* Element[END_ELEMENT] */ - case 584: - /* Element[END_ELEMENT] */ - case 601: - /* Element[END_ELEMENT] */ - case 609: - /* Element[END_ELEMENT] */ - case 191: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 573: - /* Element[END_ELEMENT] */ - case 149: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 629: - /* Element[END_ELEMENT] */ - case 16: - /* Element[END_ELEMENT] */ - case 231: - /* Element[END_ELEMENT] */ - case 639: - /* FirstStartTag[END_ELEMENT] */ - case 307: - /* Element[END_ELEMENT] */ - case 302: - /* Element[END_ELEMENT] */ - case 655: - /* Element[END_ELEMENT] */ - case 413: - /* Element[END_ELEMENT] */ - case 289: - /* Element[END_ELEMENT] */ - case 28: - /* Element[END_ELEMENT] */ - case 532: - /* Element[END_ELEMENT] */ - case 479: - /* Element[END_ELEMENT] */ - case 670: - /* Element[END_ELEMENT] */ - case 671: - /* Element[END_ELEMENT] */ - case 333: - /* Element[END_ELEMENT] */ - case 563: - /* Element[END_ELEMENT] */ - case 79: - /* Element[END_ELEMENT] */ - case 151: - /* First(xsi:type)StartTag[END_ELEMENT] */ - case 553: - /* Element[END_ELEMENT] */ - case 654: - /* Element[END_ELEMENT] */ - case 387: - /* Element[END_ELEMENT] */ - case 19: - /* Element[END_ELEMENT] */ - case 73: - /* Element[END_ELEMENT] */ - case 560: - /* Element[END_ELEMENT] */ - case 691: - /* FirstStartTag[END_ELEMENT] */ - case 594: - /* Element[END_ELEMENT] */ - case 539: - /* Element[END_ELEMENT] */ - case 693: - /* Element[END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 1, 0); - break; - case 301: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - case 290: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CableCheckRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingStatusRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}CurrentDemandRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PreChargeRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDetailRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionSetupRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionStopRes), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes), END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 6, 35); - break; - case 33: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - case 472: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 536: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 235: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 3, 3); - break; - case 295: - /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = encodeNBitUnsignedInteger(stream, 2, 0); - break; - case 204: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKISexp), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 310: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - case 327: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}J), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Seed), END_ELEMENT] */ - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - case 388: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 490: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket), START_ELEMENT_GENERIC, END_ELEMENT] */ - case 585: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 605: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit), END_ELEMENT] */ - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - case 507: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgHeader}Notification), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Signature), END_ELEMENT] */ - case 509: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyInfo), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Object), END_ELEMENT] */ - case 179: - /* FirstStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceCategory), END_ELEMENT] */ - case 34: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter), END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 2, 2); - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 471: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FullSOC), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}BulkSOC), END_ELEMENT] */ - case 535: - /* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 3, 4); - break; - - default: - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } - - if (errn < 0) { - return errn; - } - - /* pop item */ - return exi__PopStack(state); -} - - - -int exiEncodeCharacters(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int16_t moveOnID = 0; - int deviantChars = 0; - - int16_t currentID = state->grammarStack[state->stackIndex]; - switch (currentID) { - case 84: - case 571: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 3, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 247: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 249; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 57: - case 111: - case 226: - case 272: - case 294: - case 209: - case 495: - case 311: - case 266: - case 613: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - if (val->type == EXI_DATATYPE_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 52: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 53; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 3, 5); - deviantChars = 1; - } - break; - case 53: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 53; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 255: - case 270: - case 374: - case 439: - case 483: - case 525: - case 546: - case 695: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - if (val->type == EXI_DATATYPE_DATETIME) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDateTime(stream, &val->datetime); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 391: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 391; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 611: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 458: - /* StartTag[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 201; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 2); - encodeNBitUnsignedInteger(stream, 3, 4); - deviantChars = 1; - } - break; - case 367: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 392: - case 644: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 392; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 221: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 221; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 225: - /* Element[CHARACTERS[BOOLEAN]] */ - if (val->type == EXI_DATATYPE_BOOLEAN) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBoolean(stream, val->boolean); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 120: - case 365: - case 445: - case 575: - case 676: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 248: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 248; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 215: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 220; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 295: - /* Element[END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 295; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 2); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 464: - case 242: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 4, 8); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 242; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 4, 9); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 630: - /* First(xsi:type)StartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 4: - case 51: - case 66: - case 99: - case 297: - case 300: - case 351: - case 403: - case 404: - case 406: - case 428: - case 429: - case 450: - case 460: - case 493: - case 519: - case 526: - case 641: - case 653: - case 664: - case 665: - case 686: - case 699: - /* Element[CHARACTERS[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 293: - case 368: - case 452: - case 559: - case 562: - case 631: - case 657: - case 697: - /* Element[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 85: - case 331: - case 117: - case 3: - case 371: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 223: - case 593: - case 41: - case 531: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - if (val->type == EXI_DATATYPE_BINARY_HEX) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 227: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 228; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 3, 5); - deviantChars = 1; - } - break; - case 104: - case 212: - case 219: - case 312: - case 366: - case 383: - case 566: - case 620: - case 660: - case 694: - /* Element[CHARACTERS[INTEGER]] */ - if (val->type == EXI_DATATYPE_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 265: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 265; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 222: - case 154: - case 315: - case 637: - case 569: - case 159: - /* First(xsi:type)StartTag[CHARACTERS[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 200: - case 201: - /* Element[START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 201; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 2); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 190: - /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 2); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 649: - case 680: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 1, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 31: - case 245: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 1, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 322: - case 344: - case 551: - /* Element[CHARACTERS[LIST]] */ - if (val->type == EXI_DATATYPE_LIST) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger32(stream, val->list.len); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 6); - encodeNBitUnsignedInteger(stream, 3, 5); - deviantChars = 1; - } - break; - case 220: - case 510: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}XPath), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 220; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 427: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 5, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 468: - case 65: - case 583: - case 648: - case 690: - case 704: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 286: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - if (val->type == EXI_DATATYPE_DECIMAL) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDecimal(stream, &val->decimal); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 402: - case 681: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 384: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 3, -3); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 401: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 595: - case 645: - /* Element[CHARACTERS[FLOAT]] */ - if (val->type == EXI_DATATYPE_FLOAT) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeFloat(stream, &val->float_me); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 5); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 402; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 308: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 7, 0); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 339: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 267; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 60: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 17: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 5, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 4, 9); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 242; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 4, 10); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 623: - case 659: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - if (val->type == EXI_DATATYPE_FLOAT) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeFloat(stream, &val->float_me); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 77: - case 246: - case 424: - case 492: - case 317: - case 205: - case 316: - /* First(xsi:type)StartTag[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 240: - /* StartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 4, 8); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 242; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 4, 9); - encodeNBitUnsignedInteger(stream, 3, 4); - deviantChars = 1; - } - break; - case 264: - case 267: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}HMACOutputLength), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 267; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 576: - case 296: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 296; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 210: - case 236: - case 325: - case 499: - case 508: - case 666: - case 668: - case 679: - /* Element[CHARACTERS[DATETIME]] */ - if (val->type == EXI_DATATYPE_DATETIME) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDateTime(stream, &val->datetime); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 390: - /* StartTag[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 392; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 2, 3); - deviantChars = 1; - } - break; - case 414: - case 698: - case 701: - /* FirstStartTag[CHARACTERS[LIST]] */ - if (val->type == EXI_DATATYPE_LIST) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger32(stream, val->list.len); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 211: - case 229: - case 359: - case 385: - case 511: - case 673: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 228: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 228; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 105: - /* StartTag[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 4); - deviantChars = 1; - } - break; - case 334: - case 454: - case 252: - case 616: - case 625: - case 636: - case 554: - case 502: - case 306: - case 634: - /* First(xsi:type)StartTag[CHARACTERS[INTEGER]] */ - if (val->type == EXI_DATATYPE_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 23: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 3, -3); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 42: - case 515: - case 667: - case 685: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 4, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 96: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 96; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 155: - /* FirstStartTag[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DSAKeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RSAKeyValue), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 296; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 405: - case 249: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 249; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 475: - case 633: - case 652: - case 677: - /* Element[CHARACTERS[BINARY_HEX]] */ - if (val->type == EXI_DATATYPE_BINARY_HEX) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 268: - case 269: - case 534: - case 11: - case 148: - case 275: - case 304: - case 706: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 114: - case 418: - case 469: - case 119: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 4, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 12: - case 552: - case 627: - case 591: - case 20: - case 545: - case 124: - case 547: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 32: - case 100: - case 282: - case 375: - case 380: - case 398: - case 8: - case 409: - case 449: - case 459: - case 357: - case 503: - case 518: - case 527: - case 538: - case 555: - case 550: - case 362: - case 672: - case 678: - case 635: - case 688: - case 702: - /* FirstStartTag[CHARACTERS[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 214: - case 498: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 3, val->enumeration); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 650: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 7, 0); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 241: - /* Element[START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 4, 9); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 241; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 4, 10); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 283: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 283; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 74: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - if (val->type == EXI_DATATYPE_BOOLEAN) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBoolean(stream, val->boolean); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 389: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 529: - /* Element[CHARACTERS[DECIMAL]] */ - if (val->type == EXI_DATATYPE_DECIMAL) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDecimal(stream, &val->decimal); - moveOnID = 5; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - - default: - return EXI_ERROR_UNEXPECTED_CHARACTERS; - } - - if (currentID < 0) { - /* TODO runtime rules */ - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - } else if (deviantChars) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - - return errn; -} - - -int exiEncodeAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val) { - int16_t moveOnID = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - - switch (currentID) { - case 92: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod)] */ - switch(qnameID) { - case 2: - moveOnID = 106; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 108: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(qnameID) { - case 0: - moveOnID = 247; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 132: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert)] */ - switch(qnameID) { - case 2: - moveOnID = 417; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 133: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(qnameID) { - case 2: - moveOnID = 476; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 134: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain)] */ - switch(qnameID) { - case 2: - moveOnID = 395; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 135: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(qnameID) { - case 2: - moveOnID = 318; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 139: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}GenChallenge), END_ELEMENT] */ - switch(qnameID) { - case 2: - moveOnID = 348; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 3); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 147: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(qnameID) { - case 0: - moveOnID = 390; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 153: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyName), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}KeyValue), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}RetrievalMethod), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}X509Data), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}PGPData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SPKIData), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}MgmtData), START_ELEMENT_GENERIC, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 2: - moveOnID = 240; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 4, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 4, 10); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 156: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Reference)] */ - switch(qnameID) { - case 2: - moveOnID = 564; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 157: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}SessionID)] */ - switch(qnameID) { - case 2: - moveOnID = 39; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 160: - /* FirstStartTag[ATTRIBUTE[STRING](Encoding), ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 1: - moveOnID = 399; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 6); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 2: - moveOnID = 400; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 6); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 3: - moveOnID = 401; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 6); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 169: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 2: - moveOnID = 621; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 6: - moveOnID = 622; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 7: - moveOnID = 276; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 171: - /* FirstStartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 6: - moveOnID = 599; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 7: - moveOnID = 474; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 186: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignedInfo)] */ - switch(qnameID) { - case 2: - moveOnID = 350; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 187: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(qnameID) { - case 0: - moveOnID = 339; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 188: - /* FirstStartTag[ATTRIBUTE[STRING](Id), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}SignatureProperty)] */ - switch(qnameID) { - case 2: - moveOnID = 577; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 189: - /* FirstStartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](Target)] */ - switch(qnameID) { - case 2: - moveOnID = 457; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 5: - moveOnID = 458; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 190: - /* FirstStartTag[ATTRIBUTE[STRING](Id), CHARACTERS[BINARY_BASE64]] */ - switch(qnameID) { - case 2: - moveOnID = 105; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 192: - /* FirstStartTag[ATTRIBUTE[STRING](Algorithm)] */ - switch(qnameID) { - case 0: - moveOnID = 215; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 202: - /* FirstStartTag[ATTRIBUTE[STRING](Name)] */ - switch(qnameID) { - case 4: - moveOnID = 203; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 203: - /* StartTag[ATTRIBUTE[ENUMERATION](ValueType)] */ - switch(qnameID) { - case 8: - moveOnID = 647; - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 3, val->enumeration); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 399: - /* StartTag[ATTRIBUTE[STRING](Id), ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 2: - moveOnID = 400; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 3: - moveOnID = 401; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 5); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 400: - /* StartTag[ATTRIBUTE[STRING](MimeType), START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - switch(qnameID) { - case 3: - moveOnID = 401; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 457: - /* StartTag[ATTRIBUTE[STRING](Target)] */ - switch(qnameID) { - case 5: - moveOnID = 458; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 533: - /* FirstStartTag[ATTRIBUTE[STRING](Id)] */ - switch(qnameID) { - case 2: - moveOnID = 643; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 1, 1); - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 599: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), END_ELEMENT] */ - switch(qnameID) { - case 7: - moveOnID = 474; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 3); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 621: - /* StartTag[ATTRIBUTE[STRING](Type), ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 6: - moveOnID = 622; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - case 7: - moveOnID = 276; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 3, 4); - errn = encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeNBitUnsignedInteger(stream, 2, 1); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - case 622: - /* StartTag[ATTRIBUTE[STRING](URI), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}Transforms), START_ELEMENT({http://www.w3.org/2000/09/xmldsig#}DigestMethod)] */ - switch(qnameID) { - case 7: - moveOnID = 276; - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } else { - errn = _exiValueToString(val); - if(errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, 2, 3); - errn = encodeNBitUnsignedInteger(stream, 3, 2); - errn = encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, qnameID, &val->str); - } - break; - } - break; - - } - - /* no expected attribute */ - if (currentID < 0) { - /* runtime element */ - errn = _encode2ndLevelAttribute(stream, state, qnameID, val); - } else { - if(moveOnID == 0) { - /* no action yet */ -#if EXI_STRICT != 0 - /* no 2nd level events in strict mode for schema-informed grammars */ - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; -#else /* EXI_STRICT != 0 */ - errn = _encode2ndLevelAttribute(stream, state, qnameID, val); -#endif /* EXI_STRICT != 0 */ - } else { - state->grammarStack[state->stackIndex] = moveOnID; - } - } - - return errn; -} - - -int exiEncodeAttributeNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName, exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - -int exiEncodeAttributeGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName, exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiEncodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - - switch (state->grammarStack[state->stackIndex]) { - - } - - if (errn < 0) { - return errn; - } - - errn = encodeBoolean(stream, val->boolean); - if (!errn && val->boolean) { - /* handle xsi:nil == true */ - errn = exi__HandleXsiNilTrue(state); - } - return errn; -} - - - -int exiEncodeAttributeXsiType(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - /* encode xsi:type event code */ - switch (state->grammarStack[state->stackIndex]) { - case 12: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 56: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 77: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 38: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 246: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 334: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 129: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 173: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 424: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 454: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 338: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 222: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 150: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 154: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 492: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 552: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 191: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 317: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 315: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 252: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 616: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 149: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 625: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 627: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 630: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 636: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 554: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 591: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 502: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 205: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 20: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 545: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 316: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 124: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 637: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 306: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 151: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 0); - break; - case 569: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 152: - errn = encodeNBitUnsignedInteger(stream, 2, 2); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 159: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 547: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 634: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - - default: - return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE; - } - if (errn) { - return errn; - } - - /* encode qname */ - errn = _encodeAttributeXsiTypeContent(stream, state, val); - - return errn; -} - - - - -#endif - diff --git a/src/codec/EXIEncoder.h b/src/codec/EXIEncoder.h deleted file mode 100644 index 09ee1a5..0000000 --- a/src/codec/EXIEncoder.h +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI__ENCODER_H -#define EXI__ENCODER_H - -/** -* \file EXIEncoder.h -* \brief EXI Encoder -* -*/ - -#include "EXITypes.h" -#include "EXIEncoder.h" - -/** - * \brief Initialize EXI encoder - * - * Resets & initializes the EXI encoder. - * - * \param stream Output Stream - * \param state Codec state - * \param runtimeTable Runtime name-tables - * \param stringTable String table - * \return Error-Code <> 0 - * - */ -int exiInitEncoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable); - -/** - * \brief Reports the beginning of a set of XML events - * - * see EXI StartDocument (SD) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiEncodeStartDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Reports the end of a set of XML events - * - * see EXI EndDocument (ED) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiEncodeEndDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Supplies the start of a known element - * - * Provides access to the namespace URI and local name of the start tag by providing qnameID. - * Note: Both, namespace URI and local name are known (schema-informed) or have been encoded before. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \return Error-Code <> 0 - * - */ -int -exiEncodeStartElement(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID); - -/** - * \brief Supplies the start of an element where the namespace is known - * - * Note: Namespace URI is known (schema-informed) or has been encoded before while local name is unknown. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUriID namespace URI ID - * \param localName local name as string - * \return Error-Code <> 0 - * - */ -int exiEncodeStartElementNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName); - -/** - * \brief Supplies the start of an element where the namespace and the local name is unknown - * - * Note: Neither namespace URI nor local name is known. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUri namespace URI as string - * \param localName local name as string - * \return Error-Code <> 0 - * - */ -int exiEncodeStartElementGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName); - -/** - * \brief Supplies the end tag of an element - * - * see EXI EndElement (EE) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiEncodeEndElement(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Supplies characters value - * - * Note: Special handling for list value. - * see EXI Characters (CH) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiEncodeCharacters(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies an attribute qname and value - * - * Note: Special handling for list value. - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiEncodeAttribute(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID, exi_value_t* val); - - - - -/** - * \brief Supplies an attribute qname and value where the namespace is known - * - * Note: Special handling for list value. - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUriID Qualified namespace URI ID - * \param localName Qualified localname as String - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiEncodeAttributeNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName, exi_value_t* val); - - -/** - * \brief Supplies an attribute qname and value where the namespace and the local name is unknown - * - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUri namespace URI as string - * \param localName local name as string - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiEncodeAttributeGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName, exi_value_t* val); - - - -/** - * \brief Supplies an xsi:nil attribute - * - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiEncodeAttributeXsiNil(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies an xsi:type attribute - * - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiEncodeAttributeXsiType(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies list value for characters and attribute event - * - * List values are special given that first the number and type of entry needs to be passed (element/attribute event) and then one by one the actual values. - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \param val one list value - * \param lt list type - * \return Error-Code <> 0 - * - */ -int exiEncodeListValue(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/EXIHeaderDecoder.c b/src/codec/EXIHeaderDecoder.c deleted file mode 100644 index 5a72761..0000000 --- a/src/codec/EXIHeaderDecoder.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "EXIHeaderDecoder.h" -#include "BitInputStream.h" -#include "DecoderChannel.h" -#include "ErrorCodes.h" - -#ifndef EXI_HEADER_DECODER_C -#define EXI_HEADER_DECODER_C - -int readEXIHeader(bitstream_t* stream) { - uint32_t header = 0; - int errn = readBits(stream, 8, &header); - if (errn < 0) { - return errn; - } - if(header == '$') { - /* we do not support "EXI Cookie" */ - errn = EXI_UNSUPPORTED_HEADER_COOKIE; - } else if ( header & 0x20 ) { - /* we do not support "Presence Bit for EXI Options" */ - errn = EXI_UNSUPPORTED_HEADER_OPTIONS; - } else { - /* Yes, a *simple* header */ - errn = 0; - } - return errn; -} - - -#endif - - diff --git a/src/codec/EXIHeaderDecoder.h b/src/codec/EXIHeaderDecoder.h deleted file mode 100644 index 1c20091..0000000 --- a/src/codec/EXIHeaderDecoder.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -/** - * \file EXIHeaderDecoder.h - * \brief EXI Header Decoder - * - */ - -#ifndef EXI_HEADER_DECODER_H -#define EXI_HEADER_DECODER_H - -/** - * \brief Reads EXI header - * - * \param stream Input Stream - * \return Error-Code <> 0 - * - */ -int readEXIHeader(bitstream_t* stream); - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/EXIHeaderEncoder.c b/src/codec/EXIHeaderEncoder.c deleted file mode 100644 index f33688c..0000000 --- a/src/codec/EXIHeaderEncoder.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#include "EXIHeaderEncoder.h" -#include "BitOutputStream.h" -#include "EncoderChannel.h" - -#ifndef EXI_HEADER_ENCODER_C -#define EXI_HEADER_ENCODER_C - -int writeEXIHeader(bitstream_t* stream) { - return writeBits(stream, 8, 128); -} - - -#endif - - diff --git a/src/codec/EXIHeaderEncoder.h b/src/codec/EXIHeaderEncoder.h deleted file mode 100644 index 606817d..0000000 --- a/src/codec/EXIHeaderEncoder.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -/** - * \file EXIHeaderEncoder.h - * \brief EXI Header Encoder - * - */ - -#ifndef EXI_HEADER_ENCODER_H -#define EXI_HEADER_ENCODER_H - - -/** - * \brief Writes EXI header - * - * \param stream Output Stream - * \return Error-Code <> 0 - * - */ -int writeEXIHeader(bitstream_t* stream); - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/EXIOptions.h b/src/codec/EXIOptions.h deleted file mode 100644 index 3abc3b8..0000000 --- a/src/codec/EXIOptions.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file EXIOptions.h - * \brief EXI Options - * - */ - -#ifndef EXI__OPTIONS_H -#define EXI__OPTIONS_H - - -/** - * \brief Option 'strict' - * - * Strict interpretation of schemas is used to achieve better compactness. - * Default Value: false - */ -#define EXI_STRICT 0 - - -/** - * \brief Option 'valueMaxLength' - * - * Specifies the maximum string length of value content items to be - * considered for addition to the string table. - * Default Value: unbounded (-1) - */ -#define EXI_VALUE_MAX_LENGTH -1 - - -/** - * \brief Option 'valuePartitionCapacity' - * - * Specifies the total capacity of value partitions in a string table. - * Default Value: unbounded (-1) - */ -#define EXI_VALUE_PARTITION_CAPACITY 0 - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/EXITypes.h b/src/codec/EXITypes.h deleted file mode 100644 index e62706a..0000000 --- a/src/codec/EXITypes.h +++ /dev/null @@ -1,535 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file EXITypes.h - * \brief Basic type definitions and structs - * - */ - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -/** - * \file EncoderChannel.h - * \brief EXI Encoder Channel - * - */ - -#ifndef ENCODER_CHANNEL_H -#define ENCODER_CHANNEL_H - -/** - * \brief Encode byte value - * - * \param stream Output Stream - * \param b byte - * \return Error-Code <> 0 - * - */ -int encode(bitstream_t* stream, uint8_t b); - - -/** - * \brief Encode a single boolean value - * - * A false value is encoded as 0 and true value is encode as 1. - * - * \param stream Output Stream - * \param b boolean - * \return Error-Code <> 0 - * - */ -int encodeBoolean(bitstream_t* stream, int b); - - -/** - * \brief Encode n-bit unsigned integer - * - * The n least significant bits of parameter b starting with the - * most significant, i.e. from left to right. - * - * \param stream Output Stream - * \param nbits number of bits - * \param val value - * \return Error-Code <> 0 - * - */ -int encodeNBitUnsignedInteger(bitstream_t* stream, uint16_t nbits, uint32_t val); - - -/** - * \brief Encode unsigned integer - * - * Encode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param iv Unsigned integer value - * \return Error-Code <> 0 - * - */ -int encodeUnsignedInteger(bitstream_t* stream, exi_integer_t* iv); - - -/** - * \brief Encode unsigned integer - * - * Encode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param n Unsigned integer value 32 bits - * \return Error-Code <> 0 - * - */ -int encodeUnsignedInteger32(bitstream_t* stream, uint32_t n); - - -/** - * \brief Encode unsigned integer - * - * Encode an arbitrary precision non negative integer using - * a sequence of octets. The most significant bit of the last - * octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param n Unsigned integer value 64 bits - * \return Error-Code <> 0 - * - */ -int encodeUnsignedInteger64(bitstream_t* stream, uint64_t n); - - -/** - * \brief Encode integer - * - * Encode an arbitrary precision integer using a sign boolean - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param iv Integer value - * \return Error-Code <> 0 - * - */ -int encodeInteger(bitstream_t* stream, exi_integer_t* iv); - - -/** - * \brief Encode integer - * - * Encode an arbitrary precision integer using a sign boolean - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param n Integer value 32 bits - * \return Error-Code <> 0 - * - */ -int encodeInteger32(bitstream_t* stream, int32_t n); - - -/** - * \brief Encode integer - * - * Encode an arbitrary precision integer using a sign boolean - * followed by a sequence of octets. The most significant bit - * of the last octet is set to zero to indicate sequence termination. - * Only seven bits per octet are used to store the integer's value. - * - * \param stream Output Stream - * \param n Integer value 64 bits - * \return Error-Code <> 0 - * - */ -int encodeInteger64(bitstream_t* stream, int64_t n); - - -/** - * \brief Encode float - * - * Encode a Float datatype as two consecutive Integers. The first - * Integer represents the mantissa of the floating point number - * and the second Integer represents the base-10 exponent of the - * floating point number. - * - * \param stream Output Stream - * \param f Float value - * \return Error-Code <> 0 - * - */ -int encodeFloat(bitstream_t* stream, exi_float_me_t* f); - - -/** - * \brief Encode decimal - * - * Encode a decimal represented as a Boolean sign followed by two - * Unsigned Integers. A sign value of zero (0) is used to represent - * positive Decimal values and a sign value of one (1) is used to - * represent negative Decimal values The first Integer represents - * the integral portion of the Decimal value. The second positive - * integer represents the fractional portion of the decimal with - * the digits in reverse order to preserve leading zeros. - * - * \param stream Output Stream - * \param d Decimal value - * \return Error-Code <> 0 - * - */ -int encodeDecimal(bitstream_t* stream, exi_decimal_t* d); - - -/** - * \brief Encode string - * - * Encode a length prefixed sequence of characters. - * - * \param stream Output Stream - * \param string String - * \return Error-Code <> 0 - * - */ -int encodeString(bitstream_t* stream, exi_string_ucs_t* string); - - -/** - * \brief Encode string value - * - * Encode a length prefixed sequence of characters - * in the sense of string tables - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param string String value - * \return Error-Code <> 0 - * - */ -int encodeStringValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_string_value_t* string); - - -/** - * \brief Encode restricted character set value - * - * Encode a length prefixed sequence of characters - * in the sense of string tables - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param rcs Restricted character set - * \param string String value - * \return Error-Code <> 0 - * - */ -int encodeRCSStringValue(bitstream_t* stream, exi_state_t* state, - uint16_t qnameID, exi_rcs_t* rcs, exi_string_value_t* string); - - -/** - * \brief Encode characters - * - * Encode a sequence of characters according to a given length. - * Each character is represented by its UCS [ISO/IEC 10646] - * code point encoded as an Unsigned Integer. - * - * \param stream Output Stream - * \param chars Characters - * \param len Numbr of characters - * \return Error-Code <> 0 - * - */ -int encodeUCSCharacters(bitstream_t* stream, uint32_t* chars, uint16_t len); - - -/** - * \brief Encode binary - * - * Encode a binary value as a length-prefixed sequence of octets. - * - * \param stream Output Stream - * \param bytes Byte values - * \return Error-Code <> 0 - * - */ -int encodeBinary(bitstream_t* stream, exi_bytes_t* bytes); - - -/** - * \brief Encode datetime - * - * Encode a datetime representation which is a sequence of values - * representing the individual components of the Date-Time. - * - * \param stream Output Stream - * \param datetime Datetime values - * \return Error-Code <> 0 - * - */ -int encodeDateTime(bitstream_t* stream, exi_datetime_t* datetime); - - -/** - * \brief Flush underlying bit output stream - * - * \param stream Output Stream - * \return Error-Code <> 0 - * - */ -int encodeFinish(bitstream_t* stream); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/ErrorCodes.h b/src/codec/ErrorCodes.h deleted file mode 100644 index 4a0b5e9..0000000 --- a/src/codec/ErrorCodes.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file ErrorCodes.h - * \brief Error Codes descriptions - * - */ - -#ifndef EXI_ERROR_CODES_H -#define EXI_ERROR_CODES_H - - -#define EXI_ERROR_INPUT_STREAM_EOF -10 -#define EXI_ERROR_OUTPUT_STREAM_EOF -11 -#define EXI_ERROR_INPUT_FILE_HANDLE -12 -#define EXI_ERROR_OUTPUT_FILE -13 - -#define EXI_ERROR_OUT_OF_BOUNDS -100 -#define EXI_ERROR_OUT_OF_STRING_BUFFER -101 -#define EXI_ERROR_OUT_OF_ASCII_BUFFER -102 -#define EXI_ERROR_OUT_OF_BYTE_BUFFER -103 -#define EXI_ERROR_OUT_OF_GRAMMAR_STACK -104 -#define EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK -105 -#define EXI_ERROR_OUT_OF_QNAMES -106 - -#define EXI_ERROR_UNKOWN_EVENT -109 -#define EXI_ERROR_UNKOWN_EVENT_CODE -110 -#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL1 -111 -#define EXI_ERROR_UNEXPECTED_EVENT_LEVEL2 -112 - -#define EXI_ERROR_UNEXPECTED_START_DOCUMENT -113 -#define EXI_ERROR_UNEXPECTED_END_DOCUMENT -114 -#define EXI_ERROR_UNEXPECTED_START_ELEMENT -115 -#define EXI_ERROR_UNEXPECTED_START_ELEMENT_NS -116 -#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC -117 -#define EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC_UNDECLARED -118 -#define EXI_ERROR_UNEXPECTED_END_ELEMENT -119 -#define EXI_ERROR_UNEXPECTED_CHARACTERS -120 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE -121 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_NS -122 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC -123 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_GENERIC_UNDECLARED -124 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE -125 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL -126 -#define EXI_ERROR_UNEXPECTED_GRAMMAR_ID -127 -#define EXI_ERROR_UNEXPECTED_ATTRIBUTE_MOVE_TO_CONTENT_RULE -128 - -#define EXI_UNSUPPORTED_NBIT_INTEGER_LENGTH -132 -#define EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS -133 -#define EXI_UNSUPPORTED_INTEGER_VALUE -134 -#define EXI_NEGATIVE_UNSIGNED_INTEGER_VALUE -135 -#define EXI_UNSUPPORTED_LIST_VALUE_TYPE -136 -#define EXI_UNSUPPORTED_HEADER_COOKIE -137 -#define EXI_UNSUPPORTED_HEADER_OPTIONS -138 - -#define EXI_UNSUPPORTED_GLOBAL_ATTRIBUTE_VALUE_TYPE -139 -#define EXI_UNSUPPORTED_STRING_VALUE_TYPE -140 -#define EXI_UNSUPPORTED_INTEGER_VALUE_TYPE -141 -#define EXI_UNSUPPORTED_DATETIME_TYPE -142 - -#define EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH -150 - -#define EXI_ERROR_UNEXPECTED_BYTE_VALUE -200 - - -#define EXI_ERROR_CONVERSION_NO_ASCII_CHARACTERS -300 -#define EXI_ERROR_CONVERSION_TYPE_TO_STRING -301 - - -#define EXI_DEVIANT_SUPPORT_NOT_DEPLOYED -500 - - -#endif /* EXI_ERROR_CODES_H */ - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/MethodsBag.c b/src/codec/MethodsBag.c deleted file mode 100644 index 0cbe484..0000000 --- a/src/codec/MethodsBag.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef METHODS_BAG_C -#define METHODS_BAG_C - -#include "MethodsBag.h" -#include "ErrorCodes.h" - -static const uint16_t smallLengths[] = { 0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, - 4, 4, 4 }; - -int exiGetCodingLength(uint32_t characteristics, uint16_t* codingLength) { - /* Note: we could use range expressions in switch statements but those are non-standard */ - /* e.g., case 1 ... 5: */ - - if (characteristics < 17) { - *codingLength = smallLengths[characteristics]; - return 0; - } else if (characteristics < 33) { - /* 17 .. 32 */ - *codingLength = 5; - return 0; - } else if (characteristics < 65) { - /* 33 .. 64 */ - *codingLength = 6; - return 0; - } else if (characteristics < 129) { - /* 65 .. 128 */ - *codingLength = 7; - return 0; - } else if (characteristics < 257) { - /* 129 .. 256 */ - *codingLength = 8; - return 0; - } else if (characteristics < 513) { - /* 257 .. 512 */ - *codingLength = 9; - return 0; - } else if (characteristics < 1025) { - /* 513 .. 1024 */ - *codingLength = 10; - return 0; - } else if (characteristics < 2049) { - /* 1025 .. 2048 */ - *codingLength = 11; - return 0; - } else if (characteristics < 4097) { - /* 2049 .. 4096 */ - *codingLength = 12; - return 0; - } else if (characteristics < 8193) { - /* 4097 .. 8192 */ - *codingLength = 13; - return 0; - } else if (characteristics < 16385) { - /* 8193 .. 16384 */ - *codingLength = 14; - return 0; - } else if (characteristics < 32769) { - /* 16385 .. 32768 */ - *codingLength = 15; - return 0; - } else if (characteristics < 65537) { - /* 32769 .. 65536 */ - *codingLength = 16; - return 0; - } else { - /* - return (int) Math.ceil(Math.log((double) (characteristics)) - / Math.log(2.0)); */ - return EXI_UNSUPPORTED_EVENT_CODE_CHARACTERISTICS; - } - -} - - -uint8_t numberOf7BitBlocksToRepresent(uint32_t n) { - /* assert (n >= 0); */ - - /* 7 bits */ - if (n < 128) { - return 1; - } - /* 14 bits */ - else if (n < 16384) { - return 2; - } - /* 21 bits */ - else if (n < 2097152) { - return 3; - } - /* 28 bits */ - else if (n < 268435456) { - return 4; - } - /* 35 bits */ - else { - /* int, 32 bits */ - return 5; - } -} - - - -#endif - diff --git a/src/codec/MethodsBag.h b/src/codec/MethodsBag.h deleted file mode 100644 index 76a89aa..0000000 --- a/src/codec/MethodsBag.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef METHODS_BAG_H -#define METHODS_BAG_H - -/** -* \file MethodsBag.h -* \brief Method bag for bit and octet functions -* -*/ - - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__NAME_TABLE_ENTRIES_C -#define EXI__NAME_TABLE_ENTRIES_C - -#include "NameTableEntries.h" - - - -/* ==================================== */ -/* String Table Population */ - -/* localName entries for URI '', id = 0 */ -/* - "Algorithm", "Encoding", "Id", "MimeType", "Name", - "Target", "Type", "URI", "ValueType" - */ - -/* localName entries for URI 'http://www.w3.org/XML/1998/namespace', id = 1 */ -/* - "base", "id", "lang", "space" - */ - -/* localName entries for URI 'http://www.w3.org/2001/XMLSchema-instance', id = 2 */ -/* - "nil", "type" - */ - -/* localName entries for URI 'http://www.w3.org/2001/XMLSchema', id = 3 */ -/* - "ENTITIES", "ENTITY", "ID", "IDREF", "IDREFS", - "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "Name", - "QName", "anySimpleType", "anyType", "anyURI", "base64Binary", - "boolean", "byte", "date", "dateTime", "decimal", - "double", "duration", "float", "gDay", "gMonth", - "gMonthDay", "gYear", "gYearMonth", "hexBinary", "int", - "integer", "language", "long", "negativeInteger", "nonNegativeInteger", - "nonPositiveInteger", "normalizedString", "positiveInteger", "short", "string", - "time", "token", "unsignedByte", "unsignedInt", "unsignedLong", - "unsignedShort" - */ - -/* localName entries for URI 'http://www.w3.org/2000/09/xmldsig#', id = 4 */ -/* - "CanonicalizationMethod", "CanonicalizationMethodType", "CryptoBinary", "DSAKeyValue", "DSAKeyValueType", - "DigestMethod", "DigestMethodType", "DigestValue", "DigestValueType", "Exponent", - "G", "HMACOutputLength", "HMACOutputLengthType", "J", "KeyInfo", - "KeyInfoType", "KeyName", "KeyValue", "KeyValueType", "Manifest", - "ManifestType", "MgmtData", "Modulus", "Object", "ObjectType", - "P", "PGPData", "PGPDataType", "PGPKeyID", "PGPKeyPacket", - "PgenCounter", "Q", "RSAKeyValue", "RSAKeyValueType", "Reference", - "ReferenceType", "RetrievalMethod", "RetrievalMethodType", "SPKIData", "SPKIDataType", - "SPKISexp", "Seed", "Signature", "SignatureMethod", "SignatureMethodType", - "SignatureProperties", "SignaturePropertiesType", "SignatureProperty", "SignaturePropertyType", "SignatureType", - "SignatureValue", "SignatureValueType", "SignedInfo", "SignedInfoType", "Transform", - "TransformType", "Transforms", "TransformsType", "X509CRL", "X509Certificate", - "X509Data", "X509DataType", "X509IssuerName", "X509IssuerSerial", "X509IssuerSerialType", - "X509SKI", "X509SerialNumber", "X509SubjectName", "XPath", "Y" - - */ - -/* localName entries for URI 'urn:iso:15118:2:2010:MsgBody', id = 5 */ -/* - "AC_EVSEStatus", "BulkChargingComplete", "CableCheckReq", "CableCheckReqType", "CableCheckRes", - "CableCheckResType", "CertificateInstallationReq", "CertificateInstallationReqType", "CertificateInstallationRes", "CertificateInstallationResType", - "CertificateUpdateReq", "CertificateUpdateReqType", "CertificateUpdateRes", "CertificateUpdateResType", "ChargeParameterDiscoveryReq", - "ChargeParameterDiscoveryReqType", "ChargeParameterDiscoveryRes", "ChargeParameterDiscoveryResType", "ChargeService", "ChargingComplete", - "ChargingProfile", "ChargingStatusReq", "ChargingStatusReqType", "ChargingStatusRes", "ChargingStatusResType", - "ContractAuthenticationReq", "ContractAuthenticationReqType", "ContractAuthenticationRes", "ContractAuthenticationResType", "ContractID", - "ContractSignatureCertChain", "ContractSignatureEncryptedPrivateKey", "CurrentDemandReq", "CurrentDemandReqType", "CurrentDemandRes", - "CurrentDemandResType", "DC_EVSEStatus", "DC_EVStatus", "DHParams", "DateTimeNow", - "EVCCID", "EVMaximumCurrentLimit", "EVMaximumPowerLimit", "EVMaximumVoltageLimit", "EVRequestedEnergyTransferType", - "EVSECurrentLimitAchieved", "EVSEID", "EVSEMaxCurrent", "EVSEMaximumCurrentLimit", "EVSEMaximumPowerLimit", - "EVSEMaximumVoltageLimit", "EVSEPowerLimitAchieved", "EVSEPresentCurrent", "EVSEPresentVoltage", "EVSEProcessing", - "EVSEVoltageLimitAchieved", "EVTargetCurrent", "EVTargetVoltage", "GenChallenge", "ListOfRootCertificateIDs", - "MeterInfo", "MeteringReceiptReq", "MeteringReceiptReqType", "MeteringReceiptRes", "MeteringReceiptResType", - "OEMProvisioningCert", "PaymentDetailsReq", "PaymentDetailsReqType", "PaymentDetailsRes", "PaymentDetailsResType", - "PaymentOptions", "PowerDeliveryReq", "PowerDeliveryReqType", "PowerDeliveryRes", "PowerDeliveryResType", - "PreChargeReq", "PreChargeReqType", "PreChargeRes", "PreChargeResType", "ReadyToChargeState", - "ReceiptRequired", "RemainingTimeToBulkSoC", "RemainingTimeToFullSoC", "ResponseCode", "RetryCounter", - "SAScheduleTupleID", "SelectedPaymentOption", "SelectedServiceList", "ServiceCategory", "ServiceDetailReq", - "ServiceDetailReqType", "ServiceDetailRes", "ServiceDetailResType", "ServiceDiscoveryReq", "ServiceDiscoveryReqType", - "ServiceDiscoveryRes", "ServiceDiscoveryResType", "ServiceID", "ServiceList", "ServiceParameterList", - "ServicePaymentSelectionReq", "ServicePaymentSelectionReqType", "ServicePaymentSelectionRes", "ServicePaymentSelectionResType", "ServiceScope", - "SessionID", "SessionSetupReq", "SessionSetupReqType", "SessionSetupRes", "SessionSetupResType", - "SessionStopReq", "SessionStopRes", "SessionStopResType", "SessionStopType", "WeldingDetectionReq", - "WeldingDetectionReqType", "WeldingDetectionRes", "WeldingDetectionResType" - */ - -/* localName entries for URI 'urn:iso:15118:2:2010:MsgDataTypes', id = 6 */ -/* - "AC_EVChargeParameter", "AC_EVChargeParameterType", "AC_EVSEChargeParameter", "AC_EVSEChargeParameterType", "AC_EVSEStatus", - "AC_EVSEStatusType", "BulkChargingComplete", "BulkSOC", "Certificate", "CertificateChainType", - "ChargingComplete", "ChargingProfileEntryMaxPower", "ChargingProfileEntryStart", "ChargingProfileType", "ConsumptionCost", - "ConsumptionCostType", "Cost", "CostType", "DC_EVChargeParameter", "DC_EVChargeParameterType", - "DC_EVErrorCodeType", "DC_EVPowerDeliveryParameter", "DC_EVPowerDeliveryParameterType", "DC_EVSEChargeParameter", "DC_EVSEChargeParameterType", - "DC_EVSEStatus", "DC_EVSEStatusCodeType", "DC_EVSEStatusType", "DC_EVStatus", "DC_EVStatusType", - "DepartureTime", "EAmount", "EPriceLevel", "EVCabinConditioning", "EVChargeParameter", - "EVChargeParameterType", "EVEnergyCapacity", "EVEnergyRequest", "EVErrorCode", "EVMaxCurrent", - "EVMaxVoltage", "EVMaximumCurrentLimit", "EVMaximumPowerLimit", "EVMaximumVoltageLimit", "EVMinCurrent", - "EVPowerDeliveryParameter", "EVPowerDeliveryParameterType", "EVRESSConditioning", "EVRESSSOC", "EVReady", - "EVRequestedEnergyTransferType", "EVSEChargeParameter", "EVSEChargeParameterType", "EVSECurrentRegulationTolerance", "EVSEEnergyToBeDelivered", - "EVSEIsolationStatus", "EVSEMaxCurrent", "EVSEMaxVoltage", "EVSEMaximumCurrentLimit", "EVSEMaximumPowerLimit", - "EVSEMaximumVoltageLimit", "EVSEMinCurrent", "EVSEMinimumCurrentLimit", "EVSEMinimumVoltageLimit", "EVSENotification", - "EVSENotificationType", "EVSEPeakCurrentRipple", "EVSEProcessingType", "EVSEStatus", "EVSEStatusCode", - "EVSEStatusType", "EVSESupportedEnergyTransferType", "EVStatus", "EVStatusType", "EnergyTransferType", - "Entry", "EntryType", "FaultCode", "FaultMsg", "FreeService", - "FullSOC", "IntervalType", "ListOfRootCertificateIDsType", "MeterID", "MeterInfoType", - "MeterReading", "MeterStatus", "Multiplier", "NotificationMaxDelay", "NotificationType", - "NumEPriceLevels", "PMax", "PMaxSchedule", "PMaxScheduleEntry", "PMaxScheduleEntryType", - "PMaxScheduleID", "PMaxScheduleType", "PMaxType", "Parameter", "ParameterSet", - "ParameterSetID", "ParameterSetType", "ParameterType", "PaymentOption", "PaymentOptionsType", - "PhysicalValueType", "PowerSwitchClosed", "ProfileEntry", "ProfileEntryType", "RCD", - "RelativeTimeInterval", "RelativeTimeIntervalType", "RootCertificateID", "SAIDType", "SAScheduleList", - "SAScheduleListType", "SAScheduleTuple", "SAScheduleTupleID", "SAScheduleTupleType", "SASchedules", - "SASchedulesType", "SalesTariff", "SalesTariffDescription", "SalesTariffEntry", "SalesTariffEntryType", - "SalesTariffID", "SalesTariffType", "SelectedService", "SelectedServiceListType", "SelectedServiceType", - "Service", "ServiceCategory", "ServiceCharge", "ServiceChargeType", "ServiceID", - "ServiceName", "ServiceParameterListType", "ServiceScope", "ServiceTag", "ServiceTagListType", - "ServiceTagType", "ServiceType", "SigMeterReading", "SubCertificates", "SubCertificatesType", - "TMeter", "TimeInterval", "Unit", "Value", "amount", - "amountMultiplier", "boolValue", "byteValue", "certificateType", "contractIDType", - "costKind", "costKindType", "dHParamsType", "duration", "evccIDType", - "evseIDType", "faultCodeType", "faultMsgType", "genChallengeType", "intValue", - "isolationLevelType", "meterIDType", "meterStatusType", "paymentOptionType", "percentValueType", - "physicalValue", "privateKeyType", "responseCodeType", "rootCertificateIDType", "serviceCategoryType", - "serviceIDType", "serviceNameType", "serviceScopeType", "sessionIDType", "shortValue", - "sigMeterReadingType", "start", "startValue", "stringValue", "tariffDescriptionType", - "unitMultiplierType", "unitSymbolType", "valueType" - */ - -/* localName entries for URI 'urn:iso:15118:2:2010:MsgDef', id = 7 */ -/* - "Body", "BodyBaseType", "BodyElement", "BodyType", "Header", - "V2G_Message" - */ - -/* localName entries for URI 'urn:iso:15118:2:2010:MsgHeader', id = 8 */ -/* - "MessageHeaderType", "Notification", "SessionID" - */ - - -/* number of local-name entries per URI */ -static uint16_t localNames[9] = { - /* '' */ - 9, - /* 'http://www.w3.org/XML/1998/namespace' */ - 4, - /* 'http://www.w3.org/2001/XMLSchema-instance' */ - 2, - /* 'http://www.w3.org/2001/XMLSchema' */ - 46, - /* 'http://www.w3.org/2000/09/xmldsig#' */ - 70, - /* 'urn:iso:15118:2:2010:MsgBody' */ - 118, - /* 'urn:iso:15118:2:2010:MsgDataTypes' */ - 188, - /* 'urn:iso:15118:2:2010:MsgDef' */ - 6, - /* 'urn:iso:15118:2:2010:MsgHeader' */ - 3 -}; - - -exi_name_table_prepopulated_t exiNameTablePrepopulated = { 9, localNames }; - - - - -#endif - diff --git a/src/codec/NameTableEntries.h b/src/codec/NameTableEntries.h deleted file mode 100644 index 01110fa..0000000 --- a/src/codec/NameTableEntries.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__NAME_TABLE_ENTRIES_H -#define EXI__NAME_TABLE_ENTRIES_H - -#include "EXITypes.h" - -/* ==================================== */ -/* String Table Population */ - -extern exi_name_table_prepopulated_t exiNameTablePrepopulated; - -#endif - diff --git a/src/codec/QNameDefines.h b/src/codec/QNameDefines.h deleted file mode 100644 index 543dc19..0000000 --- a/src/codec/QNameDefines.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI__QNAME_DEFINES_H -#define EXI__QNAME_DEFINES_H - -/** Number of pre-populated qnames */ -#define EXI_NUMBER_OF_PREPOPULATED_QNAMES 446 - -/** Number of runtime qnames */ -#define EXI_MAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES 100 - -/** Number of overall qnames (pre-populated from schema and runtime qnames) */ -#define EXI_MAX_NUMBER_OF_QNAMES (EXI_NUMBER_OF_PREPOPULATED_QNAMES + EXI_MAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES) - - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/QNames.c b/src/codec/QNames.c deleted file mode 100644 index 7f369f2..0000000 --- a/src/codec/QNames.c +++ /dev/null @@ -1,981 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__QNAMES_C -#define EXI__QNAMES_C - -#include "EXITypes.h" -#include "ErrorCodes.h" -#include "QNameDefines.h" - -/* qname is a composition of namespaceURI(ID) and localPart(ID) */ -static exi_eqname_t qnames[EXI_MAX_NUMBER_OF_QNAMES] = { - /* qnameID == 0: Algorithm */ - {0, 0}, - /* qnameID == 1: Encoding */ - {0, 1}, - /* qnameID == 2: Id */ - {0, 2}, - /* qnameID == 3: MimeType */ - {0, 3}, - /* qnameID == 4: Name */ - {0, 4}, - /* qnameID == 5: Target */ - {0, 5}, - /* qnameID == 6: Type */ - {0, 6}, - /* qnameID == 7: URI */ - {0, 7}, - /* qnameID == 8: ValueType */ - {0, 8}, - /* qnameID == 9: {http://www.w3.org/XML/1998/namespace}base */ - {1, 0}, - /* qnameID == 10: {http://www.w3.org/XML/1998/namespace}id */ - {1, 1}, - /* qnameID == 11: {http://www.w3.org/XML/1998/namespace}lang */ - {1, 2}, - /* qnameID == 12: {http://www.w3.org/XML/1998/namespace}space */ - {1, 3}, - /* qnameID == 13: {http://www.w3.org/2001/XMLSchema-instance}nil */ - {2, 0}, - /* qnameID == 14: {http://www.w3.org/2001/XMLSchema-instance}type */ - {2, 1}, - /* qnameID == 15: {http://www.w3.org/2001/XMLSchema}ENTITIES */ - {3, 0}, - /* qnameID == 16: {http://www.w3.org/2001/XMLSchema}ENTITY */ - {3, 1}, - /* qnameID == 17: {http://www.w3.org/2001/XMLSchema}ID */ - {3, 2}, - /* qnameID == 18: {http://www.w3.org/2001/XMLSchema}IDREF */ - {3, 3}, - /* qnameID == 19: {http://www.w3.org/2001/XMLSchema}IDREFS */ - {3, 4}, - /* qnameID == 20: {http://www.w3.org/2001/XMLSchema}NCName */ - {3, 5}, - /* qnameID == 21: {http://www.w3.org/2001/XMLSchema}NMTOKEN */ - {3, 6}, - /* qnameID == 22: {http://www.w3.org/2001/XMLSchema}NMTOKENS */ - {3, 7}, - /* qnameID == 23: {http://www.w3.org/2001/XMLSchema}NOTATION */ - {3, 8}, - /* qnameID == 24: {http://www.w3.org/2001/XMLSchema}Name */ - {3, 9}, - /* qnameID == 25: {http://www.w3.org/2001/XMLSchema}QName */ - {3, 10}, - /* qnameID == 26: {http://www.w3.org/2001/XMLSchema}anySimpleType */ - {3, 11}, - /* qnameID == 27: {http://www.w3.org/2001/XMLSchema}anyType */ - {3, 12}, - /* qnameID == 28: {http://www.w3.org/2001/XMLSchema}anyURI */ - {3, 13}, - /* qnameID == 29: {http://www.w3.org/2001/XMLSchema}base64Binary */ - {3, 14}, - /* qnameID == 30: {http://www.w3.org/2001/XMLSchema}boolean */ - {3, 15}, - /* qnameID == 31: {http://www.w3.org/2001/XMLSchema}byte */ - {3, 16}, - /* qnameID == 32: {http://www.w3.org/2001/XMLSchema}date */ - {3, 17}, - /* qnameID == 33: {http://www.w3.org/2001/XMLSchema}dateTime */ - {3, 18}, - /* qnameID == 34: {http://www.w3.org/2001/XMLSchema}decimal */ - {3, 19}, - /* qnameID == 35: {http://www.w3.org/2001/XMLSchema}double */ - {3, 20}, - /* qnameID == 36: {http://www.w3.org/2001/XMLSchema}duration */ - {3, 21}, - /* qnameID == 37: {http://www.w3.org/2001/XMLSchema}float */ - {3, 22}, - /* qnameID == 38: {http://www.w3.org/2001/XMLSchema}gDay */ - {3, 23}, - /* qnameID == 39: {http://www.w3.org/2001/XMLSchema}gMonth */ - {3, 24}, - /* qnameID == 40: {http://www.w3.org/2001/XMLSchema}gMonthDay */ - {3, 25}, - /* qnameID == 41: {http://www.w3.org/2001/XMLSchema}gYear */ - {3, 26}, - /* qnameID == 42: {http://www.w3.org/2001/XMLSchema}gYearMonth */ - {3, 27}, - /* qnameID == 43: {http://www.w3.org/2001/XMLSchema}hexBinary */ - {3, 28}, - /* qnameID == 44: {http://www.w3.org/2001/XMLSchema}int */ - {3, 29}, - /* qnameID == 45: {http://www.w3.org/2001/XMLSchema}integer */ - {3, 30}, - /* qnameID == 46: {http://www.w3.org/2001/XMLSchema}language */ - {3, 31}, - /* qnameID == 47: {http://www.w3.org/2001/XMLSchema}long */ - {3, 32}, - /* qnameID == 48: {http://www.w3.org/2001/XMLSchema}negativeInteger */ - {3, 33}, - /* qnameID == 49: {http://www.w3.org/2001/XMLSchema}nonNegativeInteger */ - {3, 34}, - /* qnameID == 50: {http://www.w3.org/2001/XMLSchema}nonPositiveInteger */ - {3, 35}, - /* qnameID == 51: {http://www.w3.org/2001/XMLSchema}normalizedString */ - {3, 36}, - /* qnameID == 52: {http://www.w3.org/2001/XMLSchema}positiveInteger */ - {3, 37}, - /* qnameID == 53: {http://www.w3.org/2001/XMLSchema}short */ - {3, 38}, - /* qnameID == 54: {http://www.w3.org/2001/XMLSchema}string */ - {3, 39}, - /* qnameID == 55: {http://www.w3.org/2001/XMLSchema}time */ - {3, 40}, - /* qnameID == 56: {http://www.w3.org/2001/XMLSchema}token */ - {3, 41}, - /* qnameID == 57: {http://www.w3.org/2001/XMLSchema}unsignedByte */ - {3, 42}, - /* qnameID == 58: {http://www.w3.org/2001/XMLSchema}unsignedInt */ - {3, 43}, - /* qnameID == 59: {http://www.w3.org/2001/XMLSchema}unsignedLong */ - {3, 44}, - /* qnameID == 60: {http://www.w3.org/2001/XMLSchema}unsignedShort */ - {3, 45}, - /* qnameID == 61: {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethod */ - {4, 0}, - /* qnameID == 62: {http://www.w3.org/2000/09/xmldsig#}CanonicalizationMethodType */ - {4, 1}, - /* qnameID == 63: {http://www.w3.org/2000/09/xmldsig#}CryptoBinary */ - {4, 2}, - /* qnameID == 64: {http://www.w3.org/2000/09/xmldsig#}DSAKeyValue */ - {4, 3}, - /* qnameID == 65: {http://www.w3.org/2000/09/xmldsig#}DSAKeyValueType */ - {4, 4}, - /* qnameID == 66: {http://www.w3.org/2000/09/xmldsig#}DigestMethod */ - {4, 5}, - /* qnameID == 67: {http://www.w3.org/2000/09/xmldsig#}DigestMethodType */ - {4, 6}, - /* qnameID == 68: {http://www.w3.org/2000/09/xmldsig#}DigestValue */ - {4, 7}, - /* qnameID == 69: {http://www.w3.org/2000/09/xmldsig#}DigestValueType */ - {4, 8}, - /* qnameID == 70: {http://www.w3.org/2000/09/xmldsig#}Exponent */ - {4, 9}, - /* qnameID == 71: {http://www.w3.org/2000/09/xmldsig#}G */ - {4, 10}, - /* qnameID == 72: {http://www.w3.org/2000/09/xmldsig#}HMACOutputLength */ - {4, 11}, - /* qnameID == 73: {http://www.w3.org/2000/09/xmldsig#}HMACOutputLengthType */ - {4, 12}, - /* qnameID == 74: {http://www.w3.org/2000/09/xmldsig#}J */ - {4, 13}, - /* qnameID == 75: {http://www.w3.org/2000/09/xmldsig#}KeyInfo */ - {4, 14}, - /* qnameID == 76: {http://www.w3.org/2000/09/xmldsig#}KeyInfoType */ - {4, 15}, - /* qnameID == 77: {http://www.w3.org/2000/09/xmldsig#}KeyName */ - {4, 16}, - /* qnameID == 78: {http://www.w3.org/2000/09/xmldsig#}KeyValue */ - {4, 17}, - /* qnameID == 79: {http://www.w3.org/2000/09/xmldsig#}KeyValueType */ - {4, 18}, - /* qnameID == 80: {http://www.w3.org/2000/09/xmldsig#}Manifest */ - {4, 19}, - /* qnameID == 81: {http://www.w3.org/2000/09/xmldsig#}ManifestType */ - {4, 20}, - /* qnameID == 82: {http://www.w3.org/2000/09/xmldsig#}MgmtData */ - {4, 21}, - /* qnameID == 83: {http://www.w3.org/2000/09/xmldsig#}Modulus */ - {4, 22}, - /* qnameID == 84: {http://www.w3.org/2000/09/xmldsig#}Object */ - {4, 23}, - /* qnameID == 85: {http://www.w3.org/2000/09/xmldsig#}ObjectType */ - {4, 24}, - /* qnameID == 86: {http://www.w3.org/2000/09/xmldsig#}P */ - {4, 25}, - /* qnameID == 87: {http://www.w3.org/2000/09/xmldsig#}PGPData */ - {4, 26}, - /* qnameID == 88: {http://www.w3.org/2000/09/xmldsig#}PGPDataType */ - {4, 27}, - /* qnameID == 89: {http://www.w3.org/2000/09/xmldsig#}PGPKeyID */ - {4, 28}, - /* qnameID == 90: {http://www.w3.org/2000/09/xmldsig#}PGPKeyPacket */ - {4, 29}, - /* qnameID == 91: {http://www.w3.org/2000/09/xmldsig#}PgenCounter */ - {4, 30}, - /* qnameID == 92: {http://www.w3.org/2000/09/xmldsig#}Q */ - {4, 31}, - /* qnameID == 93: {http://www.w3.org/2000/09/xmldsig#}RSAKeyValue */ - {4, 32}, - /* qnameID == 94: {http://www.w3.org/2000/09/xmldsig#}RSAKeyValueType */ - {4, 33}, - /* qnameID == 95: {http://www.w3.org/2000/09/xmldsig#}Reference */ - {4, 34}, - /* qnameID == 96: {http://www.w3.org/2000/09/xmldsig#}ReferenceType */ - {4, 35}, - /* qnameID == 97: {http://www.w3.org/2000/09/xmldsig#}RetrievalMethod */ - {4, 36}, - /* qnameID == 98: {http://www.w3.org/2000/09/xmldsig#}RetrievalMethodType */ - {4, 37}, - /* qnameID == 99: {http://www.w3.org/2000/09/xmldsig#}SPKIData */ - {4, 38}, - /* qnameID == 100: {http://www.w3.org/2000/09/xmldsig#}SPKIDataType */ - {4, 39}, - /* qnameID == 101: {http://www.w3.org/2000/09/xmldsig#}SPKISexp */ - {4, 40}, - /* qnameID == 102: {http://www.w3.org/2000/09/xmldsig#}Seed */ - {4, 41}, - /* qnameID == 103: {http://www.w3.org/2000/09/xmldsig#}Signature */ - {4, 42}, - /* qnameID == 104: {http://www.w3.org/2000/09/xmldsig#}SignatureMethod */ - {4, 43}, - /* qnameID == 105: {http://www.w3.org/2000/09/xmldsig#}SignatureMethodType */ - {4, 44}, - /* qnameID == 106: {http://www.w3.org/2000/09/xmldsig#}SignatureProperties */ - {4, 45}, - /* qnameID == 107: {http://www.w3.org/2000/09/xmldsig#}SignaturePropertiesType */ - {4, 46}, - /* qnameID == 108: {http://www.w3.org/2000/09/xmldsig#}SignatureProperty */ - {4, 47}, - /* qnameID == 109: {http://www.w3.org/2000/09/xmldsig#}SignaturePropertyType */ - {4, 48}, - /* qnameID == 110: {http://www.w3.org/2000/09/xmldsig#}SignatureType */ - {4, 49}, - /* qnameID == 111: {http://www.w3.org/2000/09/xmldsig#}SignatureValue */ - {4, 50}, - /* qnameID == 112: {http://www.w3.org/2000/09/xmldsig#}SignatureValueType */ - {4, 51}, - /* qnameID == 113: {http://www.w3.org/2000/09/xmldsig#}SignedInfo */ - {4, 52}, - /* qnameID == 114: {http://www.w3.org/2000/09/xmldsig#}SignedInfoType */ - {4, 53}, - /* qnameID == 115: {http://www.w3.org/2000/09/xmldsig#}Transform */ - {4, 54}, - /* qnameID == 116: {http://www.w3.org/2000/09/xmldsig#}TransformType */ - {4, 55}, - /* qnameID == 117: {http://www.w3.org/2000/09/xmldsig#}Transforms */ - {4, 56}, - /* qnameID == 118: {http://www.w3.org/2000/09/xmldsig#}TransformsType */ - {4, 57}, - /* qnameID == 119: {http://www.w3.org/2000/09/xmldsig#}X509CRL */ - {4, 58}, - /* qnameID == 120: {http://www.w3.org/2000/09/xmldsig#}X509Certificate */ - {4, 59}, - /* qnameID == 121: {http://www.w3.org/2000/09/xmldsig#}X509Data */ - {4, 60}, - /* qnameID == 122: {http://www.w3.org/2000/09/xmldsig#}X509DataType */ - {4, 61}, - /* qnameID == 123: {http://www.w3.org/2000/09/xmldsig#}X509IssuerName */ - {4, 62}, - /* qnameID == 124: {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial */ - {4, 63}, - /* qnameID == 125: {http://www.w3.org/2000/09/xmldsig#}X509IssuerSerialType */ - {4, 64}, - /* qnameID == 126: {http://www.w3.org/2000/09/xmldsig#}X509SKI */ - {4, 65}, - /* qnameID == 127: {http://www.w3.org/2000/09/xmldsig#}X509SerialNumber */ - {4, 66}, - /* qnameID == 128: {http://www.w3.org/2000/09/xmldsig#}X509SubjectName */ - {4, 67}, - /* qnameID == 129: {http://www.w3.org/2000/09/xmldsig#}XPath */ - {4, 68}, - /* qnameID == 130: {http://www.w3.org/2000/09/xmldsig#}Y */ - {4, 69}, - /* qnameID == 131: {urn:iso:15118:2:2010:MsgBody}AC_EVSEStatus */ - {5, 0}, - /* qnameID == 132: {urn:iso:15118:2:2010:MsgBody}BulkChargingComplete */ - {5, 1}, - /* qnameID == 133: {urn:iso:15118:2:2010:MsgBody}CableCheckReq */ - {5, 2}, - /* qnameID == 134: {urn:iso:15118:2:2010:MsgBody}CableCheckReqType */ - {5, 3}, - /* qnameID == 135: {urn:iso:15118:2:2010:MsgBody}CableCheckRes */ - {5, 4}, - /* qnameID == 136: {urn:iso:15118:2:2010:MsgBody}CableCheckResType */ - {5, 5}, - /* qnameID == 137: {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReq */ - {5, 6}, - /* qnameID == 138: {urn:iso:15118:2:2010:MsgBody}CertificateInstallationReqType */ - {5, 7}, - /* qnameID == 139: {urn:iso:15118:2:2010:MsgBody}CertificateInstallationRes */ - {5, 8}, - /* qnameID == 140: {urn:iso:15118:2:2010:MsgBody}CertificateInstallationResType */ - {5, 9}, - /* qnameID == 141: {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReq */ - {5, 10}, - /* qnameID == 142: {urn:iso:15118:2:2010:MsgBody}CertificateUpdateReqType */ - {5, 11}, - /* qnameID == 143: {urn:iso:15118:2:2010:MsgBody}CertificateUpdateRes */ - {5, 12}, - /* qnameID == 144: {urn:iso:15118:2:2010:MsgBody}CertificateUpdateResType */ - {5, 13}, - /* qnameID == 145: {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReq */ - {5, 14}, - /* qnameID == 146: {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryReqType */ - {5, 15}, - /* qnameID == 147: {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryRes */ - {5, 16}, - /* qnameID == 148: {urn:iso:15118:2:2010:MsgBody}ChargeParameterDiscoveryResType */ - {5, 17}, - /* qnameID == 149: {urn:iso:15118:2:2010:MsgBody}ChargeService */ - {5, 18}, - /* qnameID == 150: {urn:iso:15118:2:2010:MsgBody}ChargingComplete */ - {5, 19}, - /* qnameID == 151: {urn:iso:15118:2:2010:MsgBody}ChargingProfile */ - {5, 20}, - /* qnameID == 152: {urn:iso:15118:2:2010:MsgBody}ChargingStatusReq */ - {5, 21}, - /* qnameID == 153: {urn:iso:15118:2:2010:MsgBody}ChargingStatusReqType */ - {5, 22}, - /* qnameID == 154: {urn:iso:15118:2:2010:MsgBody}ChargingStatusRes */ - {5, 23}, - /* qnameID == 155: {urn:iso:15118:2:2010:MsgBody}ChargingStatusResType */ - {5, 24}, - /* qnameID == 156: {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReq */ - {5, 25}, - /* qnameID == 157: {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationReqType */ - {5, 26}, - /* qnameID == 158: {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationRes */ - {5, 27}, - /* qnameID == 159: {urn:iso:15118:2:2010:MsgBody}ContractAuthenticationResType */ - {5, 28}, - /* qnameID == 160: {urn:iso:15118:2:2010:MsgBody}ContractID */ - {5, 29}, - /* qnameID == 161: {urn:iso:15118:2:2010:MsgBody}ContractSignatureCertChain */ - {5, 30}, - /* qnameID == 162: {urn:iso:15118:2:2010:MsgBody}ContractSignatureEncryptedPrivateKey */ - {5, 31}, - /* qnameID == 163: {urn:iso:15118:2:2010:MsgBody}CurrentDemandReq */ - {5, 32}, - /* qnameID == 164: {urn:iso:15118:2:2010:MsgBody}CurrentDemandReqType */ - {5, 33}, - /* qnameID == 165: {urn:iso:15118:2:2010:MsgBody}CurrentDemandRes */ - {5, 34}, - /* qnameID == 166: {urn:iso:15118:2:2010:MsgBody}CurrentDemandResType */ - {5, 35}, - /* qnameID == 167: {urn:iso:15118:2:2010:MsgBody}DC_EVSEStatus */ - {5, 36}, - /* qnameID == 168: {urn:iso:15118:2:2010:MsgBody}DC_EVStatus */ - {5, 37}, - /* qnameID == 169: {urn:iso:15118:2:2010:MsgBody}DHParams */ - {5, 38}, - /* qnameID == 170: {urn:iso:15118:2:2010:MsgBody}DateTimeNow */ - {5, 39}, - /* qnameID == 171: {urn:iso:15118:2:2010:MsgBody}EVCCID */ - {5, 40}, - /* qnameID == 172: {urn:iso:15118:2:2010:MsgBody}EVMaximumCurrentLimit */ - {5, 41}, - /* qnameID == 173: {urn:iso:15118:2:2010:MsgBody}EVMaximumPowerLimit */ - {5, 42}, - /* qnameID == 174: {urn:iso:15118:2:2010:MsgBody}EVMaximumVoltageLimit */ - {5, 43}, - /* qnameID == 175: {urn:iso:15118:2:2010:MsgBody}EVRequestedEnergyTransferType */ - {5, 44}, - /* qnameID == 176: {urn:iso:15118:2:2010:MsgBody}EVSECurrentLimitAchieved */ - {5, 45}, - /* qnameID == 177: {urn:iso:15118:2:2010:MsgBody}EVSEID */ - {5, 46}, - /* qnameID == 178: {urn:iso:15118:2:2010:MsgBody}EVSEMaxCurrent */ - {5, 47}, - /* qnameID == 179: {urn:iso:15118:2:2010:MsgBody}EVSEMaximumCurrentLimit */ - {5, 48}, - /* qnameID == 180: {urn:iso:15118:2:2010:MsgBody}EVSEMaximumPowerLimit */ - {5, 49}, - /* qnameID == 181: {urn:iso:15118:2:2010:MsgBody}EVSEMaximumVoltageLimit */ - {5, 50}, - /* qnameID == 182: {urn:iso:15118:2:2010:MsgBody}EVSEPowerLimitAchieved */ - {5, 51}, - /* qnameID == 183: {urn:iso:15118:2:2010:MsgBody}EVSEPresentCurrent */ - {5, 52}, - /* qnameID == 184: {urn:iso:15118:2:2010:MsgBody}EVSEPresentVoltage */ - {5, 53}, - /* qnameID == 185: {urn:iso:15118:2:2010:MsgBody}EVSEProcessing */ - {5, 54}, - /* qnameID == 186: {urn:iso:15118:2:2010:MsgBody}EVSEVoltageLimitAchieved */ - {5, 55}, - /* qnameID == 187: {urn:iso:15118:2:2010:MsgBody}EVTargetCurrent */ - {5, 56}, - /* qnameID == 188: {urn:iso:15118:2:2010:MsgBody}EVTargetVoltage */ - {5, 57}, - /* qnameID == 189: {urn:iso:15118:2:2010:MsgBody}GenChallenge */ - {5, 58}, - /* qnameID == 190: {urn:iso:15118:2:2010:MsgBody}ListOfRootCertificateIDs */ - {5, 59}, - /* qnameID == 191: {urn:iso:15118:2:2010:MsgBody}MeterInfo */ - {5, 60}, - /* qnameID == 192: {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReq */ - {5, 61}, - /* qnameID == 193: {urn:iso:15118:2:2010:MsgBody}MeteringReceiptReqType */ - {5, 62}, - /* qnameID == 194: {urn:iso:15118:2:2010:MsgBody}MeteringReceiptRes */ - {5, 63}, - /* qnameID == 195: {urn:iso:15118:2:2010:MsgBody}MeteringReceiptResType */ - {5, 64}, - /* qnameID == 196: {urn:iso:15118:2:2010:MsgBody}OEMProvisioningCert */ - {5, 65}, - /* qnameID == 197: {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReq */ - {5, 66}, - /* qnameID == 198: {urn:iso:15118:2:2010:MsgBody}PaymentDetailsReqType */ - {5, 67}, - /* qnameID == 199: {urn:iso:15118:2:2010:MsgBody}PaymentDetailsRes */ - {5, 68}, - /* qnameID == 200: {urn:iso:15118:2:2010:MsgBody}PaymentDetailsResType */ - {5, 69}, - /* qnameID == 201: {urn:iso:15118:2:2010:MsgBody}PaymentOptions */ - {5, 70}, - /* qnameID == 202: {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReq */ - {5, 71}, - /* qnameID == 203: {urn:iso:15118:2:2010:MsgBody}PowerDeliveryReqType */ - {5, 72}, - /* qnameID == 204: {urn:iso:15118:2:2010:MsgBody}PowerDeliveryRes */ - {5, 73}, - /* qnameID == 205: {urn:iso:15118:2:2010:MsgBody}PowerDeliveryResType */ - {5, 74}, - /* qnameID == 206: {urn:iso:15118:2:2010:MsgBody}PreChargeReq */ - {5, 75}, - /* qnameID == 207: {urn:iso:15118:2:2010:MsgBody}PreChargeReqType */ - {5, 76}, - /* qnameID == 208: {urn:iso:15118:2:2010:MsgBody}PreChargeRes */ - {5, 77}, - /* qnameID == 209: {urn:iso:15118:2:2010:MsgBody}PreChargeResType */ - {5, 78}, - /* qnameID == 210: {urn:iso:15118:2:2010:MsgBody}ReadyToChargeState */ - {5, 79}, - /* qnameID == 211: {urn:iso:15118:2:2010:MsgBody}ReceiptRequired */ - {5, 80}, - /* qnameID == 212: {urn:iso:15118:2:2010:MsgBody}RemainingTimeToBulkSoC */ - {5, 81}, - /* qnameID == 213: {urn:iso:15118:2:2010:MsgBody}RemainingTimeToFullSoC */ - {5, 82}, - /* qnameID == 214: {urn:iso:15118:2:2010:MsgBody}ResponseCode */ - {5, 83}, - /* qnameID == 215: {urn:iso:15118:2:2010:MsgBody}RetryCounter */ - {5, 84}, - /* qnameID == 216: {urn:iso:15118:2:2010:MsgBody}SAScheduleTupleID */ - {5, 85}, - /* qnameID == 217: {urn:iso:15118:2:2010:MsgBody}SelectedPaymentOption */ - {5, 86}, - /* qnameID == 218: {urn:iso:15118:2:2010:MsgBody}SelectedServiceList */ - {5, 87}, - /* qnameID == 219: {urn:iso:15118:2:2010:MsgBody}ServiceCategory */ - {5, 88}, - /* qnameID == 220: {urn:iso:15118:2:2010:MsgBody}ServiceDetailReq */ - {5, 89}, - /* qnameID == 221: {urn:iso:15118:2:2010:MsgBody}ServiceDetailReqType */ - {5, 90}, - /* qnameID == 222: {urn:iso:15118:2:2010:MsgBody}ServiceDetailRes */ - {5, 91}, - /* qnameID == 223: {urn:iso:15118:2:2010:MsgBody}ServiceDetailResType */ - {5, 92}, - /* qnameID == 224: {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReq */ - {5, 93}, - /* qnameID == 225: {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryReqType */ - {5, 94}, - /* qnameID == 226: {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryRes */ - {5, 95}, - /* qnameID == 227: {urn:iso:15118:2:2010:MsgBody}ServiceDiscoveryResType */ - {5, 96}, - /* qnameID == 228: {urn:iso:15118:2:2010:MsgBody}ServiceID */ - {5, 97}, - /* qnameID == 229: {urn:iso:15118:2:2010:MsgBody}ServiceList */ - {5, 98}, - /* qnameID == 230: {urn:iso:15118:2:2010:MsgBody}ServiceParameterList */ - {5, 99}, - /* qnameID == 231: {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReq */ - {5, 100}, - /* qnameID == 232: {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionReqType */ - {5, 101}, - /* qnameID == 233: {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionRes */ - {5, 102}, - /* qnameID == 234: {urn:iso:15118:2:2010:MsgBody}ServicePaymentSelectionResType */ - {5, 103}, - /* qnameID == 235: {urn:iso:15118:2:2010:MsgBody}ServiceScope */ - {5, 104}, - /* qnameID == 236: {urn:iso:15118:2:2010:MsgBody}SessionID */ - {5, 105}, - /* qnameID == 237: {urn:iso:15118:2:2010:MsgBody}SessionSetupReq */ - {5, 106}, - /* qnameID == 238: {urn:iso:15118:2:2010:MsgBody}SessionSetupReqType */ - {5, 107}, - /* qnameID == 239: {urn:iso:15118:2:2010:MsgBody}SessionSetupRes */ - {5, 108}, - /* qnameID == 240: {urn:iso:15118:2:2010:MsgBody}SessionSetupResType */ - {5, 109}, - /* qnameID == 241: {urn:iso:15118:2:2010:MsgBody}SessionStopReq */ - {5, 110}, - /* qnameID == 242: {urn:iso:15118:2:2010:MsgBody}SessionStopRes */ - {5, 111}, - /* qnameID == 243: {urn:iso:15118:2:2010:MsgBody}SessionStopResType */ - {5, 112}, - /* qnameID == 244: {urn:iso:15118:2:2010:MsgBody}SessionStopType */ - {5, 113}, - /* qnameID == 245: {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReq */ - {5, 114}, - /* qnameID == 246: {urn:iso:15118:2:2010:MsgBody}WeldingDetectionReqType */ - {5, 115}, - /* qnameID == 247: {urn:iso:15118:2:2010:MsgBody}WeldingDetectionRes */ - {5, 116}, - /* qnameID == 248: {urn:iso:15118:2:2010:MsgBody}WeldingDetectionResType */ - {5, 117}, - /* qnameID == 249: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameter */ - {6, 0}, - /* qnameID == 250: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVChargeParameterType */ - {6, 1}, - /* qnameID == 251: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameter */ - {6, 2}, - /* qnameID == 252: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEChargeParameterType */ - {6, 3}, - /* qnameID == 253: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatus */ - {6, 4}, - /* qnameID == 254: {urn:iso:15118:2:2010:MsgDataTypes}AC_EVSEStatusType */ - {6, 5}, - /* qnameID == 255: {urn:iso:15118:2:2010:MsgDataTypes}BulkChargingComplete */ - {6, 6}, - /* qnameID == 256: {urn:iso:15118:2:2010:MsgDataTypes}BulkSOC */ - {6, 7}, - /* qnameID == 257: {urn:iso:15118:2:2010:MsgDataTypes}Certificate */ - {6, 8}, - /* qnameID == 258: {urn:iso:15118:2:2010:MsgDataTypes}CertificateChainType */ - {6, 9}, - /* qnameID == 259: {urn:iso:15118:2:2010:MsgDataTypes}ChargingComplete */ - {6, 10}, - /* qnameID == 260: {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower */ - {6, 11}, - /* qnameID == 261: {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart */ - {6, 12}, - /* qnameID == 262: {urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileType */ - {6, 13}, - /* qnameID == 263: {urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCost */ - {6, 14}, - /* qnameID == 264: {urn:iso:15118:2:2010:MsgDataTypes}ConsumptionCostType */ - {6, 15}, - /* qnameID == 265: {urn:iso:15118:2:2010:MsgDataTypes}Cost */ - {6, 16}, - /* qnameID == 266: {urn:iso:15118:2:2010:MsgDataTypes}CostType */ - {6, 17}, - /* qnameID == 267: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameter */ - {6, 18}, - /* qnameID == 268: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVChargeParameterType */ - {6, 19}, - /* qnameID == 269: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVErrorCodeType */ - {6, 20}, - /* qnameID == 270: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameter */ - {6, 21}, - /* qnameID == 271: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVPowerDeliveryParameterType */ - {6, 22}, - /* qnameID == 272: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameter */ - {6, 23}, - /* qnameID == 273: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEChargeParameterType */ - {6, 24}, - /* qnameID == 274: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatus */ - {6, 25}, - /* qnameID == 275: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatusCodeType */ - {6, 26}, - /* qnameID == 276: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVSEStatusType */ - {6, 27}, - /* qnameID == 277: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatus */ - {6, 28}, - /* qnameID == 278: {urn:iso:15118:2:2010:MsgDataTypes}DC_EVStatusType */ - {6, 29}, - /* qnameID == 279: {urn:iso:15118:2:2010:MsgDataTypes}DepartureTime */ - {6, 30}, - /* qnameID == 280: {urn:iso:15118:2:2010:MsgDataTypes}EAmount */ - {6, 31}, - /* qnameID == 281: {urn:iso:15118:2:2010:MsgDataTypes}EPriceLevel */ - {6, 32}, - /* qnameID == 282: {urn:iso:15118:2:2010:MsgDataTypes}EVCabinConditioning */ - {6, 33}, - /* qnameID == 283: {urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameter */ - {6, 34}, - /* qnameID == 284: {urn:iso:15118:2:2010:MsgDataTypes}EVChargeParameterType */ - {6, 35}, - /* qnameID == 285: {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyCapacity */ - {6, 36}, - /* qnameID == 286: {urn:iso:15118:2:2010:MsgDataTypes}EVEnergyRequest */ - {6, 37}, - /* qnameID == 287: {urn:iso:15118:2:2010:MsgDataTypes}EVErrorCode */ - {6, 38}, - /* qnameID == 288: {urn:iso:15118:2:2010:MsgDataTypes}EVMaxCurrent */ - {6, 39}, - /* qnameID == 289: {urn:iso:15118:2:2010:MsgDataTypes}EVMaxVoltage */ - {6, 40}, - /* qnameID == 290: {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumCurrentLimit */ - {6, 41}, - /* qnameID == 291: {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumPowerLimit */ - {6, 42}, - /* qnameID == 292: {urn:iso:15118:2:2010:MsgDataTypes}EVMaximumVoltageLimit */ - {6, 43}, - /* qnameID == 293: {urn:iso:15118:2:2010:MsgDataTypes}EVMinCurrent */ - {6, 44}, - /* qnameID == 294: {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameter */ - {6, 45}, - /* qnameID == 295: {urn:iso:15118:2:2010:MsgDataTypes}EVPowerDeliveryParameterType */ - {6, 46}, - /* qnameID == 296: {urn:iso:15118:2:2010:MsgDataTypes}EVRESSConditioning */ - {6, 47}, - /* qnameID == 297: {urn:iso:15118:2:2010:MsgDataTypes}EVRESSSOC */ - {6, 48}, - /* qnameID == 298: {urn:iso:15118:2:2010:MsgDataTypes}EVReady */ - {6, 49}, - /* qnameID == 299: {urn:iso:15118:2:2010:MsgDataTypes}EVRequestedEnergyTransferType */ - {6, 50}, - /* qnameID == 300: {urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameter */ - {6, 51}, - /* qnameID == 301: {urn:iso:15118:2:2010:MsgDataTypes}EVSEChargeParameterType */ - {6, 52}, - /* qnameID == 302: {urn:iso:15118:2:2010:MsgDataTypes}EVSECurrentRegulationTolerance */ - {6, 53}, - /* qnameID == 303: {urn:iso:15118:2:2010:MsgDataTypes}EVSEEnergyToBeDelivered */ - {6, 54}, - /* qnameID == 304: {urn:iso:15118:2:2010:MsgDataTypes}EVSEIsolationStatus */ - {6, 55}, - /* qnameID == 305: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxCurrent */ - {6, 56}, - /* qnameID == 306: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaxVoltage */ - {6, 57}, - /* qnameID == 307: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumCurrentLimit */ - {6, 58}, - /* qnameID == 308: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumPowerLimit */ - {6, 59}, - /* qnameID == 309: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMaximumVoltageLimit */ - {6, 60}, - /* qnameID == 310: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinCurrent */ - {6, 61}, - /* qnameID == 311: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumCurrentLimit */ - {6, 62}, - /* qnameID == 312: {urn:iso:15118:2:2010:MsgDataTypes}EVSEMinimumVoltageLimit */ - {6, 63}, - /* qnameID == 313: {urn:iso:15118:2:2010:MsgDataTypes}EVSENotification */ - {6, 64}, - /* qnameID == 314: {urn:iso:15118:2:2010:MsgDataTypes}EVSENotificationType */ - {6, 65}, - /* qnameID == 315: {urn:iso:15118:2:2010:MsgDataTypes}EVSEPeakCurrentRipple */ - {6, 66}, - /* qnameID == 316: {urn:iso:15118:2:2010:MsgDataTypes}EVSEProcessingType */ - {6, 67}, - /* qnameID == 317: {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatus */ - {6, 68}, - /* qnameID == 318: {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusCode */ - {6, 69}, - /* qnameID == 319: {urn:iso:15118:2:2010:MsgDataTypes}EVSEStatusType */ - {6, 70}, - /* qnameID == 320: {urn:iso:15118:2:2010:MsgDataTypes}EVSESupportedEnergyTransferType */ - {6, 71}, - /* qnameID == 321: {urn:iso:15118:2:2010:MsgDataTypes}EVStatus */ - {6, 72}, - /* qnameID == 322: {urn:iso:15118:2:2010:MsgDataTypes}EVStatusType */ - {6, 73}, - /* qnameID == 323: {urn:iso:15118:2:2010:MsgDataTypes}EnergyTransferType */ - {6, 74}, - /* qnameID == 324: {urn:iso:15118:2:2010:MsgDataTypes}Entry */ - {6, 75}, - /* qnameID == 325: {urn:iso:15118:2:2010:MsgDataTypes}EntryType */ - {6, 76}, - /* qnameID == 326: {urn:iso:15118:2:2010:MsgDataTypes}FaultCode */ - {6, 77}, - /* qnameID == 327: {urn:iso:15118:2:2010:MsgDataTypes}FaultMsg */ - {6, 78}, - /* qnameID == 328: {urn:iso:15118:2:2010:MsgDataTypes}FreeService */ - {6, 79}, - /* qnameID == 329: {urn:iso:15118:2:2010:MsgDataTypes}FullSOC */ - {6, 80}, - /* qnameID == 330: {urn:iso:15118:2:2010:MsgDataTypes}IntervalType */ - {6, 81}, - /* qnameID == 331: {urn:iso:15118:2:2010:MsgDataTypes}ListOfRootCertificateIDsType */ - {6, 82}, - /* qnameID == 332: {urn:iso:15118:2:2010:MsgDataTypes}MeterID */ - {6, 83}, - /* qnameID == 333: {urn:iso:15118:2:2010:MsgDataTypes}MeterInfoType */ - {6, 84}, - /* qnameID == 334: {urn:iso:15118:2:2010:MsgDataTypes}MeterReading */ - {6, 85}, - /* qnameID == 335: {urn:iso:15118:2:2010:MsgDataTypes}MeterStatus */ - {6, 86}, - /* qnameID == 336: {urn:iso:15118:2:2010:MsgDataTypes}Multiplier */ - {6, 87}, - /* qnameID == 337: {urn:iso:15118:2:2010:MsgDataTypes}NotificationMaxDelay */ - {6, 88}, - /* qnameID == 338: {urn:iso:15118:2:2010:MsgDataTypes}NotificationType */ - {6, 89}, - /* qnameID == 339: {urn:iso:15118:2:2010:MsgDataTypes}NumEPriceLevels */ - {6, 90}, - /* qnameID == 340: {urn:iso:15118:2:2010:MsgDataTypes}PMax */ - {6, 91}, - /* qnameID == 341: {urn:iso:15118:2:2010:MsgDataTypes}PMaxSchedule */ - {6, 92}, - /* qnameID == 342: {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntry */ - {6, 93}, - /* qnameID == 343: {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleEntryType */ - {6, 94}, - /* qnameID == 344: {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleID */ - {6, 95}, - /* qnameID == 345: {urn:iso:15118:2:2010:MsgDataTypes}PMaxScheduleType */ - {6, 96}, - /* qnameID == 346: {urn:iso:15118:2:2010:MsgDataTypes}PMaxType */ - {6, 97}, - /* qnameID == 347: {urn:iso:15118:2:2010:MsgDataTypes}Parameter */ - {6, 98}, - /* qnameID == 348: {urn:iso:15118:2:2010:MsgDataTypes}ParameterSet */ - {6, 99}, - /* qnameID == 349: {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetID */ - {6, 100}, - /* qnameID == 350: {urn:iso:15118:2:2010:MsgDataTypes}ParameterSetType */ - {6, 101}, - /* qnameID == 351: {urn:iso:15118:2:2010:MsgDataTypes}ParameterType */ - {6, 102}, - /* qnameID == 352: {urn:iso:15118:2:2010:MsgDataTypes}PaymentOption */ - {6, 103}, - /* qnameID == 353: {urn:iso:15118:2:2010:MsgDataTypes}PaymentOptionsType */ - {6, 104}, - /* qnameID == 354: {urn:iso:15118:2:2010:MsgDataTypes}PhysicalValueType */ - {6, 105}, - /* qnameID == 355: {urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed */ - {6, 106}, - /* qnameID == 356: {urn:iso:15118:2:2010:MsgDataTypes}ProfileEntry */ - {6, 107}, - /* qnameID == 357: {urn:iso:15118:2:2010:MsgDataTypes}ProfileEntryType */ - {6, 108}, - /* qnameID == 358: {urn:iso:15118:2:2010:MsgDataTypes}RCD */ - {6, 109}, - /* qnameID == 359: {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeInterval */ - {6, 110}, - /* qnameID == 360: {urn:iso:15118:2:2010:MsgDataTypes}RelativeTimeIntervalType */ - {6, 111}, - /* qnameID == 361: {urn:iso:15118:2:2010:MsgDataTypes}RootCertificateID */ - {6, 112}, - /* qnameID == 362: {urn:iso:15118:2:2010:MsgDataTypes}SAIDType */ - {6, 113}, - /* qnameID == 363: {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleList */ - {6, 114}, - /* qnameID == 364: {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleListType */ - {6, 115}, - /* qnameID == 365: {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTuple */ - {6, 116}, - /* qnameID == 366: {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleID */ - {6, 117}, - /* qnameID == 367: {urn:iso:15118:2:2010:MsgDataTypes}SAScheduleTupleType */ - {6, 118}, - /* qnameID == 368: {urn:iso:15118:2:2010:MsgDataTypes}SASchedules */ - {6, 119}, - /* qnameID == 369: {urn:iso:15118:2:2010:MsgDataTypes}SASchedulesType */ - {6, 120}, - /* qnameID == 370: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariff */ - {6, 121}, - /* qnameID == 371: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffDescription */ - {6, 122}, - /* qnameID == 372: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntry */ - {6, 123}, - /* qnameID == 373: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffEntryType */ - {6, 124}, - /* qnameID == 374: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffID */ - {6, 125}, - /* qnameID == 375: {urn:iso:15118:2:2010:MsgDataTypes}SalesTariffType */ - {6, 126}, - /* qnameID == 376: {urn:iso:15118:2:2010:MsgDataTypes}SelectedService */ - {6, 127}, - /* qnameID == 377: {urn:iso:15118:2:2010:MsgDataTypes}SelectedServiceListType */ - {6, 128}, - /* qnameID == 378: {urn:iso:15118:2:2010:MsgDataTypes}SelectedServiceType */ - {6, 129}, - /* qnameID == 379: {urn:iso:15118:2:2010:MsgDataTypes}Service */ - {6, 130}, - /* qnameID == 380: {urn:iso:15118:2:2010:MsgDataTypes}ServiceCategory */ - {6, 131}, - /* qnameID == 381: {urn:iso:15118:2:2010:MsgDataTypes}ServiceCharge */ - {6, 132}, - /* qnameID == 382: {urn:iso:15118:2:2010:MsgDataTypes}ServiceChargeType */ - {6, 133}, - /* qnameID == 383: {urn:iso:15118:2:2010:MsgDataTypes}ServiceID */ - {6, 134}, - /* qnameID == 384: {urn:iso:15118:2:2010:MsgDataTypes}ServiceName */ - {6, 135}, - /* qnameID == 385: {urn:iso:15118:2:2010:MsgDataTypes}ServiceParameterListType */ - {6, 136}, - /* qnameID == 386: {urn:iso:15118:2:2010:MsgDataTypes}ServiceScope */ - {6, 137}, - /* qnameID == 387: {urn:iso:15118:2:2010:MsgDataTypes}ServiceTag */ - {6, 138}, - /* qnameID == 388: {urn:iso:15118:2:2010:MsgDataTypes}ServiceTagListType */ - {6, 139}, - /* qnameID == 389: {urn:iso:15118:2:2010:MsgDataTypes}ServiceTagType */ - {6, 140}, - /* qnameID == 390: {urn:iso:15118:2:2010:MsgDataTypes}ServiceType */ - {6, 141}, - /* qnameID == 391: {urn:iso:15118:2:2010:MsgDataTypes}SigMeterReading */ - {6, 142}, - /* qnameID == 392: {urn:iso:15118:2:2010:MsgDataTypes}SubCertificates */ - {6, 143}, - /* qnameID == 393: {urn:iso:15118:2:2010:MsgDataTypes}SubCertificatesType */ - {6, 144}, - /* qnameID == 394: {urn:iso:15118:2:2010:MsgDataTypes}TMeter */ - {6, 145}, - /* qnameID == 395: {urn:iso:15118:2:2010:MsgDataTypes}TimeInterval */ - {6, 146}, - /* qnameID == 396: {urn:iso:15118:2:2010:MsgDataTypes}Unit */ - {6, 147}, - /* qnameID == 397: {urn:iso:15118:2:2010:MsgDataTypes}Value */ - {6, 148}, - /* qnameID == 398: {urn:iso:15118:2:2010:MsgDataTypes}amount */ - {6, 149}, - /* qnameID == 399: {urn:iso:15118:2:2010:MsgDataTypes}amountMultiplier */ - {6, 150}, - /* qnameID == 400: {urn:iso:15118:2:2010:MsgDataTypes}boolValue */ - {6, 151}, - /* qnameID == 401: {urn:iso:15118:2:2010:MsgDataTypes}byteValue */ - {6, 152}, - /* qnameID == 402: {urn:iso:15118:2:2010:MsgDataTypes}certificateType */ - {6, 153}, - /* qnameID == 403: {urn:iso:15118:2:2010:MsgDataTypes}contractIDType */ - {6, 154}, - /* qnameID == 404: {urn:iso:15118:2:2010:MsgDataTypes}costKind */ - {6, 155}, - /* qnameID == 405: {urn:iso:15118:2:2010:MsgDataTypes}costKindType */ - {6, 156}, - /* qnameID == 406: {urn:iso:15118:2:2010:MsgDataTypes}dHParamsType */ - {6, 157}, - /* qnameID == 407: {urn:iso:15118:2:2010:MsgDataTypes}duration */ - {6, 158}, - /* qnameID == 408: {urn:iso:15118:2:2010:MsgDataTypes}evccIDType */ - {6, 159}, - /* qnameID == 409: {urn:iso:15118:2:2010:MsgDataTypes}evseIDType */ - {6, 160}, - /* qnameID == 410: {urn:iso:15118:2:2010:MsgDataTypes}faultCodeType */ - {6, 161}, - /* qnameID == 411: {urn:iso:15118:2:2010:MsgDataTypes}faultMsgType */ - {6, 162}, - /* qnameID == 412: {urn:iso:15118:2:2010:MsgDataTypes}genChallengeType */ - {6, 163}, - /* qnameID == 413: {urn:iso:15118:2:2010:MsgDataTypes}intValue */ - {6, 164}, - /* qnameID == 414: {urn:iso:15118:2:2010:MsgDataTypes}isolationLevelType */ - {6, 165}, - /* qnameID == 415: {urn:iso:15118:2:2010:MsgDataTypes}meterIDType */ - {6, 166}, - /* qnameID == 416: {urn:iso:15118:2:2010:MsgDataTypes}meterStatusType */ - {6, 167}, - /* qnameID == 417: {urn:iso:15118:2:2010:MsgDataTypes}paymentOptionType */ - {6, 168}, - /* qnameID == 418: {urn:iso:15118:2:2010:MsgDataTypes}percentValueType */ - {6, 169}, - /* qnameID == 419: {urn:iso:15118:2:2010:MsgDataTypes}physicalValue */ - {6, 170}, - /* qnameID == 420: {urn:iso:15118:2:2010:MsgDataTypes}privateKeyType */ - {6, 171}, - /* qnameID == 421: {urn:iso:15118:2:2010:MsgDataTypes}responseCodeType */ - {6, 172}, - /* qnameID == 422: {urn:iso:15118:2:2010:MsgDataTypes}rootCertificateIDType */ - {6, 173}, - /* qnameID == 423: {urn:iso:15118:2:2010:MsgDataTypes}serviceCategoryType */ - {6, 174}, - /* qnameID == 424: {urn:iso:15118:2:2010:MsgDataTypes}serviceIDType */ - {6, 175}, - /* qnameID == 425: {urn:iso:15118:2:2010:MsgDataTypes}serviceNameType */ - {6, 176}, - /* qnameID == 426: {urn:iso:15118:2:2010:MsgDataTypes}serviceScopeType */ - {6, 177}, - /* qnameID == 427: {urn:iso:15118:2:2010:MsgDataTypes}sessionIDType */ - {6, 178}, - /* qnameID == 428: {urn:iso:15118:2:2010:MsgDataTypes}shortValue */ - {6, 179}, - /* qnameID == 429: {urn:iso:15118:2:2010:MsgDataTypes}sigMeterReadingType */ - {6, 180}, - /* qnameID == 430: {urn:iso:15118:2:2010:MsgDataTypes}start */ - {6, 181}, - /* qnameID == 431: {urn:iso:15118:2:2010:MsgDataTypes}startValue */ - {6, 182}, - /* qnameID == 432: {urn:iso:15118:2:2010:MsgDataTypes}stringValue */ - {6, 183}, - /* qnameID == 433: {urn:iso:15118:2:2010:MsgDataTypes}tariffDescriptionType */ - {6, 184}, - /* qnameID == 434: {urn:iso:15118:2:2010:MsgDataTypes}unitMultiplierType */ - {6, 185}, - /* qnameID == 435: {urn:iso:15118:2:2010:MsgDataTypes}unitSymbolType */ - {6, 186}, - /* qnameID == 436: {urn:iso:15118:2:2010:MsgDataTypes}valueType */ - {6, 187}, - /* qnameID == 437: {urn:iso:15118:2:2010:MsgDef}Body */ - {7, 0}, - /* qnameID == 438: {urn:iso:15118:2:2010:MsgDef}BodyBaseType */ - {7, 1}, - /* qnameID == 439: {urn:iso:15118:2:2010:MsgDef}BodyElement */ - {7, 2}, - /* qnameID == 440: {urn:iso:15118:2:2010:MsgDef}BodyType */ - {7, 3}, - /* qnameID == 441: {urn:iso:15118:2:2010:MsgDef}Header */ - {7, 4}, - /* qnameID == 442: {urn:iso:15118:2:2010:MsgDef}V2G_Message */ - {7, 5}, - /* qnameID == 443: {urn:iso:15118:2:2010:MsgHeader}MessageHeaderType */ - {8, 0}, - /* qnameID == 444: {urn:iso:15118:2:2010:MsgHeader}Notification */ - {8, 1}, - /* qnameID == 445: {urn:iso:15118:2:2010:MsgHeader}SessionID */ - {8, 2} - -}; - - -int exiGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart) { - int errn = 0; - /* EXI_NUMBER_OF_QNAMES */ - if (qnameID < state->nextQNameID) { - *namespaceURI = qnames[qnameID].namespaceURI; - *localPart = qnames[qnameID].localPart; - } else { - errn = EXI_ERROR_OUT_OF_BOUNDS; - } - return errn; -} - - -int exiGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID) { - uint16_t i; - /* TODO Do something more efficient than just walk over the entire list */ - /* EXI_NUMBER_OF_QNAMES */ - for(i=0; iCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI__QNAMES_H -#define EXI__QNAMES_H - -#include "EXITypes.h" - -/** - * \brief Returns efficient qname (namespaceURI & localName) IDs for qnameID - * - * \param state Codec state - * \param qnameID Qualified name ID - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \return Error-Code <> 0 - * - */ -int exiGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart); - - -/** - * \brief Returns qnameID for qname namespaceURI & localName - * - * \param state Codec state - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \param qnameID QName ID (out) - * \return Error-Code <> 0 - * - */ -int exiGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID); - - -/** - * \brief Add efficient qname (namespaceURI & localName) IDs for qnameID - * - * \param state Codec state - * \param qnameID Qualified name ID - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \return Error-Code <> 0 - * - */ -int exiAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart); - -#endif - diff --git a/src/codec/StringTable.c b/src/codec/StringTable.c deleted file mode 100644 index ccac33b..0000000 --- a/src/codec/StringTable.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef STRING_TABLE_C -#define STRING_TABLE_C - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * \file StringTable.h - * \brief String table count implementation - * - */ - -#ifndef STRING_TABLE_H -#define STRING_TABLE_H - -#include "EXITypes.h" - - -/** - * \brief Init name table - * - * Inits counter et cetera - * - * \param runtimeTable Runtime Table - * \return Error-Code <> 0 - * - */ -int exiInitNameTableRuntime(exi_name_table_runtime_t* runtimeTable); - - -/** - * \brief Get Uri Size - * - * \param prepopulatedTable Pre-Populated Table - * \param runtimeTable Runtime Table - * \param uriLength Uri Size (out) - * \return Error-Code <> 0 - * - */ -int exiGetUriSize(exi_name_table_prepopulated_t* prepopulatedTable, - exi_name_table_runtime_t* runtimeTable, uint16_t* uriLength); - - -/** - * \brief Get LocalName Size - * - * \param prepopulatedTable Pre-Populated Table - * \param runtimeTable Runtime Table - * \param uriID Uri ID for local-name - * \param localNameLength Local-Name Size (out) - * \return Error-Code <> 0 - * - */ -int exiGetLocalNameSize(exi_name_table_prepopulated_t* prepopulatedTable, - exi_name_table_runtime_t* runtimeTable, uint16_t uriID, - uint16_t* localNameLength); - - -/** - * \brief Add runtime URI entry - * - * \param prepopulatedTable Pre-Populated Table - * \param runtimeTable Runtime Table - * \return Error-Code <> 0 - * - */ -int exiAddUri(exi_name_table_prepopulated_t* prepopulatedTable, - exi_name_table_runtime_t* runtimeTable); - - -/** - * \brief Add runtime local-name entry - * - * \param prepopulatedTable Pre-Populated Table - * \param runtimeTable Runtime Table - * \param uriID Uri ID for local-name - * \param localNameID LocalName ID (out) - * \return Error-Code <> 0 - * - */ -int exiAddLocalName(exi_name_table_prepopulated_t* prepopulatedTable, - exi_name_table_runtime_t* runtimeTable, uint16_t uriID, uint16_t* localNameID); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/UCSString.c b/src/codec/UCSString.c deleted file mode 100644 index 2db8e8d..0000000 --- a/src/codec/UCSString.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include "EXITypes.h" - -/** - * \file UCSString.h - * \brief UCS String utilities - * - */ - -#ifndef UCS_STRING_H -#define UCS_STRING_H - -/** - * \brief Converts characters to USC string - * - * \param chars Characters - * \param s UCS String - * \return Error-Code <> 0 - * - */ -int toUCSString(char* chars, exi_string_ucs_t* s); - - -/** - * \brief Converts String to ASCII characters - * - * Note: fails if string contains non ASCII characters. - * - * \param string UCS String - * \param string Input String - * \param outASCII ASCII Characters (out) - * \return Error-Code <> 0 - * - */ -int toASCIIString(exi_string_ucs_t* string, char* outASCII); - -#endif - - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/appHandCodec/appHandEXICoder.c b/src/codec/appHandCodec/appHandEXICoder.c deleted file mode 100644 index 0940aa7..0000000 --- a/src/codec/appHandCodec/appHandEXICoder.c +++ /dev/null @@ -1,862 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_CODER_C -#define EXI_appHand_CODER_C - -#include "appHandEXICoder.h" - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitInputStream.h" -#include "DecoderChannel.h" -#include "ErrorCodes.h" - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'qnameID' */ -#endif /* __GNUC__ */ -int exi_appHand_IncrementStringValueCount(exi_state_t* state, uint16_t qnameID) { - int errn = 0; -#if EXI_appHandVALUE_PARTITION_CAPACITY != 0 -#if EXI_appHandVALUE_MAX_LENGTH != 0 - /* increment global string count */ -#if EXI_appHandVALUE_PARTITION_CAPACITY < 0 - state->stringTable.numberOfGlobalStrings++; -#else /* EXI_appHandVALUE_PARTITION_CAPACITY < 0 */ - if (state->stringTable.numberOfGlobalStrings < EXI_appHandVALUE_PARTITION_CAPACITY) { - state->stringTable.numberOfGlobalStrings++; - } -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY < 0 */ - /* increment local string count */ - if (qnameID < state->stringTable.sizeLocalStrings) { - state->stringTable.numberOfLocalStrings[qnameID]++; - /* printf("\tSV %d: lv=%d and gv=%d \n", qnameID, state->numberOfLocalStrings[qnameID], state->numberOfGlobalStrings);*/ - } else { - /* currently we do support a set of qnames only */ - errn = EXI_ERROR_OUT_OF_QNAMES; - } -#endif /* EXI_appHandVALUE_MAX_LENGTH != 0 */ -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY != 0 */ - - return errn; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'qnameID' */ -#endif /* __GNUC__ */ - - -int exi_appHand_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID) { - /* eqname_t* eqn*/ - if ((state->stackIndex + 1) < EXI_ELEMENT_STACK_SIZE) { - state->grammarStack[++state->stackIndex] = newState; - /* qname */ - state->elementStack[state->stackIndex] = qnameID; - - /*if (eqn == NULL) { - // generic SE, UCD profile - } else { - // copy IDs - state->elementStack[state->stackIndex].localPart = eqn->localPart; - state->elementStack[state->stackIndex].namespaceURI = eqn->namespaceURI; - }*/ - return 0; - } else { - return EXI_ERROR_OUT_OF_GRAMMAR_STACK; - } -} - -int exi_appHand_PopStack(exi_state_t* state) { - if (state->stackIndex >= 1) { - state->stackIndex--; - return 0; - } else { - return EXI_ERROR_OUT_OF_BOUNDS; - } -} - -int exi_appHand_HandleXsiNilTrue(exi_state_t* state) { - switch (state->grammarStack[state->stackIndex]) { - - } - - return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_NIL; -} - -int exi_appHand_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType) { - switch(xsiType->namespaceURI) { - case 0: - switch(xsiType->localPart) { - } - break; - case 1: - switch(xsiType->localPart) { - } - break; - case 2: - switch(xsiType->localPart) { - } - break; - case 3: - switch(xsiType->localPart) { - case 0: - /* {3}0,ENTITIES */ - state->grammarStack[state->stackIndex] = 144; - break; - case 1: - /* {3}1,ENTITY */ - state->grammarStack[state->stackIndex] = 10; - break; - case 2: - /* {3}2,ID */ - state->grammarStack[state->stackIndex] = 141; - break; - case 3: - /* {3}3,IDREF */ - state->grammarStack[state->stackIndex] = 79; - break; - case 4: - /* {3}4,IDREFS */ - state->grammarStack[state->stackIndex] = 29; - break; - case 5: - /* {3}5,NCName */ - state->grammarStack[state->stackIndex] = 98; - break; - case 6: - /* {3}6,NMTOKEN */ - state->grammarStack[state->stackIndex] = 36; - break; - case 7: - /* {3}7,NMTOKENS */ - state->grammarStack[state->stackIndex] = 25; - break; - case 8: - /* {3}8,NOTATION */ - state->grammarStack[state->stackIndex] = 78; - break; - case 9: - /* {3}9,Name */ - state->grammarStack[state->stackIndex] = 101; - break; - case 10: - /* {3}10,QName */ - state->grammarStack[state->stackIndex] = 106; - break; - case 11: - /* {3}11,anySimpleType */ - state->grammarStack[state->stackIndex] = 48; - break; - case 12: - /* {3}12,anyType */ - state->grammarStack[state->stackIndex] = 50; - break; - case 13: - /* {3}13,anyURI */ - state->grammarStack[state->stackIndex] = 142; - break; - case 14: - /* {3}14,base64Binary */ - state->grammarStack[state->stackIndex] = 111; - break; - case 15: - /* {3}15,boolean */ - state->grammarStack[state->stackIndex] = 80; - break; - case 16: - /* {3}16,byte */ - state->grammarStack[state->stackIndex] = 134; - break; - case 17: - /* {3}17,date */ - state->grammarStack[state->stackIndex] = 133; - break; - case 18: - /* {3}18,dateTime */ - state->grammarStack[state->stackIndex] = 104; - break; - case 19: - /* {3}19,decimal */ - state->grammarStack[state->stackIndex] = 53; - break; - case 20: - /* {3}20,double */ - state->grammarStack[state->stackIndex] = 11; - break; - case 21: - /* {3}21,duration */ - state->grammarStack[state->stackIndex] = 55; - break; - case 22: - /* {3}22,float */ - state->grammarStack[state->stackIndex] = 130; - break; - case 23: - /* {3}23,gDay */ - state->grammarStack[state->stackIndex] = 135; - break; - case 24: - /* {3}24,gMonth */ - state->grammarStack[state->stackIndex] = 64; - break; - case 25: - /* {3}25,gMonthDay */ - state->grammarStack[state->stackIndex] = 100; - break; - case 26: - /* {3}26,gYear */ - state->grammarStack[state->stackIndex] = 99; - break; - case 27: - /* {3}27,gYearMonth */ - state->grammarStack[state->stackIndex] = 74; - break; - case 28: - /* {3}28,hexBinary */ - state->grammarStack[state->stackIndex] = 132; - break; - case 29: - /* {3}29,int */ - state->grammarStack[state->stackIndex] = 76; - break; - case 30: - /* {3}30,integer */ - state->grammarStack[state->stackIndex] = 138; - break; - case 31: - /* {3}31,language */ - state->grammarStack[state->stackIndex] = 20; - break; - case 32: - /* {3}32,long */ - state->grammarStack[state->stackIndex] = 93; - break; - case 33: - /* {3}33,negativeInteger */ - state->grammarStack[state->stackIndex] = 89; - break; - case 34: - /* {3}34,nonNegativeInteger */ - state->grammarStack[state->stackIndex] = 57; - break; - case 35: - /* {3}35,nonPositiveInteger */ - state->grammarStack[state->stackIndex] = 69; - break; - case 36: - /* {3}36,normalizedString */ - state->grammarStack[state->stackIndex] = 86; - break; - case 37: - /* {3}37,positiveInteger */ - state->grammarStack[state->stackIndex] = 49; - break; - case 38: - /* {3}38,short */ - state->grammarStack[state->stackIndex] = 68; - break; - case 39: - /* {3}39,string */ - state->grammarStack[state->stackIndex] = 24; - break; - case 40: - /* {3}40,time */ - state->grammarStack[state->stackIndex] = 112; - break; - case 41: - /* {3}41,token */ - state->grammarStack[state->stackIndex] = 143; - break; - case 42: - /* {3}42,unsignedByte */ - state->grammarStack[state->stackIndex] = 122; - break; - case 43: - /* {3}43,unsignedInt */ - state->grammarStack[state->stackIndex] = 102; - break; - case 44: - /* {3}44,unsignedLong */ - state->grammarStack[state->stackIndex] = 21; - break; - case 45: - /* {3}45,unsignedShort */ - state->grammarStack[state->stackIndex] = 7; - break; - } - break; - case 4: - switch(xsiType->localPart) { - case 0: - /* {4}0,AppProtocolType */ - state->grammarStack[state->stackIndex] = 5; - break; - case 1: - /* {4}1,idType */ - state->grammarStack[state->stackIndex] = 45; - break; - case 2: - /* {4}2,priorityType */ - state->grammarStack[state->stackIndex] = 43; - break; - case 3: - /* {4}3,protocolNameType */ - state->grammarStack[state->stackIndex] = 58; - break; - case 4: - /* {4}4,protocolNamespaceType */ - state->grammarStack[state->stackIndex] = 18; - break; - case 5: - /* {4}5,responseCodeType */ - state->grammarStack[state->stackIndex] = 44; - break; - } - break; - } - - - return 0; -} - - -int exi_appHand_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID) { - int errn = EXI_ERROR_OUT_OF_RUNTIME_GRAMMAR_STACK; - int16_t i; - - /* schema-informed global element --> Stack ID */ - switch(qnameID) { - case 65: - return exi_appHand_PushStack(state, 15, 65); - case 66: - return exi_appHand_PushStack(state, 16, 66); - - } - - - /* retrieve existing grammar for qname if any available */ - for(i=0; iCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI_appHand_CODER_H -#define EXI_appHand_CODER_H - -#include "EXITypes.h" - -#define DOCUMENT 0 -#define DOC_CONTENT 13 -#define DOC_END 14 -#define UR_TYPE_GRAMMAR_0 22 -#define UR_TYPE_GRAMMAR_1 23 - - -/* increments global and local string count */ -int exi_appHand_IncrementStringValueCount(exi_state_t* state, uint16_t qnameID); - -int exi_appHand_PushStack(exi_state_t* state, int16_t newState, uint16_t qnameID); - -int exi_appHand_PopStack(exi_state_t* state); - -int exi_appHand_HandleXsiNilTrue(exi_state_t* state); - -int exi_appHand_HandleXsiType(exi_state_t* state, exi_eqname_t* xsiType); - -int exi_appHand_RetrieveAndPushGlobalGrammar(exi_state_t* state, uint16_t qnameID); - -int exi_appHand_LearnAttribute(exi_state_t* state, uint16_t qnameID, uint16_t uriID, uint16_t localID); - -int exi_appHand_IsStartContent(int16_t ruleID); - -int exi_appHand_MoveToElementContentRule(exi_state_t* state); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/appHandCodec/appHandEXIDecoder.c b/src/codec/appHandCodec/appHandEXIDecoder.c deleted file mode 100644 index 020deca..0000000 --- a/src/codec/appHandCodec/appHandEXIDecoder.c +++ /dev/null @@ -1,2219 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_DECODER_C -#define EXI_appHand_DECODER_C - - -#include "appHandEXIDecoder.h" - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitInputStream.h" -#include "DecoderChannel.h" -#include "CoderChannel.h" - -#include "StringTable.h" -#include "appHandNameTableEntries.h" -#include "MethodsBag.h" - -#include "appHandEXICoder.h" -#include "EXIHeaderDecoder.h" -#include "ErrorCodes.h" - -#include "appHandQNames.h" -#include "appHandQNameDefines.h" - - - -/* local variables */ -static uint32_t xsi; -static uint32_t bits; -static int errn; -static exi_event_t currEvent; - -#define URI_CODEPOINTS_SIZE 35 -#define LOCALNAME_CODEPOINTS_SIZE 25 - -uint32_t codepointsUri[URI_CODEPOINTS_SIZE]; -uint32_t codepointsLocalName[LOCALNAME_CODEPOINTS_SIZE]; - -/*static exi_string_ucs_t stringUri = {URI_CODEPOINTS_SIZE, codepointsUri, 0};*/ -/*static exi_name_entry_t uri = {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}};*/ -/*static exi_name_entry_t localName = {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}};*/ -static exi_qname_t _qname = { - {EXI_NAME_ENTRY_TYPE_ID, 0, {URI_CODEPOINTS_SIZE, codepointsUri, 0}}, - {EXI_NAME_ENTRY_TYPE_ID, 0, {LOCALNAME_CODEPOINTS_SIZE, codepointsLocalName, 0}} -}; - - -static int _decodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) { - int errn; - uint32_t val; - - errn = decodeNBitUnsignedInteger(stream, nbits, &val); - if(errn) { - return errn; - } - - /* TODO map integer value more fine-grained */ - iv->type = EXI_INTEGER_32; - iv->val.int32 = val + lowerBound; - - return errn; -} - - - -static int exiDecodeNext2Event(bitstream_t* stream, exi_state_t* state, - exi_event_t* nextEvent) { - uint32_t eventCode2 = 0; - int16_t ruleID = state->grammarStack[state->stackIndex]; - - switch (ruleID) { - case 7: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 11: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 10: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 18: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 20: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 21: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 25: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 24: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 29: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 36: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 48: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 49: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 53: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - case 55: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 57: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 58: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 45: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 64: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 16: - /* FirstStartTag[START_ELEMENT(ResponseCode)] */ - case 68: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 46: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 69: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 74: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 15: - /* FirstStartTag[START_ELEMENT(AppProtocol)] */ - case 76: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 78: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 79: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 80: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - case 35: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 44: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 86: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 89: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 93: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 98: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 99: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 101: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 100: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 102: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 104: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 106: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 111: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 43: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 112: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 122: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 130: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 132: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 133: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 134: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 135: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 5: - /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ - case 138: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 141: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 142: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 143: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 144: - /* FirstStartTag[CHARACTERS[LIST]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 4: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 5: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 6: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 22: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 50: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_TYPE; - return errn; - case 1: - *nextEvent = EXI_EVENT_ATTRIBUTE_XSI_NIL; - return errn; - case 2: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - return errn; - case 3: - *nextEvent = EXI_EVENT_ATTRIBUTE_INVALID_VALUE; - errn = decodeNBitUnsignedInteger(stream, 0, &state->eventCode); - state->eventCode -= 1; - return errn; - case 4: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 5: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 1: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 12: - /* Element[CHARACTERS[STRING]] */ - case 17: - /* Element[CHARACTERS[INTEGER]] */ - case 19: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 28: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 30: - /* Element[START_ELEMENT(ProtocolNamespace)] */ - case 32: - /* Element[CHARACTERS[STRING]] */ - case 33: - /* Element[START_ELEMENT(VersionNumberMinor)] */ - case 37: - /* Element[CHARACTERS[BOOLEAN]] */ - case 38: - /* Element[CHARACTERS[STRING]] */ - case 40: - /* Element[CHARACTERS[STRING]] */ - case 41: - /* Element[CHARACTERS[STRING]] */ - case 47: - /* Element[CHARACTERS[INTEGER]] */ - case 52: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 54: - /* Element[CHARACTERS[STRING]] */ - case 56: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 59: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 31: - /* Element[START_ELEMENT(VersionNumberMajor)] */ - case 62: - /* Element[CHARACTERS[FLOAT]] */ - case 63: - /* Element[CHARACTERS[DATETIME]] */ - case 65: - /* Element[CHARACTERS[LIST]] */ - case 67: - /* Element[CHARACTERS[STRING]] */ - case 70: - /* Element[CHARACTERS[STRING]] */ - case 71: - /* Element[CHARACTERS[ENUMERATION]] */ - case 75: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 77: - /* Element[CHARACTERS[STRING]] */ - case 81: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 82: - /* Element[CHARACTERS[DATETIME]] */ - case 83: - /* Element[CHARACTERS[INTEGER]] */ - case 84: - /* Element[CHARACTERS[DATETIME]] */ - case 85: - /* Element[CHARACTERS[STRING]] */ - case 87: - /* Element[CHARACTERS[STRING]] */ - case 88: - /* Element[CHARACTERS[DATETIME]] */ - case 34: - /* Element[START_ELEMENT(SchemaID)] */ - case 91: - /* Element[CHARACTERS[INTEGER]] */ - case 94: - /* Element[START_ELEMENT(AppProtocol)] */ - case 95: - /* Element[CHARACTERS[LIST]] */ - case 96: - /* Element[CHARACTERS[STRING]] */ - case 103: - /* Element[CHARACTERS[FLOAT]] */ - case 107: - /* Element[CHARACTERS[INTEGER]] */ - case 108: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 114: - /* Element[CHARACTERS[STRING]] */ - case 116: - /* Element[CHARACTERS[DECIMAL]] */ - case 117: - /* Element[START_ELEMENT(ResponseCode)] */ - case 118: - /* Element[CHARACTERS[STRING]] */ - case 119: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 120: - /* Element[CHARACTERS[STRING]] */ - case 121: - /* Element[CHARACTERS[DATETIME]] */ - case 123: - /* Element[CHARACTERS[DATETIME]] */ - case 126: - /* Element[CHARACTERS[DATETIME]] */ - case 90: - /* Element[START_ELEMENT(Priority)] */ - case 131: - /* Element[CHARACTERS[STRING]] */ - case 136: - /* Element[CHARACTERS[INTEGER]] */ - case 137: - /* Element[CHARACTERS[STRING]] */ - case 140: - /* Element[CHARACTERS[LIST]] */ - case 139: - /* Element[CHARACTERS[DATETIME]] */ - case 145: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 2: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - case 3: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 8: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 2: - /* Element[END_ELEMENT] */ - case 26: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 39: - /* Element[END_ELEMENT] */ - case 60: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 72: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 23: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 9: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 97: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 109: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 92: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 115: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 124: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 27: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 51: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 128: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 66: - /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ - case 110: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 61: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 127: - /* Element[END_ELEMENT] */ - case 113: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 4: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 125: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 129: - /* Element[END_ELEMENT] */ - case 73: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2); - switch (eventCode2) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - return errn; - case 1: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - return errn; - } - break; - - default: - if (ruleID < 0) { - /* built-in element grammar */ - if ( exi_appHand_IsStartContent(ruleID) ) { - /* TODO generate 2nd level productions */ - - /* StartTagContent grammar */ - errn = decodeNBitUnsignedInteger(stream, 2, &eventCode2); - if(errn) { - return errn; - } - switch(eventCode2) { - case 0: - /* 0: EE */ - *nextEvent = EXI_EVENT_END_ELEMENT_UNDECLARED; - break; - case 1: - /* 1: AT(*) */ - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED; - break; - case 2: - /* 2: SE(*) */ - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - break; - case 3: - /* 3: CH */ - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - break; - default: - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - break; - } - return errn; - } else { - /* TODO generate 2nd level productions */ - - /* ElementContent grammar */ - errn = decodeNBitUnsignedInteger(stream, 1, &eventCode2); - if(errn) { - return errn; - } - switch(eventCode2) { - case 0: - /* 0: SE(*) */ - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED; - break; - case 1: - /* 1: CH */ - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED; - break; - default: - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - break; - } - - - - } - - } else { - *nextEvent = EXI_EVENT_ERROR; - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; - } - break; - } - - return EXI_ERROR_UNEXPECTED_EVENT_LEVEL2; -} - - - -static int _exiDecodeNamespaceUri(bitstream_t* stream, exi_state_t* state, - exi_name_entry_t* uri) { -/* exi_string_ascii_t* namespaceURI, uint32_t* uriID) {*/ - uint16_t uriSize, uriCodingLength; - uint32_t uriID; - int errn; - - errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize); - if (errn) { - return errn; - } - /* URI Entries + 1 */ - errn = exiGetCodingLength(uriSize + 1, &uriCodingLength); - if (errn) { - return errn; - } - - errn = decodeNBitUnsignedInteger(stream, uriCodingLength, &uriID); - if (errn) { - return errn; - } - - if (uriID == 0) { - /* uri string value was not found */ - /* ==> zero (0) as an n-nit unsigned integer */ - /* followed by uri encoded as string */ - uri->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID; - errn = decodeString(stream, &uri->str); - if (errn) { - return errn; - } - /* after encoding string value is added to table */ - errn = exiAddUri(&state->nameTablePrepopulated, &state->nameTableRuntime); /*, namespaceURI->chars); */ - if (errn) { - return errn; - } - uri->id = uriSize; - /* uriID = uriSize; */ - } else { - /* uri string value found */ - /* ==> value(i+1) is encoded as n-bit unsigned integer */ - uri->type = EXI_NAME_ENTRY_TYPE_ID; - uri->id = (uint16_t)(uriID - 1); - /* *uriID = *uriID - 1; */ - } - - return 0; -} - -static int _exiDecodeLocalName(bitstream_t* stream, exi_state_t* state, - uint16_t uriID, exi_name_entry_t* localName) { -/* exi_string_ascii_t* localName, - uint32_t* localNameID, uint32_t uriID) { */ - uint32_t localNameID; - uint16_t slen; - uint16_t localNameSize; - uint16_t localNameCodingLength; - - - int errn = decodeUnsignedInteger16(stream, &slen); - if (errn) { - return errn; - } - - if (slen > 0) { - /* string value was not found in local partition */ - /* ==> string literal is encoded as a String */ - /* with the length of the string incremented by one */ - localName->type = EXI_NAME_ENTRY_TYPE_STRING_AND_ID; - if (slen-- >= (localName->str.size) ) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - localName->str.len = slen; - errn = decodeCharacters(stream, slen, localName->str.codepoints); - - /*if (slen-- >= localName->size) { - return EXI_ERROR_OUT_OF_BOUNDS; - } - errn = decodeCharactersASCII(stream, slen, localName->chars); */ - - if (errn) { - return errn; - } - /* After encoding the string value, it is added to the string table */ - /* partition and assigned the next available compact identifier */ - errn = exiAddLocalName(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localName->id); /* uriID); *//*, localName->chars); */ - - /*if (errn) { - return errn; - }*/ - /* TODO UCD Profile */ - /* qname = addLocalName(localName, uriID); */ - } else { - /* string value found in local partition */ - /* ==> string value is represented as zero (0) encoded as an */ - /* Unsigned Integer */ - /* followed by an the compact identifier of the string value as an */ - /* n-bit unsigned integer */ - /* n is log2 m and m is the number of entries in the string table */ - /* partition */ - localName->type = EXI_NAME_ENTRY_TYPE_ID; - errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); /* uriID, &localNameSize); */ - if (errn) { - return errn; - } - errn = exiGetCodingLength(localNameSize, &localNameCodingLength); - if (errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, localNameCodingLength, &localNameID); /* localNameID);*/ - localName->id = (uint16_t)(localNameID); - /*if (errn) { - return errn; - }*/ - } - - return errn; -} - -static int _exiDecodeQName(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID, exi_qname_t* qname) { - - /*uint32_t uriID; - uint32_t localNameID;*/ - /* const char * clocalName; */ - - /* uri */ - int errn =_exiDecodeNamespaceUri(stream, state, &qname->uri); /* &qname->namespaceURI, &uriID); */ - if (errn) { - return errn; - } - /* localName */ - errn = _exiDecodeLocalName(stream, state, qname->uri.id, &qname->localName); /* &qname->localName, &localNameID, uriID); */ - if (errn) { - return errn; - } - - /* - errn = exiGetLocalName(nameTable, runtimeTable, uriID, localNameID, &clocalName); - if (errn) { - return errn; - } - strcpy ( qname->localName.chars, clocalName ); - */ - - if (_qname.localName.type == EXI_NAME_ENTRY_TYPE_STRING_AND_ID) { - errn = exiappHandAddEQName(state, qnameID, qname->uri.id, qname->localName.id); - } else { - /* IDs known --> retrieve qnameID */ - errn = exiappHandGetQNameID(state, qname->uri.id, qname->localName.id, qnameID); - } - - - return errn; -} - - -static int _exiDecodeStartElement(exi_state_t* state, uint16_t qnameID, - uint16_t stackId, uint16_t newState) { - /*uint16_t ns, uint16_t ln, uint16_t qn, */ - /*se->namespaceURI = ns; - se->localPart = ln; - se->qname = qn;*/ - /* move on */ - state->grammarStack[state->stackIndex] = stackId; - /* push element on stack */ - return exi_appHand_PushStack(state, newState, qnameID); /* se);*/ -} - - -int exiappHandGetLastQName(exi_qname_t** qname) { - *qname = &_qname; - return 0; -} - - -int exiappHandDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) { - uint32_t uint32; - - val->type = lt.type; - - switch(lt.type) { - case EXI_DATATYPE_BINARY_BASE64: - case EXI_DATATYPE_BINARY_HEX: - errn = decodeBinary(stream, &val->binary); - break; - case EXI_DATATYPE_BOOLEAN: - errn = decodeBoolean(stream, &val->boolean); - break; - case EXI_DATATYPE_BOOLEAN_FACET: - errn = decodeNBitUnsignedInteger(stream, 2, &uint32); - val->boolean = uint32 > 1; - break; - case EXI_DATATYPE_DECIMAL: - errn = decodeDecimal(stream, &val->decimal); - break; - case EXI_DATATYPE_FLOAT: - errn = decodeFloat(stream, &val->float_me); - break; - case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER: - errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE; - break; - case EXI_DATATYPE_UNSIGNED_INTEGER: - errn = decodeUnsignedInteger(stream, &val->integer); - break; - case EXI_DATATYPE_INTEGER: - errn = decodeInteger(stream, &val->integer); - break; - case EXI_DATATYPE_DATETIME: - errn = decodeDateTime(stream,lt.datetimeType, &val->datetime); - break; - case EXI_DATATYPE_STRING: - errn = decodeStringValue(stream, state, qnameID, &val->str); - break; - default: - return EXI_UNSUPPORTED_LIST_VALUE_TYPE; - } - - return errn; -} - - - - -int exiappHandInitDecoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable) { -#if EXI_appHandVALUE_PARTITION_CAPACITY != 0 -#if EXI_appHandVALUE_MAX_LENGTH != 0 - int i; -#endif /* EXI_appHandVALUE_MAX_LENGTH != 0 */ -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY != 0 */ - /* init grammar state */ - state->stackIndex = 0; - state->grammarStack[0] = DOCUMENT; - /* name table */ - state->nameTablePrepopulated = exiappHandNameTablePrepopulated; - state->nameTableRuntime = runtimeTable; - /* next qname ID */ - state->nextQNameID = EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES; - /* string table */ - state->stringTable = stringTable; - state->stringTable.numberOfGlobalStrings = 0; -#if EXI_appHandVALUE_PARTITION_CAPACITY != 0 -#if EXI_appHandVALUE_MAX_LENGTH != 0 - for(i=0; i<(state->stringTable.sizeLocalStrings); i++) { - state->stringTable.numberOfLocalStrings[i] = 0; - } -#endif /* EXI_appHandVALUE_MAX_LENGTH != 0 */ -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY != 0 */ - - /* runtime grammars */ - state->numberOfRuntimeGrammars = 0; - - /* Avoid warning: Unused declaration of variable 'name' */ - xsi = 0; - bits = 0; - - /* decode header */ - return readEXIHeader(stream); -} - -int exiappHandDecodeNextEvent(bitstream_t* stream, exi_state_t* state, - exi_event_t* nextEvent) { - uint16_t codingLength; - uint16_t numberOfProductions; - uint32_t eventCode1; - int16_t ruleID = state->grammarStack[state->stackIndex]; - state->eventCode = 0; - errn = 0; - - switch (ruleID) { - case 3: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 8: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 26: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 60: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 72: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 9: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 97: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 109: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 92: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 115: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 124: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 27: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 128: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 66: - /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ - case 110: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 61: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 113: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 4: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 125: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 73: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 2: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 30: - /* Element[START_ELEMENT(ProtocolNamespace)] */ - case 33: - /* Element[START_ELEMENT(VersionNumberMinor)] */ - case 31: - /* Element[START_ELEMENT(VersionNumberMajor)] */ - case 16: - /* FirstStartTag[START_ELEMENT(ResponseCode)] */ - case 15: - /* FirstStartTag[START_ELEMENT(AppProtocol)] */ - case 34: - /* Element[START_ELEMENT(SchemaID)] */ - case 94: - /* Element[START_ELEMENT(AppProtocol)] */ - case 117: - /* Element[START_ELEMENT(ResponseCode)] */ - case 90: - /* Element[START_ELEMENT(Priority)] */ - case 5: - /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 0: - /* Document[START_DOCUMENT] */ - case 105: - /* Fragment[START_DOCUMENT] */ - *nextEvent = EXI_EVENT_START_DOCUMENT; - break; - case 14: - /* DocEnd[END_DOCUMENT] */ - *nextEvent = EXI_EVENT_END_DOCUMENT; - break; - case 42: - /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */ - errn = decodeNBitUnsignedInteger(stream, 4, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 9: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 10: - *nextEvent = EXI_EVENT_END_DOCUMENT; - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 22: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 50: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 3, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_ATTRIBUTE_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 2: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 3: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 4: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 1: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 7: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 11: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 10: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 12: - /* Element[CHARACTERS[STRING]] */ - case 17: - /* Element[CHARACTERS[INTEGER]] */ - case 18: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 19: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 20: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 21: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 25: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 24: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 29: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 28: - /* Element[CHARACTERS[BINARY_HEX]] */ - case 32: - /* Element[CHARACTERS[STRING]] */ - case 37: - /* Element[CHARACTERS[BOOLEAN]] */ - case 36: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 38: - /* Element[CHARACTERS[STRING]] */ - case 40: - /* Element[CHARACTERS[STRING]] */ - case 41: - /* Element[CHARACTERS[STRING]] */ - case 48: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 47: - /* Element[CHARACTERS[INTEGER]] */ - case 49: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 52: - /* Element[CHARACTERS[BINARY_BASE64]] */ - case 53: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - case 54: - /* Element[CHARACTERS[STRING]] */ - case 55: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 56: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 57: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 58: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 59: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 45: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 62: - /* Element[CHARACTERS[FLOAT]] */ - case 63: - /* Element[CHARACTERS[DATETIME]] */ - case 64: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 65: - /* Element[CHARACTERS[LIST]] */ - case 67: - /* Element[CHARACTERS[STRING]] */ - case 68: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 46: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 69: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 70: - /* Element[CHARACTERS[STRING]] */ - case 71: - /* Element[CHARACTERS[ENUMERATION]] */ - case 74: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 75: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 76: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 77: - /* Element[CHARACTERS[STRING]] */ - case 78: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 79: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 80: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - case 81: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 35: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 82: - /* Element[CHARACTERS[DATETIME]] */ - case 44: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - case 83: - /* Element[CHARACTERS[INTEGER]] */ - case 84: - /* Element[CHARACTERS[DATETIME]] */ - case 85: - /* Element[CHARACTERS[STRING]] */ - case 86: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 87: - /* Element[CHARACTERS[STRING]] */ - case 88: - /* Element[CHARACTERS[DATETIME]] */ - case 89: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 91: - /* Element[CHARACTERS[INTEGER]] */ - case 93: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 95: - /* Element[CHARACTERS[LIST]] */ - case 96: - /* Element[CHARACTERS[STRING]] */ - case 98: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 99: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 101: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 100: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 102: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - case 103: - /* Element[CHARACTERS[FLOAT]] */ - case 104: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 106: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 107: - /* Element[CHARACTERS[INTEGER]] */ - case 111: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - case 108: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 43: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 112: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 114: - /* Element[CHARACTERS[STRING]] */ - case 116: - /* Element[CHARACTERS[DECIMAL]] */ - case 118: - /* Element[CHARACTERS[STRING]] */ - case 119: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - case 120: - /* Element[CHARACTERS[STRING]] */ - case 121: - /* Element[CHARACTERS[DATETIME]] */ - case 123: - /* Element[CHARACTERS[DATETIME]] */ - case 122: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 126: - /* Element[CHARACTERS[DATETIME]] */ - case 130: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - case 131: - /* Element[CHARACTERS[STRING]] */ - case 132: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - case 133: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 134: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - case 135: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - case 136: - /* Element[CHARACTERS[INTEGER]] */ - case 137: - /* Element[CHARACTERS[STRING]] */ - case 140: - /* Element[CHARACTERS[LIST]] */ - case 139: - /* Element[CHARACTERS[DATETIME]] */ - case 138: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - case 141: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 142: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 143: - /* FirstStartTag[CHARACTERS[STRING]] */ - case 144: - /* FirstStartTag[CHARACTERS[LIST]] */ - case 145: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_CHARACTERS; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 2: - /* Element[END_ELEMENT] */ - case 39: - /* Element[END_ELEMENT] */ - case 127: - /* Element[END_ELEMENT] */ - case 129: - /* Element[END_ELEMENT] */ - errn = decodeNBitUnsignedInteger(stream, 1, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 1: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 13: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - case 1: - *nextEvent = EXI_EVENT_START_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - case 23: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 51: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = decodeNBitUnsignedInteger(stream, 2, &state->eventCode); - switch (state->eventCode) { - case 0: - *nextEvent = EXI_EVENT_START_ELEMENT_GENERIC; - break; - case 1: - *nextEvent = EXI_EVENT_END_ELEMENT; - break; - case 2: - *nextEvent = EXI_EVENT_CHARACTERS_GENERIC; - break; - case 3: - /* 2nd level events */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - break; - default: - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - break; - } - break; - - default: - if(ruleID < 0) { - /* built-in element grammar */ - numberOfProductions = state->runtimeGrammars[(ruleID + 1)*(-1)].numberOfProductions; - if(numberOfProductions > 0) { - /* decode 1st level event code */ - errn = exiGetCodingLength(numberOfProductions + 1, &codingLength); - if(errn) { - return errn; - } - errn = decodeNBitUnsignedInteger(stream, codingLength, &eventCode1); - if(errn) { - return errn; - } - - if(eventCode1 == numberOfProductions) { - /* 2nd level */ - errn = exiDecodeNext2Event(stream, state, nextEvent); - } else { - /* 1st level event not supported in profile */ - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - } - } else { - errn = exiDecodeNext2Event(stream, state, nextEvent); - } - } else { - *nextEvent = EXI_EVENT_ERROR; - errn = EXI_ERROR_UNEXPECTED_EVENT_LEVEL1; - } - break; - } - - currEvent = *nextEvent; - return errn; -} - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiappHandDecodeStartDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 13; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 105 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 42; - return 0; - } - - return EXI_ERROR_UNEXPECTED_START_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiappHandDecodeEndDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 42) { - return 0; - } - if ( state->grammarStack[state->stackIndex] == 14) { - return 0; - } - - return EXI_ERROR_UNEXPECTED_END_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -int exiappHandDecodeStartElement(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID) { - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - - switch(currEvent) { - case EXI_EVENT_START_ELEMENT: - switch (state->grammarStack[state->stackIndex]) { - case 3: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 4, 5); - break; - } - break; - case 4: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 124, 5); - break; - } - break; - case 5: - /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 2, 31, 18); - break; - } - break; - case 8: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 9, 5); - break; - } - break; - case 9: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 92, 5); - break; - } - break; - case 13: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 65, 14, 15); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 66, 14, 16); - break; - } - break; - case 15: - /* FirstStartTag[START_ELEMENT(AppProtocol)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 3, 5); - break; - } - break; - case 16: - /* FirstStartTag[START_ELEMENT(ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 3, 66, 44); - break; - } - break; - case 26: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 27, 5); - break; - } - break; - case 27: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 97, 5); - break; - } - break; - case 30: - /* Element[START_ELEMENT(ProtocolNamespace)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 2, 31, 18); - break; - } - break; - case 31: - /* Element[START_ELEMENT(VersionNumberMajor)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 5, 33, 46); - break; - } - break; - case 33: - /* Element[START_ELEMENT(VersionNumberMinor)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 6, 34, 35); - break; - } - break; - case 34: - /* Element[START_ELEMENT(SchemaID)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 4, 90, 45); - break; - } - break; - case 42: - /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 42, 5); - break; - case 1: - errn = _exiDecodeStartElement(state, *qnameID = 1, 42, 43); - break; - case 2: - errn = _exiDecodeStartElement(state, *qnameID = 2, 42, 18); - break; - case 3: - errn = _exiDecodeStartElement(state, *qnameID = 3, 42, 44); - break; - case 4: - errn = _exiDecodeStartElement(state, *qnameID = 4, 42, 45); - break; - case 5: - errn = _exiDecodeStartElement(state, *qnameID = 5, 42, 46); - break; - case 6: - errn = _exiDecodeStartElement(state, *qnameID = 6, 42, 35); - break; - case 7: - errn = _exiDecodeStartElement(state, *qnameID = 65, 42, 15); - break; - case 8: - errn = _exiDecodeStartElement(state, *qnameID = 66, 42, 16); - break; - } - break; - case 60: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 61, 5); - break; - } - break; - case 61: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 26, 5); - break; - } - break; - case 66: - /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 4, 129, 45); - break; - } - break; - case 72: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 73, 5); - break; - } - break; - case 73: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 109, 5); - break; - } - break; - case 90: - /* Element[START_ELEMENT(Priority)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 1, 127, 43); - break; - } - break; - case 92: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 113, 5); - break; - } - break; - case 94: - /* Element[START_ELEMENT(AppProtocol)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 3, 5); - break; - } - break; - case 97: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 39, 5); - break; - } - break; - case 109: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 110, 5); - break; - } - break; - case 110: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 60, 5); - break; - } - break; - case 113: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 115, 5); - break; - } - break; - case 115: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 72, 5); - break; - } - break; - case 117: - /* Element[START_ELEMENT(ResponseCode)] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 3, 66, 44); - break; - } - break; - case 124: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 125, 5); - break; - } - break; - case 125: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 128, 5); - break; - } - break; - case 128: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(state->eventCode) { - case 0: - errn = _exiDecodeStartElement(state, *qnameID = 0, 8, 5); - break; - } - break; - - } - break; - case EXI_EVENT_START_ELEMENT_NS: - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - break; - case EXI_EVENT_START_ELEMENT_GENERIC: - case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED: - errn = _exiDecodeQName(stream, state, qnameID, - &_qname); - if (errn) { - return errn; - } - - /* update current rule --> element content rule (if not already) */ - errn = exi_appHand_MoveToElementContentRule(state); - if (errn) { - return errn; - } - - /* retrieve global grammar(existing OR runtime) and push it stack */ - errn = exi_appHand_RetrieveAndPushGlobalGrammar(state, *qnameID); - break; - default: - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - break; - } - - return errn; -} - - - -/*int exiappHandDecodeStartElementGeneric(bitstream_t* stream, exi_state_t* state, - qname_t* qname) { - // decode qname - int errn = _exiDecodeQName(stream, &(state->nameTablePrepopulated), &(state->nameTableRuntime), qname); - if (errn) { - return errn; - } - - switch (state->grammarStack[state->stackIndex]) { - // $EXI_DECODE_START_ELEMENT_GENERIC$ - case DOC_CONTENT: - // move on to DocEnd - state->grammarStack[state->stackIndex] = DOC_END; - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - case UR_TYPE_GRAMMAR_0: - // move on to UR_TYPE_GRAMMAR_1 - state->grammarStack[state->stackIndex] = UR_TYPE_GRAMMAR_1; - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - case UR_TYPE_GRAMMAR_1: - // remain in UR_TYPE_GRAMMAR_1 - // push new ur-type grammar on stack - return exiPushStack(state, UR_TYPE_GRAMMAR_0, NULL); - break; - default: - return EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC; - } - - return EXI_ERROR_UNEXPECTED_START_ELEMENT_GENERIC; -}*/ - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiappHandDecodeEndElement(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID) { - int16_t currentID; - switch(currEvent) { - case EXI_EVENT_END_ELEMENT_UNDECLARED: - currentID = state->grammarStack[state->stackIndex]; - if (currentID < 0) { - /* runtime grammars do have IDs smaller than 0 */ - /* TODO learn EE event */ - return -1; - } - /* Note: no break statement */ - default: - /* copy IDs */ - *qnameID = state->elementStack[state->stackIndex]; - /*ee->localPart = state->elementStack[state->stackIndex].localPart; - ee->namespaceURI = state->elementStack[state->stackIndex].namespaceURI;*/ - - return exi_appHand_PopStack(state); - } -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - -/*int exiappHandDecodeEndElementUndeclared(bitstream_t* stream, exi_state_t* state, eqname_t* ee) { - int16_t currentID = state->grammarStack[state->stackIndex]; - if (currentID < 0) { - // runtime grammars do have IDs smaller than 0 - // TODO learn EE event - return -1; - } - - return exiappHandDecodeEndElement(stream, state, ee); -}*/ - -int exiappHandDecodeCharacters(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int16_t moveOnID = 0; - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - - switch(currEvent) { - case EXI_EVENT_CHARACTERS: - case EXI_EVENT_CHARACTERS_GENERIC: - switch (state->grammarStack[state->stackIndex]) { - case 53: - /* DECIMAL */ - case 116: - /* DECIMAL */ - val->type = EXI_DATATYPE_DECIMAL; - errn = decodeDecimal(stream, &val->decimal); - moveOnID = 2; /* move on ID */ - break; - case 10: - /* STRING */ - case 12: - /* STRING */ - case 18: - /* STRING */ - case 20: - /* STRING */ - case 24: - /* STRING */ - case 32: - /* STRING */ - case 36: - /* STRING */ - case 38: - /* STRING */ - case 40: - /* STRING */ - case 41: - /* STRING */ - case 48: - /* STRING */ - case 54: - /* STRING */ - case 55: - /* STRING */ - case 58: - /* STRING */ - case 67: - /* STRING */ - case 70: - /* STRING */ - case 77: - /* STRING */ - case 78: - /* STRING */ - case 79: - /* STRING */ - case 85: - /* STRING */ - case 86: - /* STRING */ - case 87: - /* STRING */ - case 96: - /* STRING */ - case 98: - /* STRING */ - case 101: - /* STRING */ - case 106: - /* STRING */ - case 114: - /* STRING */ - case 118: - /* STRING */ - case 120: - /* STRING */ - case 131: - /* STRING */ - case 137: - /* STRING */ - case 141: - /* STRING */ - case 142: - /* STRING */ - case 143: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 2; /* move on ID */ - break; - case 25: - /* LIST */ - case 29: - /* LIST */ - case 65: - /* LIST */ - case 95: - /* LIST */ - case 140: - /* LIST */ - case 144: - /* LIST */ - val->type = EXI_DATATYPE_LIST; - val->list.type = EXI_DATATYPE_STRING; - errn = decodeUnsignedInteger16(stream, &val->list.len); - moveOnID = 2; /* move on ID */ - break; - case 112: - /* DATETIME */ - case 126: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_TIME, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 28: - /* BINARY_HEX */ - case 132: - /* BINARY_HEX */ - val->type = EXI_DATATYPE_BINARY_HEX; - errn = decodeBinary(stream, &val->binary); - moveOnID = 2; /* move on ID */ - break; - case 74: - /* DATETIME */ - case 123: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GYEARMONTH, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 1: - /* NBIT_UNSIGNED_INTEGER */ - case 45: - /* NBIT_UNSIGNED_INTEGER */ - case 75: - /* NBIT_UNSIGNED_INTEGER */ - case 122: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 2; /* move on ID */ - break; - case 88: - /* DATETIME */ - case 104: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_DATETIME, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 56: - /* NBIT_UNSIGNED_INTEGER */ - case 134: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 2; /* move on ID */ - break; - case 100: - /* DATETIME */ - case 139: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GMONTHDAY, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 17: - /* INTEGER */ - case 47: - /* INTEGER */ - case 68: - /* INTEGER */ - case 69: - /* INTEGER */ - case 76: - /* INTEGER */ - case 83: - /* INTEGER */ - case 89: - /* INTEGER */ - case 91: - /* INTEGER */ - case 93: - /* INTEGER */ - case 107: - /* INTEGER */ - case 136: - /* INTEGER */ - case 138: - /* INTEGER */ - val->type = EXI_DATATYPE_INTEGER; - errn = decodeInteger(stream, &val->integer); - moveOnID = 2; /* move on ID */ - break; - case 71: - /* ENUMERATION */ - case 44: - /* ENUMERATION */ - val->type = EXI_DATATYPE_ENUMERATION; - errn = decodeNBitUnsignedInteger(stream, 2, &val->enumeration); - moveOnID = 2; /* move on ID */ - break; - case 64: - /* DATETIME */ - case 82: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GMONTH, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 84: - /* DATETIME */ - case 99: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GYEAR, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 121: - /* DATETIME */ - case 133: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_DATE, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 63: - /* DATETIME */ - case 135: - /* DATETIME */ - val->type = EXI_DATATYPE_DATETIME; - errn = decodeDateTime(stream, EXI_DATETIME_GDAY, &val->datetime); - moveOnID = 2; /* move on ID */ - break; - case 22: - /* STRING */ - case 23: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 23; /* move on ID */ - break; - case 11: - /* FLOAT */ - case 62: - /* FLOAT */ - case 103: - /* FLOAT */ - case 130: - /* FLOAT */ - val->type = EXI_DATATYPE_FLOAT; - errn = decodeFloat(stream, &val->float_me); - moveOnID = 2; /* move on ID */ - break; - case 19: - /* NBIT_UNSIGNED_INTEGER */ - case 43: - /* NBIT_UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_NBIT_UNSIGNED_INTEGER; - errn = _decodeNBitIntegerValue(stream, &val->integer, 5, 1); - moveOnID = 2; /* move on ID */ - break; - case 37: - /* BOOLEAN */ - case 80: - /* BOOLEAN */ - val->type = EXI_DATATYPE_BOOLEAN; - errn = decodeBoolean(stream, &val->boolean); - moveOnID = 2; /* move on ID */ - break; - case 7: - /* UNSIGNED_INTEGER */ - case 21: - /* UNSIGNED_INTEGER */ - case 49: - /* UNSIGNED_INTEGER */ - case 57: - /* UNSIGNED_INTEGER */ - case 59: - /* UNSIGNED_INTEGER */ - case 46: - /* UNSIGNED_INTEGER */ - case 81: - /* UNSIGNED_INTEGER */ - case 35: - /* UNSIGNED_INTEGER */ - case 102: - /* UNSIGNED_INTEGER */ - case 108: - /* UNSIGNED_INTEGER */ - case 119: - /* UNSIGNED_INTEGER */ - case 145: - /* UNSIGNED_INTEGER */ - val->type = EXI_DATATYPE_UNSIGNED_INTEGER; - errn = decodeUnsignedInteger(stream, &val->integer); - moveOnID = 2; /* move on ID */ - break; - case 50: - /* STRING */ - case 51: - /* STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 51; /* move on ID */ - break; - case 52: - /* BINARY_BASE64 */ - case 111: - /* BINARY_BASE64 */ - val->type = EXI_DATATYPE_BINARY_BASE64; - errn = decodeBinary(stream, &val->binary); - moveOnID = 2; /* move on ID */ - break; - - } - if (errn) { - /* error */ - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - break; - case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED: - if (state->grammarStack[state->stackIndex] < 0) { - /* runtime grammars do have IDs smaller than 0 */ - return EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH; - } - - /* update current rule --> element content rule (if not already) */ - errn = exi_appHand_MoveToElementContentRule(state); - if (errn) { - return errn; - } - - /* read content value as STRING */ - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - break; - default: - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - break; - } - - return errn; -} - -/*int exiappHandDecodeCharactersGeneric(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - return exiappHandDecodeCharacters(stream, state, val); -}*/ - -/*int exiappHandDecodeCharactersGenericUndeclared(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int errn = 0; - if (state->grammarStack[state->stackIndex] < 0) { - // runtime grammars do have IDs smaller than 0 - // TODO learn CH event - return -1; - } - - // update current rule --> element content rule (if not already) - errn = exiMoveToElementContentRule(state); - if (errn) { - return errn; - } - - // read content value - // STRING - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, &val->string); - return errn; -}*/ - -int exiappHandDecodeAttributeGenericValue(bitstream_t* stream, exi_state_t* state, uint16_t* qnameID, exi_value_t* val) { - int16_t currentID; - - if (_qname.uri.id == 2 && _qname.localName.id == 1 ) { - /* xsi:type --> QName type */ - errn = exiappHandDecodeAttributeXsiType(stream, state, val); - } else { - currentID = state->grammarStack[state->stackIndex]; - if (currentID >= 0) { - /* if schema-informed value type according global attribute */ - switch(*qnameID) { - - default: - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - break; - } - - } else { - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, state, *qnameID, &val->str); - } - } - - return errn; -} - -int exiappHandDecodeAttribute(bitstream_t* stream, exi_state_t* state, - uint16_t* qnameID, exi_value_t* val) { - int16_t moveOnID = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - - switch(currEvent) { - case EXI_EVENT_ATTRIBUTE: - case EXI_EVENT_ATTRIBUTE_INVALID_VALUE: - switch (currentID) { - - } - - if (errn) { - /* error */ - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - break; - case EXI_EVENT_ATTRIBUTE_GENERIC: - case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED: - errn = _exiDecodeQName(stream, state, qnameID, &_qname); - if (errn) { - return errn; - } - /* learn attribute ? */ - errn = exi_appHand_LearnAttribute(state, *qnameID, _qname.uri.id, _qname.localName.id); - if (errn) { - return errn; - } - /* decode attribute value */ - errn = exiappHandDecodeAttributeGenericValue(stream, state, qnameID, val); - break; - default: - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - break; - } - - return errn; -} - - - -/*int exiappHandDecodeAttributeGenericUndeclared(bitstream_t* stream, exi_state_t* state, - qname_t* at, exi_value_t* val) { - int errn; - int16_t currentID = state->grammarStack[state->stackIndex]; - - if (currentID < 0) { - // TODO runtime elements - return -1; - } else { - // decode qname - errn = _exiDecodeQName(stream, &(state->nameTablePrepopulated), &(state->nameTableRuntime), at); - if (errn) { - return errn; - } - } - - - if (currentID < 0) { - // TODO learn AT event - return -1; - } - - decode attribute value - val->type = EXI_DATATYPE_STRING; - errn = decodeStringValue(stream, &val->string); - - // we do not move forward in grammars - - return errn; -}*/ - - - -int exiappHandDecodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - errn = decodeBoolean(stream, &val->boolean); - if (errn >= 0 && val->boolean) { - /* handle xsi:nil == true */ - errn = exi_appHand_HandleXsiNilTrue(state); - } - return errn; -} - - -int exiappHandDecodeAttributeXsiType(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - /*uint32_t uriID; - uint32_t localNameID; */ - /* uri */ - errn =_exiDecodeNamespaceUri(stream, state, &_qname.uri); /* NULL, &uriID); */ - if (errn) { - return errn; - } - /* localName */ - errn = _exiDecodeLocalName(stream, state, _qname.uri.id, &_qname.localName); /* NULL, &localNameID, uriID);*/ - if (errn) { - return errn; - } - - val->type = EXI_DATATYPE_QNAME; - val->eqname.namespaceURI = _qname.uri.id; /* uriID; */ - val->eqname.localPart = _qname.localName.id; /* localNameID; */ - - /* handle xsi type cast */ - errn = exi_appHand_HandleXsiType(state, &val->eqname); - - return errn; -} - - - -#endif - diff --git a/src/codec/appHandCodec/appHandEXIDecoder.h b/src/codec/appHandCodec/appHandEXIDecoder.h deleted file mode 100644 index ecb3f52..0000000 --- a/src/codec/appHandCodec/appHandEXIDecoder.h +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI_appHand_DECODER_H -#define EXI_appHand_DECODER_H - -/** -* \file EXIDecoder.h -* \brief EXI Decoder -* -*/ - -#include "EXITypes.h" - -/** - * \brief Initialize EXI decoder - * - * Resets & initializes the EXI decoder. - * - * \param stream Input Stream - * \param state Codec state - * \param runtimeTable Runtime name-tables - * \param stringTable String table - * \return Error-Code <> 0 - * - */ -int exiappHandInitDecoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable); - - -/** - * \brief Reports last decoded qualified name - * - * Note: Qualified name only available for previously unknown qname. Otherwise make use of name table entries. - * - * \param qname Qualified name - * \return Error-Code <> 0 - * - */ -int exiappHandGetLastQName(exi_qname_t** qname); - - -/** - * \brief Decodes next event - * - * Inspects EXI stream and decodes next EXI event. - * - * \param stream Input Stream - * \param state Codec state - * \param nextEvent Next event - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeNextEvent(bitstream_t* stream, - exi_state_t* state, exi_event_t* nextEvent); - - -/** - * \brief Decodes StartDocument (SD) event - * - * \param stream Input Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeStartDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Decodes EndDocument (ED) event - * - * \param stream Input Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeEndDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Decodes StartElemnt (SE) event - * - * Note: The first time a qnameID is larger than schema-informed NUMBER_OF_QNAMES it is possible to retrieve the qname by calling GetLastQName(...). - * It is up to the caller to track qnames. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \return Error-Code <> 0 - * - */ -int -exiappHandDecodeStartElement(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID); - - -/** - * \brief Decodes EndElement (EE) event - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeEndElement(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID); - - -/** - * \brief Decodes Characters (CH) event. - * - * Reports characters value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeCharacters(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes Attribute (AT) event. - * - * Reports attribute qname and value. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeAttribute(bitstream_t* stream, - exi_state_t* state, uint16_t* qnameID, exi_value_t* val); - - -/** - * \brief Decodes attribute xsi:nil - * - * Reports value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeAttributeXsiNil(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes attribute xsi:type - * - * Reports value. - * - * \param stream Input Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeAttributeXsiType(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - - -/** - * \brief Decodes attribute/characters list value - * - * List values are special and are processed one by one. - * - * \param stream Input Stream - * \param state Codec state - * \param qnameID Qualified Name ID - * \param val List value - * \param lt List type - * \return Error-Code <> 0 - * - */ -int exiappHandDecodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val, exi_list_t lt); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/appHandCodec/appHandEXIEncoder.c b/src/codec/appHandCodec/appHandEXIEncoder.c deleted file mode 100644 index e79d7ea..0000000 --- a/src/codec/appHandCodec/appHandEXIEncoder.c +++ /dev/null @@ -1,1415 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_ENCODER_C -#define EXI_appHand_ENCODER_C - -#include "EXITypes.h" -#include "EXIOptions.h" -#include "BitOutputStream.h" -#include "EncoderChannel.h" - -#include "StringTable.h" -#include "appHandNameTableEntries.h" -#include "MethodsBag.h" - -#include "EXIOptions.h" - -#include "appHandEXICoder.h" -#include "EXIHeaderEncoder.h" -#include "ErrorCodes.h" -#include "appHandQNames.h" -#include "appHandQNameDefines.h" - - - - -/* local variables */ -static uint32_t bits; -static int errn; - -/* ==================================== */ - -static int _encodeNBitIntegerValue(bitstream_t* stream, exi_integer_t* iv, uint16_t nbits, int32_t lowerBound) { - int errn; - uint32_t val; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - val = iv->val.int8 - lowerBound; - break; - case EXI_UNSIGNED_INTEGER_16: - val = iv->val.int16 - lowerBound; - break; - case EXI_UNSIGNED_INTEGER_32: - val = (uint32_t)(iv->val.int32 - lowerBound); - break; - case EXI_UNSIGNED_INTEGER_64: - val = (uint32_t)(iv->val.int64 - lowerBound); - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - val = iv->val.uint8 - lowerBound; - break; - case EXI_INTEGER_16: - val = iv->val.uint16 - lowerBound; - break; - case EXI_INTEGER_32: - val = iv->val.uint32 - lowerBound; - break; - case EXI_INTEGER_64: - val = (uint32_t)(iv->val.uint64 - lowerBound); - break; - default: - return EXI_UNSUPPORTED_INTEGER_VALUE_TYPE; - break; - } - - errn = encodeNBitUnsignedInteger(stream, nbits, val); - return errn; -} - - - -static int _exiValueToString(exi_value_t* val) { - if (val->type == EXI_DATATYPE_STRING) { - return 0; - } else { - /* TODO convert typed value to string */ - return EXI_ERROR_CONVERSION_TYPE_TO_STRING; - } -} - - - -static int _exiEncodeEventCode2(bitstream_t* stream, exi_state_t* state, exi_event_t event2) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -static int _exiEncodeNamespaceUriHit(bitstream_t* stream, exi_state_t* state, uint16_t uriID) { - int errn; - uint16_t uriCodingLength; - uint16_t uriSize; - - errn = exiGetUriSize(&state->nameTablePrepopulated, &state->nameTableRuntime, &uriSize); - if (errn) { - return errn; - } - /* URI Entries + 1 */ - errn = exiGetCodingLength(uriSize + 1, &uriCodingLength); - if (errn) { - return errn; - } - - /* uri string value found */ - /* ==> value(i+1) is encoded as n-bit unsigned integer */ - errn = encodeNBitUnsignedInteger(stream, uriCodingLength, uriID+1); - - return errn; -} - - -static int _exiEncodeNamespaceMiss(bitstream_t* stream, exi_state_t* state, - exi_string_ucs_t* uri, uint16_t* uriID) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - - -static int _exiEncodeLocalNameHit(bitstream_t* stream, exi_state_t* state, - uint16_t uriID, uint16_t localNameID) { - int errn; - uint16_t localNameSize; - uint16_t localNameCodingLength; - - /* string value found in local partition */ - /* ==> string value is represented as zero (0) encoded as an */ - errn = encodeUnsignedInteger32(stream, 0 ); - if (errn < 0) { - return errn; - } - /* Unsigned Integer followed by an the compact identifier of the */ - /* string value as an n-bit unsigned integer n is log2 m and m is */ - /* the number of entries in the string table partition */ - errn = exiGetLocalNameSize(&state->nameTablePrepopulated, &state->nameTableRuntime, uriID, &localNameSize); - if (errn < 0) { - return errn; - } - errn = exiGetCodingLength(localNameSize, &localNameCodingLength); - if (errn) { - return errn; - } - errn = encodeNBitUnsignedInteger(stream, localNameCodingLength, localNameID); - return errn; - -} - - -static int _exiEncodeLocalNameMiss(bitstream_t* stream, exi_state_t* state, - exi_string_ucs_t* localName, uint16_t uriID, uint16_t* localNameID) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -static int _encodeAttributeXsiTypeContent(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - - /* encode qname */ - errn = _exiEncodeNamespaceUriHit(stream, state, val->eqname.namespaceURI); - if (errn < 0) { - return errn; - } - errn = _exiEncodeLocalNameHit(stream, state, val->eqname.namespaceURI, val->eqname.localPart); - if (errn < 0) { - return errn; - } - - /* handle xsi type cast */ - errn = exi_appHand_HandleXsiType(state, &val->eqname); - - return errn; -} - - -static int _exiEncodeStartElement(bitstream_t* stream, uint16_t nbits, - uint32_t val, exi_state_t* state, uint16_t qnameID, uint16_t stackId, - uint16_t newState) { - /* event-code */ - int errn = encodeNBitUnsignedInteger(stream, nbits, val); - if (errn) { - return errn; - } - /* move on */ - state->grammarStack[state->stackIndex] = stackId; - /* push element on stack */ - return exi_appHand_PushStack(state, newState, qnameID); -} - - -static int _exiEncodeEndElementUndeclared(bitstream_t* stream, exi_state_t* state) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - -static int _encode2ndLevelAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiappHandEncodeListValue(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt) { - - switch(lt.type) { - case EXI_DATATYPE_BINARY_BASE64: - case EXI_DATATYPE_BINARY_HEX: - errn = encodeBinary(stream, &val->binary); - break; - case EXI_DATATYPE_BOOLEAN: - errn = encodeBoolean(stream, val->boolean); - break; - case EXI_DATATYPE_BOOLEAN_FACET: - errn = encodeNBitUnsignedInteger(stream, 2, val->boolean ? 2 : 0); - break; - case EXI_DATATYPE_DECIMAL: - errn = encodeDecimal(stream, &val->decimal); - break; - case EXI_DATATYPE_FLOAT: - errn = encodeFloat(stream, &val->float_me); - break; - case EXI_DATATYPE_NBIT_UNSIGNED_INTEGER: - errn = EXI_UNSUPPORTED_LIST_VALUE_TYPE; - break; - case EXI_DATATYPE_UNSIGNED_INTEGER: - errn = encodeUnsignedInteger(stream, &val->integer); - break; - case EXI_DATATYPE_INTEGER: - errn = encodeInteger(stream, &val->integer); - break; - case EXI_DATATYPE_DATETIME: - errn = encodeDateTime(stream, &val->datetime); - break; - case EXI_DATATYPE_STRING: - errn = encodeStringValue(stream, state, qnameID, &val->str); - break; - default: - return EXI_UNSUPPORTED_LIST_VALUE_TYPE; - } - - return errn; -} - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiappHandEncodeStartDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 13; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 0 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 13; - return 0; - } - if ( state->grammarStack[state->stackIndex] == 105 ) { - /* move on */ - state->grammarStack[state->stackIndex] = 42; - return 0; - } - - return EXI_ERROR_UNEXPECTED_START_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -#ifndef __GNUC__ -#pragma warning( disable : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ -int exiappHandEncodeEndDocument(bitstream_t* stream, exi_state_t* state) { - if ( state->grammarStack[state->stackIndex] == 42) { - encodeFinish(stream); - return 0; - } - if ( state->grammarStack[state->stackIndex] == 14) { - encodeFinish(stream); - return 0; - } - - return EXI_ERROR_UNEXPECTED_END_DOCUMENT; -} -#ifndef __GNUC__ -#pragma warning( default : 4100 ) /* warning unreferenced parameter 'stream' */ -#endif /* __GNUC__ */ - - -int exiappHandInitEncoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable) { -#if EXI_appHandVALUE_PARTITION_CAPACITY != 0 -#if EXI_appHandVALUE_MAX_LENGTH != 0 - int i; -#endif /* EXI_appHandVALUE_MAX_LENGTH != 0 */ -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY != 0 */ - /* init grammar state */ - state->stackIndex = 0; - state->grammarStack[0] = DOCUMENT; - /* name tables */ - state->nameTablePrepopulated = exiappHandNameTablePrepopulated; - state->nameTableRuntime = runtimeTable; - /* next qname ID */ - state->nextQNameID = EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES; - /* string tables */ - state->stringTable = stringTable; - state->stringTable.numberOfGlobalStrings = 0; -#if EXI_appHandVALUE_PARTITION_CAPACITY != 0 -#if EXI_appHandVALUE_MAX_LENGTH != 0 - for(i=0; i<(state->stringTable.sizeLocalStrings); i++) { - state->stringTable.numberOfLocalStrings[i] = 0; - } -#endif /* EXI_appHandVALUE_MAX_LENGTH != 0 */ -#endif /* EXI_appHandVALUE_PARTITION_CAPACITY != 0 */ - - /* runtime grammars */ - state->numberOfRuntimeGrammars = 0; - - /* Avoid warning: Unused declaration of variable 'name' */ - bits = 0; - - /* encode header */ - return writeEXIHeader(stream); -} - - -int exiappHandEncodeStartElement(bitstream_t* stream, exi_state_t* state, uint16_t qnameID) { - uint16_t namespaceUriID, localNameID; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_START_ELEMENT; - - switch (currentID) { - case 3: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 4, 5); - break; - } - break; - case 4: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 124, 5); - break; - } - break; - case 5: - /* FirstStartTag[START_ELEMENT(ProtocolNamespace)] */ - switch(qnameID) { - case 2: - /* SE( ProtocolNamespace ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 31, 18); - break; - } - break; - case 8: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 9, 5); - break; - } - break; - case 9: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 92, 5); - break; - } - break; - case 13: - /* DocContent[START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC] */ - switch(qnameID) { - case 65: - /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 14, 15); - break; - case 66: - /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes ) */ - errn = _exiEncodeStartElement(stream, 2, 1, state, qnameID, 14, 16); - break; - } - break; - case 15: - /* FirstStartTag[START_ELEMENT(AppProtocol)] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 3, 5); - break; - } - break; - case 16: - /* FirstStartTag[START_ELEMENT(ResponseCode)] */ - switch(qnameID) { - case 3: - /* SE( ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 66, 44); - break; - } - break; - case 26: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 27, 5); - break; - } - break; - case 27: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 97, 5); - break; - } - break; - case 30: - /* Element[START_ELEMENT(ProtocolNamespace)] */ - switch(qnameID) { - case 2: - /* SE( ProtocolNamespace ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 31, 18); - break; - } - break; - case 31: - /* Element[START_ELEMENT(VersionNumberMajor)] */ - switch(qnameID) { - case 5: - /* SE( VersionNumberMajor ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 33, 46); - break; - } - break; - case 33: - /* Element[START_ELEMENT(VersionNumberMinor)] */ - switch(qnameID) { - case 6: - /* SE( VersionNumberMinor ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 34, 35); - break; - } - break; - case 34: - /* Element[START_ELEMENT(SchemaID)] */ - switch(qnameID) { - case 4: - /* SE( SchemaID ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 90, 45); - break; - } - break; - case 42: - /* FragmentContent[START_ELEMENT(AppProtocol), START_ELEMENT(Priority), START_ELEMENT(ProtocolNamespace), START_ELEMENT(ResponseCode), START_ELEMENT(SchemaID), START_ELEMENT(VersionNumberMajor), START_ELEMENT(VersionNumberMinor), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq), START_ELEMENT({urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes), START_ELEMENT_GENERIC, END_DOCUMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 4, 0, state, qnameID, 42, 5); - break; - case 1: - /* SE( Priority ) */ - errn = _exiEncodeStartElement(stream, 4, 1, state, qnameID, 42, 43); - break; - case 2: - /* SE( ProtocolNamespace ) */ - errn = _exiEncodeStartElement(stream, 4, 2, state, qnameID, 42, 18); - break; - case 3: - /* SE( ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 4, 3, state, qnameID, 42, 44); - break; - case 4: - /* SE( SchemaID ) */ - errn = _exiEncodeStartElement(stream, 4, 4, state, qnameID, 42, 45); - break; - case 5: - /* SE( VersionNumberMajor ) */ - errn = _exiEncodeStartElement(stream, 4, 5, state, qnameID, 42, 46); - break; - case 6: - /* SE( VersionNumberMinor ) */ - errn = _exiEncodeStartElement(stream, 4, 6, state, qnameID, 42, 35); - break; - case 65: - /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq ) */ - errn = _exiEncodeStartElement(stream, 4, 7, state, qnameID, 42, 15); - break; - case 66: - /* SE( {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes ) */ - errn = _exiEncodeStartElement(stream, 4, 8, state, qnameID, 42, 16); - break; - } - break; - case 60: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 61, 5); - break; - } - break; - case 61: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 26, 5); - break; - } - break; - case 66: - /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ - switch(qnameID) { - case 4: - /* SE( SchemaID ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 129, 45); - break; - } - break; - case 72: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 73, 5); - break; - } - break; - case 73: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 109, 5); - break; - } - break; - case 90: - /* Element[START_ELEMENT(Priority)] */ - switch(qnameID) { - case 1: - /* SE( Priority ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 127, 43); - break; - } - break; - case 92: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 113, 5); - break; - } - break; - case 94: - /* Element[START_ELEMENT(AppProtocol)] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 3, 5); - break; - } - break; - case 97: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 39, 5); - break; - } - break; - case 109: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 110, 5); - break; - } - break; - case 110: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 60, 5); - break; - } - break; - case 113: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 115, 5); - break; - } - break; - case 115: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 72, 5); - break; - } - break; - case 117: - /* Element[START_ELEMENT(ResponseCode)] */ - switch(qnameID) { - case 3: - /* SE( ResponseCode ) */ - errn = _exiEncodeStartElement(stream, 1, 0, state, qnameID, 66, 44); - break; - } - break; - case 124: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 125, 5); - break; - } - break; - case 125: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 128, 5); - break; - } - break; - case 128: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - switch(qnameID) { - case 0: - /* SE( AppProtocol ) */ - errn = _exiEncodeStartElement(stream, 2, 0, state, qnameID, 8, 5); - break; - } - break; - - default: - /* element qname not expected */ - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } - - return errn; -} - - - -int exiappHandEncodeStartElementNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiappHandEncodeStartElementGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - - -int exiappHandEncodeEndElement(bitstream_t* stream, exi_state_t* state) { - int errn = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - switch (currentID) { - case 22: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 50: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - errn = encodeNBitUnsignedInteger(stream, 3, 2); - break; - case 2: - /* Element[END_ELEMENT] */ - case 39: - /* Element[END_ELEMENT] */ - case 127: - /* Element[END_ELEMENT] */ - case 129: - /* Element[END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 1, 0); - break; - case 3: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 8: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 26: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 60: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 72: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 23: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 9: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 97: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 109: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 92: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 115: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 124: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 27: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 51: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - case 128: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 66: - /* Element[START_ELEMENT(SchemaID), END_ELEMENT] */ - case 110: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 61: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 113: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 4: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 125: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - case 73: - /* Element[START_ELEMENT(AppProtocol), END_ELEMENT] */ - errn = encodeNBitUnsignedInteger(stream, 2, 1); - break; - - default: - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } - - if (errn < 0) { - return errn; - } - - /* pop item */ - return exi_appHand_PopStack(state); -} - - - -int exiappHandEncodeCharacters(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - int16_t moveOnID = 0; - int deviantChars = 0; - - int16_t currentID = state->grammarStack[state->stackIndex]; - switch (currentID) { - case 43: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 5, 1); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 65: - case 95: - case 140: - /* Element[CHARACTERS[LIST]] */ - if (val->type == EXI_DATATYPE_LIST) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger32(stream, val->list.len); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 51: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 51; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 37: - /* Element[CHARACTERS[BOOLEAN]] */ - if (val->type == EXI_DATATYPE_BOOLEAN) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBoolean(stream, val->boolean); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 56: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 19: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 5, 1); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 44: - /* FirstStartTag[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 53: - /* FirstStartTag[CHARACTERS[DECIMAL]] */ - if (val->type == EXI_DATATYPE_DECIMAL) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDecimal(stream, &val->decimal); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 11: - case 130: - /* FirstStartTag[CHARACTERS[FLOAT]] */ - if (val->type == EXI_DATATYPE_FLOAT) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeFloat(stream, &val->float_me); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 116: - /* Element[CHARACTERS[DECIMAL]] */ - if (val->type == EXI_DATATYPE_DECIMAL) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDecimal(stream, &val->decimal); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 25: - case 29: - case 144: - /* FirstStartTag[CHARACTERS[LIST]] */ - if (val->type == EXI_DATATYPE_LIST) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger32(stream, val->list.len); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 50: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 51; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 3, 5); - deviantChars = 1; - } - break; - case 46: - case 35: - /* First(xsi:type)StartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 12: - case 32: - case 38: - case 40: - case 41: - case 54: - case 67: - case 70: - case 77: - case 85: - case 87: - case 96: - case 114: - case 118: - case 120: - case 131: - case 137: - /* Element[CHARACTERS[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 23: - /* Element[START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 2, 2); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 23; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 2, 3); - encodeNBitUnsignedInteger(stream, 1, 1); - deviantChars = 1; - } - break; - case 111: - /* FirstStartTag[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 28: - /* Element[CHARACTERS[BINARY_HEX]] */ - if (val->type == EXI_DATATYPE_BINARY_HEX) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 17: - case 47: - case 83: - case 91: - case 107: - case 136: - /* Element[CHARACTERS[INTEGER]] */ - if (val->type == EXI_DATATYPE_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeInteger(stream, &val->integer); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 62: - case 103: - /* Element[CHARACTERS[FLOAT]] */ - if (val->type == EXI_DATATYPE_FLOAT) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeFloat(stream, &val->float_me); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 52: - /* Element[CHARACTERS[BINARY_BASE64]] */ - if (val->type == EXI_DATATYPE_BINARY_BASE64) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 132: - /* FirstStartTag[CHARACTERS[BINARY_HEX]] */ - if (val->type == EXI_DATATYPE_BINARY_HEX) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBinary(stream, &val->binary); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 7: - case 21: - case 49: - case 57: - case 102: - /* FirstStartTag[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 45: - case 122: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 64: - case 74: - case 99: - case 100: - case 104: - case 112: - case 133: - case 135: - /* FirstStartTag[CHARACTERS[DATETIME]] */ - if (val->type == EXI_DATATYPE_DATETIME) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDateTime(stream, &val->datetime); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 1: - case 75: - /* Element[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, 0); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 68: - case 69: - case 76: - case 89: - case 93: - case 138: - /* FirstStartTag[CHARACTERS[INTEGER]] */ - if (val->type == EXI_DATATYPE_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeInteger(stream, &val->integer); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 134: - /* FirstStartTag[CHARACTERS[NBIT_UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = _encodeNBitIntegerValue(stream, &val->integer, 8, -128); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 71: - /* Element[CHARACTERS[ENUMERATION]] */ - if (val->type == EXI_DATATYPE_ENUMERATION) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeNBitUnsignedInteger(stream, 2, val->enumeration); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 59: - case 81: - case 108: - case 119: - case 145: - /* Element[CHARACTERS[UNSIGNED_INTEGER]] */ - if (val->type == EXI_DATATYPE_UNSIGNED_INTEGER) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeUnsignedInteger(stream, &val->integer); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 80: - /* FirstStartTag[CHARACTERS[BOOLEAN]] */ - if (val->type == EXI_DATATYPE_BOOLEAN) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeBoolean(stream, val->boolean); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 63: - case 82: - case 84: - case 88: - case 121: - case 123: - case 126: - case 139: - /* Element[CHARACTERS[DATETIME]] */ - if (val->type == EXI_DATATYPE_DATETIME) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeDateTime(stream, &val->datetime); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 2, 2); - deviantChars = 1; - } - break; - case 10: - case 18: - case 20: - case 24: - case 36: - case 48: - case 55: - case 58: - case 78: - case 79: - case 86: - case 98: - case 101: - case 106: - case 141: - case 142: - case 143: - /* FirstStartTag[CHARACTERS[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 1, 0); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 2; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 1, 1); - encodeNBitUnsignedInteger(stream, 3, 6); - deviantChars = 1; - } - break; - case 22: - /* FirstStartTag[ATTRIBUTE_GENERIC, START_ELEMENT_GENERIC, END_ELEMENT, CHARACTERS_GENERIC[STRING]] */ - if (val->type == EXI_DATATYPE_STRING) { - encodeNBitUnsignedInteger(stream, 3, 3); - errn = encodeStringValue(stream, state, state->elementStack[state->stackIndex], &val->str); - moveOnID = 23; - } else { - /* deviant characters */ - encodeNBitUnsignedInteger(stream, 3, 4); - encodeNBitUnsignedInteger(stream, 3, 5); - deviantChars = 1; - } - break; - - default: - return EXI_ERROR_UNEXPECTED_CHARACTERS; - } - - if (currentID < 0) { - /* TODO runtime rules */ - errn = EXI_ERROR_UNEXPECTED_CHARACTERS; - } else if (deviantChars) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; - } else { - /* move on */ - state->grammarStack[state->stackIndex] = moveOnID; - } - - return errn; -} - - -int exiappHandEncodeAttribute(bitstream_t* stream, exi_state_t* state, uint16_t qnameID, - exi_value_t* val) { - int16_t moveOnID = 0; - int16_t currentID = state->grammarStack[state->stackIndex]; - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; - - switch (currentID) { - - } - - /* no expected attribute */ - if (currentID < 0) { - /* runtime element */ - errn = _encode2ndLevelAttribute(stream, state, qnameID, val); - } else { - if(moveOnID == 0) { - /* no action yet */ -#if EXI_appHandSTRICT != 0 - /* no 2nd level events in strict mode for schema-informed grammars */ - errn = EXI_ERROR_UNEXPECTED_ATTRIBUTE; -#else /* EXI_appHandSTRICT != 0 */ - errn = _encode2ndLevelAttribute(stream, state, qnameID, val); -#endif /* EXI_appHandSTRICT != 0 */ - } else { - state->grammarStack[state->stackIndex] = moveOnID; - } - } - - return errn; -} - - -int exiappHandEncodeAttributeNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName, exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - -int exiappHandEncodeAttributeGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName, exi_value_t* val) { - return EXI_DEVIANT_SUPPORT_NOT_DEPLOYED; -} - - -int exiappHandEncodeAttributeXsiNil(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - - switch (state->grammarStack[state->stackIndex]) { - - } - - if (errn < 0) { - return errn; - } - - errn = encodeBoolean(stream, val->boolean); - if (!errn && val->boolean) { - /* handle xsi:nil == true */ - errn = exi_appHand_HandleXsiNilTrue(state); - } - return errn; -} - - - -int exiappHandEncodeAttributeXsiType(bitstream_t* stream, exi_state_t* state, - exi_value_t* val) { - /* encode xsi:type event code */ - switch (state->grammarStack[state->stackIndex]) { - case 46: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - case 35: - errn = encodeNBitUnsignedInteger(stream, 1, 1); - if(errn) return errn; - errn = encodeNBitUnsignedInteger(stream, 3, 1); - break; - - default: - return EXI_ERROR_UNEXPECTED_ATTRIBUTE_XSI_TYPE; - } - if (errn) { - return errn; - } - - /* encode qname */ - errn = _encodeAttributeXsiTypeContent(stream, state, val); - - return errn; -} - - - - -#endif - diff --git a/src/codec/appHandCodec/appHandEXIEncoder.h b/src/codec/appHandCodec/appHandEXIEncoder.h deleted file mode 100644 index 7f1c4b5..0000000 --- a/src/codec/appHandCodec/appHandEXIEncoder.h +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI_appHand_ENCODER_H -#define EXI_appHand_ENCODER_H - -/** -* \file EXIEncoder.h -* \brief EXI Encoder -* -*/ - -#include "EXITypes.h" -#include "appHandEXIEncoder.h" - -/** - * \brief Initialize EXI encoder - * - * Resets & initializes the EXI encoder. - * - * \param stream Output Stream - * \param state Codec state - * \param runtimeTable Runtime name-tables - * \param stringTable String table - * \return Error-Code <> 0 - * - */ -int exiappHandInitEncoder(bitstream_t* stream, exi_state_t* state, - exi_name_table_runtime_t runtimeTable, exi_string_table_t stringTable); - -/** - * \brief Reports the beginning of a set of XML events - * - * see EXI StartDocument (SD) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeStartDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Reports the end of a set of XML events - * - * see EXI EndDocument (ED) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeEndDocument(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Supplies the start of a known element - * - * Provides access to the namespace URI and local name of the start tag by providing qnameID. - * Note: Both, namespace URI and local name are known (schema-informed) or have been encoded before. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \return Error-Code <> 0 - * - */ -int -exiappHandEncodeStartElement(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID); - -/** - * \brief Supplies the start of an element where the namespace is known - * - * Note: Namespace URI is known (schema-informed) or has been encoded before while local name is unknown. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUriID namespace URI ID - * \param localName local name as string - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeStartElementNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName); - -/** - * \brief Supplies the start of an element where the namespace and the local name is unknown - * - * Note: Neither namespace URI nor local name is known. - * see EXI StartElement (SE) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUri namespace URI as string - * \param localName local name as string - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeStartElementGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName); - -/** - * \brief Supplies the end tag of an element - * - * see EXI EndElement (EE) event - * - * \param stream Output Stream - * \param state Codec state - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeEndElement(bitstream_t* stream, - exi_state_t* state); - -/** - * \brief Supplies characters value - * - * Note: Special handling for list value. - * see EXI Characters (CH) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Characters value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeCharacters(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies an attribute qname and value - * - * Note: Special handling for list value. - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeAttribute(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID, exi_value_t* val); - - - - -/** - * \brief Supplies an attribute qname and value where the namespace is known - * - * Note: Special handling for list value. - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUriID Qualified namespace URI ID - * \param localName Qualified localname as String - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeAttributeNS(bitstream_t* stream, - exi_state_t* state, uint16_t namespaceUriID, - exi_string_ucs_t* localName, exi_value_t* val); - - -/** - * \brief Supplies an attribute qname and value where the namespace and the local name is unknown - * - * - * \param stream Output Stream - * \param state Codec state - * \param namespaceUri namespace URI as string - * \param localName local name as string - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeAttributeGeneric(bitstream_t* stream, - exi_state_t* state, exi_string_ucs_t* namespaceUri, - exi_string_ucs_t* localName, exi_value_t* val); - - - -/** - * \brief Supplies an xsi:nil attribute - * - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeAttributeXsiNil(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies an xsi:type attribute - * - * see EXI Attribute (AT) event - * - * \param stream Output Stream - * \param state Codec state - * \param val Attribute value - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeAttributeXsiType(bitstream_t* stream, - exi_state_t* state, exi_value_t* val); - -/** - * \brief Supplies list value for characters and attribute event - * - * List values are special given that first the number and type of entry needs to be passed (element/attribute event) and then one by one the actual values. - * - * \param stream Output Stream - * \param state Codec state - * \param qnameID qualified name ID - * \param val one list value - * \param lt list type - * \return Error-Code <> 0 - * - */ -int exiappHandEncodeListValue(bitstream_t* stream, - exi_state_t* state, uint16_t qnameID, exi_value_t* val, exi_list_t lt); - -#endif - -#ifdef __cplusplus -} -#endif - diff --git a/src/codec/appHandCodec/appHandNameTableEntries.c b/src/codec/appHandCodec/appHandNameTableEntries.c deleted file mode 100644 index 5ede2f7..0000000 --- a/src/codec/appHandCodec/appHandNameTableEntries.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_NAME_TABLE_ENTRIES_C -#define EXI_appHand_NAME_TABLE_ENTRIES_C - -#include "appHandNameTableEntries.h" - - - -/* ==================================== */ -/* String Table Population */ - -/* localName entries for URI '', id = 0 */ -/* - "AppProtocol", "Priority", "ProtocolNamespace", "ResponseCode", "SchemaID", - "VersionNumberMajor", "VersionNumberMinor" - */ - -/* localName entries for URI 'http://www.w3.org/XML/1998/namespace', id = 1 */ -/* - "base", "id", "lang", "space" - */ - -/* localName entries for URI 'http://www.w3.org/2001/XMLSchema-instance', id = 2 */ -/* - "nil", "type" - */ - -/* localName entries for URI 'http://www.w3.org/2001/XMLSchema', id = 3 */ -/* - "ENTITIES", "ENTITY", "ID", "IDREF", "IDREFS", - "NCName", "NMTOKEN", "NMTOKENS", "NOTATION", "Name", - "QName", "anySimpleType", "anyType", "anyURI", "base64Binary", - "boolean", "byte", "date", "dateTime", "decimal", - "double", "duration", "float", "gDay", "gMonth", - "gMonthDay", "gYear", "gYearMonth", "hexBinary", "int", - "integer", "language", "long", "negativeInteger", "nonNegativeInteger", - "nonPositiveInteger", "normalizedString", "positiveInteger", "short", "string", - "time", "token", "unsignedByte", "unsignedInt", "unsignedLong", - "unsignedShort" - */ - -/* localName entries for URI 'urn:iso:15118:2:2010:AppProtocol', id = 4 */ -/* - "AppProtocolType", "idType", "priorityType", "protocolNameType", "protocolNamespaceType", - "responseCodeType", "supportedAppProtocolReq", "supportedAppProtocolRes" - */ - - -/* number of local-name entries per URI */ -static uint16_t localNames[5] = { - /* '' */ - 7, - /* 'http://www.w3.org/XML/1998/namespace' */ - 4, - /* 'http://www.w3.org/2001/XMLSchema-instance' */ - 2, - /* 'http://www.w3.org/2001/XMLSchema' */ - 46, - /* 'urn:iso:15118:2:2010:AppProtocol' */ - 8 -}; - - -exi_name_table_prepopulated_t exiappHandNameTablePrepopulated = { 5, localNames }; - - - - -#endif - diff --git a/src/codec/appHandCodec/appHandNameTableEntries.h b/src/codec/appHandCodec/appHandNameTableEntries.h deleted file mode 100644 index fde1d01..0000000 --- a/src/codec/appHandCodec/appHandNameTableEntries.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_NAME_TABLE_ENTRIES_H -#define EXI_appHand_NAME_TABLE_ENTRIES_H - -#include "EXITypes.h" - -/* ==================================== */ -/* String Table Population */ - -extern exi_name_table_prepopulated_t exiappHandNameTablePrepopulated; - -#endif - diff --git a/src/codec/appHandCodec/appHandQNameDefines.h b/src/codec/appHandCodec/appHandQNameDefines.h deleted file mode 100644 index ac6dbce..0000000 --- a/src/codec/appHandCodec/appHandQNameDefines.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef EXI_appHand_QNAME_DEFINES_H -#define EXI_appHand_QNAME_DEFINES_H - -/** Number of pre-populated qnames */ -#define EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES 67 - -/** Number of runtime qnames */ -#define EXI_appHandMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES 100 - -/** Number of overall qnames (pre-populated from schema and runtime qnames) */ -#define EXI_appHandMAX_NUMBER_OF_QNAMES (EXI_appHandNUMBER_OF_PREPOPULATED_QNAMES + EXI_appHandMAX_NUMBER_OF_SUPPORTED_RUNTIMES_QNAMES) - - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/codec/appHandCodec/appHandQNames.c b/src/codec/appHandCodec/appHandQNames.c deleted file mode 100644 index 238eb49..0000000 --- a/src/codec/appHandCodec/appHandQNames.c +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_QNAMES_C -#define EXI_appHand_QNAMES_C - -#include "EXITypes.h" -#include "ErrorCodes.h" -#include "appHandQNameDefines.h" - -/* qname is a composition of namespaceURI(ID) and localPart(ID) */ -static exi_eqname_t qnames[EXI_appHandMAX_NUMBER_OF_QNAMES] = { - /* qnameID == 0: AppProtocol */ - {0, 0}, - /* qnameID == 1: Priority */ - {0, 1}, - /* qnameID == 2: ProtocolNamespace */ - {0, 2}, - /* qnameID == 3: ResponseCode */ - {0, 3}, - /* qnameID == 4: SchemaID */ - {0, 4}, - /* qnameID == 5: VersionNumberMajor */ - {0, 5}, - /* qnameID == 6: VersionNumberMinor */ - {0, 6}, - /* qnameID == 7: {http://www.w3.org/XML/1998/namespace}base */ - {1, 0}, - /* qnameID == 8: {http://www.w3.org/XML/1998/namespace}id */ - {1, 1}, - /* qnameID == 9: {http://www.w3.org/XML/1998/namespace}lang */ - {1, 2}, - /* qnameID == 10: {http://www.w3.org/XML/1998/namespace}space */ - {1, 3}, - /* qnameID == 11: {http://www.w3.org/2001/XMLSchema-instance}nil */ - {2, 0}, - /* qnameID == 12: {http://www.w3.org/2001/XMLSchema-instance}type */ - {2, 1}, - /* qnameID == 13: {http://www.w3.org/2001/XMLSchema}ENTITIES */ - {3, 0}, - /* qnameID == 14: {http://www.w3.org/2001/XMLSchema}ENTITY */ - {3, 1}, - /* qnameID == 15: {http://www.w3.org/2001/XMLSchema}ID */ - {3, 2}, - /* qnameID == 16: {http://www.w3.org/2001/XMLSchema}IDREF */ - {3, 3}, - /* qnameID == 17: {http://www.w3.org/2001/XMLSchema}IDREFS */ - {3, 4}, - /* qnameID == 18: {http://www.w3.org/2001/XMLSchema}NCName */ - {3, 5}, - /* qnameID == 19: {http://www.w3.org/2001/XMLSchema}NMTOKEN */ - {3, 6}, - /* qnameID == 20: {http://www.w3.org/2001/XMLSchema}NMTOKENS */ - {3, 7}, - /* qnameID == 21: {http://www.w3.org/2001/XMLSchema}NOTATION */ - {3, 8}, - /* qnameID == 22: {http://www.w3.org/2001/XMLSchema}Name */ - {3, 9}, - /* qnameID == 23: {http://www.w3.org/2001/XMLSchema}QName */ - {3, 10}, - /* qnameID == 24: {http://www.w3.org/2001/XMLSchema}anySimpleType */ - {3, 11}, - /* qnameID == 25: {http://www.w3.org/2001/XMLSchema}anyType */ - {3, 12}, - /* qnameID == 26: {http://www.w3.org/2001/XMLSchema}anyURI */ - {3, 13}, - /* qnameID == 27: {http://www.w3.org/2001/XMLSchema}base64Binary */ - {3, 14}, - /* qnameID == 28: {http://www.w3.org/2001/XMLSchema}boolean */ - {3, 15}, - /* qnameID == 29: {http://www.w3.org/2001/XMLSchema}byte */ - {3, 16}, - /* qnameID == 30: {http://www.w3.org/2001/XMLSchema}date */ - {3, 17}, - /* qnameID == 31: {http://www.w3.org/2001/XMLSchema}dateTime */ - {3, 18}, - /* qnameID == 32: {http://www.w3.org/2001/XMLSchema}decimal */ - {3, 19}, - /* qnameID == 33: {http://www.w3.org/2001/XMLSchema}double */ - {3, 20}, - /* qnameID == 34: {http://www.w3.org/2001/XMLSchema}duration */ - {3, 21}, - /* qnameID == 35: {http://www.w3.org/2001/XMLSchema}float */ - {3, 22}, - /* qnameID == 36: {http://www.w3.org/2001/XMLSchema}gDay */ - {3, 23}, - /* qnameID == 37: {http://www.w3.org/2001/XMLSchema}gMonth */ - {3, 24}, - /* qnameID == 38: {http://www.w3.org/2001/XMLSchema}gMonthDay */ - {3, 25}, - /* qnameID == 39: {http://www.w3.org/2001/XMLSchema}gYear */ - {3, 26}, - /* qnameID == 40: {http://www.w3.org/2001/XMLSchema}gYearMonth */ - {3, 27}, - /* qnameID == 41: {http://www.w3.org/2001/XMLSchema}hexBinary */ - {3, 28}, - /* qnameID == 42: {http://www.w3.org/2001/XMLSchema}int */ - {3, 29}, - /* qnameID == 43: {http://www.w3.org/2001/XMLSchema}integer */ - {3, 30}, - /* qnameID == 44: {http://www.w3.org/2001/XMLSchema}language */ - {3, 31}, - /* qnameID == 45: {http://www.w3.org/2001/XMLSchema}long */ - {3, 32}, - /* qnameID == 46: {http://www.w3.org/2001/XMLSchema}negativeInteger */ - {3, 33}, - /* qnameID == 47: {http://www.w3.org/2001/XMLSchema}nonNegativeInteger */ - {3, 34}, - /* qnameID == 48: {http://www.w3.org/2001/XMLSchema}nonPositiveInteger */ - {3, 35}, - /* qnameID == 49: {http://www.w3.org/2001/XMLSchema}normalizedString */ - {3, 36}, - /* qnameID == 50: {http://www.w3.org/2001/XMLSchema}positiveInteger */ - {3, 37}, - /* qnameID == 51: {http://www.w3.org/2001/XMLSchema}short */ - {3, 38}, - /* qnameID == 52: {http://www.w3.org/2001/XMLSchema}string */ - {3, 39}, - /* qnameID == 53: {http://www.w3.org/2001/XMLSchema}time */ - {3, 40}, - /* qnameID == 54: {http://www.w3.org/2001/XMLSchema}token */ - {3, 41}, - /* qnameID == 55: {http://www.w3.org/2001/XMLSchema}unsignedByte */ - {3, 42}, - /* qnameID == 56: {http://www.w3.org/2001/XMLSchema}unsignedInt */ - {3, 43}, - /* qnameID == 57: {http://www.w3.org/2001/XMLSchema}unsignedLong */ - {3, 44}, - /* qnameID == 58: {http://www.w3.org/2001/XMLSchema}unsignedShort */ - {3, 45}, - /* qnameID == 59: {urn:iso:15118:2:2010:AppProtocol}AppProtocolType */ - {4, 0}, - /* qnameID == 60: {urn:iso:15118:2:2010:AppProtocol}idType */ - {4, 1}, - /* qnameID == 61: {urn:iso:15118:2:2010:AppProtocol}priorityType */ - {4, 2}, - /* qnameID == 62: {urn:iso:15118:2:2010:AppProtocol}protocolNameType */ - {4, 3}, - /* qnameID == 63: {urn:iso:15118:2:2010:AppProtocol}protocolNamespaceType */ - {4, 4}, - /* qnameID == 64: {urn:iso:15118:2:2010:AppProtocol}responseCodeType */ - {4, 5}, - /* qnameID == 65: {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolReq */ - {4, 6}, - /* qnameID == 66: {urn:iso:15118:2:2010:AppProtocol}supportedAppProtocolRes */ - {4, 7} - -}; - - -int exiappHandGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart) { - int errn = 0; - /* EXI_appHandNUMBER_OF_QNAMES */ - if (qnameID < state->nextQNameID) { - *namespaceURI = qnames[qnameID].namespaceURI; - *localPart = qnames[qnameID].localPart; - } else { - errn = EXI_ERROR_OUT_OF_BOUNDS; - } - return errn; -} - - -int exiappHandGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID) { - uint16_t i; - /* TODO Do something more efficient than just walk over the entire list */ - /* EXI_appHandNUMBER_OF_QNAMES */ - for(i=0; iCode generated by EXIdizer.com
- ********************************************************************/ - - - -#ifndef EXI_appHand_QNAMES_H -#define EXI_appHand_QNAMES_H - -#include "EXITypes.h" - -/** - * \brief Returns efficient qname (namespaceURI & localName) IDs for qnameID - * - * \param state Codec state - * \param qnameID Qualified name ID - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \return Error-Code <> 0 - * - */ -int exiappHandGetEQName(exi_state_t* state, uint16_t qnameID, uint16_t* namespaceURI, uint16_t* localPart); - - -/** - * \brief Returns qnameID for qname namespaceURI & localName - * - * \param state Codec state - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \param qnameID QName ID (out) - * \return Error-Code <> 0 - * - */ -int exiappHandGetQNameID(exi_state_t* state, uint16_t namespaceURI, uint16_t localPart, uint16_t* qnameID); - - -/** - * \brief Add efficient qname (namespaceURI & localName) IDs for qnameID - * - * \param state Codec state - * \param qnameID Qualified name ID - * \param namespaceURI QName namespace URI ID - * \param localPart QName local name ID - * \return Error-Code <> 0 - * - */ -int exiappHandAddEQName(exi_state_t* state, uint16_t* qnameID, uint16_t namespaceURI, uint16_t localPart); - -#endif - diff --git a/src/service/v2g_dataTypes.c b/src/service/v2g_dataTypes.c deleted file mode 100644 index 157a292..0000000 --- a/src/service/v2g_dataTypes.c +++ /dev/null @@ -1,844 +0,0 @@ - -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - -#include "EXITypes.h" -#include "v2g_dataTypes.h" - - -static void init_sessionIDType(struct sessionIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_faultMsgType(struct faultMsgType* type) -{ - type->arraylen.data=0; - -} - -static void init_NotificationType(struct NotificationType* type) -{ - init_faultMsgType(&(type->FaultMsg)); - type->isused.FaultMsg=0; - -} - -static void init_service_string(struct service_string* type) -{ - type->arraylen.data=0; - -} - -static void init_CanonicalizationMethodType(struct CanonicalizationMethodType* type) -{ - init_service_string(&(type->attr_Algorithm)); - -} - -static void init_SignatureMethodType(struct SignatureMethodType* type) -{ - init_service_string(&(type->attr_Algorithm)); - -} - -static void init_DigestMethodType(struct DigestMethodType* type) -{ - init_service_string(&(type->attr_Algorithm)); - -} - -static void init_DigestValueType(struct DigestValueType* type) -{ - type->arraylen.data=0; - -} - -static void init_ReferenceType(struct ReferenceType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_service_string(&(type->attr_URI)); - type->isused.attr_URI=0; - init_service_string(&(type->attr_Type)); - type->isused.attr_Type=0; - init_DigestMethodType(&(type->DigestMethod)); - init_DigestValueType(&(type->DigestValue)); - -} - -static void init_SignedInfoType(struct SignedInfoType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_CanonicalizationMethodType(&(type->CanonicalizationMethod)); - init_SignatureMethodType(&(type->SignatureMethod)); - init_ReferenceType(&(type->Reference[0])); - - type->arraylen.Reference=0; -} - -static void init_SignatureValueType(struct SignatureValueType* type) -{ - type->arraylen.data=0; - -} - -static void init_X509IssuerSerialType(struct X509IssuerSerialType* type) -{ - init_service_string(&(type->X509IssuerName)); - -} - -static void init_service_byte(struct service_byte* type) -{ - type->arraylen.data=0; - -} - -static void init_X509DataType(struct X509DataType* type) -{ - init_X509IssuerSerialType(&(type->X509IssuerSerial)); - init_service_byte(&(type->X509SKI)); - init_service_string(&(type->X509SubjectName)); - init_service_byte(&(type->X509Certificate)); - init_service_byte(&(type->X509CRL)); - -} - -static void init_KeyInfoType(struct KeyInfoType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_X509DataType(&(type->X509Data)); - -} - -static void init_SignatureType(struct SignatureType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_SignedInfoType(&(type->SignedInfo)); - init_SignatureValueType(&(type->SignatureValue)); - init_KeyInfoType(&(type->KeyInfo)); - type->isused.KeyInfo=0; - -} - -static void init_MessageHeaderType(struct MessageHeaderType* type) -{ - init_sessionIDType(&(type->SessionID)); - init_NotificationType(&(type->Notification)); - type->isused.Notification=0; - type->isused.Signature=0; - -} - -static void init_evccIDType(struct evccIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_SessionSetupReqType(struct SessionSetupReqType* type) -{ - init_evccIDType(&(type->EVCCID)); - -} - -static void init_evseIDType(struct evseIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_SessionSetupResType(struct SessionSetupResType* type) -{ - init_evseIDType(&(type->EVSEID)); - type->isused.DateTimeNow=0; - -} - -static void init_serviceScopeType(struct serviceScopeType* type) -{ - type->arraylen.data=0; - -} - -static void init_ServiceDiscoveryReqType(struct ServiceDiscoveryReqType* type) -{ - init_serviceScopeType(&(type->ServiceScope)); - type->isused.ServiceScope=0; - type->isused.ServiceCategory=0; - -} - -static void init_PaymentOptionsType(struct PaymentOptionsType* type) -{ - - type->arraylen.PaymentOption=0; - -} - -static void init_serviceNameType(struct serviceNameType* type) -{ - type->arraylen.data=0; - -} - -static void init_ServiceTagType(struct ServiceTagType* type) -{ - init_serviceNameType(&(type->ServiceName)); - type->isused.ServiceName=0; - init_serviceScopeType(&(type->ServiceScope)); - type->isused.ServiceScope=0; - -} - -static void init_ServiceChargeType(struct ServiceChargeType* type) -{ - init_ServiceTagType(&(type->ServiceTag)); - -} - -static void init_ServiceType(struct ServiceType* type) -{ - init_ServiceTagType(&(type->ServiceTag)); - -} - -static void init_ServiceTagListType(struct ServiceTagListType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<3;i_loop++) - { - init_ServiceType(&(type->Service[i_loop])); - } - - type->arraylen.Service=0; - -} - -static void init_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type) -{ - init_PaymentOptionsType(&(type->PaymentOptions)); - init_ServiceChargeType(&(type->ChargeService)); - init_ServiceTagListType(&(type->ServiceList)); - type->isused.ServiceList=0; - -} - -static void init_PhysicalValueType(struct PhysicalValueType* type) -{ - type->isused.Unit=0; - -} - -static void init_ParameterType(struct ParameterType* type) -{ - init_service_string(&(type->attr_Name)); - init_service_string(&(type->attr_ValueType)); - init_PhysicalValueType(&(type->physicalValue)); - init_service_string(&(type->stringValue)); - -} - -static void init_ParameterSetType(struct ParameterSetType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<2;i_loop++) - { - init_ParameterType(&(type->Parameter[i_loop])); - } - - type->arraylen.Parameter=0; - -} - -static void init_ServiceParameterListType(struct ServiceParameterListType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<2;i_loop++) - { - init_ParameterSetType(&(type->ParameterSet[i_loop])); - } - - type->arraylen.ParameterSet=0; - -} - -static void init_ServiceDetailResType(struct ServiceDetailResType* type) -{ - init_ServiceParameterListType(&(type->ServiceParameterList)); - type->isused.ServiceParameterList=0; - -} - -static void init_SelectedServiceType(struct SelectedServiceType* type) -{ - type->isused.ParameterSetID=0; - -} - -static void init_SelectedServiceListType(struct SelectedServiceListType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<2;i_loop++) - { - init_SelectedServiceType(&(type->SelectedService[i_loop])); - } - - type->arraylen.SelectedService=0; - -} - -static void init_ServicePaymentSelectionReqType(struct ServicePaymentSelectionReqType* type) -{ - init_SelectedServiceListType(&(type->SelectedServiceList)); - -} - -static void init_contractIDType(struct contractIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_certificateType(struct certificateType* type) -{ - type->arraylen.data=0; - -} - -static void init_SubCertificatesType(struct SubCertificatesType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<4;i_loop++) - { - init_certificateType(&(type->Certificate[i_loop])); - } - - type->arraylen.Certificate=0; - -} - -static void init_CertificateChainType(struct CertificateChainType* type) -{ - init_certificateType(&(type->Certificate)); - init_SubCertificatesType(&(type->SubCertificates)); - type->isused.SubCertificates=0; - -} - -static void init_PaymentDetailsReqType(struct PaymentDetailsReqType* type) -{ - init_contractIDType(&(type->ContractID)); - init_CertificateChainType(&(type->ContractSignatureCertChain)); - -} - -static void init_genChallengeType(struct genChallengeType* type) -{ - type->arraylen.data=0; - -} - -static void init_PaymentDetailsResType(struct PaymentDetailsResType* type) -{ - init_genChallengeType(&(type->GenChallenge)); - -} - -static void init_ContractAuthenticationReqType(struct ContractAuthenticationReqType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_genChallengeType(&(type->GenChallenge)); - type->isused.GenChallenge=0; - -} - -static void init_AC_EVChargeParameterType(struct AC_EVChargeParameterType* type) -{ - init_PhysicalValueType(&(type->EAmount)); - init_PhysicalValueType(&(type->EVMaxVoltage)); - init_PhysicalValueType(&(type->EVMaxCurrent)); - init_PhysicalValueType(&(type->EVMinCurrent)); - -} - -static void init_DC_EVStatusType(struct DC_EVStatusType* type) -{ - type->isused.EVCabinConditioning=0; - type->isused.EVRESSConditioning=0; - -} - -static void init_DC_EVChargeParameterType(struct DC_EVChargeParameterType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - init_PhysicalValueType(&(type->EVMaximumCurrentLimit)); - init_PhysicalValueType(&(type->EVMaximumPowerLimit)); - type->isused.EVMaximumPowerLimit=0; - init_PhysicalValueType(&(type->EVMaximumVoltageLimit)); - init_PhysicalValueType(&(type->EVEnergyCapacity)); - type->isused.EVEnergyCapacity=0; - init_PhysicalValueType(&(type->EVEnergyRequest)); - type->isused.EVEnergyRequest=0; - type->isused.FullSOC=0; - type->isused.BulkSOC=0; - -} - -static void init_ChargeParameterDiscoveryReqType(struct ChargeParameterDiscoveryReqType* type) -{ - type->isused.AC_EVChargeParameter=0; - type->isused.DC_EVChargeParameter=0; - -} - -static void init_RelativeTimeIntervalType(struct RelativeTimeIntervalType* type) -{ - type->isused.duration=0; - -} - -static void init_PMaxScheduleEntryType(struct PMaxScheduleEntryType* type) -{ - init_RelativeTimeIntervalType(&(type->RelativeTimeInterval)); - -} - -static void init_PMaxScheduleType(struct PMaxScheduleType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<12;i_loop++) - { - init_PMaxScheduleEntryType(&(type->PMaxScheduleEntry[i_loop])); - } - - type->arraylen.PMaxScheduleEntry=0; - -} - -static void init_tariffDescriptionType(struct tariffDescriptionType* type) -{ - type->arraylen.data=0; - -} - -static void init_CostType(struct CostType* type) -{ - type->isused.amountMultiplier=0; - -} - -static void init_ConsumptionCostType(struct ConsumptionCostType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<2;i_loop++) - { - init_CostType(&(type->Cost[i_loop])); - } - - type->arraylen.Cost=0; - type->isused.Cost=0; - -} - -static void init_SalesTariffEntryType(struct SalesTariffEntryType* type) -{ - int i_loop; - - init_RelativeTimeIntervalType(&(type->RelativeTimeInterval)); - for(i_loop=0; i_loop<2;i_loop++) - { - init_ConsumptionCostType(&(type->ConsumptionCost[i_loop])); - } - - type->arraylen.ConsumptionCost=0; - type->isused.ConsumptionCost=0; - -} - -static void init_SalesTariffType(struct SalesTariffType* type) -{ - int i_loop; - - init_service_string(&(type->attr_Id)); - init_tariffDescriptionType(&(type->SalesTariffDescription)); - type->isused.SalesTariffDescription=0; - for(i_loop=0; i_loop<12;i_loop++) - { - init_SalesTariffEntryType(&(type->SalesTariffEntry[i_loop])); - } - - type->arraylen.SalesTariffEntry=0; - -} - -static void init_SAScheduleTupleType(struct SAScheduleTupleType* type) -{ - init_PMaxScheduleType(&(type->PMaxSchedule)); - type->isused.SalesTariff=0; - -} - -static void init_SAScheduleListType(struct SAScheduleListType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<3;i_loop++) - { - init_SAScheduleTupleType(&(type->SAScheduleTuple[i_loop])); - } - - type->arraylen.SAScheduleTuple=0; - -} - -static void init_AC_EVSEChargeParameterType(struct AC_EVSEChargeParameterType* type) -{ - init_PhysicalValueType(&(type->EVSEMaxVoltage)); - init_PhysicalValueType(&(type->EVSEMaxCurrent)); - init_PhysicalValueType(&(type->EVSEMinCurrent)); - -} - -static void init_DC_EVSEStatusType(struct DC_EVSEStatusType* type) -{ - type->isused.EVSEIsolationStatus=0; - -} - -static void init_DC_EVSEChargeParameterType(struct DC_EVSEChargeParameterType* type) -{ - init_DC_EVSEStatusType(&(type->DC_EVSEStatus)); - init_PhysicalValueType(&(type->EVSEMaximumCurrentLimit)); - init_PhysicalValueType(&(type->EVSEMaximumPowerLimit)); - type->isused.EVSEMaximumPowerLimit=0; - init_PhysicalValueType(&(type->EVSEMaximumVoltageLimit)); - init_PhysicalValueType(&(type->EVSEMinimumCurrentLimit)); - init_PhysicalValueType(&(type->EVSEMinimumVoltageLimit)); - init_PhysicalValueType(&(type->EVSECurrentRegulationTolerance)); - type->isused.EVSECurrentRegulationTolerance=0; - init_PhysicalValueType(&(type->EVSEPeakCurrentRipple)); - init_PhysicalValueType(&(type->EVSEEnergyToBeDelivered)); - type->isused.EVSEEnergyToBeDelivered=0; - -} - -static void init_ChargeParameterDiscoveryResType(struct ChargeParameterDiscoveryResType* type) -{ - init_SAScheduleListType(&(type->SAScheduleList)); - type->isused.AC_EVSEChargeParameter=0; - type->isused.DC_EVSEChargeParameter=0; - -} - -static void init_ChargingProfileType(struct ChargingProfileType* type) -{ - - type->arraylen.ProfileEntry=0; - -} - -static void init_DC_EVPowerDeliveryParameterType(struct DC_EVPowerDeliveryParameterType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - type->isused.BulkChargingComplete=0; - -} - -static void init_PowerDeliveryReqType(struct PowerDeliveryReqType* type) -{ - init_ChargingProfileType(&(type->ChargingProfile)); - type->isused.ChargingProfile=0; - type->isused.DC_EVPowerDeliveryParameter=0; - -} - -static void init_PowerDeliveryResType(struct PowerDeliveryResType* type) -{ - type->isused.AC_EVSEStatus=0; - type->isused.DC_EVSEStatus=0; - -} - -static void init_meterIDType(struct meterIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_sigMeterReadingType(struct sigMeterReadingType* type) -{ - type->arraylen.data=0; - -} - -static void init_MeterInfoType(struct MeterInfoType* type) -{ - init_meterIDType(&(type->MeterID)); - init_PhysicalValueType(&(type->MeterReading)); - type->isused.MeterReading=0; - init_sigMeterReadingType(&(type->SigMeterReading)); - type->isused.SigMeterReading=0; - type->isused.MeterStatus=0; - type->isused.TMeter=0; - -} - -static void init_ChargingStatusResType(struct ChargingStatusResType* type) -{ - init_evseIDType(&(type->EVSEID)); - init_PhysicalValueType(&(type->EVSEMaxCurrent)); - type->isused.EVSEMaxCurrent=0; - init_MeterInfoType(&(type->MeterInfo)); - type->isused.MeterInfo=0; - -} - -static void init_MeteringReceiptReqType(struct MeteringReceiptReqType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_sessionIDType(&(type->SessionID)); - type->isused.SAScheduleTupleID=0; - init_MeterInfoType(&(type->MeterInfo)); - -} - -static void init_MeteringReceiptResType(struct MeteringReceiptResType* type) -{ - -} - -static void init_rootCertificateIDType(struct rootCertificateIDType* type) -{ - type->arraylen.data=0; - -} - -static void init_ListOfRootCertificateIDsType(struct ListOfRootCertificateIDsType* type) -{ - int i_loop; - - for(i_loop=0; i_loop<20;i_loop++) - { - init_rootCertificateIDType(&(type->RootCertificateID[i_loop])); - } - - type->arraylen.RootCertificateID=0; - -} - -static void init_dHParamsType(struct dHParamsType* type) -{ - type->arraylen.data=0; - -} - -static void init_CertificateUpdateReqType(struct CertificateUpdateReqType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_CertificateChainType(&(type->ContractSignatureCertChain)); - init_contractIDType(&(type->ContractID)); - init_ListOfRootCertificateIDsType(&(type->ListOfRootCertificateIDs)); - init_dHParamsType(&(type->DHParams)); - -} - -static void init_privateKeyType(struct privateKeyType* type) -{ - type->arraylen.data=0; - -} - -static void init_CertificateUpdateResType(struct CertificateUpdateResType* type) -{ - init_service_string(&(type->attr_Id)); - init_CertificateChainType(&(type->ContractSignatureCertChain)); - init_privateKeyType(&(type->ContractSignatureEncryptedPrivateKey)); - init_dHParamsType(&(type->DHParams)); - init_contractIDType(&(type->ContractID)); - -} - -static void init_CertificateInstallationReqType(struct CertificateInstallationReqType* type) -{ - init_service_string(&(type->attr_Id)); - type->isused.attr_Id=0; - init_certificateType(&(type->OEMProvisioningCert)); - init_ListOfRootCertificateIDsType(&(type->ListOfRootCertificateIDs)); - init_dHParamsType(&(type->DHParams)); - -} - -static void init_CertificateInstallationResType(struct CertificateInstallationResType* type) -{ - init_service_string(&(type->attr_Id)); - init_CertificateChainType(&(type->ContractSignatureCertChain)); - init_privateKeyType(&(type->ContractSignatureEncryptedPrivateKey)); - init_dHParamsType(&(type->DHParams)); - init_contractIDType(&(type->ContractID)); - -} - -static void init_CableCheckReqType(struct CableCheckReqType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - -} - -static void init_CableCheckResType(struct CableCheckResType* type) -{ - init_DC_EVSEStatusType(&(type->DC_EVSEStatus)); - -} - -static void init_PreChargeReqType(struct PreChargeReqType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - init_PhysicalValueType(&(type->EVTargetVoltage)); - init_PhysicalValueType(&(type->EVTargetCurrent)); - -} - -static void init_PreChargeResType(struct PreChargeResType* type) -{ - init_DC_EVSEStatusType(&(type->DC_EVSEStatus)); - init_PhysicalValueType(&(type->EVSEPresentVoltage)); - -} - -static void init_CurrentDemandReqType(struct CurrentDemandReqType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - init_PhysicalValueType(&(type->EVTargetCurrent)); - init_PhysicalValueType(&(type->EVMaximumVoltageLimit)); - type->isused.EVMaximumVoltageLimit=0; - init_PhysicalValueType(&(type->EVMaximumCurrentLimit)); - type->isused.EVMaximumCurrentLimit=0; - init_PhysicalValueType(&(type->EVMaximumPowerLimit)); - type->isused.EVMaximumPowerLimit=0; - type->isused.BulkChargingComplete=0; - init_PhysicalValueType(&(type->RemainingTimeToFullSoC)); - type->isused.RemainingTimeToFullSoC=0; - init_PhysicalValueType(&(type->RemainingTimeToBulkSoC)); - type->isused.RemainingTimeToBulkSoC=0; - init_PhysicalValueType(&(type->EVTargetVoltage)); - -} - -static void init_CurrentDemandResType(struct CurrentDemandResType* type) -{ - init_DC_EVSEStatusType(&(type->DC_EVSEStatus)); - init_PhysicalValueType(&(type->EVSEPresentVoltage)); - init_PhysicalValueType(&(type->EVSEPresentCurrent)); - init_PhysicalValueType(&(type->EVSEMaximumVoltageLimit)); - type->isused.EVSEMaximumVoltageLimit=0; - init_PhysicalValueType(&(type->EVSEMaximumCurrentLimit)); - type->isused.EVSEMaximumCurrentLimit=0; - init_PhysicalValueType(&(type->EVSEMaximumPowerLimit)); - type->isused.EVSEMaximumPowerLimit=0; - -} - -static void init_WeldingDetectionReqType(struct WeldingDetectionReqType* type) -{ - init_DC_EVStatusType(&(type->DC_EVStatus)); - -} - -static void init_WeldingDetectionResType(struct WeldingDetectionResType* type) -{ - init_DC_EVSEStatusType(&(type->DC_EVSEStatus)); - init_PhysicalValueType(&(type->EVSEPresentVoltage)); - -} - -static void init_BodyType(struct BodyType* type) -{ - type->isused.SessionSetupReq=0; - type->isused.SessionSetupRes=0; - type->isused.ServiceDiscoveryReq=0; - type->isused.ServiceDiscoveryRes=0; - type->isused.ServiceDetailReq=0; - type->isused.ServiceDetailRes=0; - type->isused.ServicePaymentSelectionReq=0; - type->isused.ServicePaymentSelectionRes=0; - type->isused.PaymentDetailsReq=0; - type->isused.PaymentDetailsRes=0; - type->isused.ContractAuthenticationReq=0; - type->isused.ContractAuthenticationRes=0; - type->isused.ChargeParameterDiscoveryReq=0; - type->isused.ChargeParameterDiscoveryRes=0; - type->isused.PowerDeliveryReq=0; - type->isused.PowerDeliveryRes=0; - type->isused.ChargingStatusReq=0; - type->isused.ChargingStatusRes=0; - type->isused.MeteringReceiptReq=0; - type->isused.MeteringReceiptRes=0; - type->isused.SessionStopReq=0; - type->isused.SessionStopRes=0; - type->isused.CertificateUpdateReq=0; - type->isused.CertificateUpdateRes=0; - type->isused.CertificateInstallationReq=0; - type->isused.CertificateInstallationRes=0; - type->isused.CableCheckReq=0; - type->isused.CableCheckRes=0; - type->isused.PreChargeReq=0; - type->isused.PreChargeRes=0; - type->isused.CurrentDemandReq=0; - type->isused.CurrentDemandRes=0; - type->isused.WeldingDetectionReq=0; - type->isused.WeldingDetectionRes=0; - -} - -static void init_AnonType_V2G_Message(struct AnonType_V2G_Message* type) -{ - init_BodyType(&(type->Body)); - -} - -static void init_EXIDocumentType(struct EXIDocumentType* type) -{ - init_AnonType_V2G_Message(&(type->V2G_Message)); - -} diff --git a/src/service/v2g_dataTypes.h b/src/service/v2g_dataTypes.h deleted file mode 100644 index a393830..0000000 --- a/src/service/v2g_dataTypes.h +++ /dev/null @@ -1,1688 +0,0 @@ - -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SERVICEDATATYPES_H -#define SERVICEDATATYPES_H - -#include "EXITypes.h" - - - - -enum faultCodeType -{ - ParsingError_faultCodeType=0, - NoTLSRootCertificatAvailable_faultCodeType=1, - UnknownError_faultCodeType=2 - -}; - -enum responseCodeType -{ - OK_responseCodeType=0, - OK_NewSessionEstablished_responseCodeType=1, - OK_OldSessionJoined_responseCodeType=2, - OK_CertificateExpiresSoon_responseCodeType=3, - FAILED_responseCodeType=4, - FAILED_SequenceError_responseCodeType=5, - FAILED_ServiceIDInvalid_responseCodeType=6, - FAILED_UnknownSession_responseCodeType=7, - FAILED_ServiceSelectionInvalid_responseCodeType=8, - FAILED_PaymentSelectionInvalid_responseCodeType=9, - FAILED_CertificateExpired_responseCodeType=10, - FAILED_SignatureError_responseCodeType=11, - FAILED_NoCertificateAvailable_responseCodeType=12, - FAILED_CertChainError_responseCodeType=13, - FAILED_ChallengeInvalid_responseCodeType=14, - FAILED_ContractCanceled_responseCodeType=15, - FAILED_WrongChargeParameter_responseCodeType=16, - FAILED_PowerDeliveryNotApplied_responseCodeType=17, - FAILED_TariffSelectionInvalid_responseCodeType=18, - FAILED_ChargingProfileInvalid_responseCodeType=19, - FAILED_EVSEPresentVoltageToLow_responseCodeType=20, - FAILED_MeteringSignatureNotValid_responseCodeType=21, - FAILED_WrongEnergyTransferType_responseCodeType=22 - -}; - -enum serviceCategoryType -{ - EVCharging_serviceCategoryType=0, - Internet_serviceCategoryType=1, - ContractCertificate_serviceCategoryType=2, - OtherCustom_serviceCategoryType=3 - -}; - -enum paymentOptionType -{ - Contract_paymentOptionType=0, - ExternalPayment_paymentOptionType=1 - -}; - -enum EVSESupportedEnergyTransferType -{ - AC_single_phase_core_EVSESupportedEnergyTransferType=0, - AC_three_phase_core_EVSESupportedEnergyTransferType=1, - DC_core_EVSESupportedEnergyTransferType=2, - DC_extended_EVSESupportedEnergyTransferType=3, - DC_combo_core_EVSESupportedEnergyTransferType=4, - DC_dual_EVSESupportedEnergyTransferType=5, - AC_core1p_DC_extended_EVSESupportedEnergyTransferType=6, - AC_single_DC_core_EVSESupportedEnergyTransferType=7, - AC_single_phase_three_phase_core_DC_extended_EVSESupportedEnergyTransferType=8, - AC_core3p_DC_extended_EVSESupportedEnergyTransferType=9 - -}; - -enum unitSymbolType -{ - h_unitSymbolType=0, - m_unitSymbolType=1, - s_unitSymbolType=2, - A_unitSymbolType=3, - Ah_unitSymbolType=4, - V_unitSymbolType=5, - VA_unitSymbolType=6, - W_unitSymbolType=7, - W_s_unitSymbolType=8, - Wh_unitSymbolType=9 - -}; - -enum EVSEProcessingType -{ - Finished_EVSEProcessingType=0, - Ongoing_EVSEProcessingType=1 - -}; - -enum EVRequestedEnergyTransferType -{ - AC_single_phase_core_EVRequestedEnergyTransferType=0, - AC_three_phase_core_EVRequestedEnergyTransferType=1, - DC_core_EVRequestedEnergyTransferType=2, - DC_extended_EVRequestedEnergyTransferType=3, - DC_combo_core_EVRequestedEnergyTransferType=4, - DC_unique_EVRequestedEnergyTransferType=5 - -}; - -enum DC_EVErrorCodeType -{ - NO_ERROR_DC_EVErrorCodeType=0, - FAILED_RESSTemperatureInhibit_DC_EVErrorCodeType=1, - FAILED_EVShiftPosition_DC_EVErrorCodeType=2, - FAILED_ChargerConnectorLockFault_DC_EVErrorCodeType=3, - FAILED_EVRESSMalfunction_DC_EVErrorCodeType=4, - FAILED_ChargingCurrentdifferential_DC_EVErrorCodeType=5, - FAILED_ChargingVoltageOutOfRange_DC_EVErrorCodeType=6, - Reserved_A_DC_EVErrorCodeType=7, - Reserved_B_DC_EVErrorCodeType=8, - Reserved_C_DC_EVErrorCodeType=9, - FAILED_ChargingSystemIncompatibility_DC_EVErrorCodeType=10, - NoData_DC_EVErrorCodeType=11 - -}; - -enum costKindType -{ - relativePricePercentage_costKindType=0, - RenewableGenerationPercentage_costKindType=1, - CarbonDioxideEmission_costKindType=2 - -}; - -enum EVSENotificationType -{ - None_EVSENotificationType=0, - StopCharging_EVSENotificationType=1, - ReNegotiation_EVSENotificationType=2 - -}; - -enum isolationLevelType -{ - Invalid_isolationLevelType=0, - Valid_isolationLevelType=1, - Warning_isolationLevelType=2, - Fault_isolationLevelType=3 - -}; - -enum DC_EVSEStatusCodeType -{ - EVSE_NotReady_DC_EVSEStatusCodeType=0, - EVSE_Ready_DC_EVSEStatusCodeType=1, - EVSE_Shutdown_DC_EVSEStatusCodeType=2, - EVSE_UtilityInterruptEvent_DC_EVSEStatusCodeType=3, - EVSE_IsolationMonitoringActive_DC_EVSEStatusCodeType=4, - EVSE_EmergencyShutdown_DC_EVSEStatusCodeType=5, - EVSE_Malfunction_DC_EVSEStatusCodeType=6, - Reserved_8_DC_EVSEStatusCodeType=7, - Reserved_9_DC_EVSEStatusCodeType=8, - Reserved_A_DC_EVSEStatusCodeType=9, - Reserved_B_DC_EVSEStatusCodeType=10, - Reserved_C_DC_EVSEStatusCodeType=11 - -}; - - - - -struct arraylen_sessionIDType -{ - size_t data; - - -}; - -struct sessionIDType -{ - uint8_t data[8]; - struct arraylen_sessionIDType arraylen; - -}; - -struct arraylen_faultMsgType -{ - size_t data; - - -}; - -struct faultMsgType -{ - uint32_t data[64]; - struct arraylen_faultMsgType arraylen; - -}; - -struct selection_NotificationType -{ - unsigned int FaultMsg:1; - - -}; - -struct NotificationType -{ - enum faultCodeType FaultCode; - struct faultMsgType FaultMsg; - struct selection_NotificationType isused; - -}; - -struct selection_MessageHeaderType -{ - unsigned int Notification:1; - unsigned int Signature:1; - - -}; - -struct arraylen_service_string -{ - size_t data; - - -}; - -struct service_string -{ - uint32_t data[256]; - struct arraylen_service_string arraylen; - -}; - -struct selection_SignatureType -{ - unsigned int attr_Id:1; - unsigned int KeyInfo:1; - - -}; - -struct selection_SignedInfoType -{ - unsigned int attr_Id:1; - - -}; - -struct CanonicalizationMethodType -{ - struct service_string attr_Algorithm; - - -}; - -struct SignatureMethodType -{ - struct service_string attr_Algorithm; - - -}; - -struct selection_ReferenceType -{ - unsigned int attr_Id:1; - unsigned int attr_URI:1; - unsigned int attr_Type:1; - - -}; - -struct DigestMethodType -{ - struct service_string attr_Algorithm; - - -}; - -struct arraylen_DigestValueType -{ - size_t data; - - -}; - -struct DigestValueType -{ - uint8_t data[128]; - struct arraylen_DigestValueType arraylen; - -}; - -struct ReferenceType -{ - struct service_string attr_Id; - struct service_string attr_URI; - struct service_string attr_Type; - struct DigestMethodType DigestMethod; - struct DigestValueType DigestValue; - struct selection_ReferenceType isused; - -}; - -struct arraylen_SignedInfoType -{ - size_t Reference; - - -}; - -struct SignedInfoType -{ - struct service_string attr_Id; - struct CanonicalizationMethodType CanonicalizationMethod; - struct SignatureMethodType SignatureMethod; - struct ReferenceType Reference[1]; - struct selection_SignedInfoType isused; struct arraylen_SignedInfoType arraylen; - -}; - -struct arraylen_SignatureValueType -{ - size_t data; - - -}; - -struct SignatureValueType -{ - uint8_t data[128]; - struct arraylen_SignatureValueType arraylen; - - -}; - -struct selection_KeyInfoType -{ - unsigned int attr_Id:1; - - -}; - -struct X509IssuerSerialType -{ - struct service_string X509IssuerName; - int64_t X509SerialNumber; - - -}; - -struct arraylen_service_byte -{ - size_t data; - - -}; - -struct service_byte -{ - uint8_t data[128]; - struct arraylen_service_byte arraylen; - -}; - -struct X509DataType -{ - struct X509IssuerSerialType X509IssuerSerial; - struct service_byte X509SKI; - struct service_string X509SubjectName; - struct service_byte X509Certificate; - struct service_byte X509CRL; - - -}; - -struct KeyInfoType -{ - struct service_string attr_Id; - struct X509DataType X509Data; - struct selection_KeyInfoType isused; - -}; - -struct SignatureType -{ - struct service_string attr_Id; - struct SignedInfoType SignedInfo; - struct SignatureValueType SignatureValue; - struct KeyInfoType KeyInfo; - struct selection_SignatureType isused; - -}; - -struct MessageHeaderType -{ - struct sessionIDType SessionID; - struct NotificationType Notification; - struct SignatureType* Signature; - struct selection_MessageHeaderType isused; - -}; - -struct arraylen_evccIDType -{ - size_t data; - - -}; - -struct evccIDType -{ - uint8_t data[8]; - struct arraylen_evccIDType arraylen; - -}; - -struct SessionSetupReqType -{ - struct evccIDType EVCCID; - - -}; - -struct selection_BodyType -{ - unsigned int SessionSetupReq:1; - unsigned int SessionSetupRes:1; - unsigned int ServiceDiscoveryReq:1; - unsigned int ServiceDiscoveryRes:1; - unsigned int ServiceDetailReq:1; - unsigned int ServiceDetailRes:1; - unsigned int ServicePaymentSelectionReq:1; - unsigned int ServicePaymentSelectionRes:1; - unsigned int PaymentDetailsReq:1; - unsigned int PaymentDetailsRes:1; - unsigned int ContractAuthenticationReq:1; - unsigned int ContractAuthenticationRes:1; - unsigned int ChargeParameterDiscoveryReq:1; - unsigned int ChargeParameterDiscoveryRes:1; - unsigned int PowerDeliveryReq:1; - unsigned int PowerDeliveryRes:1; - unsigned int ChargingStatusReq:1; - unsigned int ChargingStatusRes:1; - unsigned int MeteringReceiptReq:1; - unsigned int MeteringReceiptRes:1; - unsigned int SessionStopReq:1; - unsigned int SessionStopRes:1; - unsigned int CertificateUpdateReq:1; - unsigned int CertificateUpdateRes:1; - unsigned int CertificateInstallationReq:1; - unsigned int CertificateInstallationRes:1; - unsigned int CableCheckReq:1; - unsigned int CableCheckRes:1; - unsigned int PreChargeReq:1; - unsigned int PreChargeRes:1; - unsigned int CurrentDemandReq:1; - unsigned int CurrentDemandRes:1; - unsigned int WeldingDetectionReq:1; - unsigned int WeldingDetectionRes:1; - - -}; - -struct arraylen_evseIDType -{ - size_t data; - - -}; - -struct evseIDType -{ - uint8_t data[32]; - struct arraylen_evseIDType arraylen; - -}; - -struct selection_SessionSetupResType -{ - unsigned int DateTimeNow:1; - - -}; - -struct SessionSetupResType -{ - enum responseCodeType ResponseCode; - struct evseIDType EVSEID; - int64_t DateTimeNow; - struct selection_SessionSetupResType isused; - -}; - -struct arraylen_serviceScopeType -{ - size_t data; - - -}; - -struct serviceScopeType -{ - uint32_t data[32]; - struct arraylen_serviceScopeType arraylen; - -}; - -struct selection_ServiceDiscoveryReqType -{ - unsigned int ServiceScope:1; - unsigned int ServiceCategory:1; - - -}; - -struct ServiceDiscoveryReqType -{ - struct serviceScopeType ServiceScope; - enum serviceCategoryType ServiceCategory; - struct selection_ServiceDiscoveryReqType isused; - -}; - -struct arraylen_PaymentOptionsType -{ - size_t PaymentOption; - - -}; - -struct PaymentOptionsType -{ - enum paymentOptionType PaymentOption[2]; - struct arraylen_PaymentOptionsType arraylen; - -}; - -struct arraylen_serviceNameType -{ - size_t data; - - -}; - -struct serviceNameType -{ - uint32_t data[32]; - struct arraylen_serviceNameType arraylen; - -}; - -struct selection_ServiceTagType -{ - unsigned int ServiceName:1; - unsigned int ServiceScope:1; - - -}; - -struct ServiceTagType -{ - uint16_t ServiceID; - struct serviceNameType ServiceName; - enum serviceCategoryType ServiceCategory; - struct serviceScopeType ServiceScope; - struct selection_ServiceTagType isused; - -}; - -struct ServiceChargeType -{ - struct ServiceTagType ServiceTag; - int FreeService; - enum EVSESupportedEnergyTransferType EnergyTransferType; - - -}; - -struct ServiceType -{ - struct ServiceTagType ServiceTag; - int FreeService; - - -}; - -struct arraylen_ServiceTagListType -{ - size_t Service; - - -}; - -struct ServiceTagListType -{ - struct ServiceType Service[3]; - struct arraylen_ServiceTagListType arraylen; - -}; - -struct selection_ServiceDiscoveryResType -{ - unsigned int ServiceList:1; - - -}; - -struct ServiceDiscoveryResType -{ - enum responseCodeType ResponseCode; - struct PaymentOptionsType PaymentOptions; - struct ServiceChargeType ChargeService; - struct ServiceTagListType ServiceList; - struct selection_ServiceDiscoveryResType isused; - -}; - -struct ServiceDetailReqType -{ - uint16_t ServiceID; - - -}; - -struct selection_PhysicalValueType -{ - unsigned int Unit:1; - - -}; - -struct PhysicalValueType -{ - int8_t Multiplier; - enum unitSymbolType Unit; - int16_t Value; - struct selection_PhysicalValueType isused; - -}; - -struct ParameterType -{ - struct service_string attr_Name; - struct service_string attr_ValueType; - int boolValue; - int8_t byteValue; - int16_t shortValue; - int32_t intValue; - struct PhysicalValueType physicalValue; - struct service_string stringValue; - - -}; - -struct arraylen_ParameterSetType -{ - size_t Parameter; - - -}; - -struct ParameterSetType -{ - int16_t ParameterSetID; - struct ParameterType Parameter[2]; - struct arraylen_ParameterSetType arraylen; - -}; - -struct arraylen_ServiceParameterListType -{ - size_t ParameterSet; - - -}; - -struct ServiceParameterListType -{ - struct ParameterSetType ParameterSet[2]; - struct arraylen_ServiceParameterListType arraylen; - -}; - -struct selection_ServiceDetailResType -{ - unsigned int ServiceParameterList:1; - - -}; - -struct ServiceDetailResType -{ - enum responseCodeType ResponseCode; - uint16_t ServiceID; - struct ServiceParameterListType ServiceParameterList; - struct selection_ServiceDetailResType isused; - -}; - -struct selection_SelectedServiceType -{ - unsigned int ParameterSetID:1; - - -}; - -struct SelectedServiceType -{ - uint16_t ServiceID; - int16_t ParameterSetID; - struct selection_SelectedServiceType isused; - -}; - -struct arraylen_SelectedServiceListType -{ - size_t SelectedService; - - -}; - -struct SelectedServiceListType -{ - struct SelectedServiceType SelectedService[2]; - struct arraylen_SelectedServiceListType arraylen; - -}; - -struct ServicePaymentSelectionReqType -{ - enum paymentOptionType SelectedPaymentOption; - struct SelectedServiceListType SelectedServiceList; - - -}; - -struct ServicePaymentSelectionResType -{ - enum responseCodeType ResponseCode; - - -}; - -struct arraylen_contractIDType -{ - size_t data; - - -}; - -struct contractIDType -{ - uint32_t data[24]; - struct arraylen_contractIDType arraylen; - -}; - -struct arraylen_certificateType -{ - size_t data; - - -}; - -struct certificateType -{ - uint8_t data[1200]; - struct arraylen_certificateType arraylen; - -}; - -struct arraylen_SubCertificatesType -{ - size_t Certificate; - - -}; - -struct SubCertificatesType -{ - struct certificateType Certificate[4]; - struct arraylen_SubCertificatesType arraylen; - -}; - -struct selection_CertificateChainType -{ - unsigned int SubCertificates:1; - - -}; - -struct CertificateChainType -{ - struct certificateType Certificate; - struct SubCertificatesType SubCertificates; - struct selection_CertificateChainType isused; - -}; - -struct PaymentDetailsReqType -{ - struct contractIDType ContractID; - struct CertificateChainType ContractSignatureCertChain; - - -}; - -struct arraylen_genChallengeType -{ - size_t data; - - -}; - -struct genChallengeType -{ - uint32_t data[256]; - struct arraylen_genChallengeType arraylen; - -}; - -struct PaymentDetailsResType -{ - enum responseCodeType ResponseCode; - struct genChallengeType GenChallenge; - int64_t DateTimeNow; - - -}; - -struct selection_ContractAuthenticationReqType -{ - unsigned int attr_Id:1; - unsigned int GenChallenge:1; - - -}; - -struct ContractAuthenticationReqType -{ - struct service_string attr_Id; - struct genChallengeType GenChallenge; - struct selection_ContractAuthenticationReqType isused; - -}; - -struct ContractAuthenticationResType -{ - enum responseCodeType ResponseCode; - enum EVSEProcessingType EVSEProcessing; - - -}; - -struct AC_EVChargeParameterType -{ - uint32_t DepartureTime; - struct PhysicalValueType EAmount; - struct PhysicalValueType EVMaxVoltage; - struct PhysicalValueType EVMaxCurrent; - struct PhysicalValueType EVMinCurrent; - - -}; - -struct selection_ChargeParameterDiscoveryReqType -{ - unsigned int AC_EVChargeParameter:1; - unsigned int DC_EVChargeParameter:1; - - -}; - -struct selection_DC_EVStatusType -{ - unsigned int EVCabinConditioning:1; - unsigned int EVRESSConditioning:1; - - -}; - -struct DC_EVStatusType -{ - int EVReady; - int EVCabinConditioning; - int EVRESSConditioning; - enum DC_EVErrorCodeType EVErrorCode; - int8_t EVRESSSOC; - struct selection_DC_EVStatusType isused; - -}; - -struct selection_DC_EVChargeParameterType -{ - unsigned int EVMaximumPowerLimit:1; - unsigned int EVEnergyCapacity:1; - unsigned int EVEnergyRequest:1; - unsigned int FullSOC:1; - unsigned int BulkSOC:1; - - -}; - -struct DC_EVChargeParameterType -{ - struct DC_EVStatusType DC_EVStatus; - struct PhysicalValueType EVMaximumCurrentLimit; - struct PhysicalValueType EVMaximumPowerLimit; - struct PhysicalValueType EVMaximumVoltageLimit; - struct PhysicalValueType EVEnergyCapacity; - struct PhysicalValueType EVEnergyRequest; - int8_t FullSOC; - int8_t BulkSOC; - struct selection_DC_EVChargeParameterType isused; - -}; - -struct ChargeParameterDiscoveryReqType -{ - enum EVRequestedEnergyTransferType EVRequestedEnergyTransferType; - struct AC_EVChargeParameterType* AC_EVChargeParameter; - struct DC_EVChargeParameterType* DC_EVChargeParameter; - struct selection_ChargeParameterDiscoveryReqType isused; - -}; - -struct selection_RelativeTimeIntervalType -{ - unsigned int duration:1; - - -}; - -struct RelativeTimeIntervalType -{ - uint32_t start; - uint32_t duration; - struct selection_RelativeTimeIntervalType isused; - -}; - -struct PMaxScheduleEntryType -{ - struct RelativeTimeIntervalType RelativeTimeInterval; - int16_t PMax; - - -}; - -struct arraylen_PMaxScheduleType -{ - size_t PMaxScheduleEntry; - - -}; - -struct PMaxScheduleType -{ - int16_t PMaxScheduleID; - struct PMaxScheduleEntryType PMaxScheduleEntry[12]; - struct arraylen_PMaxScheduleType arraylen; - -}; - -struct arraylen_tariffDescriptionType -{ - size_t data; - - -}; - -struct tariffDescriptionType -{ - uint32_t data[32]; - struct arraylen_tariffDescriptionType arraylen; - -}; - -struct selection_SalesTariffType -{ - unsigned int SalesTariffDescription:1; - - -}; - -struct selection_CostType -{ - unsigned int amountMultiplier:1; - - -}; - -struct CostType -{ - enum costKindType costKind; - uint32_t amount; - int8_t amountMultiplier; - struct selection_CostType isused; - -}; - -struct selection_ConsumptionCostType -{ - unsigned int Cost:1; - - -}; - -struct arraylen_ConsumptionCostType -{ - size_t Cost; - - -}; - -struct ConsumptionCostType -{ - uint32_t startValue; - struct CostType Cost[2]; - struct selection_ConsumptionCostType isused; struct arraylen_ConsumptionCostType arraylen; - -}; - -struct selection_SalesTariffEntryType -{ - unsigned int ConsumptionCost:1; - - -}; - -struct arraylen_SalesTariffEntryType -{ - size_t ConsumptionCost; - - -}; - -struct SalesTariffEntryType -{ - struct RelativeTimeIntervalType RelativeTimeInterval; - uint8_t EPriceLevel; - struct ConsumptionCostType ConsumptionCost[2]; - struct selection_SalesTariffEntryType isused; struct arraylen_SalesTariffEntryType arraylen; - -}; - -struct arraylen_SalesTariffType -{ - size_t SalesTariffEntry; - - -}; - -struct SalesTariffType -{ - struct service_string attr_Id; - int16_t SalesTariffID; - struct tariffDescriptionType SalesTariffDescription; - uint8_t NumEPriceLevels; - struct SalesTariffEntryType SalesTariffEntry[12]; - struct selection_SalesTariffType isused; - struct arraylen_SalesTariffType arraylen; - -}; - -struct selection_SAScheduleTupleType -{ - unsigned int SalesTariff:1; - - -}; - -struct SAScheduleTupleType -{ - int16_t SAScheduleTupleID; - struct PMaxScheduleType PMaxSchedule; - struct SalesTariffType* SalesTariff; - struct selection_SAScheduleTupleType isused; - -}; - -struct arraylen_SAScheduleListType -{ - size_t SAScheduleTuple; - - -}; - -struct SAScheduleListType -{ - struct SAScheduleTupleType SAScheduleTuple[3]; - struct arraylen_SAScheduleListType arraylen; - -}; - -struct AC_EVSEStatusType -{ - int PowerSwitchClosed; - int RCD; - uint32_t NotificationMaxDelay; - enum EVSENotificationType EVSENotification; - - -}; - -struct AC_EVSEChargeParameterType -{ - struct AC_EVSEStatusType AC_EVSEStatus; - struct PhysicalValueType EVSEMaxVoltage; - struct PhysicalValueType EVSEMaxCurrent; - struct PhysicalValueType EVSEMinCurrent; - - -}; - -struct selection_ChargeParameterDiscoveryResType -{ - unsigned int AC_EVSEChargeParameter:1; - unsigned int DC_EVSEChargeParameter:1; - - -}; - -struct selection_DC_EVSEStatusType -{ - unsigned int EVSEIsolationStatus:1; - - -}; - -struct DC_EVSEStatusType -{ - enum isolationLevelType EVSEIsolationStatus; - enum DC_EVSEStatusCodeType EVSEStatusCode; - uint32_t NotificationMaxDelay; - enum EVSENotificationType EVSENotification; - struct selection_DC_EVSEStatusType isused; - -}; - -struct selection_DC_EVSEChargeParameterType -{ - unsigned int EVSEMaximumPowerLimit:1; - unsigned int EVSECurrentRegulationTolerance:1; - unsigned int EVSEEnergyToBeDelivered:1; - - -}; - -struct DC_EVSEChargeParameterType -{ - struct DC_EVSEStatusType DC_EVSEStatus; - struct PhysicalValueType EVSEMaximumCurrentLimit; - struct PhysicalValueType EVSEMaximumPowerLimit; - struct PhysicalValueType EVSEMaximumVoltageLimit; - struct PhysicalValueType EVSEMinimumCurrentLimit; - struct PhysicalValueType EVSEMinimumVoltageLimit; - struct PhysicalValueType EVSECurrentRegulationTolerance; - struct PhysicalValueType EVSEPeakCurrentRipple; - struct PhysicalValueType EVSEEnergyToBeDelivered; - struct selection_DC_EVSEChargeParameterType isused; - -}; - -struct ChargeParameterDiscoveryResType -{ - enum responseCodeType ResponseCode; - enum EVSEProcessingType EVSEProcessing; - struct SAScheduleListType SAScheduleList; - struct AC_EVSEChargeParameterType* AC_EVSEChargeParameter; - struct DC_EVSEChargeParameterType* DC_EVSEChargeParameter; - struct selection_ChargeParameterDiscoveryResType isused; - -}; - -struct ProfileEntryType -{ - uint32_t ChargingProfileEntryStart; - int16_t ChargingProfileEntryMaxPower; - - -}; - -struct arraylen_ChargingProfileType -{ - size_t ProfileEntry; - - -}; - -struct ChargingProfileType -{ - int16_t SAScheduleTupleID; - struct ProfileEntryType ProfileEntry[24]; - struct arraylen_ChargingProfileType arraylen; - -}; - -struct selection_PowerDeliveryReqType -{ - unsigned int ChargingProfile:1; - unsigned int DC_EVPowerDeliveryParameter:1; - - -}; - -struct selection_DC_EVPowerDeliveryParameterType -{ - unsigned int BulkChargingComplete:1; - - -}; - -struct DC_EVPowerDeliveryParameterType -{ - struct DC_EVStatusType DC_EVStatus; - int BulkChargingComplete; - int ChargingComplete; - struct selection_DC_EVPowerDeliveryParameterType isused; - -}; - -struct PowerDeliveryReqType -{ - int ReadyToChargeState; - struct ChargingProfileType ChargingProfile; - struct DC_EVPowerDeliveryParameterType* DC_EVPowerDeliveryParameter; - struct selection_PowerDeliveryReqType isused; - -}; - -struct selection_PowerDeliveryResType -{ - unsigned int AC_EVSEStatus:1; - unsigned int DC_EVSEStatus:1; - - -}; - -struct PowerDeliveryResType -{ - enum responseCodeType ResponseCode; - struct AC_EVSEStatusType* AC_EVSEStatus; - struct DC_EVSEStatusType* DC_EVSEStatus; - struct selection_PowerDeliveryResType isused; - -}; - -struct ChargingStatusReqType -{ - - - int NO_MEMBER:1; - -}; - -struct selection_ChargingStatusResType -{ - unsigned int EVSEMaxCurrent:1; - unsigned int MeterInfo:1; - - -}; - -struct arraylen_meterIDType -{ - size_t data; - - -}; - -struct meterIDType -{ - uint32_t data[32]; - struct arraylen_meterIDType arraylen; - -}; - -struct selection_MeterInfoType -{ - unsigned int MeterReading:1; - unsigned int SigMeterReading:1; - unsigned int MeterStatus:1; - unsigned int TMeter:1; - - -}; - -struct arraylen_sigMeterReadingType -{ - size_t data; - - -}; - -struct sigMeterReadingType -{ - uint8_t data[32]; - struct arraylen_sigMeterReadingType arraylen; - -}; - -struct MeterInfoType -{ - struct meterIDType MeterID; - struct PhysicalValueType MeterReading; - struct sigMeterReadingType SigMeterReading; - int16_t MeterStatus; - int64_t TMeter; - struct selection_MeterInfoType isused; - -}; - -struct ChargingStatusResType -{ - enum responseCodeType ResponseCode; - struct evseIDType EVSEID; - int16_t SAScheduleTupleID; - struct PhysicalValueType EVSEMaxCurrent; - struct MeterInfoType MeterInfo; - int ReceiptRequired; - struct AC_EVSEStatusType AC_EVSEStatus; - struct selection_ChargingStatusResType isused; - -}; - -struct selection_MeteringReceiptReqType -{ - unsigned int attr_Id:1; - unsigned int SAScheduleTupleID:1; - - -}; - -struct MeteringReceiptReqType -{ - struct service_string attr_Id; - struct sessionIDType SessionID; - int16_t SAScheduleTupleID; - struct MeterInfoType MeterInfo; - struct selection_MeteringReceiptReqType isused; - -}; - -struct MeteringReceiptResType -{ - enum responseCodeType ResponseCode; - struct AC_EVSEStatusType AC_EVSEStatus; - - -}; - -struct SessionStopType -{ - - - int NO_MEMBER:1; - -}; - -struct SessionStopResType -{ - enum responseCodeType ResponseCode; - - -}; - -struct selection_CertificateUpdateReqType -{ - unsigned int attr_Id:1; - - -}; - -struct arraylen_rootCertificateIDType -{ - size_t data; - - -}; - -struct rootCertificateIDType -{ - uint32_t data[40]; - struct arraylen_rootCertificateIDType arraylen; - -}; - -struct arraylen_ListOfRootCertificateIDsType -{ - size_t RootCertificateID; - - -}; - -struct ListOfRootCertificateIDsType -{ - struct rootCertificateIDType RootCertificateID[20]; - struct arraylen_ListOfRootCertificateIDsType arraylen; - -}; - -struct arraylen_dHParamsType -{ - size_t data; - - -}; - -struct dHParamsType -{ - uint8_t data[256]; - struct arraylen_dHParamsType arraylen; - -}; - -struct CertificateUpdateReqType -{ - struct service_string attr_Id; - struct CertificateChainType ContractSignatureCertChain; - struct contractIDType ContractID; - struct ListOfRootCertificateIDsType ListOfRootCertificateIDs; - struct dHParamsType DHParams; - struct selection_CertificateUpdateReqType isused; - -}; - -struct arraylen_privateKeyType -{ - size_t data; - - -}; - -struct privateKeyType -{ - uint8_t data[128]; - struct arraylen_privateKeyType arraylen; - -}; - -struct CertificateUpdateResType -{ - struct service_string attr_Id; - enum responseCodeType ResponseCode; - struct CertificateChainType ContractSignatureCertChain; - struct privateKeyType ContractSignatureEncryptedPrivateKey; - struct dHParamsType DHParams; - struct contractIDType ContractID; - int16_t RetryCounter; - - -}; - -struct selection_CertificateInstallationReqType -{ - unsigned int attr_Id:1; - - -}; - -struct CertificateInstallationReqType -{ - struct service_string attr_Id; - struct certificateType OEMProvisioningCert; - struct ListOfRootCertificateIDsType ListOfRootCertificateIDs; - struct dHParamsType DHParams; - struct selection_CertificateInstallationReqType isused; - -}; - -struct CertificateInstallationResType -{ - struct service_string attr_Id; - enum responseCodeType ResponseCode; - struct CertificateChainType ContractSignatureCertChain; - struct privateKeyType ContractSignatureEncryptedPrivateKey; - struct dHParamsType DHParams; - struct contractIDType ContractID; - - -}; - -struct CableCheckReqType -{ - struct DC_EVStatusType DC_EVStatus; - - -}; - -struct CableCheckResType -{ - enum responseCodeType ResponseCode; - struct DC_EVSEStatusType DC_EVSEStatus; - enum EVSEProcessingType EVSEProcessing; - - -}; - -struct PreChargeReqType -{ - struct DC_EVStatusType DC_EVStatus; - struct PhysicalValueType EVTargetVoltage; - struct PhysicalValueType EVTargetCurrent; - - -}; - -struct PreChargeResType -{ - enum responseCodeType ResponseCode; - struct DC_EVSEStatusType DC_EVSEStatus; - struct PhysicalValueType EVSEPresentVoltage; - - -}; - -struct selection_CurrentDemandReqType -{ - unsigned int EVMaximumVoltageLimit:1; - unsigned int EVMaximumCurrentLimit:1; - unsigned int EVMaximumPowerLimit:1; - unsigned int BulkChargingComplete:1; - unsigned int RemainingTimeToFullSoC:1; - unsigned int RemainingTimeToBulkSoC:1; - - -}; - -struct CurrentDemandReqType -{ - struct DC_EVStatusType DC_EVStatus; - struct PhysicalValueType EVTargetCurrent; - struct PhysicalValueType EVMaximumVoltageLimit; - struct PhysicalValueType EVMaximumCurrentLimit; - struct PhysicalValueType EVMaximumPowerLimit; - int BulkChargingComplete; - int ChargingComplete; - struct PhysicalValueType RemainingTimeToFullSoC; - struct PhysicalValueType RemainingTimeToBulkSoC; - struct PhysicalValueType EVTargetVoltage; - struct selection_CurrentDemandReqType isused; - -}; - -struct selection_CurrentDemandResType -{ - unsigned int EVSEMaximumVoltageLimit:1; - unsigned int EVSEMaximumCurrentLimit:1; - unsigned int EVSEMaximumPowerLimit:1; - - -}; - -struct CurrentDemandResType -{ - enum responseCodeType ResponseCode; - struct DC_EVSEStatusType DC_EVSEStatus; - struct PhysicalValueType EVSEPresentVoltage; - struct PhysicalValueType EVSEPresentCurrent; - int EVSECurrentLimitAchieved; - int EVSEVoltageLimitAchieved; - int EVSEPowerLimitAchieved; - struct PhysicalValueType EVSEMaximumVoltageLimit; - struct PhysicalValueType EVSEMaximumCurrentLimit; - struct PhysicalValueType EVSEMaximumPowerLimit; - struct selection_CurrentDemandResType isused; - -}; - -struct WeldingDetectionReqType -{ - struct DC_EVStatusType DC_EVStatus; - - -}; - -struct WeldingDetectionResType -{ - enum responseCodeType ResponseCode; - struct DC_EVSEStatusType DC_EVSEStatus; - struct PhysicalValueType EVSEPresentVoltage; - - -}; - -struct BodyType -{ - struct SessionSetupReqType* SessionSetupReq; - struct SessionSetupResType* SessionSetupRes; - struct ServiceDiscoveryReqType* ServiceDiscoveryReq; - struct ServiceDiscoveryResType* ServiceDiscoveryRes; - struct ServiceDetailReqType* ServiceDetailReq; - struct ServiceDetailResType* ServiceDetailRes; - struct ServicePaymentSelectionReqType* ServicePaymentSelectionReq; - struct ServicePaymentSelectionResType* ServicePaymentSelectionRes; - struct PaymentDetailsReqType* PaymentDetailsReq; - struct PaymentDetailsResType* PaymentDetailsRes; - struct ContractAuthenticationReqType* ContractAuthenticationReq; - struct ContractAuthenticationResType* ContractAuthenticationRes; - struct ChargeParameterDiscoveryReqType* ChargeParameterDiscoveryReq; - struct ChargeParameterDiscoveryResType* ChargeParameterDiscoveryRes; - struct PowerDeliveryReqType* PowerDeliveryReq; - struct PowerDeliveryResType* PowerDeliveryRes; - struct ChargingStatusReqType* ChargingStatusReq; - struct ChargingStatusResType* ChargingStatusRes; - struct MeteringReceiptReqType* MeteringReceiptReq; - struct MeteringReceiptResType* MeteringReceiptRes; - struct SessionStopType* SessionStopReq; - struct SessionStopResType* SessionStopRes; - struct CertificateUpdateReqType* CertificateUpdateReq; - struct CertificateUpdateResType* CertificateUpdateRes; - struct CertificateInstallationReqType* CertificateInstallationReq; - struct CertificateInstallationResType* CertificateInstallationRes; - struct CableCheckReqType* CableCheckReq; - struct CableCheckResType* CableCheckRes; - struct PreChargeReqType* PreChargeReq; - struct PreChargeResType* PreChargeRes; - struct CurrentDemandReqType* CurrentDemandReq; - struct CurrentDemandResType* CurrentDemandRes; - struct WeldingDetectionReqType* WeldingDetectionReq; - struct WeldingDetectionResType* WeldingDetectionRes; - struct selection_BodyType isused; - -}; - -struct AnonType_V2G_Message -{ - struct MessageHeaderType* Header; - struct BodyType Body; - - -}; - -struct EXIDocumentType -{ - struct AnonType_V2G_Message V2G_Message; - - -}; - -/* init methods */ -/*void init_EXIDocumentType(struct EXIDocumentType* type); -void init_ServiceDiscoveryResType(struct ServiceDiscoveryResType* type); -*/ - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/service/v2g_service.h b/src/service/v2g_service.h deleted file mode 100644 index 67f8e8b..0000000 --- a/src/service/v2g_service.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2007-2010 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - - #include "v2g_dataTypes.h" - #include "v2g_dataTypes.c" - #include "v2g_serviceClientStubs.h" - #include "v2g_serviceDataSerialization.c" - #include "v2g_serviceClientDataTransmitter.h" - #include "EXITypes.h" - #include "EXIDecoder.h" - #include "EXIEncoder.h" - #include "QNameDefines.h" - #include "StringTable.h" - - -static int deserializeMessage(struct EXIService* service); - -uint16_t numberOfLocalStringsDecode[EXI_MAX_NUMBER_OF_QNAMES]; -uint16_t numberOfLocalStringsEncode[EXI_MAX_NUMBER_OF_QNAMES]; - - -static int _setInt64Value(exi_integer_t* iv, int64_t* int64) { - int errn = 0; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - *int64 = iv->val.uint8; - break; - case EXI_UNSIGNED_INTEGER_16: - *int64 = iv->val.uint16; - break; - case EXI_UNSIGNED_INTEGER_32: - if (iv->val.uint32 <= 2147483647) { - *int64 = iv->val.uint32; - } else { - errn = -1; - } - break; - case EXI_UNSIGNED_INTEGER_64: - *int64 = iv->val.uint64; - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - *int64 = iv->val.int8; - break; - case EXI_INTEGER_16: - *int64 = iv->val.int16; - break; - case EXI_INTEGER_32: - *int64 = iv->val.int32; - break; - case EXI_INTEGER_64: - *int64 = iv->val.int64; - break; - } - return errn; -} - - -static int _setUnsignedInt32Value(exi_integer_t* iv, uint32_t* int32) { - int errn = 0; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - *int32 = iv->val.uint8; - break; - case EXI_UNSIGNED_INTEGER_16: - *int32 = iv->val.uint16; - break; - case EXI_UNSIGNED_INTEGER_32: - if (iv->val.uint32 <= 2147483647) { - *int32 = iv->val.uint32; - } else { - errn = -1; - } - break; - case EXI_UNSIGNED_INTEGER_64: - errn = -1; - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - *int32 = iv->val.int8; - break; - case EXI_INTEGER_16: - *int32 = iv->val.int16; - break; - case EXI_INTEGER_32: - *int32 = iv->val.int32; - break; - case EXI_INTEGER_64: - errn = -1; - break; - } - return errn; -} - -static int _setUnsignedInt16Value(exi_integer_t* iv, uint16_t* uint16) { - int errn = 0; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - *uint16 = iv->val.uint8; - break; - case EXI_UNSIGNED_INTEGER_16: - *uint16 = iv->val.uint16; - break; - case EXI_UNSIGNED_INTEGER_32: - if (iv->val.uint32 <= 2147483647) { - errn = -1; - } else { - errn = -1; - } - break; - case EXI_UNSIGNED_INTEGER_64: - errn = -1; - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - *uint16 = iv->val.int8; - break; - case EXI_INTEGER_16: - *uint16 = iv->val.int16; - break; - case EXI_INTEGER_32: - errn = -1; - break; - case EXI_INTEGER_64: - errn = -1; - break; - } - return errn; -} - -static int _setInt16Value(exi_integer_t* iv, int16_t* int16) { - int errn = 0; - switch(iv->type) { - /* Unsigned Integer */ - case EXI_UNSIGNED_INTEGER_8: - *int16 = iv->val.uint8; - break; - case EXI_UNSIGNED_INTEGER_16: - *int16 = iv->val.int16; - break; - case EXI_UNSIGNED_INTEGER_32: - errn = -1; - break; - case EXI_UNSIGNED_INTEGER_64: - errn = -1; - break; - /* (Signed) Integer */ - case EXI_INTEGER_8: - *int16 = iv->val.int8; - break; - case EXI_INTEGER_16: - *int16 = iv->val.int16; - break; - case EXI_INTEGER_32: - errn = -1;; - break; - case EXI_INTEGER_64: - errn = -1; - break; - } - return errn; -} - - - - - -/** - * \brief Prepares the remote sessionSetup call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct SessionSetupReqType* Request data for the server (has to be set up before) - * \param result struct SessionSetupResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_sessionSetup(struct EXIService* service, struct MessageHeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.SessionSetupReq = params; - service->exiMsg.V2G_Message.Body.isused.SessionSetupReq=1; - - - service->exiMsg.V2G_Message.Body.SessionSetupRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote serviceDiscovery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServiceDiscoveryReqType* Request data for the server (has to be set up before) - * \param result struct ServiceDiscoveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_serviceDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - init_ServiceDiscoveryResType(result); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.ServiceDiscoveryReq = params; - service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryReq=1; - - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote serviceDetail call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServiceDetailReqType* Request data for the server (has to be set up before) - * \param result struct ServiceDetailResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_serviceDetail(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDetailReqType* params, struct ServiceDetailResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.ServiceDetailReq = params; - service->exiMsg.V2G_Message.Body.isused.ServiceDetailReq=1; - - - service->exiMsg.V2G_Message.Body.ServiceDetailRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote servicePaymentSelection call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServicePaymentSelectionReqType* Request data for the server (has to be set up before) - * \param result struct ServicePaymentSelectionResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_servicePaymentSelection(struct EXIService* service, struct MessageHeaderType* header, struct ServicePaymentSelectionReqType* params, struct ServicePaymentSelectionResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.ServicePaymentSelectionReq = params; - service->exiMsg.V2G_Message.Body.isused.ServicePaymentSelectionReq=1; - - - service->exiMsg.V2G_Message.Body.ServicePaymentSelectionRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote paymentDetails call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PaymentDetailsReqType* Request data for the server (has to be set up before) - * \param result struct PaymentDetailsResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_paymentDetails(struct EXIService* service, struct MessageHeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.PaymentDetailsReq = params; - service->exiMsg.V2G_Message.Body.isused.PaymentDetailsReq=1; - - - service->exiMsg.V2G_Message.Body.PaymentDetailsRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote contractAuthentication call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ContractAuthenticationReqType* Request data for the server (has to be set up before) - * \param result struct ContractAuthenticationResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_contractAuthentication(struct EXIService* service, struct MessageHeaderType* header, struct ContractAuthenticationReqType* params, struct ContractAuthenticationResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.ContractAuthenticationReq = params; - service->exiMsg.V2G_Message.Body.isused.ContractAuthenticationReq=1; - - - service->exiMsg.V2G_Message.Body.ContractAuthenticationRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote chargeParameterDiscovery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ChargeParameterDiscoveryReqType* Request data for the server (has to be set up before) - * \param result struct ChargeParameterDiscoveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_chargeParameterDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* params, struct ChargeParameterDiscoveryResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - init_ChargeParameterDiscoveryResType(result); - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryReq = params; - service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryReq=1; - - - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote powerDelivery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PowerDeliveryReqType* Request data for the server (has to be set up before) - * \param result struct PowerDeliveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_powerDelivery(struct EXIService* service, struct MessageHeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.PowerDeliveryReq = params; - service->exiMsg.V2G_Message.Body.isused.PowerDeliveryReq=1; - - - service->exiMsg.V2G_Message.Body.PowerDeliveryRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote chargingStatus call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param result struct ChargingStatusResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_chargingStatus(struct EXIService* service, struct MessageHeaderType* header, struct ChargingStatusResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.isused.ChargingStatusReq=1; - - - service->exiMsg.V2G_Message.Body.ChargingStatusRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote meteringReceipt call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct MeteringReceiptReqType* Request data for the server (has to be set up before) - * \param result struct MeteringReceiptResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_meteringReceipt(struct EXIService* service, struct MessageHeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.MeteringReceiptReq = params; - service->exiMsg.V2G_Message.Body.isused.MeteringReceiptReq=1; - - - service->exiMsg.V2G_Message.Body.MeteringReceiptRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote certificateUpdate call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CertificateUpdateReqType* Request data for the server (has to be set up before) - * \param result struct CertificateUpdateResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_certificateUpdate(struct EXIService* service, struct MessageHeaderType* header, struct CertificateUpdateReqType* params, struct CertificateUpdateResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.CertificateUpdateReq = params; - service->exiMsg.V2G_Message.Body.isused.CertificateUpdateReq=1; - - - service->exiMsg.V2G_Message.Body.CertificateUpdateRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote certificateInstallation call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CertificateInstallationReqType* Request data for the server (has to be set up before) - * \param result struct CertificateInstallationResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_certificateInstallation(struct EXIService* service, struct MessageHeaderType* header, struct CertificateInstallationReqType* params, struct CertificateInstallationResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - init_CertificateInstallationResType(result); - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.CertificateInstallationReq = params; - service->exiMsg.V2G_Message.Body.isused.CertificateInstallationReq=1; - - - service->exiMsg.V2G_Message.Body.CertificateInstallationRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote cableCheck call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CableCheckReqType* Request data for the server (has to be set up before) - * \param result struct CableCheckResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_cableCheck(struct EXIService* service, struct MessageHeaderType* header, struct CableCheckReqType* params, struct CableCheckResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.CableCheckReq = params; - service->exiMsg.V2G_Message.Body.isused.CableCheckReq=1; - - - service->exiMsg.V2G_Message.Body.CableCheckRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote preCharge call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PreChargeReqType* Request data for the server (has to be set up before) - * \param result struct PreChargeResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_preCharge(struct EXIService* service, struct MessageHeaderType* header, struct PreChargeReqType* params, struct PreChargeResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.PreChargeReq = params; - service->exiMsg.V2G_Message.Body.isused.PreChargeReq=1; - - - service->exiMsg.V2G_Message.Body.PreChargeRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote currentDemand call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CurrentDemandReqType* Request data for the server (has to be set up before) - * \param result struct CurrentDemandResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_currentDemand(struct EXIService* service, struct MessageHeaderType* header, struct CurrentDemandReqType* params, struct CurrentDemandResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.CurrentDemandReq = params; - service->exiMsg.V2G_Message.Body.isused.CurrentDemandReq=1; - - - service->exiMsg.V2G_Message.Body.CurrentDemandRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote weldingDetection call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct WeldingDetectionReqType* Request data for the server (has to be set up before) - * \param result struct WeldingDetectionResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_weldingDetection(struct EXIService* service, struct MessageHeaderType* header, struct WeldingDetectionReqType* params, struct WeldingDetectionResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.WeldingDetectionReq = params; - service->exiMsg.V2G_Message.Body.isused.WeldingDetectionReq=1; - - - service->exiMsg.V2G_Message.Body.WeldingDetectionRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } -/** - * \brief Prepares the remote sessionStop call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param result struct SessionStopResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_sessionStop(struct EXIService* service, struct MessageHeaderType* header, struct SessionStopResType* result) -{ - exi_name_table_runtime_t runtimeTableEncode; - exi_string_table_t stringTableEncode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsEncode}; - - /* init uniqueID stack */ - service->idPath.pos=0; - - /* init outStream data structure */ - *(service->outStream.pos) = service->transportHeaderOffset; - service->outStream.buffer = 0; - service->outStream.capacity = 8; - - /* init encoder (write header, set initial state) */ - exiInitNameTableRuntime(&runtimeTableEncode); - exiInitEncoder(&(service->outStream), &(service->stateEncode), runtimeTableEncode,stringTableEncode); - - - - - - /* init EXI message */ - init_EXIDocumentType(&(service->exiMsg)); - - - - /* assign data to service data structure */ - service->exiMsg.V2G_Message.Header = header; - service->exiMsg.V2G_Message.Body.isused.SessionStopReq=1; - - - service->exiMsg.V2G_Message.Body.SessionStopRes = result; - - - - /* encode data to exi stream*/ - if(serialize_message(service)) - { - - service->errorCode = EXI_SERIALIZATION_FAILED; - return -1; - } - - *(service->outStream.pos) -= service->transportHeaderOffset; - - return 0; - } - - - - /** - * \brief Determines which response message was received - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param respMsg enum responseMessages* contains the name of the response message - * \param result struct SessionStopResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ -int determineResponseMesssage(struct EXIService* service, enum responseMessages* respMsg) -{ - - uint32_t posDecode; - exi_name_table_runtime_t runtimeTableDecode; - - exi_string_table_t stringTableDecode = { 0, EXI_MAX_NUMBER_OF_QNAMES, numberOfLocalStringsDecode}; - - - /* init inStream data structure */ - posDecode = service->transportHeaderOffset; - service->inStream.pos = &posDecode; - service->inStream.buffer=0; - service->inStream.capacity=0; - - /* init decoder (read header, set initial state) */ - /* init runtime table */ - exiInitNameTableRuntime(&runtimeTableDecode); - exiInitDecoder(&(service->inStream), &(service->stateDecode), runtimeTableDecode,stringTableDecode); - - /* deserilize the response message */ - if(deserializeMessage(service)<0) - { - - service->errorCode = EXI_DESERIALIZATION_FAILED; - return -1; - } - - if(service->exiMsg.V2G_Message.Body.isused.SessionSetupRes) - *respMsg = SESSIONSETUPRES; - else if(service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryRes) - *respMsg = SERVICEDISCOVERYRES; - else if(service->exiMsg.V2G_Message.Body.isused.ServiceDetailRes) - *respMsg = SERVICEDETAILRES; - else if(service->exiMsg.V2G_Message.Body.isused.ServicePaymentSelectionRes) - *respMsg = SERVICEPAYMENTSELECTIONRES; - else if(service->exiMsg.V2G_Message.Body.isused.PaymentDetailsRes) - *respMsg = PAYMENTDETAILSRES; - else if(service->exiMsg.V2G_Message.Body.isused.ContractAuthenticationRes) - *respMsg = CONTRACTAUTHENTICATIONRES; - else if(service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryRes) - *respMsg = CHARGEPARAMETERDISCOVERYRES; - else if(service->exiMsg.V2G_Message.Body.isused.PowerDeliveryRes) - *respMsg = POWERDELIVERYRES; - else if(service->exiMsg.V2G_Message.Body.isused.ChargingStatusRes) - *respMsg = CHARGINGSTATUSRES; - else if(service->exiMsg.V2G_Message.Body.isused.MeteringReceiptRes) - *respMsg = METERINGRECEIPTRES; - else if(service->exiMsg.V2G_Message.Body.isused.SessionStopRes) - *respMsg = SESSIONSTOPRES; - else if(service->exiMsg.V2G_Message.Body.isused.CertificateUpdateRes) - *respMsg = CERTIFICATEUPDATERES; - else if(service->exiMsg.V2G_Message.Body.isused.CertificateInstallationRes) - *respMsg = CERTIFICATEINSTALLATIONRES; - else if(service->exiMsg.V2G_Message.Body.isused.CableCheckRes) - *respMsg = CABLECHECKRES; - else if(service->exiMsg.V2G_Message.Body.isused.PreChargeRes) - *respMsg = PRECHARGERES; - else if(service->exiMsg.V2G_Message.Body.isused.CurrentDemandRes) - *respMsg = CURRENTDEMANDRES; - else if(service->exiMsg.V2G_Message.Body.isused.WeldingDetectionRes) - *respMsg = WELDINGDETECTIONRES; - - return 0; -} - - - /** - * Deserialize an element value of the EXI stream and assign it to the - * service data structure - */ -static int deserializeElementAttributeCharacter(struct EXIService* service) -{ - - switch(service->qnameID) { - case 326: /* FaultCode */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - service->exiMsg.V2G_Message.Header->Notification.FaultCode=service->val.enumeration; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 327: /* FaultMsg */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Header->Notification.FaultMsg.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Notification.FaultMsg.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Notification.isused.FaultMsg=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 0: /* attr_Algorithm */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - if( service->idPath.id[4] == 61) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.CanonicalizationMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[4] == 104) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.SignatureMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[4] == 95) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].DigestMethod.attr_Algorithm.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].DigestMethod.attr_Algorithm.arraylen.data = service->val.str.miss.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 2: /* attr_Id */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - if(service->idPath.id[3] == 75) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.attr_Id.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.isused.attr_Id=1; - - } else if(service->idPath.id[6] == 95) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.attr_Id.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.isused.attr_Id=1; - - } else if(service->idPath.id[1] == 441 && service->idPath.id[2] == 103) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->attr_Id.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->isused.attr_Id=1; - - } else if(service->idPath.id[2] == 139) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->attr_Id.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[2] == 143) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->attr_Id.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[2] == 147) - { - memcpy(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->attr_Id.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[4] == 95) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_Id.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_Id.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].isused.attr_Id=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 7: /* attr_URI */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_URI.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_URI.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].isused.attr_URI=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 6: /* attr_Type */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_Type.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].attr_Type.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].isused.attr_Type=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 68: /* DigestValue */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].DigestValue.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->Signature->SignedInfo.Reference[0].DigestValue.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 111: /* SignatureValue */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->SignatureValue.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->Signature->SignatureValue.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - case 123: /* X509IssuerName */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509IssuerSerial.X509IssuerName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509IssuerSerial.X509IssuerName.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 127: /* X509SerialNumber */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - - if(_setInt64Value(&(service->val.integer),&(service->val.integer.val.int64))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509IssuerSerial.X509SerialNumber=service->val.integer.val.int64; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 126: /* X509SKI */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509SKI.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509SKI.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 128: /* X509SubjectName */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509SubjectName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509SubjectName.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 120: /* X509Certificate */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509Certificate.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509Certificate.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 119: /* X509CRL */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509CRL.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->Signature->KeyInfo.X509Data.X509CRL.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 445: /* SessionID */ - - if(service->val.type == EXI_DATATYPE_BINARY_HEX) - { - memcpy(service->exiMsg.V2G_Message.Header->SessionID.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Header->SessionID.arraylen.data = service->val.binary.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 214: /* ResponseCode */ - - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[2] == 226) - { - if(service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryReq) - { - service->exiMsg.V2G_Message.Body.isused.ServiceDiscoveryRes=1; - } - else - { - return -1; - } - - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 233) - { - if(service->exiMsg.V2G_Message.Body.isused.ServicePaymentSelectionReq) - { - service->exiMsg.V2G_Message.Body.isused.ServicePaymentSelectionRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.ServicePaymentSelectionRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 204) - { - if(service->exiMsg.V2G_Message.Body.isused.PowerDeliveryReq) - { - service->exiMsg.V2G_Message.Body.isused.PowerDeliveryRes=1; - } - else - { - return -1; - } - - - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 194) - { - - - if(service->exiMsg.V2G_Message.Body.isused.MeteringReceiptReq) - { - service->exiMsg.V2G_Message.Body.isused.MeteringReceiptRes=1; - } - else - { - return -1; - } - service->exiMsg.V2G_Message.Body.MeteringReceiptRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 242) - { - - if(service->exiMsg.V2G_Message.Body.isused.SessionStopReq) - { - service->exiMsg.V2G_Message.Body.isused.SessionStopRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.SessionStopRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 208) - { - - if(service->exiMsg.V2G_Message.Body.isused.PreChargeReq) - { - service->exiMsg.V2G_Message.Body.isused.PreChargeRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.PreChargeRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 247) - { - - if(service->exiMsg.V2G_Message.Body.isused.WeldingDetectionReq) - { - service->exiMsg.V2G_Message.Body.isused.WeldingDetectionRes=1; - } - else - { - return -1; - } - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 222) - { - - if(service->exiMsg.V2G_Message.Body.isused.ServiceDetailReq) - { - service->exiMsg.V2G_Message.Body.isused.ServiceDetailRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 158) - { - - if(service->exiMsg.V2G_Message.Body.isused.ContractAuthenticationReq) - { - service->exiMsg.V2G_Message.Body.isused.ContractAuthenticationRes=1; - } - else - { - return -1; - } - service->exiMsg.V2G_Message.Body.ContractAuthenticationRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 147) - { - - if(service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryReq) - { - service->exiMsg.V2G_Message.Body.isused.ChargeParameterDiscoveryRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 135) - { - - if(service->exiMsg.V2G_Message.Body.isused.CableCheckReq) - { - service->exiMsg.V2G_Message.Body.isused.CableCheckRes=1; - } - else - { - return -1; - } - service->exiMsg.V2G_Message.Body.CableCheckRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 239) - { - - if(service->exiMsg.V2G_Message.Body.isused.SessionSetupReq) - { - service->exiMsg.V2G_Message.Body.isused.SessionSetupRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.SessionSetupRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 199) - { - - if(service->exiMsg.V2G_Message.Body.isused.PaymentDetailsReq) - { - service->exiMsg.V2G_Message.Body.isused.PaymentDetailsRes=1; - } - else - { - return -1; - } - - - service->exiMsg.V2G_Message.Body.PaymentDetailsRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 154) - { - - if(service->exiMsg.V2G_Message.Body.isused.ChargingStatusReq) - { - service->exiMsg.V2G_Message.Body.isused.ChargingStatusRes=1; - } - else - { - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 165) - { - - - if(service->exiMsg.V2G_Message.Body.isused.CurrentDemandReq) - { - service->exiMsg.V2G_Message.Body.isused.CurrentDemandRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.CurrentDemandRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 139) - { - - if(service->exiMsg.V2G_Message.Body.isused.CertificateInstallationReq) - { - service->exiMsg.V2G_Message.Body.isused.CertificateInstallationRes=1; - } - else - { - return -1; - } - - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ResponseCode=service->val.enumeration; - } else if(service->idPath.id[2] == 143) - { - - if(service->exiMsg.V2G_Message.Body.isused.CertificateUpdateReq) - { - service->exiMsg.V2G_Message.Body.isused.CertificateUpdateRes=1; - } - else - { - return -1; - } - - - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ResponseCode=service->val.enumeration; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - case 177: /* EVSEID */ - - if(service->val.type == EXI_DATATYPE_BINARY_HEX) - { - if( service->idPath.id[2] == 239) - { - memcpy(service->exiMsg.V2G_Message.Body.SessionSetupRes->EVSEID.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.SessionSetupRes->EVSEID.arraylen.data = service->val.binary.len; - - } else if(service->idPath.id[2] == 154) - { - memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEID.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEID.arraylen.data = service->val.binary.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 170: /* DateTimeNow */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - - if(_setInt64Value(&(service->val.integer),&(service->val.integer.val.int64))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - - if( service->idPath.id[2] == 239) - { - service->exiMsg.V2G_Message.Body.SessionSetupRes->DateTimeNow=service->val.integer.val.int64; - service->exiMsg.V2G_Message.Body.SessionSetupRes->isused.DateTimeNow=1; - - } else if(service->idPath.id[2] == 199) - { - service->exiMsg.V2G_Message.Body.PaymentDetailsRes->DateTimeNow=service->val.integer.val.int64; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 352: /* PaymentOption */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptions.PaymentOption[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptions.arraylen.PaymentOption]=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->PaymentOptions.arraylen.PaymentOption++; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 383: /* ServiceID */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if( service->idPath.id[3] == 229) - { - if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceID=service->val.integer.val.uint16; - } else if(service->idPath.id[3] == 149) - { - if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceID=service->val.integer.val.uint16; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 384: /* ServiceName */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - if( service->idPath.id[3] == 229) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceName.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.isused.ServiceName=1; - - } else if(service->idPath.id[3] == 149) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceName.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceName.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.isused.ServiceName=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 380: /* ServiceCategory */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[3] == 229) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceCategory=service->val.enumeration; - } else if(service->idPath.id[3] == 149) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceCategory=service->val.enumeration; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 386: /* ServiceScope */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - if( service->idPath.id[3] == 229) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceScope.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.ServiceScope.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].ServiceTag.isused.ServiceScope=1; - - } else if(service->idPath.id[3] == 149) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceScope.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.ServiceScope.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.ServiceTag.isused.ServiceScope=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 328: /* FreeService */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - if( service->idPath.id[3] == 149) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.FreeService=service->val.boolean; - } else if(service->idPath.id[3] == 229) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.Service[service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service].FreeService=service->val.boolean; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 323: /* EnergyTransferType */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ChargeService.EnergyTransferType=service->val.enumeration; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 336: /* Multiplier */ - - if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) - { - if( service->idPath.id[3] == 178) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[2] == 208) - { - service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 184) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[3] == 183) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[3] == 181) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[3] == 179) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[3] == 180) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[2] == 247) - { - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 306) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxVoltage.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 305) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 310) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMinCurrent.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 307) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 308) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 309) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 311) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 312) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 302) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 315) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[4] == 303) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[3] == 191) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterReading.Multiplier=service->val.integer.val.int8; - } else if(service->idPath.id[2] == 222) - { - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Multiplier=service->val.integer.val.int8; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 396: /* Unit */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[3] == 178) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.isused.Unit=1; - - } else if(service->idPath.id[2] == 208) - { - service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.isused.Unit=1; - - } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 184) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.isused.Unit=1; - - } else if(service->idPath.id[3] == 183) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.isused.Unit=1; - - } else if(service->idPath.id[3] == 181) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.isused.Unit=1; - - } else if(service->idPath.id[3] == 179) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.isused.Unit=1; - - } else if(service->idPath.id[3] == 180) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.isused.Unit=1; - - } else if(service->idPath.id[2] == 247) - { - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.isused.Unit=1; - - } else if(service->idPath.id[4] == 306) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxVoltage.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxVoltage.isused.Unit=1; - - } else if(service->idPath.id[4] == 305) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.isused.Unit=1; - - } else if(service->idPath.id[4] == 310) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMinCurrent.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMinCurrent.isused.Unit=1; - - } else if(service->idPath.id[4] == 307) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.isused.Unit=1; - - } else if(service->idPath.id[4] == 308) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.isused.Unit=1; - - } else if(service->idPath.id[4] == 309) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.isused.Unit=1; - - } else if(service->idPath.id[4] == 311) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.isused.Unit=1; - - } else if(service->idPath.id[4] == 312) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.isused.Unit=1; - - } else if(service->idPath.id[4] == 302) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.isused.Unit=1; - - } else if(service->idPath.id[4] == 315) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.isused.Unit=1; - - } else if(service->idPath.id[4] == 303) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.isused.Unit=1; - - } else if(service->idPath.id[3] == 191) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterReading.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterReading.isused.Unit=1; - - } else if(service->idPath.id[2] == 222) - { - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Unit=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.isused.Unit=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 397: /* Value */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if( service->idPath.id[3] == 178) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->EVSEMaxCurrent.Value=service->val.integer.val.int16; - } else if(service->idPath.id[2] == 208) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.PreChargeRes->EVSEPresentVoltage.Value=service->val.integer.val.int16; - } else if(service->idPath.id[2] == 165 && service->idPath.id[3] == 184) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentVoltage.Value=service->val.integer.val.int16; - } else if(service->idPath.id[3] == 183) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPresentCurrent.Value=service->val.integer.val.int16; - } else if(service->idPath.id[3] == 181) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumVoltageLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[3] == 179) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumCurrentLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[3] == 180) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEMaximumPowerLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[2] == 247) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->EVSEPresentVoltage.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 306) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxVoltage.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 305) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMaxCurrent.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 310) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->EVSEMinCurrent.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 307) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumCurrentLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 308) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumPowerLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 309) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMaximumVoltageLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 311) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumCurrentLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 312) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEMinimumVoltageLimit.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 302) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSECurrentRegulationTolerance.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 315) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEPeakCurrentRipple.Value=service->val.integer.val.int16; - } else if(service->idPath.id[4] == 303) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->EVSEEnergyToBeDelivered.Value=service->val.integer.val.int16; - } else if(service->idPath.id[3] == 191) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterReading.Value=service->val.integer.val.int16; - } else if(service->idPath.id[2] == 222) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].physicalValue.Value=service->val.integer.val.int16; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 4: /* attr_Name */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_Name.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_Name.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 8: /* attr_ValueType */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_ValueType.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].attr_ValueType.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 400: /* boolValue */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].boolValue=service->val.boolean; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 401: /* byteValue */ - - if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) - { - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].byteValue=service->val.integer.val.int8; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 428: /* shortValue */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].shortValue=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 413: /* intValue */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].intValue=service->val.integer.val.int32; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 432: /* stringValue */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].stringValue.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].Parameter[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter].stringValue.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 349: /* ParameterSetID */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].ParameterSetID=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 228: /* ServiceID */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if(_setUnsignedInt16Value(&(service->val.integer),&(service->val.integer.val.uint16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceID=service->val.integer.val.uint16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 257: /* Certificate */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - if( service->idPath.id[2] == 143) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len; - - } else if(service->idPath.id[2] == 139 && service->idPath.id[5] == 257) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.arraylen.Certificate].data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.Certificate[service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.SubCertificates.arraylen.Certificate++].arraylen.data = service->val.binary.len; - - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.isused.SubCertificates=1; - - } else if(service->idPath.id[2] == 139) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len; - - } else if(service->idPath.id[2] == 197) - { - memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.PaymentDetailsReq->ContractSignatureCertChain.Certificate.arraylen.data = service->val.binary.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 189: /* GenChallenge */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.PaymentDetailsRes->GenChallenge.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.PaymentDetailsRes->GenChallenge.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 185: /* EVSEProcessing */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[2] == 158) - { - service->exiMsg.V2G_Message.Body.ContractAuthenticationRes->EVSEProcessing=service->val.enumeration; - } else if(service->idPath.id[2] == 147) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->EVSEProcessing=service->val.enumeration; - } else if(service->idPath.id[2] == 135) - { - service->exiMsg.V2G_Message.Body.CableCheckRes->EVSEProcessing=service->val.enumeration; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 430: /* start */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if( service->idPath.id[5] == 370) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.start=service->val.integer.val.uint32; - } else if(service->idPath.id[5] == 341) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.start=service->val.integer.val.uint32; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 407: /* duration */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if( service->idPath.id[5] == 370) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.duration=service->val.integer.val.uint32; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].RelativeTimeInterval.isused.duration=1; - - } else if(service->idPath.id[5] == 341) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.duration=service->val.integer.val.uint32; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].RelativeTimeInterval.isused.duration=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 340: /* PMax */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry].PMax=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 344: /* PMaxScheduleID */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.PMaxScheduleID=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 404: /* costKind */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].costKind=service->val.enumeration; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 398: /* amount */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].amount=service->val.integer.val.uint32; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 399: /* amountMultiplier */ - - if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].amountMultiplier=service->val.integer.val.int8; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].Cost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost].isused.amountMultiplier=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 431: /* startValue */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].startValue=service->val.integer.val.uint32; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 281: /* EPriceLevel */ - - if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].EPriceLevel=service->val.integer.val.uint8; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 374: /* SalesTariffID */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - init_SalesTariffType(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff); - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffID=service->val.integer.val.int16; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 371: /* SalesTariffDescription */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffDescription.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffDescription.arraylen.data = service->val.str.miss.len; - - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->isused.SalesTariffDescription=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 339: /* NumEPriceLevels */ - - if(service->val.type == EXI_DATATYPE_NBIT_UNSIGNED_INTEGER) - { - - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->NumEPriceLevels=service->val.integer.val.uint8; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 366: /* SAScheduleTupleID */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SAScheduleTupleID=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 355: /* PowerSwitchClosed */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - if( service->idPath.id[2] == 204) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->PowerSwitchClosed=service->val.boolean; - } else if(service->idPath.id[2] == 154) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.PowerSwitchClosed=service->val.boolean; - } else if(service->idPath.id[2] == 194) - { - service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus.PowerSwitchClosed=service->val.boolean; - } else if(service->idPath.id[2] == 147) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.PowerSwitchClosed=service->val.boolean; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 358: /* RCD */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - if( service->idPath.id[2] == 204) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->RCD=service->val.boolean; - } else if(service->idPath.id[2] == 154) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.RCD=service->val.boolean; - } else if(service->idPath.id[2] == 194) - { - service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus.RCD=service->val.boolean; - } else if(service->idPath.id[2] == 147) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.RCD=service->val.boolean; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 337: /* NotificationMaxDelay */ - - if(service->val.type == EXI_DATATYPE_UNSIGNED_INTEGER) - { - if( service->idPath.id[3] == 253) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 154) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 194) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[3] == 274) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 135) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 208) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 165) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[2] == 247) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[3] == 251) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; - } else if(service->idPath.id[3] == 272) - { - if(_setUnsignedInt32Value(&(service->val.integer),&(service->val.integer.val.uint32))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.NotificationMaxDelay=service->val.integer.val.uint32; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 313: /* EVSENotification */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[3] == 253) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->AC_EVSEStatus->EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 154) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->AC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 194) - { - service->exiMsg.V2G_Message.Body.MeteringReceiptRes->AC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[3] == 274) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 135) - { - service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 208) - { - service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 165) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[2] == 247) - { - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[3] == 251) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->AC_EVSEChargeParameter->AC_EVSEStatus.EVSENotification=service->val.enumeration; - } else if(service->idPath.id[3] == 272) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSENotification=service->val.enumeration; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 304: /* EVSEIsolationStatus */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[2] == 204) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->isused.EVSEIsolationStatus=1; - - } else if(service->idPath.id[2] == 135) - { - service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1; - - } else if(service->idPath.id[2] == 208) - { - service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1; - - } else if(service->idPath.id[2] == 165) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1; - - } else if(service->idPath.id[2] == 247) - { - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.isused.EVSEIsolationStatus=1; - - } else if(service->idPath.id[2] == 147) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEIsolationStatus=service->val.enumeration; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.isused.EVSEIsolationStatus=1; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 318: /* EVSEStatusCode */ - - if(service->val.type == EXI_DATATYPE_ENUMERATION) - { - if( service->idPath.id[2] == 204) - { - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->DC_EVSEStatus->EVSEStatusCode=service->val.enumeration; - } else if(service->idPath.id[2] == 135) - { - service->exiMsg.V2G_Message.Body.CableCheckRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; - } else if(service->idPath.id[2] == 208) - { - service->exiMsg.V2G_Message.Body.PreChargeRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; - } else if(service->idPath.id[2] == 165) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; - } else if(service->idPath.id[2] == 247) - { - service->exiMsg.V2G_Message.Body.WeldingDetectionRes->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; - } else if(service->idPath.id[2] == 147) - { - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->DC_EVSEStatus.EVSEStatusCode=service->val.enumeration; } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 332: /* MeterID */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterID.arraylen.data = service->val.str.miss.len; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 391: /* SigMeterReading */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - memcpy(service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.SigMeterReading.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.SigMeterReading.arraylen.data = service->val.binary.len; - - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.SigMeterReading=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 335: /* MeterStatus */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.MeterStatus=service->val.integer.val.int16; - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.MeterStatus=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 394: /* TMeter */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - - if(_setInt64Value(&(service->val.integer),&(service->val.integer.val.int64))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.TMeter=service->val.integer.val.int64; - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.TMeter=1; - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 216: /* SAScheduleTupleID */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.ChargingStatusRes->SAScheduleTupleID=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 211: /* ReceiptRequired */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - service->exiMsg.V2G_Message.Body.ChargingStatusRes->ReceiptRequired=service->val.boolean; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 162: /* ContractSignatureEncryptedPrivateKey */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - if( service->idPath.id[2] == 139) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractSignatureEncryptedPrivateKey.arraylen.data = service->val.binary.len; - - } else if(service->idPath.id[2] == 143) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureEncryptedPrivateKey.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractSignatureEncryptedPrivateKey.arraylen.data = service->val.binary.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 169: /* DHParams */ - - if(service->val.type == EXI_DATATYPE_BINARY_BASE64) - { - if( service->idPath.id[2] == 139) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHParams.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->DHParams.arraylen.data = service->val.binary.len; - - } else if(service->idPath.id[2] == 143) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->DHParams.data, service->val.binary.data,service->val.binary.len); - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->DHParams.arraylen.data = service->val.binary.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 160: /* ContractID */ - - if(service->val.type == EXI_DATATYPE_STRING) - { - if( service->idPath.id[2] == 139) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.CertificateInstallationRes->ContractID.arraylen.data = service->val.str.miss.len; - - } else if(service->idPath.id[2] == 143) - { - memcpy(service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractID.data, service->val.str.miss.codepoints,service->val.str.miss.len*sizeof(uint32_t)); - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->ContractID.arraylen.data = service->val.str.miss.len; - } - - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 215: /* RetryCounter */ - - if(service->val.type == EXI_DATATYPE_INTEGER) - { - if(_setInt16Value(&(service->val.integer),&(service->val.integer.val.int16))) - { - service->errorCode=EXI_VALUE_RANGE_FAILED; - return -1; - } - service->exiMsg.V2G_Message.Body.CertificateUpdateRes->RetryCounter=service->val.integer.val.int16; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 176: /* EVSECurrentLimitAchieved */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSECurrentLimitAchieved=service->val.boolean; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 186: /* EVSEVoltageLimitAchieved */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEVoltageLimitAchieved=service->val.boolean; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - case 182: /* EVSEPowerLimitAchieved */ - - if(service->val.type == EXI_DATATYPE_BOOLEAN) - { - service->exiMsg.V2G_Message.Body.CurrentDemandRes->EVSEPowerLimitAchieved=service->val.boolean; - } - else - { - service->errorCode=EXI_DATATYPE_FAILED; - return -1; /* wrong data type */ - } - - - break; - - - } - return 0; -} - - -/** - * Deserialize an element of the EXI stream - * @return 0 = 0K; -1 = ERROR - */ -static int deserializeElement(struct EXIService* service) -{ - switch(service->qnameID) { - - case 75: /* KeyInfo */ - service->exiMsg.V2G_Message.Header->Signature->isused.KeyInfo=1; - - break; - case 444: /* Notification */ - service->exiMsg.V2G_Message.Header->isused.Notification=1; - - break; - case 103: /* Signature */ - service->exiMsg.V2G_Message.Header->isused.Signature=1; - - break; - case 379: /* Service */ - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->ServiceList.arraylen.Service++; - - break; - case 229: /* ServiceList */ - service->exiMsg.V2G_Message.Body.ServiceDiscoveryRes->isused.ServiceList=1; - - break; - case 347: /* Parameter */ - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.ParameterSet[service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet].arraylen.Parameter++; - - break; - case 348: /* ParameterSet */ - service->exiMsg.V2G_Message.Body.ServiceDetailRes->ServiceParameterList.arraylen.ParameterSet++; - - break; - case 230: /* ServiceParameterList */ - service->exiMsg.V2G_Message.Body.ServiceDetailRes->isused.ServiceParameterList=1; - - break; - case 392: /* SubCertificates */ - - break; - case 342: /* PMaxScheduleEntry */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].PMaxSchedule.arraylen.PMaxScheduleEntry++; - - break; - case 265: /* Cost */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].isused.Cost=1; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].ConsumptionCost[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost].arraylen.Cost++; - - break; - case 263: /* ConsumptionCost */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].isused.ConsumptionCost=1; - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->SalesTariffEntry[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry].arraylen.ConsumptionCost++; - - break; - case 372: /* SalesTariffEntry */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].SalesTariff->arraylen.SalesTariffEntry++; - - break; - case 370: /* SalesTariff */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.SAScheduleTuple[service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple].isused.SalesTariff=1; - - break; - case 365: /* SAScheduleTuple */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->SAScheduleList.arraylen.SAScheduleTuple++; - - break; - case 308: /* EVSEMaximumPowerLimit */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->isused.EVSEMaximumPowerLimit=1; - - break; - case 302: /* EVSECurrentRegulationTolerance */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->isused.EVSECurrentRegulationTolerance=1; - - break; - case 303: /* EVSEEnergyToBeDelivered */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->DC_EVSEChargeParameter->isused.EVSEEnergyToBeDelivered=1; - - break; - case 251: /* AC_EVSEChargeParameter */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->isused.AC_EVSEChargeParameter=1; - - break; - case 272: /* DC_EVSEChargeParameter */ - service->exiMsg.V2G_Message.Body.ChargeParameterDiscoveryRes->isused.DC_EVSEChargeParameter=1; - - break; - case 253: /* AC_EVSEStatus */ - - - if(service->idPath.id[3]!=251) - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->isused.AC_EVSEStatus=1; - - break; - case 274: /* DC_EVSEStatus */ - - if(service->idPath.id[3]!=272) - service->exiMsg.V2G_Message.Body.PowerDeliveryRes->isused.DC_EVSEStatus=1; - - break; - case 334: /* MeterReading */ - service->exiMsg.V2G_Message.Body.ChargingStatusRes->MeterInfo.isused.MeterReading=1; - - break; - case 178: /* EVSEMaxCurrent */ - service->exiMsg.V2G_Message.Body.ChargingStatusRes->isused.EVSEMaxCurrent=1; - - break; - case 191: /* MeterInfo */ - service->exiMsg.V2G_Message.Body.ChargingStatusRes->isused.MeterInfo=1; - - break; - case 181: /* EVSEMaximumVoltageLimit */ - service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumVoltageLimit=1; - - break; - case 179: /* EVSEMaximumCurrentLimit */ - service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumCurrentLimit=1; - - break; - case 180: /* EVSEMaximumPowerLimit */ - service->exiMsg.V2G_Message.Body.CurrentDemandRes->isused.EVSEMaximumPowerLimit=1; - - break; - - } - return 0; -} - - - - - /** - * Deserialize the EXI stream - * @return 0 = 0K; -1 = ERROR - */ -static int deserializeMessage(struct EXIService* service) -{ - int noEndOfDocument = 1; /* true */ - int returnCode=0; - int derivationCounter = 0; - - - do { - exiDecodeNextEvent(&(service->inStream), &(service->stateDecode), &(service->event)); - if (returnCode < 0) { - printf("[ERROR] %d \n", returnCode); - return returnCode; - } - - switch (service->event) { - case EXI_EVENT_START_DOCUMENT: - - returnCode = exiDecodeStartDocument(&(service->inStream), &(service->stateDecode)); - - break; - case EXI_EVENT_END_DOCUMENT: - - returnCode = exiDecodeEndDocument(&(service->inStream), &(service->stateDecode)); - noEndOfDocument = 0; /* false */ - break; - case EXI_EVENT_START_ELEMENT_GENERIC: - case EXI_EVENT_START_ELEMENT_GENERIC_UNDECLARED: - derivationCounter++; - case EXI_EVENT_START_ELEMENT: - returnCode = exiDecodeStartElement(&(service->inStream), &(service->stateDecode), &(service->qnameID)); - service->idPath.id[service->idPath.pos++]=service->qnameID; - break; - case EXI_EVENT_END_ELEMENT_UNDECLARED: - case EXI_EVENT_END_ELEMENT: - - returnCode = exiDecodeEndElement(&(service->inStream), &(service->stateDecode), &(service->qnameID)); - service->idPath.pos--; - - if(derivationCounter==0) - returnCode = deserializeElement(service); - - if(derivationCounter>0) - derivationCounter--; - - break; - case EXI_EVENT_CHARACTERS_GENERIC: - case EXI_EVENT_CHARACTERS_GENERIC_UNDECLARED: - case EXI_EVENT_CHARACTERS: - /* decode */ - returnCode = exiDecodeCharacters(&(service->inStream), &(service->stateDecode), &(service->val)); - - /* assign character data to the v2g message structure */ - if(derivationCounter==0) - returnCode = deserializeElementAttributeCharacter(service); - break; - case EXI_EVENT_ATTRIBUTE_GENERIC: - case EXI_EVENT_ATTRIBUTE_GENERIC_UNDECLARED: - case EXI_EVENT_ATTRIBUTE_INVALID_VALUE: - case EXI_EVENT_ATTRIBUTE: - /* decode */ - returnCode = exiDecodeAttribute(&(service->inStream), &(service->stateDecode), &(service->qnameID), &(service->val)); - if(derivationCounter==0) - returnCode = deserializeElementAttributeCharacter(service); - break; - case EXI_EVENT_ATTRIBUTE_ANY_INVALID_VALUE: - break; - - default: - /* ERROR */ - return -1; - } - - - - } while (noEndOfDocument); - - return 0; -} - -/** - * \brief Initialize the v2g client - * \param service struct EXIService* Service data structure - * \param service_bytes exi_bytes_t Reserved for byte handling - * \param service_string exi_string_ucs_t Reserved for string handling - * \param inStream uint8_t* Instream buffer - * \param max_inStream_size size_t Max size for an instream message - * \param outStream uint8_t* Outstream buffer - * \param max_outStream_size size_t Max size for an outstream message - * \param transportHeaderOffset uint16_t Transport protocol offset - * \return 0 = 0K; -1 = ERROR - */ -int init_v2gServiceClient(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size,uint32_t* outPayloadLength, uint16_t transportHeaderOffset) - { - - /* init byte array */ - service->val.binary = service_bytes; - - /* init string array */ - service->val.str.miss = service_string; - - /* init input / output stream */ - service->inStream.data=inStream; - service->inStream.size=max_inStream_size; - - service->outStream.data=outStream; - service->outStream.size=max_outStream_size; - service->outStream.pos=outPayloadLength; - - - /* init offset for transport protocol */ - service->transportHeaderOffset=transportHeaderOffset; - - return 0; -} diff --git a/src/service/v2g_serviceClientStubs.h b/src/service/v2g_serviceClientStubs.h deleted file mode 100644 index 8d9a601..0000000 --- a/src/service/v2g_serviceClientStubs.h +++ /dev/null @@ -1,320 +0,0 @@ - - -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - - - #ifdef __cplusplus -extern "C" { -#endif - -#ifndef SERVICECLIENTSTUBS_H -#define SERVICECLIENTSTUBS_H - - #include "v2g_service.h" - #include "v2g_dataTypes.h" - #include "v2g_serviceClientStubs.h" - - - - -enum responseMessages -{ - SESSIONSETUPRES, - - SERVICEDISCOVERYRES, - - SERVICEDETAILRES, - - SERVICEPAYMENTSELECTIONRES, - - PAYMENTDETAILSRES, - - CONTRACTAUTHENTICATIONRES, - - CHARGEPARAMETERDISCOVERYRES, - - POWERDELIVERYRES, - - CHARGINGSTATUSRES, - - METERINGRECEIPTRES, - - CERTIFICATEUPDATERES, - - CERTIFICATEINSTALLATIONRES, - - CABLECHECKRES, - - PRECHARGERES, - - CURRENTDEMANDRES, - - WELDINGDETECTIONRES, - - SESSIONSTOPRES -}; - -/** - * \brief Prepares the remote sessionSetup call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct SessionSetupReqType* Request data for the server (has to be set up before) - * \param result struct SessionSetupResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_sessionSetup(struct EXIService* service, struct MessageHeaderType* header, struct SessionSetupReqType* params, struct SessionSetupResType* result); - - - - -/** - * \brief Prepares the remote serviceDiscovery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServiceDiscoveryReqType* Request data for the server (has to be set up before) - * \param result struct ServiceDiscoveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_serviceDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDiscoveryReqType* params, struct ServiceDiscoveryResType* result); - - - - -/** - * \brief Prepares the remote serviceDetail call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServiceDetailReqType* Request data for the server (has to be set up before) - * \param result struct ServiceDetailResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_serviceDetail(struct EXIService* service, struct MessageHeaderType* header, struct ServiceDetailReqType* params, struct ServiceDetailResType* result); - - - - -/** - * \brief Prepares the remote servicePaymentSelection call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ServicePaymentSelectionReqType* Request data for the server (has to be set up before) - * \param result struct ServicePaymentSelectionResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_servicePaymentSelection(struct EXIService* service, struct MessageHeaderType* header, struct ServicePaymentSelectionReqType* params, struct ServicePaymentSelectionResType* result); - - - - -/** - * \brief Prepares the remote paymentDetails call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PaymentDetailsReqType* Request data for the server (has to be set up before) - * \param result struct PaymentDetailsResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_paymentDetails(struct EXIService* service, struct MessageHeaderType* header, struct PaymentDetailsReqType* params, struct PaymentDetailsResType* result); - - - - -/** - * \brief Prepares the remote contractAuthentication call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ContractAuthenticationReqType* Request data for the server (has to be set up before) - * \param result struct ContractAuthenticationResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_contractAuthentication(struct EXIService* service, struct MessageHeaderType* header, struct ContractAuthenticationReqType* params, struct ContractAuthenticationResType* result); - - - - -/** - * \brief Prepares the remote chargeParameterDiscovery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct ChargeParameterDiscoveryReqType* Request data for the server (has to be set up before) - * \param result struct ChargeParameterDiscoveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_chargeParameterDiscovery(struct EXIService* service, struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* params, struct ChargeParameterDiscoveryResType* result); - - - - -/** - * \brief Prepares the remote powerDelivery call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PowerDeliveryReqType* Request data for the server (has to be set up before) - * \param result struct PowerDeliveryResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_powerDelivery(struct EXIService* service, struct MessageHeaderType* header, struct PowerDeliveryReqType* params, struct PowerDeliveryResType* result); - - - - -/** - * \brief Prepares the remote chargingStatus call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param result struct ChargingStatusResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_chargingStatus(struct EXIService* service, struct MessageHeaderType* header, struct ChargingStatusResType* result); - - - - -/** - * \brief Prepares the remote meteringReceipt call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct MeteringReceiptReqType* Request data for the server (has to be set up before) - * \param result struct MeteringReceiptResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_meteringReceipt(struct EXIService* service, struct MessageHeaderType* header, struct MeteringReceiptReqType* params, struct MeteringReceiptResType* result); - - - - -/** - * \brief Prepares the remote certificateUpdate call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CertificateUpdateReqType* Request data for the server (has to be set up before) - * \param result struct CertificateUpdateResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_certificateUpdate(struct EXIService* service, struct MessageHeaderType* header, struct CertificateUpdateReqType* params, struct CertificateUpdateResType* result); - - - - -/** - * \brief Prepares the remote certificateInstallation call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CertificateInstallationReqType* Request data for the server (has to be set up before) - * \param result struct CertificateInstallationResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_certificateInstallation(struct EXIService* service, struct MessageHeaderType* header, struct CertificateInstallationReqType* params, struct CertificateInstallationResType* result); - - - - -/** - * \brief Prepares the remote cableCheck call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CableCheckReqType* Request data for the server (has to be set up before) - * \param result struct CableCheckResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_cableCheck(struct EXIService* service, struct MessageHeaderType* header, struct CableCheckReqType* params, struct CableCheckResType* result); - - - - -/** - * \brief Prepares the remote preCharge call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct PreChargeReqType* Request data for the server (has to be set up before) - * \param result struct PreChargeResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_preCharge(struct EXIService* service, struct MessageHeaderType* header, struct PreChargeReqType* params, struct PreChargeResType* result); - - - - -/** - * \brief Prepares the remote currentDemand call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct CurrentDemandReqType* Request data for the server (has to be set up before) - * \param result struct CurrentDemandResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_currentDemand(struct EXIService* service, struct MessageHeaderType* header, struct CurrentDemandReqType* params, struct CurrentDemandResType* result); - - - - -/** - * \brief Prepares the remote weldingDetection call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param params struct WeldingDetectionReqType* Request data for the server (has to be set up before) - * \param result struct WeldingDetectionResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_weldingDetection(struct EXIService* service, struct MessageHeaderType* header, struct WeldingDetectionReqType* params, struct WeldingDetectionResType* result); - - - - -/** - * \brief Prepares the remote sessionStop call - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param header struct MessageHeaderType* Header data structure - * \param result struct SessionStopResType* Contains the response data from the server - * \return 0 = 0K; -1 = ERROR */ - int prepare_sessionStop(struct EXIService* service, struct MessageHeaderType* header, struct SessionStopResType* result); - - - - - - - /** - * \brief Determines which response message was received - * \param service struct EXIService* Service data structure (has to be initialized before) - * \param respMsg enum responseMessages* contains the name of the response message - * \param result struct SessionStopResType* Contains the response data from the server - * \return 0 = 0K; 0 != ERROR */ -int determineResponseMesssage(struct EXIService* service, enum responseMessages* respMsg); - - - -/** - * \brief Initialize the v2g client - * \param service struct EXIService* Service data structure - * \param service_bytes exi_bytes_t Reserved for byte handling - * \param service_string exi_string_ucs_t Reserved for string handling - * \param inStream uint8_t* Instream buffer - * \param max_inStream_size size_t Max size for an instream message - * \param outStream uint8_t* Outstream buffer - * \param outPayloadLength uint32_t* Provides the length of the encoded request EXI message - * \param max_outStream_size size_t Max size for an outstream message - * \param transportHeaderOffset uint16_t Transport protocol offset - * \return 0 = 0K; -1 = ERROR - */ -int init_v2gServiceClient(struct EXIService* service, exi_bytes_t service_bytes, exi_string_ucs_t service_string, uint8_t* inStream, size_t max_inStream_size, uint8_t* outStream, size_t max_outStream_size,uint32_t* outPayloadLength, uint16_t transportHeaderOffset); - - - - - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/service/v2g_serviceDataSerialization.c b/src/service/v2g_serviceDataSerialization.c deleted file mode 100644 index 9705b02..0000000 --- a/src/service/v2g_serviceDataSerialization.c +++ /dev/null @@ -1,7399 +0,0 @@ - -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeCode generated by EXISeGen
- * - ********************************************************************/ - - -#include "v2g_service.h" -#include "v2g_dataTypes.h" -#include "EXITypes.h" -#include "EXIEncoder.h" -#includeCode generated by EXISeGen
- * - ********************************************************************/ - - -#include "v2g_service.h" -#include "v2g_serviceDispatcher.h" -#include "v2g_dataTypes.h" -#include "v2g_dataTypes.c" -#include "v2g_serviceMethods.h" -#include "v2g_serviceDataSerialization.c" -#include "EXITypes.h" -#include "EXIDecoder.h" -#include "EXIEncoder.h" -#include "QNameDefines.h" -#include "StringTable.h" -#includeCode generated by EXISeGen
- * - ********************************************************************/ - - - #ifdef __cplusplus -extern "C" { -#endif - -#ifndef SERVICEMETHODS_H -#define SERVICEMETHODS_H - -#include "v2g_dataTypes.h" -#include "EXITypes.h" - -/** This service methods has to be implemented by the EVSE server */ -/** - * \brief This sessionSetup method is called by the service dispatcher if there was passed a sessionSetup-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct SessionSetupReqType Parameter dataset of the sessionSetup request message - * \param result struct SessionSetupResType Result dataset for the sessionSetup response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int sessionSetup(struct MessageHeaderType* header, struct SessionSetupReqType* param, struct SessionSetupResType* result); - -/** - * \brief This serviceDiscovery method is called by the service dispatcher if there was passed a serviceDiscovery-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ServiceDiscoveryReqType Parameter dataset of the serviceDiscovery request message - * \param result struct ServiceDiscoveryResType Result dataset for the serviceDiscovery response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int serviceDiscovery(struct MessageHeaderType* header, struct ServiceDiscoveryReqType* param, struct ServiceDiscoveryResType* result); - -/** - * \brief This serviceDetail method is called by the service dispatcher if there was passed a serviceDetail-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ServiceDetailReqType Parameter dataset of the serviceDetail request message - * \param result struct ServiceDetailResType Result dataset for the serviceDetail response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int serviceDetail(struct MessageHeaderType* header, struct ServiceDetailReqType* param, struct ServiceDetailResType* result); - -/** - * \brief This servicePaymentSelection method is called by the service dispatcher if there was passed a servicePaymentSelection-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ServicePaymentSelectionReqType Parameter dataset of the servicePaymentSelection request message - * \param result struct ServicePaymentSelectionResType Result dataset for the servicePaymentSelection response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int servicePaymentSelection(struct MessageHeaderType* header, struct ServicePaymentSelectionReqType* param, struct ServicePaymentSelectionResType* result); - -/** - * \brief This paymentDetails method is called by the service dispatcher if there was passed a paymentDetails-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct PaymentDetailsReqType Parameter dataset of the paymentDetails request message - * \param result struct PaymentDetailsResType Result dataset for the paymentDetails response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int paymentDetails(struct MessageHeaderType* header, struct PaymentDetailsReqType* param, struct PaymentDetailsResType* result); - -/** - * \brief This contractAuthentication method is called by the service dispatcher if there was passed a contractAuthentication-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ContractAuthenticationReqType Parameter dataset of the contractAuthentication request message - * \param result struct ContractAuthenticationResType Result dataset for the contractAuthentication response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int contractAuthentication(struct MessageHeaderType* header, struct ContractAuthenticationReqType* param, struct ContractAuthenticationResType* result); - -/** - * \brief This chargeParameterDiscovery method is called by the service dispatcher if there was passed a chargeParameterDiscovery-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ChargeParameterDiscoveryReqType Parameter dataset of the chargeParameterDiscovery request message - * \param result struct ChargeParameterDiscoveryResType Result dataset for the chargeParameterDiscovery response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int chargeParameterDiscovery(struct MessageHeaderType* header, struct ChargeParameterDiscoveryReqType* param, struct ChargeParameterDiscoveryResType* result); - -/** - * \brief This powerDelivery method is called by the service dispatcher if there was passed a powerDelivery-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct PowerDeliveryReqType Parameter dataset of the powerDelivery request message - * \param result struct PowerDeliveryResType Result dataset for the powerDelivery response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int powerDelivery(struct MessageHeaderType* header, struct PowerDeliveryReqType* param, struct PowerDeliveryResType* result); - -/** - * \brief This chargingStatus method is called by the service dispatcher if there was passed a chargingStatus-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct ChargingStatusReqType Parameter dataset of the chargingStatus request message - * \param result struct ChargingStatusResType Result dataset for the chargingStatus response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int chargingStatus(struct MessageHeaderType* header, struct ChargingStatusReqType* param, struct ChargingStatusResType* result); - -/** - * \brief This meteringReceipt method is called by the service dispatcher if there was passed a meteringReceipt-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct MeteringReceiptReqType Parameter dataset of the meteringReceipt request message - * \param result struct MeteringReceiptResType Result dataset for the meteringReceipt response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int meteringReceipt(struct MessageHeaderType* header, struct MeteringReceiptReqType* param, struct MeteringReceiptResType* result); - -/** - * \brief This sessionStop method is called by the service dispatcher if there was passed a sessionStop-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct SessionStopType Parameter dataset of the sessionStop request message - * \param result struct SessionStopResType Result dataset for the sessionStop response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int sessionStop(struct MessageHeaderType* header, struct SessionStopType* param, struct SessionStopResType* result); - -/** - * \brief This certificateUpdate method is called by the service dispatcher if there was passed a certificateUpdate-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct CertificateUpdateReqType Parameter dataset of the certificateUpdate request message - * \param result struct CertificateUpdateResType Result dataset for the certificateUpdate response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int certificateUpdate(struct MessageHeaderType* header, struct CertificateUpdateReqType* param, struct CertificateUpdateResType* result); - -/** - * \brief This certificateInstallation method is called by the service dispatcher if there was passed a certificateInstallation-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct CertificateInstallationReqType Parameter dataset of the certificateInstallation request message - * \param result struct CertificateInstallationResType Result dataset for the certificateInstallation response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int certificateInstallation(struct MessageHeaderType* header, struct CertificateInstallationReqType* param, struct CertificateInstallationResType* result); - -/** - * \brief This cableCheck method is called by the service dispatcher if there was passed a cableCheck-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct CableCheckReqType Parameter dataset of the cableCheck request message - * \param result struct CableCheckResType Result dataset for the cableCheck response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int cableCheck(struct MessageHeaderType* header, struct CableCheckReqType* param, struct CableCheckResType* result); - -/** - * \brief This preCharge method is called by the service dispatcher if there was passed a preCharge-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct PreChargeReqType Parameter dataset of the preCharge request message - * \param result struct PreChargeResType Result dataset for the preCharge response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int preCharge(struct MessageHeaderType* header, struct PreChargeReqType* param, struct PreChargeResType* result); - -/** - * \brief This currentDemand method is called by the service dispatcher if there was passed a currentDemand-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct CurrentDemandReqType Parameter dataset of the currentDemand request message - * \param result struct CurrentDemandResType Result dataset for the currentDemand response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int currentDemand(struct MessageHeaderType* header, struct CurrentDemandReqType* param, struct CurrentDemandResType* result); - -/** - * \brief This weldingDetection method is called by the service dispatcher if there was passed a weldingDetection-based request message. - * \param header struct MessageHeaderType* Header dataset - * \param param struct WeldingDetectionReqType Parameter dataset of the weldingDetection request message - * \param result struct WeldingDetectionResType Result dataset for the weldingDetection response message - * \return 0 = 0K; -1 = ERROR (message dispatcher will return an error) */ -int weldingDetection(struct MessageHeaderType* header, struct WeldingDetectionReqType* param, struct WeldingDetectionResType* result); - - - - - - -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/test/evse_server.c b/src/test/evse_server.c deleted file mode 100644 index 014ef7e..0000000 --- a/src/test/evse_server.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (C) 2007-2012 Siemens AG - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, seeSwitch for sample programs: EXI codec only or for entire V2G service
- * - ********************************************************************/ - -#includeCode generated by EXIdizer.com
- ********************************************************************/ - - - -/******************************************************************* - * - *Sample program to illustrate how to read an EXI stream and - * directly write it again to an output
- * - *e.g.,