/*
* 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, see .
*/
/*******************************************************************
*
* @author Daniel.Peintner.EXT@siemens.com
* @version 0.2
* @contact Joerg.Heuer@siemens.com
*
*
NOTE: Code generated by EXIdizer v0.1
********************************************************************/
#ifndef EXI_DECODER_C
#define EXI_DECODER_C
#include
#include
#include
#include
#include "EXITypes.h"
#include "BitInputStream.h"
#include "BitDecoderChannel.h"
#include "EXICoder.h"
#include "EXIHeaderDecoder.h"
#include "StringTable.h"
int exiInitDecoder(bitstream_t* stream, exi_state_t* state) {
/* init grammar state */
state->stackIndex = 0;
state->grammarStack[0] = 0;
/* decode header */
return readEXIHeader(stream);
}
int exiDecodeNextEvent(bitstream_t* stream, exi_state_t* state,
exi_event_t* nextEvent) {
switch (state->grammarStack[state->stackIndex]) {
case 0:
/* Document[START_DOCUMENT] */
*nextEvent = START_DOCUMENT;
return 0;
case 1:
/* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), 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}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), 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}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), 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:MsgDef}V2G_Message), START_ELEMENT_GENERIC] */
decodeNBitUnsignedInteger(stream, 5, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 4) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 5) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 6) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 7) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 8) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 9) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 10) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 11) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 12) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 13) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 14) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 15) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 16) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 17) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 18) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 19) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 20) {
*nextEvent = START_ELEMENT_GENERIC;
return 0;
}
case 2:
/* DocEnd[END_DOCUMENT] */
*nextEvent = END_DOCUMENT;
return 0;
case 3:
/* FirstStartTag(xsi:type)StartTag[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 5:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 24:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 26:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 25:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
*nextEvent = START_ELEMENT;
return 0;
case 28:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby)] */
*nextEvent = START_ELEMENT;
return 0;
case 29:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 27:
/* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
*nextEvent = CHARACTERS;
return 0;
case 31:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 30:
/* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
*nextEvent = CHARACTERS;
return 0;
case 32:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 6:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 33:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 35:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 34:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 37:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 36:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError)] */
*nextEvent = START_ELEMENT;
return 0;
case 38:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby)] */
*nextEvent = START_ELEMENT;
return 0;
case 40:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
*nextEvent = START_ELEMENT;
return 0;
case 41:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */
*nextEvent = START_ELEMENT;
return 0;
case 42:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */
*nextEvent = START_ELEMENT;
return 0;
case 44:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime)] */
*nextEvent = START_ELEMENT;
return 0;
case 46:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 39:
/* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
*nextEvent = CHARACTERS;
return 0;
case 48:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 43:
/* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
*nextEvent = CHARACTERS;
return 0;
case 49:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 45:
/* FirstStartTagStartTag[CHARACTERS[BOOLEAN]] */
*nextEvent = CHARACTERS;
return 0;
case 50:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 47:
/* FirstStartTagStartTag[CHARACTERS[INTEGER_64]] */
*nextEvent = CHARACTERS;
return 0;
case 51:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 7:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
case 52:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 54:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
case 55:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
*nextEvent = START_ELEMENT;
return 0;
case 56:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */
*nextEvent = START_ELEMENT;
return 0;
case 58:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 53:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 60:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 57:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 61:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 59:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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:MsgDataTypes}TMeter), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 4) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 5) {
*nextEvent = END_ELEMENT;
return 0;
}
case 62:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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:MsgDataTypes}TMeter), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 3, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 4) {
*nextEvent = END_ELEMENT;
return 0;
}
case 64:
/* Element[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:MsgDataTypes}TMeter), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = END_ELEMENT;
return 0;
}
case 66:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 68:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 70:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 63:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 71:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 65:
/* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
*nextEvent = CHARACTERS;
return 0;
case 72:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 67:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */
*nextEvent = START_ELEMENT;
return 0;
case 73:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit)] */
*nextEvent = START_ELEMENT;
return 0;
case 75:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
*nextEvent = START_ELEMENT;
return 0;
case 76:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 74:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 78:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 77:
/* FirstStartTag(xsi:type)StartTag[CHARACTERS[INTEGER_64]] */
*nextEvent = CHARACTERS;
return 0;
case 79:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 69:
/* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
*nextEvent = CHARACTERS;
return 0;
case 80:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 8:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 81:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 82:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 83:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 9:
/* FirstStartTagStartTag[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 10:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 84:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
*nextEvent = START_ELEMENT;
return 0;
case 86:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 88:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
*nextEvent = START_ELEMENT;
return 0;
case 89:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
*nextEvent = START_ELEMENT;
return 0;
case 90:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 91:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 92:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 85:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 93:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 87:
/* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
*nextEvent = CHARACTERS;
return 0;
case 94:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 11:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
*nextEvent = START_ELEMENT;
return 0;
case 95:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 96:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 97:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 12:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 98:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 99:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 100:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 13:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 101:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 102:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 103:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 104:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 105:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
*nextEvent = START_ELEMENT;
return 0;
case 106:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
*nextEvent = START_ELEMENT;
return 0;
case 107:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 14:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 108:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 109:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 110:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 15:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 111:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
*nextEvent = START_ELEMENT;
return 0;
case 112:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
*nextEvent = START_ELEMENT;
return 0;
case 113:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
*nextEvent = START_ELEMENT;
return 0;
case 114:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
*nextEvent = START_ELEMENT;
return 0;
case 115:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
*nextEvent = START_ELEMENT;
return 0;
case 117:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
*nextEvent = START_ELEMENT;
return 0;
case 118:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 116:
/* FirstStartTagStartTag[CHARACTERS[INTEGER_16]] */
*nextEvent = CHARACTERS;
return 0;
case 119:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 16:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 120:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 122:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
*nextEvent = START_ELEMENT;
return 0;
case 123:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
*nextEvent = START_ELEMENT;
return 0;
case 124:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
*nextEvent = START_ELEMENT;
return 0;
case 125:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 126:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 128:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 121:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 130:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 127:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 131:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 129:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
*nextEvent = START_ELEMENT;
return 0;
case 132:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
*nextEvent = START_ELEMENT;
return 0;
case 134:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 133:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 136:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 135:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
*nextEvent = START_ELEMENT;
return 0;
case 137:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
case 138:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
*nextEvent = START_ELEMENT;
return 0;
case 140:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 139:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 142:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 141:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
*nextEvent = START_ELEMENT;
return 0;
case 143:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 144:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
*nextEvent = START_ELEMENT;
return 0;
case 145:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
*nextEvent = START_ELEMENT;
return 0;
case 147:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 148:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 146:
/* FirstStartTagStartTag[CHARACTERS[UNSIGNED_INTEGER_32]] */
*nextEvent = CHARACTERS;
return 0;
case 149:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 17:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 150:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 152:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 151:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 154:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 153:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 155:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 18:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 156:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 158:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 157:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 160:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 159:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
*nextEvent = START_ELEMENT;
return 0;
case 161:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 162:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
*nextEvent = START_ELEMENT;
return 0;
case 163:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = END_ELEMENT;
return 0;
}
case 165:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 167:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 168:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 164:
/* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
*nextEvent = CHARACTERS;
return 0;
case 169:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 166:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 170:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 19:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
*nextEvent = START_ELEMENT;
return 0;
case 171:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
*nextEvent = START_ELEMENT;
return 0;
case 172:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 20:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 173:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 175:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 174:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 176:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 21:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
case 177:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 178:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 22:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
*nextEvent = START_ELEMENT;
return 0;
case 179:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
*nextEvent = START_ELEMENT;
return 0;
case 181:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
*nextEvent = START_ELEMENT;
return 0;
case 182:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
*nextEvent = START_ELEMENT;
return 0;
case 183:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 180:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 184:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 23:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
*nextEvent = START_ELEMENT;
return 0;
case 185:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
*nextEvent = START_ELEMENT;
return 0;
case 187:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 186:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
*nextEvent = START_ELEMENT;
return 0;
case 189:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 191:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 190:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
*nextEvent = START_ELEMENT;
return 0;
case 193:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 195:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 196:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 194:
/* FirstStartTagStartTag[CHARACTERS[BINARY_HEX]] */
*nextEvent = CHARACTERS;
return 0;
case 198:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 197:
/* FirstStartTagStartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 199:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 192:
/* FirstStartTagStartTag[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}EventList), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = END_ELEMENT;
return 0;
}
case 200:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 2, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = END_ELEMENT;
return 0;
}
case 202:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 1, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = END_ELEMENT;
return 0;
}
case 204:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 201:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 206:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 203:
/* FirstStartTag(xsi:type)StartTag[CHARACTERS[STRING]] */
*nextEvent = CHARACTERS;
return 0;
case 207:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 205:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
*nextEvent = START_ELEMENT;
return 0;
case 208:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 209:
/* FirstStartTagStartTag[CHARACTERS[ENUMERATION]] */
*nextEvent = CHARACTERS;
return 0;
case 210:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
case 188:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), 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}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), 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}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), 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), END_ELEMENT] */
decodeNBitUnsignedInteger(stream, 5, &state->eventCode);
if (state->eventCode == 0) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 1) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 2) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 3) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 4) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 5) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 6) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 7) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 8) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 9) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 10) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 11) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 12) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 13) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 14) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 15) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 16) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 17) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 18) {
*nextEvent = START_ELEMENT;
return 0;
}
else if (state->eventCode == 19) {
*nextEvent = END_ELEMENT;
return 0;
}
case 211:
/* Element[END_ELEMENT] */
*nextEvent = END_ELEMENT;
return 0;
default:
*nextEvent = ERROR;
return -1;
}
return -1;
}
int exiDecodeStartDocument(bitstream_t* stream, exi_state_t* state) {
if ( state->grammarStack[state->stackIndex] == 0 ) {
/* move on */
state->grammarStack[state->stackIndex] = 1;
return 0;
}
return -1;
}
int exiDecodeEndDocument(bitstream_t* stream, exi_state_t* state) {
if ( state->grammarStack[state->stackIndex] == 2) {
return 0;
}
return -1;
}
int exiDecodeStartElement(bitstream_t* stream, exi_state_t* state,
eqname_t* se) {
switch (state->grammarStack[state->stackIndex]) {
case 1:
/* DocContent[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), 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}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), 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}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), 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:MsgDef}V2G_Message), START_ELEMENT_GENERIC] */
if (state->eventCode == 0) {
se->localPart = 2; /* "BodyElement" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 3, se);
}
else if (state->eventCode == 1) {
se->localPart = 11; /* "LineLockReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 5, se);
}
else if (state->eventCode == 2) {
se->localPart = 13; /* "LineLockRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 6, se);
}
else if (state->eventCode == 3) {
se->localPart = 17; /* "MeteringReceiptReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 7, se);
}
else if (state->eventCode == 4) {
se->localPart = 19; /* "MeteringReceiptRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 8, se);
}
else if (state->eventCode == 5) {
se->localPart = 21; /* "MeteringStatusReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 9, se);
}
else if (state->eventCode == 6) {
se->localPart = 23; /* "MeteringStatusRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 10, se);
}
else if (state->eventCode == 7) {
se->localPart = 33; /* "PaymentDetailsReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 11, se);
}
else if (state->eventCode == 8) {
se->localPart = 35; /* "PaymentDetailsRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 12, se);
}
else if (state->eventCode == 9) {
se->localPart = 37; /* "PowerDeliveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 13, se);
}
else if (state->eventCode == 10) {
se->localPart = 39; /* "PowerDeliveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 14, se);
}
else if (state->eventCode == 11) {
se->localPart = 41; /* "PowerDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 15, se);
}
else if (state->eventCode == 12) {
se->localPart = 43; /* "PowerDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 16, se);
}
else if (state->eventCode == 13) {
se->localPart = 48; /* "ServiceDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 17, se);
}
else if (state->eventCode == 14) {
se->localPart = 50; /* "ServiceDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 18, se);
}
else if (state->eventCode == 15) {
se->localPart = 53; /* "ServicePaymentSelectionReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 19, se);
}
else if (state->eventCode == 16) {
se->localPart = 55; /* "ServicePaymentSelectionRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 20, se);
}
else if (state->eventCode == 17) {
se->localPart = 59; /* "SessionSetupReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 21, se);
}
else if (state->eventCode == 18) {
se->localPart = 61; /* "SessionSetupRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 22, se);
}
else if (state->eventCode == 19) {
se->localPart = 8; /* "V2G_Message" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 2;
/* push element on stack */
return exiPushStack(state, 23, se);
}
break;
case 5:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 24;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
case 6:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 33;
/* push element on stack */
return exiPushStack(state, 34, se);
break;
case 7:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
if (state->eventCode == 0) {
se->localPart = 26; /* "PEVID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 52;
/* push element on stack */
return exiPushStack(state, 53, se);
}
else if (state->eventCode == 1) {
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 54;
/* push element on stack */
return exiPushStack(state, 25, se);
}
break;
case 8:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 81;
/* push element on stack */
return exiPushStack(state, 82, se);
break;
case 10:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 84;
/* push element on stack */
return exiPushStack(state, 85, se);
break;
case 11:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ContractID)] */
se->localPart = 1; /* "ContractID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 95;
/* push element on stack */
return exiPushStack(state, 96, se);
break;
case 12:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 98;
/* push element on stack */
return exiPushStack(state, 99, se);
break;
case 13:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 101;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
case 14:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 108;
/* push element on stack */
return exiPushStack(state, 109, se);
break;
case 15:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 111;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
case 16:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 120;
/* push element on stack */
return exiPushStack(state, 121, se);
break;
case 17:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 58; /* "ServiceType" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 150;
/* push element on stack */
return exiPushStack(state, 151, se);
}
else if (state->eventCode == 1) {
se->localPart = 57; /* "ServiceScope" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 152;
/* push element on stack */
return exiPushStack(state, 153, se);
}
break;
case 18:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 156;
/* push element on stack */
return exiPushStack(state, 157, se);
break;
case 19:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList)] */
se->localPart = 52; /* "ServiceList" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 171;
/* push element on stack */
return exiPushStack(state, 159, se);
break;
case 20:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 173;
/* push element on stack */
return exiPushStack(state, 174, se);
break;
case 21:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVID), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
if (state->eventCode == 0) {
se->localPart = 26; /* "PEVID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 177;
/* push element on stack */
return exiPushStack(state, 53, se);
}
else if (state->eventCode == 1) {
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 178;
/* push element on stack */
return exiPushStack(state, 25, se);
}
break;
case 22:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ResponseCode)] */
se->localPart = 47; /* "ResponseCode" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 179;
/* push element on stack */
return exiPushStack(state, 180, se);
break;
case 23:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Header)] */
se->localPart = 4; /* "Header" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 185;
/* push element on stack */
return exiPushStack(state, 186, se);
break;
case 24:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqLockStatus)] */
se->localPart = 45; /* "ReqLockStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 26;
/* push element on stack */
return exiPushStack(state, 27, se);
break;
case 25:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
se->localPart = 4; /* "ConnectorLocked" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 28;
/* push element on stack */
return exiPushStack(state, 27, se);
break;
case 28:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargerStandby)] */
se->localPart = 0; /* "ChargerStandby" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 29;
/* push element on stack */
return exiPushStack(state, 30, se);
break;
case 33:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 35;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
case 36:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FatalError)] */
se->localPart = 12; /* "FatalError" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 38;
/* push element on stack */
return exiPushStack(state, 39, se);
break;
case 38:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EVSEStandby)] */
se->localPart = 7; /* "EVSEStandby" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 40;
/* push element on stack */
return exiPushStack(state, 30, se);
break;
case 40:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ConnectorLocked)] */
se->localPart = 4; /* "ConnectorLocked" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 41;
/* push element on stack */
return exiPushStack(state, 27, se);
break;
case 41:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}PowerSwitchClosed)] */
se->localPart = 24; /* "PowerSwitchClosed" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 42;
/* push element on stack */
return exiPushStack(state, 43, se);
break;
case 42:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}RCD)] */
se->localPart = 26; /* "RCD" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 44;
/* push element on stack */
return exiPushStack(state, 45, se);
break;
case 44:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ShutDownTime)] */
se->localPart = 37; /* "ShutDownTime" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 46;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
case 52:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 54;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
case 54:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
if (state->eventCode == 0) {
se->localPart = 63; /* "TCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 55;
/* push element on stack */
return exiPushStack(state, 47, se);
}
else if (state->eventCode == 1) {
se->localPart = 64; /* "Tariff" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 56;
/* push element on stack */
return exiPushStack(state, 57, se);
}
break;
case 55:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff)] */
se->localPart = 64; /* "Tariff" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 56;
/* push element on stack */
return exiPushStack(state, 57, se);
break;
case 56:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo)] */
se->localPart = 15; /* "MeterInfo" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 58;
/* push element on stack */
return exiPushStack(state, 59, se);
break;
case 59:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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:MsgDataTypes}TMeter), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 16; /* "MeterID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 62;
/* push element on stack */
return exiPushStack(state, 63, se);
}
else if (state->eventCode == 1) {
se->localPart = 18; /* "MeterPubKey" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 64;
/* push element on stack */
return exiPushStack(state, 65, se);
}
else if (state->eventCode == 2) {
se->localPart = 19; /* "MeterReading" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 66;
/* push element on stack */
return exiPushStack(state, 67, se);
}
else if (state->eventCode == 3) {
se->localPart = 20; /* "MeterStatus" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 68;
/* push element on stack */
return exiPushStack(state, 69, se);
}
else if (state->eventCode == 4) {
se->localPart = 38; /* "TMeter" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 70;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
case 62:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterPubKey), 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:MsgDataTypes}TMeter), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 18; /* "MeterPubKey" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 64;
/* push element on stack */
return exiPushStack(state, 65, se);
}
else if (state->eventCode == 1) {
se->localPart = 19; /* "MeterReading" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 66;
/* push element on stack */
return exiPushStack(state, 67, se);
}
else if (state->eventCode == 2) {
se->localPart = 20; /* "MeterStatus" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 68;
/* push element on stack */
return exiPushStack(state, 69, se);
}
else if (state->eventCode == 3) {
se->localPart = 38; /* "TMeter" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 70;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
case 64:
/* Element[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:MsgDataTypes}TMeter), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 19; /* "MeterReading" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 66;
/* push element on stack */
return exiPushStack(state, 67, se);
}
else if (state->eventCode == 1) {
se->localPart = 20; /* "MeterStatus" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 68;
/* push element on stack */
return exiPushStack(state, 69, se);
}
else if (state->eventCode == 2) {
se->localPart = 38; /* "TMeter" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 70;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
case 66:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}MeterStatus), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 20; /* "MeterStatus" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 68;
/* push element on stack */
return exiPushStack(state, 69, se);
}
else if (state->eventCode == 1) {
se->localPart = 38; /* "TMeter" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 70;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
case 67:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Multiplier)] */
se->localPart = 21; /* "Multiplier" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 73;
/* push element on stack */
return exiPushStack(state, 74, se);
break;
case 68:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TMeter), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 38; /* "TMeter" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 70;
/* push element on stack */
return exiPushStack(state, 47, se);
}
break;
case 73:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Unit)] */
se->localPart = 50; /* "Unit" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 75;
/* push element on stack */
return exiPushStack(state, 74, se);
break;
case 75:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Value)] */
se->localPart = 51; /* "Value" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 76;
/* push element on stack */
return exiPushStack(state, 77, se);
break;
case 84:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
se->localPart = 3; /* "EVSEID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 86;
/* push element on stack */
return exiPushStack(state, 87, se);
break;
case 86:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 88;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
case 88:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
se->localPart = 63; /* "TCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 89;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
case 89:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPower)] */
se->localPart = 6; /* "EVSEMaxPower" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 90;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 90:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PCurrent), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 25; /* "PCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 91;
/* push element on stack */
return exiPushStack(state, 67, se);
}
else if (state->eventCode == 1) {
se->localPart = 15; /* "MeterInfo" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 92;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
case 91:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeterInfo), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 15; /* "MeterInfo" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 92;
/* push element on stack */
return exiPushStack(state, 59, se);
}
break;
case 101:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ReqSwitchStatus)] */
se->localPart = 46; /* "ReqSwitchStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 102;
/* push element on stack */
return exiPushStack(state, 43, se);
break;
case 102:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}Tariff), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 64; /* "Tariff" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 103;
/* push element on stack */
return exiPushStack(state, 57, se);
}
else if (state->eventCode == 1) {
se->localPart = 0; /* "ChargingProfile" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 104;
/* push element on stack */
return exiPushStack(state, 105, se);
}
break;
case 103:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ChargingProfile), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 0; /* "ChargingProfile" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 104;
/* push element on stack */
return exiPushStack(state, 105, se);
}
break;
case 105:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryStart)] */
se->localPart = 2; /* "ChargingProfileEntryStart" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 106;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
case 106:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ChargingProfileEntryMaxPower)] */
se->localPart = 1; /* "ChargingProfileEntryMaxPower" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 107;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 111:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EoC)] */
se->localPart = 10; /* "EoC" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 112;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
case 112:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EAmount)] */
se->localPart = 2; /* "EAmount" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 113;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 113:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPower)] */
se->localPart = 28; /* "PEVMaxPower" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 114;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 114:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxPhases)] */
se->localPart = 27; /* "PEVMaxPhases" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 115;
/* push element on stack */
return exiPushStack(state, 116, se);
break;
case 115:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMaxVoltage)] */
se->localPart = 29; /* "PEVMaxVoltage" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 117;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 117:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVMinVoltage)] */
se->localPart = 30; /* "PEVMinVoltage" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 118;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 120:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 122;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
case 122:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEVoltage)] */
se->localPart = 8; /* "EVSEVoltage" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 123;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 123:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEIMax)] */
se->localPart = 4; /* "EVSEIMax" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 124;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 124:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEMaxPhases)] */
se->localPart = 5; /* "EVSEMaxPhases" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 125;
/* push element on stack */
return exiPushStack(state, 116, se);
break;
case 125:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EnergyProvider), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 9; /* "EnergyProvider" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 126;
/* push element on stack */
return exiPushStack(state, 127, se);
}
else if (state->eventCode == 1) {
se->localPart = 65; /* "TariffTable" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 128;
/* push element on stack */
return exiPushStack(state, 129, se);
}
break;
case 126:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TariffTable), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 65; /* "TariffTable" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 128;
/* push element on stack */
return exiPushStack(state, 129, se);
}
break;
case 129:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Currency)] */
se->localPart = 5; /* "Currency" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 132;
/* push element on stack */
return exiPushStack(state, 133, se);
break;
case 132:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff)] */
se->localPart = 39; /* "Tariff" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 134;
/* push element on stack */
return exiPushStack(state, 135, se);
break;
case 134:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Tariff), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 39; /* "Tariff" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 134;
/* push element on stack */
return exiPushStack(state, 135, se);
}
break;
case 135:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffID)] */
se->localPart = 46; /* "TariffID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 137;
/* push element on stack */
return exiPushStack(state, 57, se);
break;
case 137:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffDescription), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
if (state->eventCode == 0) {
se->localPart = 41; /* "TariffDescription" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 138;
/* push element on stack */
return exiPushStack(state, 139, se);
}
else if (state->eventCode == 1) {
se->localPart = 42; /* "TariffEntries" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 140;
/* push element on stack */
return exiPushStack(state, 141, se);
}
break;
case 138:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntries)] */
se->localPart = 42; /* "TariffEntries" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 140;
/* push element on stack */
return exiPushStack(state, 141, se);
break;
case 141:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry)] */
se->localPart = 44; /* "TariffEntry" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 143;
/* push element on stack */
return exiPushStack(state, 144, se);
break;
case 143:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffEntry), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 44; /* "TariffEntry" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 143;
/* push element on stack */
return exiPushStack(state, 144, se);
}
break;
case 144:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffStart)] */
se->localPart = 48; /* "TariffStart" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 145;
/* push element on stack */
return exiPushStack(state, 146, se);
break;
case 145:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}TariffPMax)] */
se->localPart = 47; /* "TariffPMax" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 147;
/* push element on stack */
return exiPushStack(state, 67, se);
break;
case 147:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EPrice), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 6; /* "EPrice" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 148;
/* push element on stack */
return exiPushStack(state, 67, se);
}
break;
case 150:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 57; /* "ServiceScope" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 152;
/* push element on stack */
return exiPushStack(state, 153, se);
}
break;
case 156:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}ServiceList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 52; /* "ServiceList" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 158;
/* push element on stack */
return exiPushStack(state, 159, se);
}
break;
case 159:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service)] */
se->localPart = 27; /* "Service" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 161;
/* push element on stack */
return exiPushStack(state, 162, se);
break;
case 161:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Service), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 27; /* "Service" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 161;
/* push element on stack */
return exiPushStack(state, 162, se);
}
break;
case 162:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceID)] */
se->localPart = 29; /* "ServiceID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 163;
/* push element on stack */
return exiPushStack(state, 164, se);
break;
case 163:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceName), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 31; /* "ServiceName" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 165;
/* push element on stack */
return exiPushStack(state, 166, se);
}
else if (state->eventCode == 1) {
se->localPart = 34; /* "ServiceType" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 167;
/* push element on stack */
return exiPushStack(state, 151, se);
}
else if (state->eventCode == 2) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 168;
/* push element on stack */
return exiPushStack(state, 153, se);
}
break;
case 165:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceType), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 34; /* "ServiceType" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 167;
/* push element on stack */
return exiPushStack(state, 151, se);
}
else if (state->eventCode == 1) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 168;
/* push element on stack */
return exiPushStack(state, 153, se);
}
break;
case 167:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceScope), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 32; /* "ServiceScope" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 168;
/* push element on stack */
return exiPushStack(state, 153, se);
}
break;
case 171:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVPubKey)] */
se->localPart = 31; /* "PEVPubKey" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 172;
/* push element on stack */
return exiPushStack(state, 65, se);
break;
case 173:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringAuthPubKey), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 16; /* "MeteringAuthPubKey" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 175;
/* push element on stack */
return exiPushStack(state, 65, se);
}
break;
case 177:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PEVStatus)] */
se->localPart = 32; /* "PEVStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 178;
/* push element on stack */
return exiPushStack(state, 25, se);
break;
case 179:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEID)] */
se->localPart = 3; /* "EVSEID" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 181;
/* push element on stack */
return exiPushStack(state, 87, se);
break;
case 181:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}EVSEStatus)] */
se->localPart = 7; /* "EVSEStatus" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 182;
/* push element on stack */
return exiPushStack(state, 36, se);
break;
case 182:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgBody}TCurrent)] */
se->localPart = 63; /* "TCurrent" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 183;
/* push element on stack */
return exiPushStack(state, 47, se);
break;
case 185:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Body)] */
se->localPart = 0; /* "Body" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 187;
/* push element on stack */
return exiPushStack(state, 188, se);
break;
case 186:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}SessionInformation)] */
se->localPart = 7; /* "SessionInformation" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 189;
/* push element on stack */
return exiPushStack(state, 190, se);
break;
case 188:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}BodyElement), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}LineLockRes), 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}MeteringStatusReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}MeteringStatusRes), 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}PowerDiscoveryReq), START_ELEMENT({urn:iso:15118:2:2010:MsgBody}PowerDiscoveryRes), 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), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 2; /* "BodyElement" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 3, se);
}
else if (state->eventCode == 1) {
se->localPart = 11; /* "LineLockReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 5, se);
}
else if (state->eventCode == 2) {
se->localPart = 13; /* "LineLockRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 6, se);
}
else if (state->eventCode == 3) {
se->localPart = 17; /* "MeteringReceiptReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 7, se);
}
else if (state->eventCode == 4) {
se->localPart = 19; /* "MeteringReceiptRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 8, se);
}
else if (state->eventCode == 5) {
se->localPart = 21; /* "MeteringStatusReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 9, se);
}
else if (state->eventCode == 6) {
se->localPart = 23; /* "MeteringStatusRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 10, se);
}
else if (state->eventCode == 7) {
se->localPart = 33; /* "PaymentDetailsReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 11, se);
}
else if (state->eventCode == 8) {
se->localPart = 35; /* "PaymentDetailsRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 12, se);
}
else if (state->eventCode == 9) {
se->localPart = 37; /* "PowerDeliveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 13, se);
}
else if (state->eventCode == 10) {
se->localPart = 39; /* "PowerDeliveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 14, se);
}
else if (state->eventCode == 11) {
se->localPart = 41; /* "PowerDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 15, se);
}
else if (state->eventCode == 12) {
se->localPart = 43; /* "PowerDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 16, se);
}
else if (state->eventCode == 13) {
se->localPart = 48; /* "ServiceDiscoveryReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 17, se);
}
else if (state->eventCode == 14) {
se->localPart = 50; /* "ServiceDiscoveryRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 18, se);
}
else if (state->eventCode == 15) {
se->localPart = 53; /* "ServicePaymentSelectionReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 19, se);
}
else if (state->eventCode == 16) {
se->localPart = 55; /* "ServicePaymentSelectionRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 20, se);
}
else if (state->eventCode == 17) {
se->localPart = 59; /* "SessionSetupReq" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 21, se);
}
else if (state->eventCode == 18) {
se->localPart = 61; /* "SessionSetupRes" */
se->namespaceURI = 4; /* "urn:iso:15118:2:2010:MsgBody" */
/* move on */
state->grammarStack[state->stackIndex] = 211;
/* push element on stack */
return exiPushStack(state, 22, se);
}
break;
case 189:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDef}Notification), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 6; /* "Notification" */
se->namespaceURI = 6; /* "urn:iso:15118:2:2010:MsgDef" */
/* move on */
state->grammarStack[state->stackIndex] = 191;
/* push element on stack */
return exiPushStack(state, 192, se);
}
break;
case 190:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}SessionID)] */
se->localPart = 35; /* "SessionID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 193;
/* push element on stack */
return exiPushStack(state, 194, se);
break;
case 192:
/* FirstStartTagStartTag[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}EventList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 13; /* "FaultCode" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 200;
/* push element on stack */
return exiPushStack(state, 201, se);
}
else if (state->eventCode == 1) {
se->localPart = 14; /* "FaultMsg" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 202;
/* push element on stack */
return exiPushStack(state, 203, se);
}
else if (state->eventCode == 2) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
return exiPushStack(state, 205, se);
}
break;
case 193:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ServiceSessionID), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 33; /* "ServiceSessionID" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 195;
/* push element on stack */
return exiPushStack(state, 194, se);
}
else if (state->eventCode == 1) {
se->localPart = 25; /* "ProtocolVersion" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 196;
/* push element on stack */
return exiPushStack(state, 197, se);
}
break;
case 195:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}ProtocolVersion), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 25; /* "ProtocolVersion" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 196;
/* push element on stack */
return exiPushStack(state, 197, se);
}
break;
case 200:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}FaultMsg), START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 14; /* "FaultMsg" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 202;
/* push element on stack */
return exiPushStack(state, 203, se);
}
else if (state->eventCode == 1) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
return exiPushStack(state, 205, se);
}
break;
case 202:
/* Element[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}EventList), END_ELEMENT] */
if (state->eventCode == 0) {
se->localPart = 10; /* "EventList" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 204;
/* push element on stack */
return exiPushStack(state, 205, se);
}
break;
case 205:
/* FirstStartTagStartTag[START_ELEMENT({urn:iso:15118:2:2010:MsgDataTypes}Event)] */
se->localPart = 9; /* "Event" */
se->namespaceURI = 5; /* "urn:iso:15118:2:2010:MsgDataTypes" */
/* move on */
state->grammarStack[state->stackIndex] = 208;
/* push element on stack */
return exiPushStack(state, 209, se);
break;
default:
return -1;
}
return -1;
}
int exiDecodeEndElement(bitstream_t* stream, exi_state_t* state,
eqname_t* ee) {
/* pop item and update ahead of time element qname */
ee->localPart = state->elementStack[state->stackIndex].localPart;
ee->namespaceURI = state->elementStack[state->stackIndex].namespaceURI;
return exiPopStack(state);
}
int exiDecodeCharacters(bitstream_t* stream, exi_state_t* state,
exi_value_t* val) {
uint8_t xsi;
switch (state->grammarStack[state->stackIndex]) {
case 27:
/* CHARACTERS[BOOLEAN] */
val->type = BOOLEAN;
decodeBoolean(stream, &val->boolean);
/* move on */
state->grammarStack[state->stackIndex] = 31;
return 0;
case 30:
/* CHARACTERS[BOOLEAN] */
val->type = BOOLEAN;
decodeBoolean(stream, &val->boolean);
/* move on */
state->grammarStack[state->stackIndex] = 32;
return 0;
case 34:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 37;
return 0;
case 39:
/* CHARACTERS[BOOLEAN] */
val->type = BOOLEAN;
decodeBoolean(stream, &val->boolean);
/* move on */
state->grammarStack[state->stackIndex] = 48;
return 0;
case 43:
/* CHARACTERS[BOOLEAN] */
val->type = BOOLEAN;
decodeBoolean(stream, &val->boolean);
/* move on */
state->grammarStack[state->stackIndex] = 49;
return 0;
case 45:
/* CHARACTERS[BOOLEAN] */
val->type = BOOLEAN;
decodeBoolean(stream, &val->boolean);
/* move on */
state->grammarStack[state->stackIndex] = 50;
return 0;
case 47:
/* CHARACTERS[INTEGER_64] */
val->type = INTEGER_64;
decodeInteger64(stream, &val->int64);
/* move on */
state->grammarStack[state->stackIndex] = 51;
return 0;
case 53:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 60;
return 0;
case 57:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 61;
return 0;
case 63:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 71;
return 0;
case 65:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
state->grammarStack[state->stackIndex] = 72;
return 0;
case 74:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 4, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 78;
return 0;
case 77:
/* CHARACTERS[INTEGER_64] */
/* xsi:type OR xsi:nil */
decodeNBitUnsignedInteger(stream, 1, &xsi);
val->type = INTEGER_64;
decodeInteger64(stream, &val->int64);
/* move on */
state->grammarStack[state->stackIndex] = 79;
return 0;
case 69:
/* CHARACTERS[INTEGER_16] */
val->type = INTEGER_16;
decodeInteger32(stream, &val->int32);
/* move on */
state->grammarStack[state->stackIndex] = 80;
return 0;
case 82:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 83;
return 0;
case 85:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 93;
return 0;
case 87:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
state->grammarStack[state->stackIndex] = 94;
return 0;
case 96:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 97;
return 0;
case 99:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 100;
return 0;
case 109:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 110;
return 0;
case 116:
/* CHARACTERS[INTEGER_16] */
val->type = INTEGER_16;
decodeInteger32(stream, &val->int32);
/* move on */
state->grammarStack[state->stackIndex] = 119;
return 0;
case 121:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 1, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 130;
return 0;
case 127:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 131;
return 0;
case 133:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 136;
return 0;
case 139:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 142;
return 0;
case 146:
/* CHARACTERS[UNSIGNED_INTEGER_32] */
val->type = UNSIGNED_INTEGER_32;
decodeUnsignedInteger32(stream, &val->uint32);
/* move on */
state->grammarStack[state->stackIndex] = 149;
return 0;
case 151:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 154;
return 0;
case 153:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 155;
return 0;
case 157:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 160;
return 0;
case 164:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
state->grammarStack[state->stackIndex] = 169;
return 0;
case 166:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 170;
return 0;
case 174:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 176;
return 0;
case 180:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 184;
return 0;
case 194:
/* CHARACTERS[BINARY_HEX] */
val->type = BINARY_HEX;
decodeBinary(stream, &val->binary);
/* move on */
state->grammarStack[state->stackIndex] = 198;
return 0;
case 197:
/* CHARACTERS[STRING] */
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 199;
return 0;
case 201:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 2, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 206;
return 0;
case 203:
/* CHARACTERS[STRING] */
/* xsi:type OR xsi:nil */
decodeNBitUnsignedInteger(stream, 1, &xsi);
val->type = STRING;
decodeStringValue(stream, &val->string);
/* move on */
state->grammarStack[state->stackIndex] = 207;
return 0;
case 209:
/* CHARACTERS[ENUMERATION] */
val->type = ENUMERATION;
decodeNBitUnsignedInteger(stream, 3, &val->enumeration);
/* move on */
state->grammarStack[state->stackIndex] = 210;
return 0;
default:
return -1;
}
return 0;
}
int exiDecodeAttribute(bitstream_t* stream, exi_state_t* state,
eqname_t* at, exi_value_t* val) {
switch (state->grammarStack[state->stackIndex]) {
default:
return -1;
}
return -1;
}
#endif