/* * 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