Преглед изворни кода

* get ready for version 0.9.3

git-svn-id: https://svn.code.sf.net/p/openv2g/code/trunk@95 d9f2db14-54d0-4bde-b00c-16405c910529
daniel_peintner пре 10 година
родитељ
комит
c013f04b1e
68 измењених фајлова са 12127 додато и 3162 уклоњено
  1. 8 6
      .cproject
  2. 2 1
      Debug/makefile
  3. 5 4
      Debug/sources.mk
  4. 1 1
      Debug/src/appHandshake/subdir.mk
  5. 1 1
      Debug/src/codec/subdir.mk
  6. 1 1
      Debug/src/test/subdir.mk
  7. 1 1
      Debug/src/transport/subdir.mk
  8. 14 2
      README.txt
  9. 2 1
      Release/makefile
  10. 5 4
      Release/sources.mk
  11. 1 1
      Release/src/appHandshake/subdir.mk
  12. 1 1
      Release/src/codec/subdir.mk
  13. 1 1
      Release/src/test/subdir.mk
  14. 1 1
      Release/src/transport/subdir.mk
  15. 2 2
      src/appHandshake/appHandEXIDatatypes.c
  16. 2 2
      src/appHandshake/appHandEXIDatatypes.h
  17. 2 2
      src/appHandshake/appHandEXIDatatypesDecoder.c
  18. 2 2
      src/appHandshake/appHandEXIDatatypesDecoder.h
  19. 2 2
      src/appHandshake/appHandEXIDatatypesEncoder.c
  20. 2 2
      src/appHandshake/appHandEXIDatatypesEncoder.h
  21. 2 2
      src/codec/AbstractDecoderChannel.c
  22. 2 2
      src/codec/AbstractEncoderChannel.c
  23. 2 2
      src/codec/BitDecoderChannel.c
  24. 2 2
      src/codec/BitEncoderChannel.c
  25. 2 2
      src/codec/BitInputStream.c
  26. 2 2
      src/codec/BitInputStream.h
  27. 2 2
      src/codec/BitOutputStream.c
  28. 2 2
      src/codec/BitOutputStream.h
  29. 2 2
      src/codec/ByteDecoderChannel.c
  30. 2 2
      src/codec/ByteEncoderChannel.c
  31. 2 2
      src/codec/ByteStream.c
  32. 2 2
      src/codec/ByteStream.h
  33. 2 2
      src/codec/DecoderChannel.h
  34. 3 3
      src/codec/EXIConfig.h
  35. 2 2
      src/codec/EXIHeaderDecoder.c
  36. 2 2
      src/codec/EXIHeaderDecoder.h
  37. 2 2
      src/codec/EXIHeaderEncoder.c
  38. 2 2
      src/codec/EXIHeaderEncoder.h
  39. 2 2
      src/codec/EXIOptions.h
  40. 2 2
      src/codec/EXITypes.h
  41. 2 2
      src/codec/EncoderChannel.h
  42. 3 2
      src/codec/ErrorCodes.h
  43. 2 2
      src/codec/MethodsBag.c
  44. 2 2
      src/codec/MethodsBag.h
  45. 594 289
      src/codec/v2gEXIDatatypes.c
  46. 475 489
      src/codec/v2gEXIDatatypes.h
  47. 420 330
      src/codec/v2gEXIDatatypesDecoder.c
  48. 6 2
      src/codec/v2gEXIDatatypesDecoder.h
  49. 413 363
      src/codec/v2gEXIDatatypesEncoder.c
  50. 7 2
      src/codec/v2gEXIDatatypesEncoder.h
  51. 531 224
      src/din/dinEXIDatatypes.c
  52. 351 570
      src/din/dinEXIDatatypes.h
  53. 288 397
      src/din/dinEXIDatatypesDecoder.c
  54. 6 2
      src/din/dinEXIDatatypesDecoder.h
  55. 350 391
      src/din/dinEXIDatatypesEncoder.c
  56. 7 2
      src/din/dinEXIDatatypesEncoder.h
  57. 2 2
      src/test/main.c
  58. 2 2
      src/test/main.h
  59. 2 2
      src/test/main_databinder.c
  60. 233 4
      src/test/main_example.c
  61. 2 2
      src/transport/v2gtp.c
  62. 2 2
      src/transport/v2gtp.h
  63. 241 0
      src/xmldsig/xmldsigEXIDatatypes.c
  64. 856 0
      src/xmldsig/xmldsigEXIDatatypes.h
  65. 4207 0
      src/xmldsig/xmldsigEXIDatatypesDecoder.c
  66. 64 0
      src/xmldsig/xmldsigEXIDatatypesDecoder.h
  67. 2897 0
      src/xmldsig/xmldsigEXIDatatypesEncoder.c
  68. 65 0
      src/xmldsig/xmldsigEXIDatatypesEncoder.h

+ 8 - 6
.cproject

@@ -5,16 +5,16 @@
 			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.181718907" moduleId="org.eclipse.cdt.core.settings" name="Debug">
 				<externalSettings/>
 				<extensions>
+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
 					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
 				</extensions>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-				<configuration artifactName="OpenV2G" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.debug.181718907" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug">
+				<configuration artifactName="OpenV2G" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.debug.181718907" name="Debug" parent="cdt.managedbuild.config.gnu.mingw.exe.debug">
 					<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.181718907." name="/" resourcePath="">
 						<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.base.186426714" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.base">
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.PE" id="cdt.managedbuild.target.gnu.platform.mingw.base.208578740" name="Debug Platform" osList="win32" superClass="cdt.managedbuild.target.gnu.platform.mingw.base"/>
@@ -31,6 +31,7 @@
 								<option id="gnu.c.compiler.option.include.paths.229245493" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
 									<listOptionValue builtIn="false" value="&quot;../src/codec&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/din&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;../src/xmldsig&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/appHandshake&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/transport&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/test&quot;"/>
@@ -65,16 +66,16 @@
 			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450" moduleId="org.eclipse.cdt.core.settings" name="Release">
 				<externalSettings/>
 				<extensions>
+					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
 					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
 					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
-					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
 				</extensions>
 			</storageModule>
 			<storageModule moduleId="cdtBuildSystem" version="4.0.0">
-				<configuration artifactName="OpenV2G" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release">
+				<configuration artifactName="OpenV2G" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450" name="Release" parent="cdt.managedbuild.config.gnu.mingw.exe.release">
 					<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.release.681614450." name="/" resourcePath="">
 						<toolChain id="cdt.managedbuild.toolchain.gnu.mingw.base.544862828" name="MinGW GCC" superClass="cdt.managedbuild.toolchain.gnu.mingw.base">
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.PE" id="cdt.managedbuild.target.gnu.platform.mingw.base.452289502" name="Debug Platform" osList="win32" superClass="cdt.managedbuild.target.gnu.platform.mingw.base"/>
@@ -91,6 +92,7 @@
 								<option id="gnu.c.compiler.option.include.paths.289860304" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
 									<listOptionValue builtIn="false" value="&quot;../src/codec&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/din&quot;"/>
+									<listOptionValue builtIn="false" value="&quot;../src/xmldsig&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/appHandshake&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/transport&quot;"/>
 									<listOptionValue builtIn="false" value="&quot;../src/test&quot;"/>
@@ -125,10 +127,10 @@
 		<project id="OpenV2G.cdt.managedbuild.target.gnu.mingw.exe.1420366407" name="Executable" projectType="cdt.managedbuild.target.gnu.mingw.exe"/>
 	</storageModule>
 	<storageModule moduleId="refreshScope" versionNumber="2">
-		<configuration configurationName="Release">
+		<configuration configurationName="Debug">
 			<resource resourceType="PROJECT" workspacePath="/OpenV2G"/>
 		</configuration>
-		<configuration configurationName="Debug">
+		<configuration configurationName="Release">
 			<resource resourceType="PROJECT" workspacePath="/OpenV2G"/>
 		</configuration>
 	</storageModule>

+ 2 - 1
Debug/makefile

@@ -8,6 +8,7 @@ RM := rm -rf
 
 # All of the sources participating in the build are defined here
 -include sources.mk
+-include src/xmldsig/subdir.mk
 -include src/transport/subdir.mk
 -include src/test/subdir.mk
 -include src/din/subdir.mk
@@ -39,7 +40,7 @@ OpenV2G.exe: $(OBJS) $(USER_OBJS)
 
 # Other Targets
 clean:
-	-$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) OpenV2G.exe
+	-$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) OpenV2G.exe
 	-@echo ' '
 
 .PHONY: all clean dependents

+ 5 - 4
Debug/sources.mk

@@ -2,17 +2,18 @@
 # Automatically-generated file. Do not edit!
 ################################################################################
 
-O_SRCS := 
-C_SRCS := 
-S_UPPER_SRCS := 
 OBJ_SRCS := 
 ASM_SRCS := 
+C_SRCS := 
+S_UPPER_SRCS := 
+O_SRCS := 
+EXECUTABLES := 
 OBJS := 
 C_DEPS := 
-EXECUTABLES := 
 
 # Every subdirectory with source files must be described here
 SUBDIRS := \
+src/xmldsig \
 src/transport \
 src/test \
 src/din \

+ 1 - 1
Debug/src/appHandshake/subdir.mk

@@ -23,7 +23,7 @@ C_DEPS += \
 src/appHandshake/%.o: ../src/appHandshake/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Debug/src/codec/subdir.mk

@@ -59,7 +59,7 @@ C_DEPS += \
 src/codec/%.o: ../src/codec/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Debug/src/test/subdir.mk

@@ -23,7 +23,7 @@ C_DEPS += \
 src/test/%.o: ../src/test/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Debug/src/transport/subdir.mk

@@ -17,7 +17,7 @@ C_DEPS += \
 src/transport/%.o: ../src/transport/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -O0 -g3 -Wall -c -fmessage-length=0 -ansi -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 14 - 2
README.txt

@@ -1,12 +1,12 @@
 -------------------------------------------------------------------------
 OpenV2G - an open source project implementing the basic functionality of the ISO IEC 15118 vehicle to grid (V2G) communication interface 
-Version 0.9.2, released September 12, 2014
+Version 0.9.3, released February 25, 2015
 http://openv2g.sourceforge.net/
 
 Please report bugs via the SourceForge bug tracking system at http://sourceforge.net/tracker/?group_id=350113.
 Thank you.
 
-Copyright (C) 2007-2014 Siemens AG
+Copyright (C) 2007-2015 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
@@ -21,6 +21,18 @@ 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 <http://www.gnu.org/licenses/>.
 
+-------------------------------------------------------------------------
+CHANGES from version 0.9.2:
+-------------------------------------------------------------------------
+* resolves XML signature interoperability issue
+  Note: To make use of xmldsig the following defines have to be set.
+  in "xmldsigEXIDatatypes.h"
+  #define DEPLOY_XMLDSIG_CODEC SUPPORT_YES
+  #define DEPLOY_XMLDSIG_CODEC_FRAGMENT SUPPORT_YES
+  in "v2gEXIDatatypes.h"
+  #define DEPLOY_ISO_CODEC_FRAGMENT SUPPORT_YES
+  Otherwise the code is turned off.
+
 -------------------------------------------------------------------------
 CHANGES from version 0.9.1:
 -------------------------------------------------------------------------

+ 2 - 1
Release/makefile

@@ -8,6 +8,7 @@ RM := rm -rf
 
 # All of the sources participating in the build are defined here
 -include sources.mk
+-include src/xmldsig/subdir.mk
 -include src/transport/subdir.mk
 -include src/test/subdir.mk
 -include src/din/subdir.mk
@@ -39,7 +40,7 @@ OpenV2G.exe: $(OBJS) $(USER_OBJS)
 
 # Other Targets
 clean:
-	-$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) OpenV2G.exe
+	-$(RM) $(EXECUTABLES)$(OBJS)$(C_DEPS) OpenV2G.exe
 	-@echo ' '
 
 .PHONY: all clean dependents

+ 5 - 4
Release/sources.mk

@@ -2,17 +2,18 @@
 # Automatically-generated file. Do not edit!
 ################################################################################
 
-O_SRCS := 
-C_SRCS := 
-S_UPPER_SRCS := 
 OBJ_SRCS := 
 ASM_SRCS := 
+C_SRCS := 
+S_UPPER_SRCS := 
+O_SRCS := 
+EXECUTABLES := 
 OBJS := 
 C_DEPS := 
-EXECUTABLES := 
 
 # Every subdirectory with source files must be described here
 SUBDIRS := \
+src/xmldsig \
 src/transport \
 src/test \
 src/din \

+ 1 - 1
Release/src/appHandshake/subdir.mk

@@ -23,7 +23,7 @@ C_DEPS += \
 src/appHandshake/%.o: ../src/appHandshake/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Release/src/codec/subdir.mk

@@ -59,7 +59,7 @@ C_DEPS += \
 src/codec/%.o: ../src/codec/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Release/src/test/subdir.mk

@@ -23,7 +23,7 @@ C_DEPS += \
 src/test/%.o: ../src/test/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 1 - 1
Release/src/transport/subdir.mk

@@ -17,7 +17,7 @@ C_DEPS += \
 src/transport/%.o: ../src/transport/%.c
 	@echo 'Building file: $<'
 	@echo 'Invoking: GCC C Compiler'
-	gcc -I"../src/codec" -I"../src/din" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
+	gcc -I"../src/codec" -I"../src/din" -I"../src/xmldsig" -I"../src/appHandshake" -I"../src/transport" -I"../src/test" -Os -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
 	@echo 'Finished building: $<'
 	@echo ' '
 

+ 2 - 2
src/appHandshake/appHandEXIDatatypes.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/appHandshake/appHandEXIDatatypes.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/appHandshake/appHandEXIDatatypesDecoder.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/appHandshake/appHandEXIDatatypesDecoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/appHandshake/appHandEXIDatatypesEncoder.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/appHandshake/appHandEXIDatatypesEncoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/AbstractDecoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/AbstractEncoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitDecoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitEncoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitInputStream.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitInputStream.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitOutputStream.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/BitOutputStream.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/ByteDecoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/ByteEncoderChannel.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/ByteStream.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/ByteStream.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/DecoderChannel.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 3 - 3
src/codec/EXIConfig.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -79,7 +79,7 @@ extern "C" {
  *
  * 			ASCII or UCS
  * */
-#define STRING_REPRESENTATION STRING_REPRESENTATION_UCS
+#define STRING_REPRESENTATION STRING_REPRESENTATION_ASCII
 
 
 

+ 2 - 2
src/codec/EXIHeaderDecoder.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EXIHeaderDecoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EXIHeaderEncoder.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EXIHeaderEncoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EXIOptions.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EXITypes.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/EncoderChannel.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 3 - 2
src/codec/ErrorCodes.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -91,6 +91,7 @@ extern "C" {
 #define EXI_UNSUPPORTED_STRING_VALUE_TYPE -141
 #define EXI_UNSUPPORTED_INTEGER_VALUE_TYPE -142
 #define EXI_UNSUPPORTED_DATETIME_TYPE -143
+#define EXI_UNSUPPORTED_FRAGMENT_ELEMENT -144
 
 #define EXI_UNSUPPORTED_GRAMMAR_LEARNING_CH -150
 

+ 2 - 2
src/codec/MethodsBag.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 2 - 2
src/codec/MethodsBag.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 594 - 289
src/codec/v2gEXIDatatypes.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -124,43 +124,358 @@ void init_v2gEXIDocument(struct v2gEXIDocument* exiDoc) {
 	exiDoc->Object_isUsed = 0u;
 }
 
-void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType) {
-	v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
-}
+#if DEPLOY_ISO_CODEC_FRAGMENT == SUPPORT_YES
+void init_v2gEXIFragment(struct v2gEXIFragment* exiFrag) {
+	exiFrag->RSAKeyValue_isUsed = 0u;
+	exiFrag->ServiceDetailReq_isUsed = 0u;
+	exiFrag->EVSEEnergyToBeDelivered_isUsed = 0u;
+	exiFrag->CableCheckRes_isUsed = 0u;
+	exiFrag->EVMaxVoltage_isUsed = 0u;
+	exiFrag->RemainingTimeToBulkSoC_isUsed = 0u;
+	exiFrag->Notification_isUsed = 0u;
+	exiFrag->Parameter_isUsed = 0u;
+	exiFrag->amountMultiplier_isUsed = 0u;
+	exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->ChargeParameterDiscoveryRes_isUsed = 0u;
+	exiFrag->FaultCode_isUsed = 0u;
+	exiFrag->ChargingProfile_isUsed = 0u;
+	exiFrag->EVSEStatusCode_isUsed = 0u;
+	exiFrag->Exponent_isUsed = 0u;
+	exiFrag->ServiceDetailRes_isUsed = 0u;
+	exiFrag->PreChargeReq_isUsed = 0u;
+	exiFrag->EVSEMaximumPowerLimit_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
+	exiFrag->J_isUsed = 0u;
+	exiFrag->RelativeTimeInterval_isUsed = 0u;
+	exiFrag->CertificateUpdateReq_isUsed = 0u;
+	exiFrag->Transforms_isUsed = 0u;
+	exiFrag->X509CRL_isUsed = 0u;
+	exiFrag->Manifest_isUsed = 0u;
+	exiFrag->BulkChargingComplete_isUsed = 0u;
+	exiFrag->ChargingComplete_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->EVSENotification_isUsed = 0u;
+	exiFrag->EVSEPowerLimitAchieved_isUsed = 0u;
+	exiFrag->ServiceScope_isUsed = 0u;
+	exiFrag->EVSETimeStamp_isUsed = 0u;
+	exiFrag->EVSETimeStamp_isUsed = 0u;
+	exiFrag->OEMProvisioningCert_isUsed = 0u;
+	exiFrag->MeterID_isUsed = 0u;
+	exiFrag->SalesTariffID_isUsed = 0u;
+	exiFrag->TMeter_isUsed = 0u;
+	exiFrag->byteValue_isUsed = 0u;
+	exiFrag->DigestMethod_isUsed = 0u;
+	exiFrag->FaultMsg_isUsed = 0u;
+	exiFrag->FullSOC_isUsed = 0u;
+	exiFrag->WeldingDetectionReq_isUsed = 0u;
+	exiFrag->BulkChargingComplete_isUsed = 0u;
+	exiFrag->SAScheduleList_isUsed = 0u;
+	exiFrag->eMAID_isUsed = 0u;
+	exiFrag->eMAID_isUsed = 0u;
+	exiFrag->eMAID_isUsed = 0u;
+	exiFrag->eMAID_isUsed = 0u;
+	exiFrag->ServiceDiscoveryReq_isUsed = 0u;
+	exiFrag->EVMaxCurrent_isUsed = 0u;
+	exiFrag->X509IssuerSerial_isUsed = 0u;
+	exiFrag->BodyElement_isUsed = 0u;
+	exiFrag->EVSEChargeParameter_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->EVSEPresentCurrent_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->ServiceCategory_isUsed = 0u;
+	exiFrag->EVPowerDeliveryParameter_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->PaymentOption_isUsed = 0u;
+	exiFrag->CertificateInstallationRes_isUsed = 0u;
+	exiFrag->PgenCounter_isUsed = 0u;
+	exiFrag->EVMaximumPowerLimit_isUsed = 0u;
+	exiFrag->X509SerialNumber_isUsed = 0u;
+	exiFrag->Body_isUsed = 0u;
+	exiFrag->EVTargetVoltage_isUsed = 0u;
+	exiFrag->EPriceLevel_isUsed = 0u;
+	exiFrag->EVTargetVoltage_isUsed = 0u;
+	exiFrag->FreeService_isUsed = 0u;
+	exiFrag->Reference_isUsed = 0u;
+	exiFrag->CurrentDemandReq_isUsed = 0u;
+	exiFrag->SignedInfo_isUsed = 0u;
+	exiFrag->TimeInterval_isUsed = 0u;
+	exiFrag->ChargeService_isUsed = 0u;
+	exiFrag->Service_isUsed = 0u;
+	exiFrag->boolValue_isUsed = 0u;
+	exiFrag->MeteringReceiptReq_isUsed = 0u;
+	exiFrag->EVSEID_isUsed = 0u;
+	exiFrag->MeterInfo_isUsed = 0u;
+	exiFrag->KeyValue_isUsed = 0u;
+	exiFrag->EVSEID_isUsed = 0u;
+	exiFrag->MeterInfo_isUsed = 0u;
+	exiFrag->EVSEID_isUsed = 0u;
+	exiFrag->MeterInfo_isUsed = 0u;
+	exiFrag->stringValue_isUsed = 0u;
+	exiFrag->EVSEMaxCurrent_isUsed = 0u;
+	exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u;
+	exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u;
+	exiFrag->PMax_isUsed = 0u;
+	exiFrag->RemainingTimeToFullSoC_isUsed = 0u;
+	exiFrag->EVSEStatus_isUsed = 0u;
+	exiFrag->Unit_isUsed = 0u;
+	exiFrag->Y_isUsed = 0u;
+	exiFrag->RequestedEnergyTransferMode_isUsed = 0u;
+	exiFrag->EVSEPeakCurrentRipple_isUsed = 0u;
+	exiFrag->EAmount_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->AC_EVSEChargeParameter_isUsed = 0u;
+	exiFrag->SignatureMethod_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->ReceiptRequired_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->ReceiptRequired_isUsed = 0u;
+	exiFrag->ChargingProfileEntryStart_isUsed = 0u;
+	exiFrag->CurrentDemandRes_isUsed = 0u;
+	exiFrag->ConsumptionCost_isUsed = 0u;
+	exiFrag->ServiceParameterList_isUsed = 0u;
+	exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->X509Data_isUsed = 0u;
+	exiFrag->Seed_isUsed = 0u;
+	exiFrag->SalesTariffDescription_isUsed = 0u;
+	exiFrag->Modulus_isUsed = 0u;
+	exiFrag->EVMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->Certificate_isUsed = 0u;
+	exiFrag->Certificate_isUsed = 0u;
+	exiFrag->CableCheckReq_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->Multiplier_isUsed = 0u;
+	exiFrag->KeyInfo_isUsed = 0u;
+	exiFrag->EVTargetCurrent_isUsed = 0u;
+	exiFrag->EVTargetCurrent_isUsed = 0u;
+	exiFrag->PowerDeliveryReq_isUsed = 0u;
+	exiFrag->X509IssuerName_isUsed = 0u;
+	exiFrag->SessionStopReq_isUsed = 0u;
+	exiFrag->X509SubjectName_isUsed = 0u;
+	exiFrag->PMaxScheduleEntry_isUsed = 0u;
+	exiFrag->ChargeProgress_isUsed = 0u;
+	exiFrag->SelectedPaymentOption_isUsed = 0u;
+	exiFrag->MgmtData_isUsed = 0u;
+	exiFrag->AC_EVChargeParameter_isUsed = 0u;
+	exiFrag->EVSEMinimumCurrentLimit_isUsed = 0u;
+	exiFrag->WeldingDetectionRes_isUsed = 0u;
+	exiFrag->physicalValue_isUsed = 0u;
+	exiFrag->ServiceName_isUsed = 0u;
+	exiFrag->NumEPriceLevels_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->PGPKeyID_isUsed = 0u;
+	exiFrag->startValue_isUsed = 0u;
+	exiFrag->MeteringReceiptRes_isUsed = 0u;
+	exiFrag->EVEnergyRequest_isUsed = 0u;
+	exiFrag->MaxEntriesSAScheduleTuple_isUsed = 0u;
+	exiFrag->EVReady_isUsed = 0u;
+	exiFrag->X509SKI_isUsed = 0u;
+	exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->SignatureProperties_isUsed = 0u;
+	exiFrag->P_isUsed = 0u;
+	exiFrag->SignatureValue_isUsed = 0u;
+	exiFrag->MeterStatus_isUsed = 0u;
+	exiFrag->DC_EVSEChargeParameter_isUsed = 0u;
+	exiFrag->SalesTariff_isUsed = 0u;
+	exiFrag->SessionSetupReq_isUsed = 0u;
+	exiFrag->EVMinCurrent_isUsed = 0u;
+	exiFrag->RetryCounter_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->PGPData_isUsed = 0u;
+	exiFrag->EVMaximumPowerLimit_isUsed = 0u;
+	exiFrag->SessionStopRes_isUsed = 0u;
+	exiFrag->AuthorizationReq_isUsed = 0u;
+	exiFrag->ServiceDiscoveryRes_isUsed = 0u;
+	exiFrag->GenChallenge_isUsed = 0u;
+	exiFrag->GenChallenge_isUsed = 0u;
+	exiFrag->SAScheduleTuple_isUsed = 0u;
+	exiFrag->PaymentServiceSelectionRes_isUsed = 0u;
+	exiFrag->DC_EVPowerDeliveryParameter_isUsed = 0u;
+	exiFrag->EVRESSSOC_isUsed = 0u;
+	exiFrag->ChargingStatusRes_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->X509Certificate_isUsed = 0u;
+	exiFrag->EVMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->SPKISexp_isUsed = 0u;
+	exiFrag->CanonicalizationMethod_isUsed = 0u;
+	exiFrag->duration_isUsed = 0u;
+	exiFrag->ParameterSet_isUsed = 0u;
+	exiFrag->ChargeParameterDiscoveryReq_isUsed = 0u;
+	exiFrag->SigMeterReading_isUsed = 0u;
+	exiFrag->SASchedules_isUsed = 0u;
+	exiFrag->SessionSetupRes_isUsed = 0u;
+	exiFrag->SupportedEnergyTransferMode_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->SPKIData_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->Object_isUsed = 0u;
+	exiFrag->ChargingComplete_isUsed = 0u;
+	exiFrag->DSAKeyValue_isUsed = 0u;
+	exiFrag->Signature_isUsed = 0u;
+	exiFrag->Transform_isUsed = 0u;
+	exiFrag->ChargingStatusReq_isUsed = 0u;
+	exiFrag->amount_isUsed = 0u;
+	exiFrag->SelectedServiceList_isUsed = 0u;
+	exiFrag->SessionID_isUsed = 0u;
+	exiFrag->G_isUsed = 0u;
+	exiFrag->start_isUsed = 0u;
+	exiFrag->PaymentOptionList_isUsed = 0u;
+	exiFrag->Cost_isUsed = 0u;
+	exiFrag->Header_isUsed = 0u;
+	exiFrag->PMaxSchedule_isUsed = 0u;
+	exiFrag->EVSEMinimumVoltageLimit_isUsed = 0u;
+	exiFrag->ProfileEntry_isUsed = 0u;
+	exiFrag->ServiceCategory_isUsed = 0u;
+	exiFrag->ServiceScope_isUsed = 0u;
+	exiFrag->EVSENominalVoltage_isUsed = 0u;
+	exiFrag->EVStatus_isUsed = 0u;
+	exiFrag->SelectedService_isUsed = 0u;
+	exiFrag->EnergyTransferMode_isUsed = 0u;
+	exiFrag->EVSECurrentLimitAchieved_isUsed = 0u;
+	exiFrag->Value_isUsed = 0u;
+	exiFrag->KeyName_isUsed = 0u;
+	exiFrag->PaymentServiceSelectionReq_isUsed = 0u;
+	exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u;
+	exiFrag->PowerDeliveryRes_isUsed = 0u;
+	exiFrag->DigestValue_isUsed = 0u;
+	exiFrag->ParameterSetID_isUsed = 0u;
+	exiFrag->ParameterSetID_isUsed = 0u;
+	exiFrag->SubCertificates_isUsed = 0u;
+	exiFrag->DHpublickey_isUsed = 0u;
+	exiFrag->DHpublickey_isUsed = 0u;
+	exiFrag->CertificateInstallationReq_isUsed = 0u;
+	exiFrag->EVMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->shortValue_isUsed = 0u;
+	exiFrag->SAProvisioningCertificateChain_isUsed = 0u;
+	exiFrag->SAProvisioningCertificateChain_isUsed = 0u;
+	exiFrag->RCD_isUsed = 0u;
+	exiFrag->EVEnergyCapacity_isUsed = 0u;
+	exiFrag->RetrievalMethod_isUsed = 0u;
+	exiFrag->PaymentDetailsReq_isUsed = 0u;
+	exiFrag->SessionID_isUsed = 0u;
+	exiFrag->NotificationMaxDelay_isUsed = 0u;
+	exiFrag->Entry_isUsed = 0u;
+	exiFrag->RootCertificateID_isUsed = 0u;
+	exiFrag->AuthorizationRes_isUsed = 0u;
+	exiFrag->costKind_isUsed = 0u;
+	exiFrag->DepartureTime_isUsed = 0u;
+	exiFrag->EVSEIsolationStatus_isUsed = 0u;
+	exiFrag->DC_EVChargeParameter_isUsed = 0u;
+	exiFrag->V2G_Message_isUsed = 0u;
+	exiFrag->EVSECurrentRegulationTolerance_isUsed = 0u;
+	exiFrag->EVCCID_isUsed = 0u;
+	exiFrag->EVChargeParameter_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->EVMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->EVSEMaxCurrent_isUsed = 0u;
+	exiFrag->ChargingProfileEntryMaxPower_isUsed = 0u;
+	exiFrag->HMACOutputLength_isUsed = 0u;
+	exiFrag->intValue_isUsed = 0u;
+	exiFrag->ServiceList_isUsed = 0u;
+	exiFrag->SignatureProperty_isUsed = 0u;
+	exiFrag->BulkSOC_isUsed = 0u;
+	exiFrag->SalesTariffEntry_isUsed = 0u;
+	exiFrag->EVErrorCode_isUsed = 0u;
+	exiFrag->PreChargeRes_isUsed = 0u;
+	exiFrag->EVSEMaximumPowerLimit_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->CertificateUpdateRes_isUsed = 0u;
+	exiFrag->MeterReading_isUsed = 0u;
+	exiFrag->ListOfRootCertificateIDs_isUsed = 0u;
+	exiFrag->ListOfRootCertificateIDs_isUsed = 0u;
+	exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->ChargingSession_isUsed = 0u;
+	exiFrag->PaymentDetailsRes_isUsed = 0u;
+	exiFrag->XPath_isUsed = 0u;
+	exiFrag->Q_isUsed = 0u;
+}
+#endif /* DEPLOY_ISO_CODEC_FRAGMENT */
 
-void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
+void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
 }
 
-void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
-	v2gServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
-	v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
+void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
+	v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
 }
 
-void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType) {
-	v2gSignatureType->Id_isUsed = 0u;
-	v2gSignatureType->KeyInfo_isUsed = 0u;
-	v2gSignatureType->Object.arrayLen = 0u;
+void init_v2gCurrentDemandResType(struct v2gCurrentDemandResType* v2gCurrentDemandResType) {
+	v2gCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
+	v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
+	v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
+	v2gCurrentDemandResType->MeterInfo_isUsed = 0u;
+	v2gCurrentDemandResType->ReceiptRequired_isUsed = 0u;
 }
 
-void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType) {
-	v2gNotificationType->FaultMsg_isUsed = 0u;
+void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
 }
 
-void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
+void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType) {
 }
 
-void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
+void init_v2gSalesTariffType(struct v2gSalesTariffType* v2gSalesTariffType) {
+	v2gSalesTariffType->Id_isUsed = 0u;
+	v2gSalesTariffType->SalesTariffDescription_isUsed = 0u;
+	v2gSalesTariffType->NumEPriceLevels_isUsed = 0u;
+	v2gSalesTariffType->SalesTariffEntry.arrayLen = 0u;
 }
 
 void init_v2gSignaturePropertyType(struct v2gSignaturePropertyType* v2gSignaturePropertyType) {
 	v2gSignaturePropertyType->Id_isUsed = 0u;
 }
 
-void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType) {
-	v2gReferenceType->Id_isUsed = 0u;
-	v2gReferenceType->URI_isUsed = 0u;
-	v2gReferenceType->Type_isUsed = 0u;
-	v2gReferenceType->Transforms_isUsed = 0u;
+void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+}
+
+void init_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType) {
+	v2gSPKIDataType->SPKISexp.arrayLen = 0u;
+}
+
+void init_v2gNotificationType(struct v2gNotificationType* v2gNotificationType) {
+	v2gNotificationType->FaultMsg_isUsed = 0u;
+}
+
+void init_v2gObjectType(struct v2gObjectType* v2gObjectType) {
+	v2gObjectType->Id_isUsed = 0u;
+	v2gObjectType->MimeType_isUsed = 0u;
+	v2gObjectType->Encoding_isUsed = 0u;
 }
 
 void init_v2gManifestType(struct v2gManifestType* v2gManifestType) {
@@ -168,52 +483,44 @@ void init_v2gManifestType(struct v2gManifestType* v2gManifestType) {
 	v2gManifestType->Reference.arrayLen = 0u;
 }
 
-void init_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType) {
-	v2gSelectedServiceType->ParameterSetID_isUsed = 0u;
-}
-
-void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
-	v2gEVChargeParameterType->DepartureTime_isUsed = 0u;
+void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType) {
+	v2gParameterSetType->Parameter.arrayLen = 0u;
 }
 
-void init_v2gEVSEChargeParameterType(struct v2gEVSEChargeParameterType* v2gEVSEChargeParameterType) {
+void init_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
 }
 
-void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType) {
-	v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
-	v2gChargingStatusResType->MeterInfo_isUsed = 0u;
-	v2gChargingStatusResType->ReceiptRequired_isUsed = 0u;
+void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
+	v2gRelativeTimeIntervalType->duration_isUsed = 0u;
 }
 
-void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType) {
+void init_v2gContractSignatureEncryptedPrivateKeyType(struct v2gContractSignatureEncryptedPrivateKeyType* v2gContractSignatureEncryptedPrivateKeyType) {
 }
 
-void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
-	v2gMeteringReceiptReqType->Id_isUsed = 0u;
-	v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
+void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType) {
+	v2gSubCertificatesType->Certificate.arrayLen = 0u;
 }
 
-void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
-	v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
-	v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
+	v2gPaymentOptionListType->PaymentOption.arrayLen = 0u;
 }
 
-void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType) {
-	v2gServiceDetailResType->ServiceParameterList_isUsed = 0u;
+void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
+	v2gSalesTariffEntryType->TimeInterval_isUsed = 0u;
+	v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
+	v2gSalesTariffEntryType->EPriceLevel_isUsed = 0u;
+	v2gSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
 }
 
-void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType) {
-	v2gCertificateChainType->Id_isUsed = 0u;
-	v2gCertificateChainType->SubCertificates_isUsed = 0u;
+void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
+	v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u;
 }
 
-void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
+void init_v2gSelectedServiceType(struct v2gSelectedServiceType* v2gSelectedServiceType) {
+	v2gSelectedServiceType->ParameterSetID_isUsed = 0u;
 }
 
-void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
-	v2gMeteringReceiptResType->EVSEStatus_isUsed = 0u;
-	v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 0u;
-	v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 0u;
+void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
 }
 
 void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDeliveryReqType) {
@@ -222,409 +529,407 @@ void init_v2gPowerDeliveryReqType(struct v2gPowerDeliveryReqType* v2gPowerDelive
 	v2gPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
 }
 
-void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
-	v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
+void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType) {
+	v2gConsumptionCostType->Cost.arrayLen = 0u;
 }
 
-void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType) {
+void init_v2gDC_EVChargeParameterType(struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType) {
+	v2gDC_EVChargeParameterType->DepartureTime_isUsed = 0u;
+	v2gDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
+	v2gDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
+	v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
+	v2gDC_EVChargeParameterType->FullSOC_isUsed = 0u;
+	v2gDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
 }
 
-void init_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType) {
-	v2gChargeServiceType->ServiceName_isUsed = 0u;
-	v2gChargeServiceType->ServiceScope_isUsed = 0u;
+void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType) {
+	v2gChargingProfileType->ProfileEntry.arrayLen = 0u;
 }
 
-void init_v2gParameterType(struct v2gParameterType* v2gParameterType) {
-	v2gParameterType->boolValue_isUsed = 0u;
-	v2gParameterType->byteValue_isUsed = 0u;
-	v2gParameterType->shortValue_isUsed = 0u;
-	v2gParameterType->intValue_isUsed = 0u;
-	v2gParameterType->physicalValue_isUsed = 0u;
-	v2gParameterType->stringValue_isUsed = 0u;
+void init_v2gMeteringReceiptReqType(struct v2gMeteringReceiptReqType* v2gMeteringReceiptReqType) {
+	v2gMeteringReceiptReqType->Id_isUsed = 0u;
+	v2gMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
 }
 
-void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType) {
+void init_v2gChargeParameterDiscoveryReqType(struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType) {
+	v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 0u;
+	v2gChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
+	v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
+	v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
 }
 
-void init_v2gPaymentServiceSelectionResType(struct v2gPaymentServiceSelectionResType* v2gPaymentServiceSelectionResType) {
+void init_v2gBodyType(struct v2gBodyType* v2gBodyType) {
+	v2gBodyType->BodyElement_isUsed = 0u;
+	v2gBodyType->SessionSetupReq_isUsed = 0u;
+	v2gBodyType->SessionSetupRes_isUsed = 0u;
+	v2gBodyType->ServiceDiscoveryReq_isUsed = 0u;
+	v2gBodyType->ServiceDiscoveryRes_isUsed = 0u;
+	v2gBodyType->ServiceDetailReq_isUsed = 0u;
+	v2gBodyType->ServiceDetailRes_isUsed = 0u;
+	v2gBodyType->PaymentServiceSelectionReq_isUsed = 0u;
+	v2gBodyType->PaymentServiceSelectionRes_isUsed = 0u;
+	v2gBodyType->PaymentDetailsReq_isUsed = 0u;
+	v2gBodyType->PaymentDetailsRes_isUsed = 0u;
+	v2gBodyType->AuthorizationReq_isUsed = 0u;
+	v2gBodyType->AuthorizationRes_isUsed = 0u;
+	v2gBodyType->ChargeParameterDiscoveryReq_isUsed = 0u;
+	v2gBodyType->ChargeParameterDiscoveryRes_isUsed = 0u;
+	v2gBodyType->PowerDeliveryReq_isUsed = 0u;
+	v2gBodyType->PowerDeliveryRes_isUsed = 0u;
+	v2gBodyType->MeteringReceiptReq_isUsed = 0u;
+	v2gBodyType->MeteringReceiptRes_isUsed = 0u;
+	v2gBodyType->SessionStopReq_isUsed = 0u;
+	v2gBodyType->SessionStopRes_isUsed = 0u;
+	v2gBodyType->CertificateUpdateReq_isUsed = 0u;
+	v2gBodyType->CertificateUpdateRes_isUsed = 0u;
+	v2gBodyType->CertificateInstallationReq_isUsed = 0u;
+	v2gBodyType->CertificateInstallationRes_isUsed = 0u;
+	v2gBodyType->ChargingStatusReq_isUsed = 0u;
+	v2gBodyType->ChargingStatusRes_isUsed = 0u;
+	v2gBodyType->CableCheckReq_isUsed = 0u;
+	v2gBodyType->CableCheckRes_isUsed = 0u;
+	v2gBodyType->PreChargeReq_isUsed = 0u;
+	v2gBodyType->PreChargeRes_isUsed = 0u;
+	v2gBodyType->CurrentDemandReq_isUsed = 0u;
+	v2gBodyType->CurrentDemandRes_isUsed = 0u;
+	v2gBodyType->WeldingDetectionReq_isUsed = 0u;
+	v2gBodyType->WeldingDetectionRes_isUsed = 0u;
 }
 
-void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType) {
-	v2gKeyValueType->DSAKeyValue_isUsed = 0u;
-	v2gKeyValueType->RSAKeyValue_isUsed = 0u;
+void init_v2gTransformsType(struct v2gTransformsType* v2gTransformsType) {
+	v2gTransformsType->Transform.arrayLen = 0u;
 }
 
-void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType) {
-	v2gSessionSetupResType->EVSETimeStamp_isUsed = 0u;
+void init_v2gServiceDiscoveryReqType(struct v2gServiceDiscoveryReqType* v2gServiceDiscoveryReqType) {
+	v2gServiceDiscoveryReqType->ServiceScope_isUsed = 0u;
+	v2gServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
 }
 
-void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType) {
+void init_v2gEVSEStatusType(struct v2gEVSEStatusType* v2gEVSEStatusType) {
 }
 
-void init_v2gX509DataType(struct v2gX509DataType* v2gX509DataType) {
-	v2gX509DataType->X509IssuerSerial.arrayLen = 0u;
-	v2gX509DataType->X509SKI.arrayLen = 0u;
-	v2gX509DataType->X509SubjectName.arrayLen = 0u;
-	v2gX509DataType->X509Certificate.arrayLen = 0u;
-	v2gX509DataType->X509CRL.arrayLen = 0u;
+void init_v2gProfileEntryType(struct v2gProfileEntryType* v2gProfileEntryType) {
+	v2gProfileEntryType->ChargingProfileEntryMaxNumberOfPhasesInUse_isUsed = 0u;
 }
 
-void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
+void init_v2gKeyInfoType(struct v2gKeyInfoType* v2gKeyInfoType) {
+	v2gKeyInfoType->Id_isUsed = 0u;
+	v2gKeyInfoType->KeyName.arrayLen = 0u;
+	v2gKeyInfoType->KeyValue.arrayLen = 0u;
+	v2gKeyInfoType->RetrievalMethod.arrayLen = 0u;
+	v2gKeyInfoType->X509Data.arrayLen = 0u;
+	v2gKeyInfoType->PGPData.arrayLen = 0u;
+	v2gKeyInfoType->SPKIData.arrayLen = 0u;
+	v2gKeyInfoType->MgmtData.arrayLen = 0u;
 }
 
-void init_v2gPaymentOptionListType(struct v2gPaymentOptionListType* v2gPaymentOptionListType) {
-	v2gPaymentOptionListType->PaymentOption.arrayLen = 0u;
+void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType) {
+	v2gMessageHeaderType->Notification_isUsed = 0u;
+	v2gMessageHeaderType->Signature_isUsed = 0u;
 }
 
-void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType) {
-	v2gSignatureMethodType->HMACOutputLength_isUsed = 0u;
+void init_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
 }
 
-void init_v2gChargeParameterDiscoveryReqType(struct v2gChargeParameterDiscoveryReqType* v2gChargeParameterDiscoveryReqType) {
-	v2gChargeParameterDiscoveryReqType->MaxEntriesSAScheduleTuple_isUsed = 0u;
-	v2gChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
-	v2gChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
-	v2gChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
+void init_v2gAC_EVSEChargeParameterType(struct v2gAC_EVSEChargeParameterType* v2gAC_EVSEChargeParameterType) {
 }
 
-void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
+void init_v2gCertificateUpdateReqType(struct v2gCertificateUpdateReqType* v2gCertificateUpdateReqType) {
 }
 
-void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
+void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType) {
+}
+
+void init_v2gX509IssuerSerialType(struct v2gX509IssuerSerialType* v2gX509IssuerSerialType) {
 }
 
 void init_v2gListOfRootCertificateIDsType(struct v2gListOfRootCertificateIDsType* v2gListOfRootCertificateIDsType) {
 	v2gListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
 }
 
-void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
+void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
+	v2gServiceDiscoveryResType->ServiceList_isUsed = 0u;
 }
 
-void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
-	v2gCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
-	v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
-	v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
-	v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
-	v2gCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
-	v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
+void init_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
 }
 
-void init_v2gServiceType(struct v2gServiceType* v2gServiceType) {
-	v2gServiceType->ServiceName_isUsed = 0u;
-	v2gServiceType->ServiceScope_isUsed = 0u;
+void init_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
+	v2gPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
+	v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType) {
+void init_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
+	v2gCertificateUpdateResType->RetryCounter_isUsed = 0u;
 }
 
-void init_v2gConsumptionCostType(struct v2gConsumptionCostType* v2gConsumptionCostType) {
-	v2gConsumptionCostType->Cost.arrayLen = 0u;
+void init_v2gCertificateInstallationResType(struct v2gCertificateInstallationResType* v2gCertificateInstallationResType) {
 }
 
-void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
+void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType) {
 }
 
-void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType) {
+void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType) {
+	v2gPGPDataType->PGPKeyID_isUsed = 0u;
+	v2gPGPDataType->PGPKeyPacket_isUsed = 0u;
 }
 
-void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
+void init_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType) {
+	v2gServiceParameterListType->ParameterSet.arrayLen = 0u;
 }
 
-void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
-	v2gSignaturePropertiesType->Id_isUsed = 0u;
-	v2gSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+void init_v2gSessionStopReqType(struct v2gSessionStopReqType* v2gSessionStopReqType) {
 }
 
-void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
-	v2gSelectedServiceListType->SelectedService.arrayLen = 0u;
-}
-
-void init_v2gServiceDiscoveryResType(struct v2gServiceDiscoveryResType* v2gServiceDiscoveryResType) {
-	v2gServiceDiscoveryResType->ServiceList_isUsed = 0u;
-}
-
-void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType) {
+void init_v2gSASchedulesType(struct v2gSASchedulesType* v2gSASchedulesType) {
 }
 
-void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType) {
+void init_v2gWeldingDetectionReqType(struct v2gWeldingDetectionReqType* v2gWeldingDetectionReqType) {
 }
 
-void init_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType) {
-	v2gSignedInfoType->Id_isUsed = 0u;
-	v2gSignedInfoType->Reference.arrayLen = 0u;
+void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
 }
 
-void init_v2gCableCheckReqType(struct v2gCableCheckReqType* v2gCableCheckReqType) {
+void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
 }
 
-void init_v2gServiceListType(struct v2gServiceListType* v2gServiceListType) {
-	v2gServiceListType->Service.arrayLen = 0u;
+void init_v2gCurrentDemandReqType(struct v2gCurrentDemandReqType* v2gCurrentDemandReqType) {
+	v2gCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
+	v2gCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
+	v2gCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
+	v2gCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
+	v2gCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
+	v2gCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
 }
 
-void init_v2gAC_EVSEStatusType(struct v2gAC_EVSEStatusType* v2gAC_EVSEStatusType) {
+void init_v2gDC_EVStatusType(struct v2gDC_EVStatusType* v2gDC_EVStatusType) {
 }
 
-void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
-	v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
+void init_v2gDSAKeyValueType(struct v2gDSAKeyValueType* v2gDSAKeyValueType) {
+	v2gDSAKeyValueType->P_isUsed = 0u;
+	v2gDSAKeyValueType->Q_isUsed = 0u;
+	v2gDSAKeyValueType->G_isUsed = 0u;
+	v2gDSAKeyValueType->J_isUsed = 0u;
+	v2gDSAKeyValueType->Seed_isUsed = 0u;
+	v2gDSAKeyValueType->PgenCounter_isUsed = 0u;
 }
 
-void init_v2gSPKIDataType(struct v2gSPKIDataType* v2gSPKIDataType) {
-	v2gSPKIDataType->SPKISexp.arrayLen = 0u;
+void init_v2gChargingStatusResType(struct v2gChargingStatusResType* v2gChargingStatusResType) {
+	v2gChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
+	v2gChargingStatusResType->MeterInfo_isUsed = 0u;
+	v2gChargingStatusResType->ReceiptRequired_isUsed = 0u;
 }
 
-void init_v2gCurrentDemandResType(struct v2gCurrentDemandResType* v2gCurrentDemandResType) {
-	v2gCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
-	v2gCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
-	v2gCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
-	v2gCurrentDemandResType->MeterInfo_isUsed = 0u;
-	v2gCurrentDemandResType->ReceiptRequired_isUsed = 0u;
+void init_v2gReferenceType(struct v2gReferenceType* v2gReferenceType) {
+	v2gReferenceType->Id_isUsed = 0u;
+	v2gReferenceType->URI_isUsed = 0u;
+	v2gReferenceType->Type_isUsed = 0u;
+	v2gReferenceType->Transforms_isUsed = 0u;
 }
 
-void init_v2gKeyInfoType(struct v2gKeyInfoType* v2gKeyInfoType) {
-	v2gKeyInfoType->Id_isUsed = 0u;
-	v2gKeyInfoType->KeyName.arrayLen = 0u;
-	v2gKeyInfoType->KeyValue.arrayLen = 0u;
-	v2gKeyInfoType->RetrievalMethod.arrayLen = 0u;
-	v2gKeyInfoType->X509Data.arrayLen = 0u;
-	v2gKeyInfoType->PGPData.arrayLen = 0u;
-	v2gKeyInfoType->SPKIData.arrayLen = 0u;
-	v2gKeyInfoType->MgmtData.arrayLen = 0u;
+void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
 }
 
-void init_v2gObjectType(struct v2gObjectType* v2gObjectType) {
-	v2gObjectType->Id_isUsed = 0u;
-	v2gObjectType->MimeType_isUsed = 0u;
-	v2gObjectType->Encoding_isUsed = 0u;
+void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
 }
 
-void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
-	v2gSAScheduleTupleType->SalesTariff_isUsed = 0u;
+void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
+	v2gAC_EVChargeParameterType->DepartureTime_isUsed = 0u;
 }
 
-void init_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType) {
-	v2gSignatureValueType->Id_isUsed = 0u;
+void init_v2gSignatureMethodType(struct v2gSignatureMethodType* v2gSignatureMethodType) {
+	v2gSignatureMethodType->HMACOutputLength_isUsed = 0u;
 }
 
-void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
-	v2gPowerDeliveryResType->EVSEStatus_isUsed = 0u;
-	v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
-	v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
+void init_v2gCertificateInstallationReqType(struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
 }
 
-void init_v2gSubCertificatesType(struct v2gSubCertificatesType* v2gSubCertificatesType) {
-	v2gSubCertificatesType->Certificate.arrayLen = 0u;
+void init_v2gCertificateChainType(struct v2gCertificateChainType* v2gCertificateChainType) {
+	v2gCertificateChainType->Id_isUsed = 0u;
+	v2gCertificateChainType->SubCertificates_isUsed = 0u;
 }
 
-void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
-	v2gAuthorizationReqType->Id_isUsed = 0u;
-	v2gAuthorizationReqType->GenChallenge_isUsed = 0u;
+void init_v2gSessionSetupResType(struct v2gSessionSetupResType* v2gSessionSetupResType) {
+	v2gSessionSetupResType->EVSETimeStamp_isUsed = 0u;
 }
 
-void init_v2gChargingProfileType(struct v2gChargingProfileType* v2gChargingProfileType) {
-	v2gChargingProfileType->ProfileEntry.arrayLen = 0u;
+void init_v2gCostType(struct v2gCostType* v2gCostType) {
+	v2gCostType->amountMultiplier_isUsed = 0u;
 }
 
-void init_v2gEntryType(struct v2gEntryType* v2gEntryType) {
-	v2gEntryType->TimeInterval_isUsed = 0u;
-	v2gEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_v2gX509DataType(struct v2gX509DataType* v2gX509DataType) {
+	v2gX509DataType->X509IssuerSerial.arrayLen = 0u;
+	v2gX509DataType->X509SKI.arrayLen = 0u;
+	v2gX509DataType->X509SubjectName.arrayLen = 0u;
+	v2gX509DataType->X509Certificate.arrayLen = 0u;
+	v2gX509DataType->X509CRL.arrayLen = 0u;
 }
 
-void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType) {
+void init_v2gEMAIDType(struct v2gEMAIDType* v2gEMAIDType) {
 }
 
-void init_v2gSupportedEnergyTransferModeType(struct v2gSupportedEnergyTransferModeType* v2gSupportedEnergyTransferModeType) {
-	v2gSupportedEnergyTransferModeType->EnergyTransferMode.arrayLen = 0u;
+void init_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType) {
+	v2gMeterInfoType->MeterReading_isUsed = 0u;
+	v2gMeterInfoType->SigMeterReading_isUsed = 0u;
+	v2gMeterInfoType->MeterStatus_isUsed = 0u;
+	v2gMeterInfoType->TMeter_isUsed = 0u;
 }
 
-void init_v2gPhysicalValueType(struct v2gPhysicalValueType* v2gPhysicalValueType) {
+void init_v2gAuthorizationResType(struct v2gAuthorizationResType* v2gAuthorizationResType) {
 }
 
-void init_v2gChargeParameterDiscoveryResType(struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType) {
-	v2gChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
-	v2gChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
-	v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
-	v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
-	v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
+void init_v2gEntryType(struct v2gEntryType* v2gEntryType) {
+	v2gEntryType->TimeInterval_isUsed = 0u;
+	v2gEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_v2gParameterSetType(struct v2gParameterSetType* v2gParameterSetType) {
-	v2gParameterSetType->Parameter.arrayLen = 0u;
+void init_v2gServiceType(struct v2gServiceType* v2gServiceType) {
+	v2gServiceType->ServiceName_isUsed = 0u;
+	v2gServiceType->ServiceScope_isUsed = 0u;
 }
 
-void init_v2gPaymentDetailsReqType(struct v2gPaymentDetailsReqType* v2gPaymentDetailsReqType) {
+void init_v2gSelectedServiceListType(struct v2gSelectedServiceListType* v2gSelectedServiceListType) {
+	v2gSelectedServiceListType->SelectedService.arrayLen = 0u;
 }
 
-void init_v2gMeterInfoType(struct v2gMeterInfoType* v2gMeterInfoType) {
-	v2gMeterInfoType->MeterReading_isUsed = 0u;
-	v2gMeterInfoType->SigMeterReading_isUsed = 0u;
-	v2gMeterInfoType->MeterStatus_isUsed = 0u;
-	v2gMeterInfoType->TMeter_isUsed = 0u;
+void init_v2gChargeServiceType(struct v2gChargeServiceType* v2gChargeServiceType) {
+	v2gChargeServiceType->ServiceName_isUsed = 0u;
+	v2gChargeServiceType->ServiceScope_isUsed = 0u;
 }
 
-void init_v2gPaymentServiceSelectionReqType(struct v2gPaymentServiceSelectionReqType* v2gPaymentServiceSelectionReqType) {
+void init_v2gServiceDetailResType(struct v2gServiceDetailResType* v2gServiceDetailResType) {
+	v2gServiceDetailResType->ServiceParameterList_isUsed = 0u;
 }
 
-void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
-	v2gRetrievalMethodType->URI_isUsed = 0u;
-	v2gRetrievalMethodType->Type_isUsed = 0u;
-	v2gRetrievalMethodType->Transforms_isUsed = 0u;
+void init_v2gSignatureValueType(struct v2gSignatureValueType* v2gSignatureValueType) {
+	v2gSignatureValueType->Id_isUsed = 0u;
 }
 
-void init_v2gSessionSetupReqType(struct v2gSessionSetupReqType* v2gSessionSetupReqType) {
+void init_v2gSignaturePropertiesType(struct v2gSignaturePropertiesType* v2gSignaturePropertiesType) {
+	v2gSignaturePropertiesType->Id_isUsed = 0u;
+	v2gSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
 }
 
-void init_v2gDC_EVChargeParameterType(struct v2gDC_EVChargeParameterType* v2gDC_EVChargeParameterType) {
-	v2gDC_EVChargeParameterType->DepartureTime_isUsed = 0u;
-	v2gDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
-	v2gDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
-	v2gDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
-	v2gDC_EVChargeParameterType->FullSOC_isUsed = 0u;
-	v2gDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
+void init_v2gAuthorizationReqType(struct v2gAuthorizationReqType* v2gAuthorizationReqType) {
+	v2gAuthorizationReqType->Id_isUsed = 0u;
+	v2gAuthorizationReqType->GenChallenge_isUsed = 0u;
 }
 
-void init_v2gAnonType_V2G_Message(struct v2gAnonType_V2G_Message* v2gAnonType_V2G_Message) {
+void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType) {
 }
 
-void init_v2gDC_EVPowerDeliveryParameterType(struct v2gDC_EVPowerDeliveryParameterType* v2gDC_EVPowerDeliveryParameterType) {
-	v2gDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
+void init_v2gDC_EVSEChargeParameterType(struct v2gDC_EVSEChargeParameterType* v2gDC_EVSEChargeParameterType) {
+	v2gDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
+	v2gDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
 }
 
-void init_v2gRelativeTimeIntervalType(struct v2gRelativeTimeIntervalType* v2gRelativeTimeIntervalType) {
-	v2gRelativeTimeIntervalType->duration_isUsed = 0u;
+void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType) {
+	v2gSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
 }
 
-void init_v2gRSAKeyValueType(struct v2gRSAKeyValueType* v2gRSAKeyValueType) {
+void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType) {
 }
 
-void init_v2gPGPDataType(struct v2gPGPDataType* v2gPGPDataType) {
-	v2gPGPDataType->PGPKeyID_isUsed = 0u;
-	v2gPGPDataType->PGPKeyPacket_isUsed = 0u;
+void init_v2gKeyValueType(struct v2gKeyValueType* v2gKeyValueType) {
+	v2gKeyValueType->DSAKeyValue_isUsed = 0u;
+	v2gKeyValueType->RSAKeyValue_isUsed = 0u;
 }
 
-void init_v2gCertificateUpdateResType(struct v2gCertificateUpdateResType* v2gCertificateUpdateResType) {
-	v2gCertificateUpdateResType->RetryCounter_isUsed = 0u;
+void init_v2gEVPowerDeliveryParameterType(struct v2gEVPowerDeliveryParameterType* v2gEVPowerDeliveryParameterType) {
 }
 
-void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
+void init_v2gTransformType(struct v2gTransformType* v2gTransformType) {
+	v2gTransformType->XPath.arrayLen = 0u;
 }
 
-void init_v2gDSAKeyValueType(struct v2gDSAKeyValueType* v2gDSAKeyValueType) {
-	v2gDSAKeyValueType->P_isUsed = 0u;
-	v2gDSAKeyValueType->Q_isUsed = 0u;
-	v2gDSAKeyValueType->G_isUsed = 0u;
-	v2gDSAKeyValueType->J_isUsed = 0u;
-	v2gDSAKeyValueType->Seed_isUsed = 0u;
-	v2gDSAKeyValueType->PgenCounter_isUsed = 0u;
+void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType) {
 }
 
-void init_v2gBodyType(struct v2gBodyType* v2gBodyType) {
-	v2gBodyType->BodyElement_isUsed = 0u;
-	v2gBodyType->SessionSetupReq_isUsed = 0u;
-	v2gBodyType->SessionSetupRes_isUsed = 0u;
-	v2gBodyType->ServiceDiscoveryReq_isUsed = 0u;
-	v2gBodyType->ServiceDiscoveryRes_isUsed = 0u;
-	v2gBodyType->ServiceDetailReq_isUsed = 0u;
-	v2gBodyType->ServiceDetailRes_isUsed = 0u;
-	v2gBodyType->PaymentServiceSelectionReq_isUsed = 0u;
-	v2gBodyType->PaymentServiceSelectionRes_isUsed = 0u;
-	v2gBodyType->PaymentDetailsReq_isUsed = 0u;
-	v2gBodyType->PaymentDetailsRes_isUsed = 0u;
-	v2gBodyType->AuthorizationReq_isUsed = 0u;
-	v2gBodyType->AuthorizationRes_isUsed = 0u;
-	v2gBodyType->ChargeParameterDiscoveryReq_isUsed = 0u;
-	v2gBodyType->ChargeParameterDiscoveryRes_isUsed = 0u;
-	v2gBodyType->PowerDeliveryReq_isUsed = 0u;
-	v2gBodyType->PowerDeliveryRes_isUsed = 0u;
-	v2gBodyType->MeteringReceiptReq_isUsed = 0u;
-	v2gBodyType->MeteringReceiptRes_isUsed = 0u;
-	v2gBodyType->SessionStopReq_isUsed = 0u;
-	v2gBodyType->SessionStopRes_isUsed = 0u;
-	v2gBodyType->CertificateUpdateReq_isUsed = 0u;
-	v2gBodyType->CertificateUpdateRes_isUsed = 0u;
-	v2gBodyType->CertificateInstallationReq_isUsed = 0u;
-	v2gBodyType->CertificateInstallationRes_isUsed = 0u;
-	v2gBodyType->ChargingStatusReq_isUsed = 0u;
-	v2gBodyType->ChargingStatusRes_isUsed = 0u;
-	v2gBodyType->CableCheckReq_isUsed = 0u;
-	v2gBodyType->CableCheckRes_isUsed = 0u;
-	v2gBodyType->PreChargeReq_isUsed = 0u;
-	v2gBodyType->PreChargeRes_isUsed = 0u;
-	v2gBodyType->CurrentDemandReq_isUsed = 0u;
-	v2gBodyType->CurrentDemandRes_isUsed = 0u;
-	v2gBodyType->WeldingDetectionReq_isUsed = 0u;
-	v2gBodyType->WeldingDetectionRes_isUsed = 0u;
+void init_v2gSessionStopResType(struct v2gSessionStopResType* v2gSessionStopResType) {
 }
 
-void init_v2gCertificateInstallationReqType(struct v2gCertificateInstallationReqType* v2gCertificateInstallationReqType) {
+void init_v2gParameterType(struct v2gParameterType* v2gParameterType) {
+	v2gParameterType->boolValue_isUsed = 0u;
+	v2gParameterType->byteValue_isUsed = 0u;
+	v2gParameterType->shortValue_isUsed = 0u;
+	v2gParameterType->intValue_isUsed = 0u;
+	v2gParameterType->physicalValue_isUsed = 0u;
+	v2gParameterType->stringValue_isUsed = 0u;
 }
 
-void init_v2gServiceParameterListType(struct v2gServiceParameterListType* v2gServiceParameterListType) {
-	v2gServiceParameterListType->ParameterSet.arrayLen = 0u;
+void init_v2gServiceListType(struct v2gServiceListType* v2gServiceListType) {
+	v2gServiceListType->Service.arrayLen = 0u;
 }
 
-void init_v2gEVStatusType(struct v2gEVStatusType* v2gEVStatusType) {
+void init_v2gRetrievalMethodType(struct v2gRetrievalMethodType* v2gRetrievalMethodType) {
+	v2gRetrievalMethodType->URI_isUsed = 0u;
+	v2gRetrievalMethodType->Type_isUsed = 0u;
+	v2gRetrievalMethodType->Transforms_isUsed = 0u;
 }
 
-void init_v2gSAScheduleListType(struct v2gSAScheduleListType* v2gSAScheduleListType) {
-	v2gSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
+void init_v2gEVChargeParameterType(struct v2gEVChargeParameterType* v2gEVChargeParameterType) {
+	v2gEVChargeParameterType->DepartureTime_isUsed = 0u;
 }
 
-void init_v2gDigestMethodType(struct v2gDigestMethodType* v2gDigestMethodType) {
+void init_v2gCanonicalizationMethodType(struct v2gCanonicalizationMethodType* v2gCanonicalizationMethodType) {
 }
 
-void init_v2gCostType(struct v2gCostType* v2gCostType) {
-	v2gCostType->amountMultiplier_isUsed = 0u;
+void init_v2gIntervalType(struct v2gIntervalType* v2gIntervalType) {
 }
 
-void init_v2gMessageHeaderType(struct v2gMessageHeaderType* v2gMessageHeaderType) {
-	v2gMessageHeaderType->Notification_isUsed = 0u;
-	v2gMessageHeaderType->Signature_isUsed = 0u;
+void init_v2gPreChargeReqType(struct v2gPreChargeReqType* v2gPreChargeReqType) {
 }
 
-void init_v2gServiceDetailReqType(struct v2gServiceDetailReqType* v2gServiceDetailReqType) {
+void init_v2gDC_EVSEStatusType(struct v2gDC_EVSEStatusType* v2gDC_EVSEStatusType) {
+	v2gDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
 }
 
-void init_v2gTransformsType(struct v2gTransformsType* v2gTransformsType) {
-	v2gTransformsType->Transform.arrayLen = 0u;
+void init_v2gSignatureType(struct v2gSignatureType* v2gSignatureType) {
+	v2gSignatureType->Id_isUsed = 0u;
+	v2gSignatureType->KeyInfo_isUsed = 0u;
+	v2gSignatureType->Object.arrayLen = 0u;
 }
 
-void init_v2gWeldingDetectionResType(struct v2gWeldingDetectionResType* v2gWeldingDetectionResType) {
+void init_v2gCableCheckResType(struct v2gCableCheckResType* v2gCableCheckResType) {
 }
 
-void init_v2gPreChargeResType(struct v2gPreChargeResType* v2gPreChargeResType) {
+void init_v2gPaymentDetailsResType(struct v2gPaymentDetailsResType* v2gPaymentDetailsResType) {
 }
 
-void init_v2gAC_EVChargeParameterType(struct v2gAC_EVChargeParameterType* v2gAC_EVChargeParameterType) {
-	v2gAC_EVChargeParameterType->DepartureTime_isUsed = 0u;
+void init_v2gChargingStatusReqType(struct v2gChargingStatusReqType* v2gChargingStatusReqType) {
 }
 
-void init_v2gSalesTariffEntryType(struct v2gSalesTariffEntryType* v2gSalesTariffEntryType) {
-	v2gSalesTariffEntryType->TimeInterval_isUsed = 0u;
-	v2gSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
-	v2gSalesTariffEntryType->EPriceLevel_isUsed = 0u;
-	v2gSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+void init_v2gPMaxScheduleType(struct v2gPMaxScheduleType* v2gPMaxScheduleType) {
+	v2gPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
 }
 
-void init_v2gPMaxScheduleEntryType(struct v2gPMaxScheduleEntryType* v2gPMaxScheduleEntryType) {
-	v2gPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
-	v2gPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_v2gChargeParameterDiscoveryResType(struct v2gChargeParameterDiscoveryResType* v2gChargeParameterDiscoveryResType) {
+	v2gChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
+	v2gChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
+	v2gChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
+	v2gChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
+	v2gChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
 }
 
-void init_v2gBodyBaseType(struct v2gBodyBaseType* v2gBodyBaseType) {
+void init_v2gPowerDeliveryResType(struct v2gPowerDeliveryResType* v2gPowerDeliveryResType) {
+	v2gPowerDeliveryResType->EVSEStatus_isUsed = 0u;
+	v2gPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
+	v2gPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
 }
 
-void init_v2gSalesTariffType(struct v2gSalesTariffType* v2gSalesTariffType) {
-	v2gSalesTariffType->Id_isUsed = 0u;
-	v2gSalesTariffType->SalesTariffDescription_isUsed = 0u;
-	v2gSalesTariffType->NumEPriceLevels_isUsed = 0u;
-	v2gSalesTariffType->SalesTariffEntry.arrayLen = 0u;
+void init_v2gSAScheduleTupleType(struct v2gSAScheduleTupleType* v2gSAScheduleTupleType) {
+	v2gSAScheduleTupleType->SalesTariff_isUsed = 0u;
 }
 
-void init_v2gTransformType(struct v2gTransformType* v2gTransformType) {
-	v2gTransformType->XPath.arrayLen = 0u;
+void init_v2gSignedInfoType(struct v2gSignedInfoType* v2gSignedInfoType) {
+	v2gSignedInfoType->Id_isUsed = 0u;
+	v2gSignedInfoType->Reference.arrayLen = 0u;
 }
 
-void init_v2gDiffieHellmanPublickeyType(struct v2gDiffieHellmanPublickeyType* v2gDiffieHellmanPublickeyType) {
+void init_v2gMeteringReceiptResType(struct v2gMeteringReceiptResType* v2gMeteringReceiptResType) {
+	v2gMeteringReceiptResType->EVSEStatus_isUsed = 0u;
+	v2gMeteringReceiptResType->AC_EVSEStatus_isUsed = 0u;
+	v2gMeteringReceiptResType->DC_EVSEStatus_isUsed = 0u;
 }
 
 

Разлика између датотеке није приказан због своје велике величине
+ 475 - 489
src/codec/v2gEXIDatatypes.h


Разлика између датотеке није приказан због своје велике величине
+ 420 - 330
src/codec/v2gEXIDatatypesDecoder.c


+ 6 - 2
src/codec/v2gEXIDatatypesDecoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -50,6 +50,10 @@ extern "C" {
 #include "v2gEXIDatatypes.h"
 
 int decode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
+
+#if DEPLOY_ISO_CODEC_FRAGMENT == SUPPORT_YES
+int decode_v2gExiFragment(bitstream_t* stream, struct v2gEXIFragment* exiFrag);
+#endif /* DEPLOY_ISO_CODEC_FRAGMENT */
 
 #endif /* DEPLOY_ISO_CODEC */
 

Разлика између датотеке није приказан због своје велике величине
+ 413 - 363
src/codec/v2gEXIDatatypesEncoder.c


+ 7 - 2
src/codec/v2gEXIDatatypesEncoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -51,6 +51,11 @@ extern "C" {
 
 
 int encode_v2gExiDocument(bitstream_t* stream, struct v2gEXIDocument* exiDoc);
+
+#if DEPLOY_ISO_CODEC_FRAGMENT == SUPPORT_YES
+int encode_v2gExiFragment(bitstream_t* stream, struct v2gEXIFragment* exiFrag);
+#endif /* DEPLOY_ISO_CODEC_FRAGMENT */
+
 
 #endif /* DEPLOY_ISO_CODEC */
 

+ 531 - 224
src/din/dinEXIDatatypes.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -125,169 +125,471 @@ void init_dinEXIDocument(struct dinEXIDocument* exiDoc) {
 	exiDoc->ServiceDetailRes_isUsed = 0u;
 }
 
-void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType) {
+#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES
+void init_dinEXIFragment(struct dinEXIFragment* exiFrag) {
+	exiFrag->RSAKeyValue_isUsed = 0u;
+	exiFrag->ParameterSet_isUsed = 0u;
+	exiFrag->EVEnergyRequest_isUsed = 0u;
+	exiFrag->amount_isUsed = 0u;
+	exiFrag->start_isUsed = 0u;
+	exiFrag->Notification_isUsed = 0u;
+	exiFrag->ServiceScope_isUsed = 0u;
+	exiFrag->EVMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->Certificate_isUsed = 0u;
+	exiFrag->Certificate_isUsed = 0u;
+	exiFrag->EVCabinConditioning_isUsed = 0u;
+	exiFrag->EVSECurrentLimitAchieved_isUsed = 0u;
+	exiFrag->EVMaxCurrent_isUsed = 0u;
+	exiFrag->CertificateInstallationRes_isUsed = 0u;
+	exiFrag->EVMaxVoltage_isUsed = 0u;
+	exiFrag->Exponent_isUsed = 0u;
+	exiFrag->SubCertificates_isUsed = 0u;
+	exiFrag->FaultCode_isUsed = 0u;
+	exiFrag->EVRequestedEnergyTransferType_isUsed = 0u;
+	exiFrag->EVMinCurrent_isUsed = 0u;
+	exiFrag->boolValue_isUsed = 0u;
+	exiFrag->J_isUsed = 0u;
+	exiFrag->EVSEStatus_isUsed = 0u;
+	exiFrag->ServicePaymentSelectionReq_isUsed = 0u;
+	exiFrag->Transforms_isUsed = 0u;
+	exiFrag->X509CRL_isUsed = 0u;
+	exiFrag->Manifest_isUsed = 0u;
+	exiFrag->EVSEMinimumVoltageLimit_isUsed = 0u;
+	exiFrag->EVSECurrentRegulationTolerance_isUsed = 0u;
+	exiFrag->EVMaximumPowerLimit_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->V2G_Message_isUsed = 0u;
+	exiFrag->Parameter_isUsed = 0u;
+	exiFrag->EVTargetCurrent_isUsed = 0u;
+	exiFrag->EVTargetCurrent_isUsed = 0u;
+	exiFrag->DigestMethod_isUsed = 0u;
+	exiFrag->byteValue_isUsed = 0u;
+	exiFrag->PaymentOptions_isUsed = 0u;
+	exiFrag->EVMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->ChargingComplete_isUsed = 0u;
+	exiFrag->Multiplier_isUsed = 0u;
+	exiFrag->EVSEIsolationStatus_isUsed = 0u;
+	exiFrag->EVSEPeakCurrentRipple_isUsed = 0u;
+	exiFrag->ReadyToChargeState_isUsed = 0u;
+	exiFrag->X509IssuerSerial_isUsed = 0u;
+	exiFrag->duration_isUsed = 0u;
+	exiFrag->NotificationMaxDelay_isUsed = 0u;
+	exiFrag->NotificationMaxDelay_isUsed = 0u;
+	exiFrag->ServiceDetailRes_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->EVSEProcessing_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->ServiceDetailReq_isUsed = 0u;
+	exiFrag->DC_EVPowerDeliveryParameter_isUsed = 0u;
+	exiFrag->PgenCounter_isUsed = 0u;
+	exiFrag->EVChargeParameter_isUsed = 0u;
+	exiFrag->RelativeTimeInterval_isUsed = 0u;
+	exiFrag->SelectedServiceList_isUsed = 0u;
+	exiFrag->X509SerialNumber_isUsed = 0u;
+	exiFrag->SalesTariffEntry_isUsed = 0u;
+	exiFrag->SAScheduleTuple_isUsed = 0u;
+	exiFrag->Reference_isUsed = 0u;
+	exiFrag->SignedInfo_isUsed = 0u;
+	exiFrag->CableCheckReq_isUsed = 0u;
+	exiFrag->PowerDeliveryReq_isUsed = 0u;
+	exiFrag->EVPowerDeliveryParameter_isUsed = 0u;
+	exiFrag->MeteringReceiptReq_isUsed = 0u;
+	exiFrag->DC_EVChargeParameter_isUsed = 0u;
+	exiFrag->KeyValue_isUsed = 0u;
+	exiFrag->Y_isUsed = 0u;
+	exiFrag->ChargingProfileEntryMaxPower_isUsed = 0u;
+	exiFrag->EVRESSConditioning_isUsed = 0u;
+	exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->EPriceLevel_isUsed = 0u;
+	exiFrag->ServiceList_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->PMaxSchedule_isUsed = 0u;
+	exiFrag->EVSEPowerLimitAchieved_isUsed = 0u;
+	exiFrag->CertificateUpdateRes_isUsed = 0u;
+	exiFrag->EVSEEnergyToBeDelivered_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->ServiceTag_isUsed = 0u;
+	exiFrag->SignatureMethod_isUsed = 0u;
+	exiFrag->TimeInterval_isUsed = 0u;
+	exiFrag->amountMultiplier_isUsed = 0u;
+	exiFrag->X509Data_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->ContractSignatureCertChain_isUsed = 0u;
+	exiFrag->Seed_isUsed = 0u;
+	exiFrag->Modulus_isUsed = 0u;
+	exiFrag->ServiceCategory_isUsed = 0u;
+	exiFrag->MeterStatus_isUsed = 0u;
+	exiFrag->EVMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->KeyInfo_isUsed = 0u;
+	exiFrag->CertificateInstallationReq_isUsed = 0u;
+	exiFrag->ChargingProfile_isUsed = 0u;
+	exiFrag->BulkSOC_isUsed = 0u;
+	exiFrag->X509IssuerName_isUsed = 0u;
+	exiFrag->EVRESSSOC_isUsed = 0u;
+	exiFrag->X509SubjectName_isUsed = 0u;
+	exiFrag->AC_EVSEChargeParameter_isUsed = 0u;
+	exiFrag->MgmtData_isUsed = 0u;
+	exiFrag->Value_isUsed = 0u;
+	exiFrag->ChargingStatusRes_isUsed = 0u;
+	exiFrag->ServiceName_isUsed = 0u;
+	exiFrag->FreeService_isUsed = 0u;
+	exiFrag->physicalValue_isUsed = 0u;
+	exiFrag->EVSEMaxVoltage_isUsed = 0u;
+	exiFrag->intValue_isUsed = 0u;
+	exiFrag->PGPKeyID_isUsed = 0u;
+	exiFrag->ChargeParameterDiscoveryRes_isUsed = 0u;
+	exiFrag->ServiceCategory_isUsed = 0u;
+	exiFrag->MeteringReceiptRes_isUsed = 0u;
+	exiFrag->EVSEID_isUsed = 0u;
+	exiFrag->EVSEID_isUsed = 0u;
+	exiFrag->EVMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->costKind_isUsed = 0u;
+	exiFrag->X509SKI_isUsed = 0u;
+	exiFrag->MeterID_isUsed = 0u;
+	exiFrag->OEMProvisioningCert_isUsed = 0u;
+	exiFrag->Entry_isUsed = 0u;
+	exiFrag->SignatureProperties_isUsed = 0u;
+	exiFrag->P_isUsed = 0u;
+	exiFrag->PreChargeReq_isUsed = 0u;
+	exiFrag->SignatureValue_isUsed = 0u;
+	exiFrag->EVSENotification_isUsed = 0u;
+	exiFrag->EVSENotification_isUsed = 0u;
+	exiFrag->BulkChargingComplete_isUsed = 0u;
+	exiFrag->EVMaximumPowerLimit_isUsed = 0u;
+	exiFrag->RCD_isUsed = 0u;
+	exiFrag->ServiceParameterList_isUsed = 0u;
+	exiFrag->SelectedService_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->ResponseCode_isUsed = 0u;
+	exiFrag->SessionStopRes_isUsed = 0u;
+	exiFrag->PGPData_isUsed = 0u;
+	exiFrag->EVEnergyCapacity_isUsed = 0u;
+	exiFrag->startValue_isUsed = 0u;
+	exiFrag->ServicePaymentSelectionRes_isUsed = 0u;
+	exiFrag->EnergyTransferType_isUsed = 0u;
+	exiFrag->ChargingComplete_isUsed = 0u;
+	exiFrag->ListOfRootCertificateIDs_isUsed = 0u;
+	exiFrag->ListOfRootCertificateIDs_isUsed = 0u;
+	exiFrag->NumEPriceLevels_isUsed = 0u;
+	exiFrag->EVSEStatusCode_isUsed = 0u;
+	exiFrag->SASchedules_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVSEChargeParameter_isUsed = 0u;
+	exiFrag->MeterInfo_isUsed = 0u;
+	exiFrag->MeterInfo_isUsed = 0u;
+	exiFrag->X509Certificate_isUsed = 0u;
+	exiFrag->shortValue_isUsed = 0u;
+	exiFrag->SPKISexp_isUsed = 0u;
+	exiFrag->SalesTariffID_isUsed = 0u;
+	exiFrag->CanonicalizationMethod_isUsed = 0u;
+	exiFrag->TMeter_isUsed = 0u;
+	exiFrag->PaymentDetailsRes_isUsed = 0u;
+	exiFrag->EVCCID_isUsed = 0u;
+	exiFrag->EVSEMaximumPowerLimit_isUsed = 0u;
+	exiFrag->EVSEChargeParameter_isUsed = 0u;
+	exiFrag->Body_isUsed = 0u;
+	exiFrag->DateTimeNow_isUsed = 0u;
+	exiFrag->DateTimeNow_isUsed = 0u;
+	exiFrag->EVSEMaximumPowerLimit_isUsed = 0u;
+	exiFrag->SPKIData_isUsed = 0u;
+	exiFrag->Object_isUsed = 0u;
+	exiFrag->ServiceCharge_isUsed = 0u;
+	exiFrag->SessionID_isUsed = 0u;
+	exiFrag->FullSOC_isUsed = 0u;
+	exiFrag->SAScheduleList_isUsed = 0u;
+	exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->DSAKeyValue_isUsed = 0u;
+	exiFrag->ChargeParameterDiscoveryReq_isUsed = 0u;
+	exiFrag->EVStatus_isUsed = 0u;
+	exiFrag->stringValue_isUsed = 0u;
+	exiFrag->PowerDeliveryRes_isUsed = 0u;
+	exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u;
+	exiFrag->CertificateUpdateReq_isUsed = 0u;
+	exiFrag->ContractSignatureEncryptedPrivateKey_isUsed = 0u;
+	exiFrag->Signature_isUsed = 0u;
+	exiFrag->ContractAuthenticationRes_isUsed = 0u;
+	exiFrag->Transform_isUsed = 0u;
+	exiFrag->PaymentOption_isUsed = 0u;
+	exiFrag->G_isUsed = 0u;
+	exiFrag->ReceiptRequired_isUsed = 0u;
+	exiFrag->EVSEMaximumCurrentLimit_isUsed = 0u;
+	exiFrag->Unit_isUsed = 0u;
+	exiFrag->ConsumptionCost_isUsed = 0u;
+	exiFrag->EVSEMaxCurrent_isUsed = 0u;
+	exiFrag->SalesTariffDescription_isUsed = 0u;
+	exiFrag->ContractID_isUsed = 0u;
+	exiFrag->AC_EVChargeParameter_isUsed = 0u;
+	exiFrag->ContractID_isUsed = 0u;
+	exiFrag->ContractID_isUsed = 0u;
+	exiFrag->ContractID_isUsed = 0u;
+	exiFrag->RemainingTimeToBulkSoC_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->CableCheckRes_isUsed = 0u;
+	exiFrag->SessionID_isUsed = 0u;
+	exiFrag->RemainingTimeToFullSoC_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->EVSEPresentVoltage_isUsed = 0u;
+	exiFrag->SessionSetupReq_isUsed = 0u;
+	exiFrag->PreChargeRes_isUsed = 0u;
+	exiFrag->KeyName_isUsed = 0u;
+	exiFrag->EVReady_isUsed = 0u;
+	exiFrag->CurrentDemandRes_isUsed = 0u;
+	exiFrag->PMaxScheduleEntry_isUsed = 0u;
+	exiFrag->ServiceDiscoveryRes_isUsed = 0u;
+	exiFrag->PaymentDetailsReq_isUsed = 0u;
+	exiFrag->SelectedPaymentOption_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->DigestValue_isUsed = 0u;
+	exiFrag->SAScheduleTupleID_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->ServiceID_isUsed = 0u;
+	exiFrag->RetryCounter_isUsed = 0u;
+	exiFrag->SalesTariff_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->DC_EVStatus_isUsed = 0u;
+	exiFrag->WeldingDetectionReq_isUsed = 0u;
+	exiFrag->SigMeterReading_isUsed = 0u;
+	exiFrag->FaultMsg_isUsed = 0u;
+	exiFrag->PMax_isUsed = 0u;
+	exiFrag->PowerSwitchClosed_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->AC_EVSEStatus_isUsed = 0u;
+	exiFrag->ParameterSetID_isUsed = 0u;
+	exiFrag->ParameterSetID_isUsed = 0u;
+	exiFrag->EAmount_isUsed = 0u;
+	exiFrag->RetrievalMethod_isUsed = 0u;
+	exiFrag->ChargingProfileEntryStart_isUsed = 0u;
+	exiFrag->ServiceDiscoveryReq_isUsed = 0u;
+	exiFrag->DepartureTime_isUsed = 0u;
+	exiFrag->EVSEMinimumCurrentLimit_isUsed = 0u;
+	exiFrag->CurrentDemandReq_isUsed = 0u;
+	exiFrag->ChargeService_isUsed = 0u;
+	exiFrag->BodyElement_isUsed = 0u;
+	exiFrag->Cost_isUsed = 0u;
+	exiFrag->ServiceScope_isUsed = 0u;
+	exiFrag->HMACOutputLength_isUsed = 0u;
+	exiFrag->MeterReading_isUsed = 0u;
+	exiFrag->DHParams_isUsed = 0u;
+	exiFrag->DHParams_isUsed = 0u;
+	exiFrag->DHParams_isUsed = 0u;
+	exiFrag->DHParams_isUsed = 0u;
+	exiFrag->BulkChargingComplete_isUsed = 0u;
+	exiFrag->SignatureProperty_isUsed = 0u;
+	exiFrag->EVSEMaxCurrent_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->DC_EVSEStatus_isUsed = 0u;
+	exiFrag->Service_isUsed = 0u;
+	exiFrag->PMaxScheduleID_isUsed = 0u;
+	exiFrag->EVSEPresentCurrent_isUsed = 0u;
+	exiFrag->EVSEVoltageLimitAchieved_isUsed = 0u;
+	exiFrag->SessionSetupRes_isUsed = 0u;
+	exiFrag->EVSEMaximumVoltageLimit_isUsed = 0u;
+	exiFrag->SessionStopReq_isUsed = 0u;
+	exiFrag->ContractAuthenticationReq_isUsed = 0u;
+	exiFrag->ProfileEntry_isUsed = 0u;
+	exiFrag->EVErrorCode_isUsed = 0u;
+	exiFrag->RootCertificateID_isUsed = 0u;
+	exiFrag->EVSEMinCurrent_isUsed = 0u;
+	exiFrag->EVTargetVoltage_isUsed = 0u;
+	exiFrag->ChargingStatusReq_isUsed = 0u;
+	exiFrag->EVTargetVoltage_isUsed = 0u;
+	exiFrag->Header_isUsed = 0u;
+	exiFrag->GenChallenge_isUsed = 0u;
+	exiFrag->XPath_isUsed = 0u;
+	exiFrag->Q_isUsed = 0u;
+	exiFrag->GenChallenge_isUsed = 0u;
+	exiFrag->WeldingDetectionRes_isUsed = 0u;
+}
+#endif /* DEPLOY_DIN_CODEC_FRAGMENT */
+
+void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType) {
+	dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
+	dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
+	dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
 }
 
-void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType) {
-	dinMessageHeaderType->Notification_isUsed = 0u;
-	dinMessageHeaderType->Signature_isUsed = 0u;
+void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) {
 }
 
 void init_dinServiceDetailReqType(struct dinServiceDetailReqType* dinServiceDetailReqType) {
 }
 
-void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) {
+void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) {
 }
 
-void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMethodType) {
-	dinRetrievalMethodType->URI_isUsed = 0u;
-	dinRetrievalMethodType->Type_isUsed = 0u;
-	dinRetrievalMethodType->Transforms_isUsed = 0u;
+void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType) {
+	dinSPKIDataType->SPKISexp.arrayLen = 0u;
 }
 
 void init_dinSessionSetupResType(struct dinSessionSetupResType* dinSessionSetupResType) {
 	dinSessionSetupResType->DateTimeNow_isUsed = 0u;
 }
 
-void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType) {
+void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType) {
+	dinPGPDataType->PGPKeyID_isUsed = 0u;
+	dinPGPDataType->PGPKeyPacket_isUsed = 0u;
 }
 
-void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType) {
+void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType) {
 }
 
-void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) {
-	dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
-	dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
-	dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
-	dinDC_EVChargeParameterType->FullSOC_isUsed = 0u;
-	dinDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
+void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) {
+	dinChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
 }
 
-void init_dinSPKIDataType(struct dinSPKIDataType* dinSPKIDataType) {
-	dinSPKIDataType->SPKISexp.arrayLen = 0u;
+void init_dinManifestType(struct dinManifestType* dinManifestType) {
+	dinManifestType->Id_isUsed = 0u;
+	dinManifestType->Reference.arrayLen = 0u;
 }
 
-void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) {
-	dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
+void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) {
 }
 
 void init_dinBodyBaseType(struct dinBodyBaseType* dinBodyBaseType) {
 }
 
-void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType) {
-}
-
-void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) {
-	dinCertificateInstallationReqType->Id_isUsed = 0u;
+void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) {
+	dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
 }
 
-void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType) {
-	dinSignatureMethodType->HMACOutputLength_isUsed = 0u;
+void init_dinCableCheckReqType(struct dinCableCheckReqType* dinCableCheckReqType) {
 }
 
-void init_dinIntervalType(struct dinIntervalType* dinIntervalType) {
+void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType) {
 }
 
-void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType) {
-	dinSelectedServiceListType->SelectedService.arrayLen = 0u;
+void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType) {
+	dinSalesTariffType->SalesTariffDescription_isUsed = 0u;
+	dinSalesTariffType->SalesTariffEntry.arrayLen = 0u;
 }
 
-void init_dinCableCheckReqType(struct dinCableCheckReqType* dinCableCheckReqType) {
+void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) {
 }
 
-void init_dinServicePaymentSelectionResType(struct dinServicePaymentSelectionResType* dinServicePaymentSelectionResType) {
+void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType) {
 }
 
-void init_dinChargeParameterDiscoveryResType(struct dinChargeParameterDiscoveryResType* dinChargeParameterDiscoveryResType) {
-	dinChargeParameterDiscoveryResType->SASchedules_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->SAScheduleList_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->EVSEChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->AC_EVSEChargeParameter_isUsed = 0u;
-	dinChargeParameterDiscoveryResType->DC_EVSEChargeParameter_isUsed = 0u;
+void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType) {
+	dinSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
 }
 
-void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType) {
+void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType) {
+	dinCertificateChainType->SubCertificates_isUsed = 0u;
 }
 
-void init_dinCableCheckResType(struct dinCableCheckResType* dinCableCheckResType) {
+void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType) {
+	dinSignaturePropertiesType->Id_isUsed = 0u;
+	dinSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
 }
 
-void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType) {
-	dinMeterInfoType->MeterReading_isUsed = 0u;
-	dinMeterInfoType->SigMeterReading_isUsed = 0u;
-	dinMeterInfoType->MeterStatus_isUsed = 0u;
-	dinMeterInfoType->TMeter_isUsed = 0u;
+void init_dinMessageHeaderType(struct dinMessageHeaderType* dinMessageHeaderType) {
+	dinMessageHeaderType->Notification_isUsed = 0u;
+	dinMessageHeaderType->Signature_isUsed = 0u;
 }
 
-void init_dinCurrentDemandResType(struct dinCurrentDemandResType* dinCurrentDemandResType) {
-	dinCurrentDemandResType->EVSEMaximumVoltageLimit_isUsed = 0u;
-	dinCurrentDemandResType->EVSEMaximumCurrentLimit_isUsed = 0u;
-	dinCurrentDemandResType->EVSEMaximumPowerLimit_isUsed = 0u;
+void init_dinPreChargeResType(struct dinPreChargeResType* dinPreChargeResType) {
 }
 
-void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType) {
-	dinParameterSetType->Parameter.arrayLen = 0u;
+void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType) {
 }
 
-void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType) {
-	dinSubCertificatesType->Certificate.arrayLen = 0u;
+void init_dinNotificationType(struct dinNotificationType* dinNotificationType) {
+	dinNotificationType->FaultMsg_isUsed = 0u;
 }
 
-void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType) {
+void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) {
+	dinContractAuthenticationReqType->Id_isUsed = 0u;
+	dinContractAuthenticationReqType->GenChallenge_isUsed = 0u;
 }
 
-void init_dinAC_EVSEStatusType(struct dinAC_EVSEStatusType* dinAC_EVSEStatusType) {
+void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType) {
+	dinPhysicalValueType->Unit_isUsed = 0u;
 }
 
-void init_dinEntryType(struct dinEntryType* dinEntryType) {
-	dinEntryType->TimeInterval_isUsed = 0u;
-	dinEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType) {
+	dinChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
+	dinChargingStatusResType->MeterInfo_isUsed = 0u;
 }
 
-void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) {
-	dinPowerDeliveryReqType->ChargingProfile_isUsed = 0u;
-	dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u;
-	dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
+void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) {
+	dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
 }
 
-void init_dinCostType(struct dinCostType* dinCostType) {
-	dinCostType->amountMultiplier_isUsed = 0u;
+void init_dinProfileEntryType(struct dinProfileEntryType* dinProfileEntryType) {
 }
 
-void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) {
+void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) {
 }
 
 void init_dinServiceDiscoveryResType(struct dinServiceDiscoveryResType* dinServiceDiscoveryResType) {
 	dinServiceDiscoveryResType->ServiceList_isUsed = 0u;
 }
 
+void init_dinSignatureType(struct dinSignatureType* dinSignatureType) {
+	dinSignatureType->Id_isUsed = 0u;
+	dinSignatureType->KeyInfo_isUsed = 0u;
+	dinSignatureType->Object.arrayLen = 0u;
+}
+
 void init_dinPaymentOptionsType(struct dinPaymentOptionsType* dinPaymentOptionsType) {
 	dinPaymentOptionsType->PaymentOption.arrayLen = 0u;
 }
 
-void init_dinPGPDataType(struct dinPGPDataType* dinPGPDataType) {
-	dinPGPDataType->PGPKeyID_isUsed = 0u;
-	dinPGPDataType->PGPKeyPacket_isUsed = 0u;
+void init_dinParameterType(struct dinParameterType* dinParameterType) {
+	dinParameterType->boolValue_isUsed = 0u;
+	dinParameterType->byteValue_isUsed = 0u;
+	dinParameterType->shortValue_isUsed = 0u;
+	dinParameterType->intValue_isUsed = 0u;
+	dinParameterType->physicalValue_isUsed = 0u;
+	dinParameterType->stringValue_isUsed = 0u;
 }
 
-void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType) {
-	dinChargingProfileType->ProfileEntry.arrayLen = 0u;
+void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType) {
+	dinSignaturePropertyType->Id_isUsed = 0u;
 }
 
-void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType) {
-	dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
-	dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
-	dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
-	dinCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
-	dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
-	dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
+void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) {
 }
 
-void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType) {
-	dinSignedInfoType->Id_isUsed = 0u;
-	dinSignedInfoType->Reference.arrayLen = 0u;
+void init_dinWeldingDetectionReqType(struct dinWeldingDetectionReqType* dinWeldingDetectionReqType) {
+}
+
+void init_dinTransformsType(struct dinTransformsType* dinTransformsType) {
+	dinTransformsType->Transform.arrayLen = 0u;
 }
 
 void init_dinServiceType(struct dinServiceType* dinServiceType) {
@@ -331,71 +633,54 @@ void init_dinBodyType(struct dinBodyType* dinBodyType) {
 	dinBodyType->WeldingDetectionRes_isUsed = 0u;
 }
 
-void init_dinAC_EVChargeParameterType(struct dinAC_EVChargeParameterType* dinAC_EVChargeParameterType) {
-}
-
-void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType) {
-	dinSAScheduleTupleType->SalesTariff_isUsed = 0u;
-}
-
-void init_dinSAScheduleListType(struct dinSAScheduleListType* dinSAScheduleListType) {
-	dinSAScheduleListType->SAScheduleTuple.arrayLen = 0u;
+void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType) {
+	dinDC_EVStatusType->EVCabinConditioning_isUsed = 0u;
+	dinDC_EVStatusType->EVRESSConditioning_isUsed = 0u;
 }
 
-void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) {
+void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) {
+	dinPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
+	dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
 void init_dinPMaxScheduleType(struct dinPMaxScheduleType* dinPMaxScheduleType) {
 	dinPMaxScheduleType->PMaxScheduleEntry.arrayLen = 0u;
 }
 
-void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) {
-	dinListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
-}
-
-void init_dinCanonicalizationMethodType(struct dinCanonicalizationMethodType* dinCanonicalizationMethodType) {
+void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType) {
+	dinSelectedServiceType->ParameterSetID_isUsed = 0u;
 }
 
-void init_dinTransformType(struct dinTransformType* dinTransformType) {
-	dinTransformType->XPath.arrayLen = 0u;
+void init_dinIntervalType(struct dinIntervalType* dinIntervalType) {
 }
 
-void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType) {
-	dinKeyInfoType->Id_isUsed = 0u;
-	dinKeyInfoType->KeyName.arrayLen = 0u;
-	dinKeyInfoType->KeyValue.arrayLen = 0u;
-	dinKeyInfoType->RetrievalMethod.arrayLen = 0u;
-	dinKeyInfoType->X509Data.arrayLen = 0u;
-	dinKeyInfoType->PGPData.arrayLen = 0u;
-	dinKeyInfoType->SPKIData.arrayLen = 0u;
-	dinKeyInfoType->MgmtData.arrayLen = 0u;
+void init_dinCertificateInstallationReqType(struct dinCertificateInstallationReqType* dinCertificateInstallationReqType) {
+	dinCertificateInstallationReqType->Id_isUsed = 0u;
 }
 
-void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType) {
+void init_dinTransformType(struct dinTransformType* dinTransformType) {
+	dinTransformType->XPath.arrayLen = 0u;
 }
 
-void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType) {
+void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType) {
+	dinKeyValueType->DSAKeyValue_isUsed = 0u;
+	dinKeyValueType->RSAKeyValue_isUsed = 0u;
 }
 
-void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType) {
-	dinServiceParameterListType->ParameterSet.arrayLen = 0u;
+void init_dinRetrievalMethodType(struct dinRetrievalMethodType* dinRetrievalMethodType) {
+	dinRetrievalMethodType->URI_isUsed = 0u;
+	dinRetrievalMethodType->Type_isUsed = 0u;
+	dinRetrievalMethodType->Transforms_isUsed = 0u;
 }
 
-void init_dinSignatureType(struct dinSignatureType* dinSignatureType) {
-	dinSignatureType->Id_isUsed = 0u;
-	dinSignatureType->KeyInfo_isUsed = 0u;
-	dinSignatureType->Object.arrayLen = 0u;
+void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType) {
 }
 
-void init_dinMeteringReceiptResType(struct dinMeteringReceiptResType* dinMeteringReceiptResType) {
+void init_dinServiceChargeType(struct dinServiceChargeType* dinServiceChargeType) {
 }
 
-void init_dinX509DataType(struct dinX509DataType* dinX509DataType) {
-	dinX509DataType->X509IssuerSerial.arrayLen = 0u;
-	dinX509DataType->X509SKI.arrayLen = 0u;
-	dinX509DataType->X509SubjectName.arrayLen = 0u;
-	dinX509DataType->X509Certificate.arrayLen = 0u;
-	dinX509DataType->X509CRL.arrayLen = 0u;
+void init_dinParameterSetType(struct dinParameterSetType* dinParameterSetType) {
+	dinParameterSetType->Parameter.arrayLen = 0u;
 }
 
 void init_dinReferenceType(struct dinReferenceType* dinReferenceType) {
@@ -405,84 +690,89 @@ void init_dinReferenceType(struct dinReferenceType* dinReferenceType) {
 	dinReferenceType->Transforms_isUsed = 0u;
 }
 
-void init_dinPhysicalValueType(struct dinPhysicalValueType* dinPhysicalValueType) {
-	dinPhysicalValueType->Unit_isUsed = 0u;
-}
-
-void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) {
-	dinRelativeTimeIntervalType->duration_isUsed = 0u;
+void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType) {
 }
 
-void init_dinSalesTariffType(struct dinSalesTariffType* dinSalesTariffType) {
-	dinSalesTariffType->SalesTariffDescription_isUsed = 0u;
-	dinSalesTariffType->SalesTariffEntry.arrayLen = 0u;
+void init_dinObjectType(struct dinObjectType* dinObjectType) {
+	dinObjectType->Id_isUsed = 0u;
+	dinObjectType->MimeType_isUsed = 0u;
+	dinObjectType->Encoding_isUsed = 0u;
 }
 
 void init_dinSignatureValueType(struct dinSignatureValueType* dinSignatureValueType) {
 	dinSignatureValueType->Id_isUsed = 0u;
 }
 
-void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType) {
+void init_dinSelectedServiceListType(struct dinSelectedServiceListType* dinSelectedServiceListType) {
+	dinSelectedServiceListType->SelectedService.arrayLen = 0u;
 }
 
-void init_dinChargingStatusResType(struct dinChargingStatusResType* dinChargingStatusResType) {
-	dinChargingStatusResType->EVSEMaxCurrent_isUsed = 0u;
-	dinChargingStatusResType->MeterInfo_isUsed = 0u;
+void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType) {
+	dinSalesTariffEntryType->TimeInterval_isUsed = 0u;
+	dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
+	dinSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
 }
 
-void init_dinManifestType(struct dinManifestType* dinManifestType) {
-	dinManifestType->Id_isUsed = 0u;
-	dinManifestType->Reference.arrayLen = 0u;
+void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType) {
+	dinConsumptionCostType->Cost.arrayLen = 0u;
 }
 
-void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType) {
+void init_dinRSAKeyValueType(struct dinRSAKeyValueType* dinRSAKeyValueType) {
 }
 
-void init_dinPMaxScheduleEntryType(struct dinPMaxScheduleEntryType* dinPMaxScheduleEntryType) {
-	dinPMaxScheduleEntryType->TimeInterval_isUsed = 0u;
-	dinPMaxScheduleEntryType->RelativeTimeInterval_isUsed = 0u;
+void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) {
+	dinMeteringReceiptReqType->Id_isUsed = 0u;
+	dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
 }
 
-void init_dinDC_EVSEStatusType(struct dinDC_EVSEStatusType* dinDC_EVSEStatusType) {
-	dinDC_EVSEStatusType->EVSEIsolationStatus_isUsed = 0u;
+void init_dinSAScheduleTupleType(struct dinSAScheduleTupleType* dinSAScheduleTupleType) {
+	dinSAScheduleTupleType->SalesTariff_isUsed = 0u;
 }
 
-void init_dinPreChargeReqType(struct dinPreChargeReqType* dinPreChargeReqType) {
+void init_dinRelativeTimeIntervalType(struct dinRelativeTimeIntervalType* dinRelativeTimeIntervalType) {
+	dinRelativeTimeIntervalType->duration_isUsed = 0u;
 }
 
-void init_dinTransformsType(struct dinTransformsType* dinTransformsType) {
-	dinTransformsType->Transform.arrayLen = 0u;
+void init_dinChargingProfileType(struct dinChargingProfileType* dinChargingProfileType) {
+	dinChargingProfileType->ProfileEntry.arrayLen = 0u;
 }
 
-void init_dinParameterType(struct dinParameterType* dinParameterType) {
-	dinParameterType->boolValue_isUsed = 0u;
-	dinParameterType->byteValue_isUsed = 0u;
-	dinParameterType->shortValue_isUsed = 0u;
-	dinParameterType->intValue_isUsed = 0u;
-	dinParameterType->physicalValue_isUsed = 0u;
-	dinParameterType->stringValue_isUsed = 0u;
+void init_dinCurrentDemandReqType(struct dinCurrentDemandReqType* dinCurrentDemandReqType) {
+	dinCurrentDemandReqType->EVMaximumVoltageLimit_isUsed = 0u;
+	dinCurrentDemandReqType->EVMaximumCurrentLimit_isUsed = 0u;
+	dinCurrentDemandReqType->EVMaximumPowerLimit_isUsed = 0u;
+	dinCurrentDemandReqType->BulkChargingComplete_isUsed = 0u;
+	dinCurrentDemandReqType->RemainingTimeToFullSoC_isUsed = 0u;
+	dinCurrentDemandReqType->RemainingTimeToBulkSoC_isUsed = 0u;
 }
 
-void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType) {
+void init_dinKeyInfoType(struct dinKeyInfoType* dinKeyInfoType) {
+	dinKeyInfoType->Id_isUsed = 0u;
+	dinKeyInfoType->KeyName.arrayLen = 0u;
+	dinKeyInfoType->KeyValue.arrayLen = 0u;
+	dinKeyInfoType->RetrievalMethod.arrayLen = 0u;
+	dinKeyInfoType->X509Data.arrayLen = 0u;
+	dinKeyInfoType->PGPData.arrayLen = 0u;
+	dinKeyInfoType->SPKIData.arrayLen = 0u;
+	dinKeyInfoType->MgmtData.arrayLen = 0u;
 }
 
-void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType) {
-	dinPowerDeliveryResType->EVSEStatus_isUsed = 0u;
-	dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
-	dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
+void init_dinServicePaymentSelectionReqType(struct dinServicePaymentSelectionReqType* dinServicePaymentSelectionReqType) {
 }
 
-void init_dinCertificateChainType(struct dinCertificateChainType* dinCertificateChainType) {
-	dinCertificateChainType->SubCertificates_isUsed = 0u;
+void init_dinContractAuthenticationResType(struct dinContractAuthenticationResType* dinContractAuthenticationResType) {
 }
 
-void init_dinDC_EVStatusType(struct dinDC_EVStatusType* dinDC_EVStatusType) {
-	dinDC_EVStatusType->EVCabinConditioning_isUsed = 0u;
-	dinDC_EVStatusType->EVRESSConditioning_isUsed = 0u;
+void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType) {
 }
 
-void init_dinSelectedServiceType(struct dinSelectedServiceType* dinSelectedServiceType) {
-	dinSelectedServiceType->ParameterSetID_isUsed = 0u;
+void init_dinPaymentDetailsResType(struct dinPaymentDetailsResType* dinPaymentDetailsResType) {
+}
+
+void init_dinSASchedulesType(struct dinSASchedulesType* dinSASchedulesType) {
+}
+
+void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) {
 }
 
 void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType) {
@@ -490,13 +780,17 @@ void init_dinServiceTagType(struct dinServiceTagType* dinServiceTagType) {
 	dinServiceTagType->ServiceScope_isUsed = 0u;
 }
 
-void init_dinContractAuthenticationReqType(struct dinContractAuthenticationReqType* dinContractAuthenticationReqType) {
-	dinContractAuthenticationReqType->Id_isUsed = 0u;
-	dinContractAuthenticationReqType->GenChallenge_isUsed = 0u;
+void init_dinChargeParameterDiscoveryReqType(struct dinChargeParameterDiscoveryReqType* dinChargeParameterDiscoveryReqType) {
+	dinChargeParameterDiscoveryReqType->EVChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryReqType->AC_EVChargeParameter_isUsed = 0u;
+	dinChargeParameterDiscoveryReqType->DC_EVChargeParameter_isUsed = 0u;
 }
 
-void init_dinDC_EVPowerDeliveryParameterType(struct dinDC_EVPowerDeliveryParameterType* dinDC_EVPowerDeliveryParameterType) {
-	dinDC_EVPowerDeliveryParameterType->BulkChargingComplete_isUsed = 0u;
+void init_dinServiceParameterListType(struct dinServiceParameterListType* dinServiceParameterListType) {
+	dinServiceParameterListType->ParameterSet.arrayLen = 0u;
+}
+
+void init_dinEVSEStatusType(struct dinEVSEStatusType* dinEVSEStatusType) {
 }
 
 void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServiceDiscoveryReqType) {
@@ -504,106 +798,119 @@ void init_dinServiceDiscoveryReqType(struct dinServiceDiscoveryReqType* dinServi
 	dinServiceDiscoveryReqType->ServiceCategory_isUsed = 0u;
 }
 
-void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType) {
+void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType) {
 }
 
-void init_dinServiceTagListType(struct dinServiceTagListType* dinServiceTagListType) {
-	dinServiceTagListType->Service.arrayLen = 0u;
+void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) {
+	dinCertificateUpdateReqType->Id_isUsed = 0u;
 }
 
-void init_dinWeldingDetectionResType(struct dinWeldingDetectionResType* dinWeldingDetectionResType) {
+void init_dinServiceTagListType(struct dinServiceTagListType* dinServiceTagListType) {
+	dinServiceTagListType->Service.arrayLen = 0u;
 }
 
-void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) {
+void init_dinSignedInfoType(struct dinSignedInfoType* dinSignedInfoType) {
+	dinSignedInfoType->Id_isUsed = 0u;
+	dinSignedInfoType->Reference.arrayLen = 0u;
 }
 
-void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) {
-	dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 0u;
-	dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
-	dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
+void init_dinPowerDeliveryReqType(struct dinPowerDeliveryReqType* dinPowerDeliveryReqType) {
+	dinPowerDeliveryReqType->ChargingProfile_isUsed = 0u;
+	dinPowerDeliveryReqType->EVPowerDeliveryParameter_isUsed = 0u;
+	dinPowerDeliveryReqType->DC_EVPowerDeliveryParameter_isUsed = 0u;
 }
 
-void init_dinSalesTariffEntryType(struct dinSalesTariffEntryType* dinSalesTariffEntryType) {
-	dinSalesTariffEntryType->TimeInterval_isUsed = 0u;
-	dinSalesTariffEntryType->RelativeTimeInterval_isUsed = 0u;
-	dinSalesTariffEntryType->ConsumptionCost.arrayLen = 0u;
+void init_dinCostType(struct dinCostType* dinCostType) {
+	dinCostType->amountMultiplier_isUsed = 0u;
 }
 
-void init_dinEVChargeParameterType(struct dinEVChargeParameterType* dinEVChargeParameterType) {
+void init_dinDC_EVChargeParameterType(struct dinDC_EVChargeParameterType* dinDC_EVChargeParameterType) {
+	dinDC_EVChargeParameterType->EVMaximumPowerLimit_isUsed = 0u;
+	dinDC_EVChargeParameterType->EVEnergyCapacity_isUsed = 0u;
+	dinDC_EVChargeParameterType->EVEnergyRequest_isUsed = 0u;
+	dinDC_EVChargeParameterType->FullSOC_isUsed = 0u;
+	dinDC_EVChargeParameterType->BulkSOC_isUsed = 0u;
 }
 
-void init_dinPaymentDetailsReqType(struct dinPaymentDetailsReqType* dinPaymentDetailsReqType) {
+void init_dinSubCertificatesType(struct dinSubCertificatesType* dinSubCertificatesType) {
+	dinSubCertificatesType->Certificate.arrayLen = 0u;
 }
 
 void init_dinSessionSetupReqType(struct dinSessionSetupReqType* dinSessionSetupReqType) {
 }
 
-void init_dinChargingStatusReqType(struct dinChargingStatusReqType* dinChargingStatusReqType) {
+void init_dinAnonType_V2G_Message(struct dinAnonType_V2G_Message* dinAnonType_V2G_Message) {
 }
 
-void init_dinSignaturePropertyType(struct dinSignaturePropertyType* dinSignaturePropertyType) {
-	dinSignaturePropertyType->Id_isUsed = 0u;
+void init_dinMeterInfoType(struct dinMeterInfoType* dinMeterInfoType) {
+	dinMeterInfoType->MeterReading_isUsed = 0u;
+	dinMeterInfoType->SigMeterReading_isUsed = 0u;
+	dinMeterInfoType->MeterStatus_isUsed = 0u;
+	dinMeterInfoType->TMeter_isUsed = 0u;
 }
 
-void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType) {
+void init_dinCertificateInstallationResType(struct dinCertificateInstallationResType* dinCertificateInstallationResType) {
 }
 
 void init_dinServiceDetailResType(struct dinServiceDetailResType* dinServiceDetailResType) {
 	dinServiceDetailResType->ServiceParameterList_isUsed = 0u;
 }
 
-void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType) {
-	dinDSAKeyValueType->P_isUsed = 0u;
-	dinDSAKeyValueType->Q_isUsed = 0u;
-	dinDSAKeyValueType->G_isUsed = 0u;
-	dinDSAKeyValueType->J_isUsed = 0u;
-	dinDSAKeyValueType->Seed_isUsed = 0u;
-	dinDSAKeyValueType->PgenCounter_isUsed = 0u;
+void init_dinX509IssuerSerialType(struct dinX509IssuerSerialType* dinX509IssuerSerialType) {
 }
 
-void init_dinAC_EVSEChargeParameterType(struct dinAC_EVSEChargeParameterType* dinAC_EVSEChargeParameterType) {
+void init_dinDC_EVSEChargeParameterType(struct dinDC_EVSEChargeParameterType* dinDC_EVSEChargeParameterType) {
+	dinDC_EVSEChargeParameterType->EVSEMaximumPowerLimit_isUsed = 0u;
+	dinDC_EVSEChargeParameterType->EVSECurrentRegulationTolerance_isUsed = 0u;
+	dinDC_EVSEChargeParameterType->EVSEEnergyToBeDelivered_isUsed = 0u;
 }
 
-void init_dinObjectType(struct dinObjectType* dinObjectType) {
-	dinObjectType->Id_isUsed = 0u;
-	dinObjectType->MimeType_isUsed = 0u;
-	dinObjectType->Encoding_isUsed = 0u;
+void init_dinEVStatusType(struct dinEVStatusType* dinEVStatusType) {
 }
 
-void init_dinKeyValueType(struct dinKeyValueType* dinKeyValueType) {
-	dinKeyValueType->DSAKeyValue_isUsed = 0u;
-	dinKeyValueType->RSAKeyValue_isUsed = 0u;
+void init_dinX509DataType(struct dinX509DataType* dinX509DataType) {
+	dinX509DataType->X509IssuerSerial.arrayLen = 0u;
+	dinX509DataType->X509SKI.arrayLen = 0u;
+	dinX509DataType->X509SubjectName.arrayLen = 0u;
+	dinX509DataType->X509Certificate.arrayLen = 0u;
+	dinX509DataType->X509CRL.arrayLen = 0u;
 }
 
-void init_dinEVPowerDeliveryParameterType(struct dinEVPowerDeliveryParameterType* dinEVPowerDeliveryParameterType) {
+void init_dinPowerDeliveryResType(struct dinPowerDeliveryResType* dinPowerDeliveryResType) {
+	dinPowerDeliveryResType->EVSEStatus_isUsed = 0u;
+	dinPowerDeliveryResType->AC_EVSEStatus_isUsed = 0u;
+	dinPowerDeliveryResType->DC_EVSEStatus_isUsed = 0u;
 }
 
-void init_dinDigestMethodType(struct dinDigestMethodType* dinDigestMethodType) {
+void init_dinDSAKeyValueType(struct dinDSAKeyValueType* dinDSAKeyValueType) {
+	dinDSAKeyValueType->P_isUsed = 0u;
+	dinDSAKeyValueType->Q_isUsed = 0u;
+	dinDSAKeyValueType->G_isUsed = 0u;
+	dinDSAKeyValueType->J_isUsed = 0u;
+	dinDSAKeyValueType->Seed_isUsed = 0u;
+	dinDSAKeyValueType->PgenCounter_isUsed = 0u;
 }
 
-void init_dinCertificateUpdateReqType(struct dinCertificateUpdateReqType* dinCertificateUpdateReqType) {
-	dinCertificateUpdateReqType->Id_isUsed = 0u;
+void init_dinCertificateUpdateResType(struct dinCertificateUpdateResType* dinCertificateUpdateResType) {
 }
 
-void init_dinMeteringReceiptReqType(struct dinMeteringReceiptReqType* dinMeteringReceiptReqType) {
-	dinMeteringReceiptReqType->Id_isUsed = 0u;
-	dinMeteringReceiptReqType->SAScheduleTupleID_isUsed = 0u;
+void init_dinSessionStopType(struct dinSessionStopType* dinSessionStopType) {
 }
 
-void init_dinConsumptionCostType(struct dinConsumptionCostType* dinConsumptionCostType) {
-	dinConsumptionCostType->Cost.arrayLen = 0u;
+void init_dinEVSEChargeParameterType(struct dinEVSEChargeParameterType* dinEVSEChargeParameterType) {
 }
 
-void init_dinSessionStopResType(struct dinSessionStopResType* dinSessionStopResType) {
+void init_dinEntryType(struct dinEntryType* dinEntryType) {
+	dinEntryType->TimeInterval_isUsed = 0u;
+	dinEntryType->RelativeTimeInterval_isUsed = 0u;
 }
 
-void init_dinSignaturePropertiesType(struct dinSignaturePropertiesType* dinSignaturePropertiesType) {
-	dinSignaturePropertiesType->Id_isUsed = 0u;
-	dinSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+void init_dinListOfRootCertificateIDsType(struct dinListOfRootCertificateIDsType* dinListOfRootCertificateIDsType) {
+	dinListOfRootCertificateIDsType->RootCertificateID.arrayLen = 0u;
 }
 
-void init_dinNotificationType(struct dinNotificationType* dinNotificationType) {
-	dinNotificationType->FaultMsg_isUsed = 0u;
+void init_dinSignatureMethodType(struct dinSignatureMethodType* dinSignatureMethodType) {
+	dinSignatureMethodType->HMACOutputLength_isUsed = 0u;
 }
 
 

Разлика између датотеке није приказан због своје велике величине
+ 351 - 570
src/din/dinEXIDatatypes.h


Разлика између датотеке није приказан због своје велике величине
+ 288 - 397
src/din/dinEXIDatatypesDecoder.c


+ 6 - 2
src/din/dinEXIDatatypesDecoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -50,6 +50,10 @@ extern "C" {
 #include "dinEXIDatatypes.h"
 
 int decode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc);
+
+#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES
+int decode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag);
+#endif /* DEPLOY_DIN_CODEC_FRAGMENT */
 
 #endif /* DEPLOY_DIN_CODEC */
 

Разлика између датотеке није приказан због своје велике величине
+ 350 - 391
src/din/dinEXIDatatypesEncoder.c


+ 7 - 2
src/din/dinEXIDatatypesEncoder.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3 
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>
@@ -51,6 +51,11 @@ extern "C" {
 
 
 int encode_dinExiDocument(bitstream_t* stream, struct dinEXIDocument* exiDoc);
+
+#if DEPLOY_DIN_CODEC_FRAGMENT == SUPPORT_YES
+int encode_dinExiFragment(bitstream_t* stream, struct dinEXIFragment* exiFrag);
+#endif /* DEPLOY_DIN_CODEC_FRAGMENT */
+
 
 #endif /* DEPLOY_DIN_CODEC */
 

+ 2 - 2
src/test/main.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2012 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Switch for sample programs: EXI codec only or for entire V2G example</p>

+ 2 - 2
src/test/main.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2012 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  *

+ 2 - 2
src/test/main_databinder.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -18,7 +18,7 @@
 /*******************************************************************
  *
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  * <p>Code generated by EXIdizer</p>

+ 233 - 4
src/test/main_example.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2014 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -19,7 +19,7 @@
  *
  * @author Daniel.Peintner.EXT@siemens.com
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  *
@@ -31,18 +31,30 @@
 #include <stdarg.h>
 #include <stdlib.h>
 
+#include <string.h>
+
 #include "EXITypes.h"
 
 #include "appHandEXIDatatypes.h"
 #include "appHandEXIDatatypesEncoder.h"
 #include "appHandEXIDatatypesDecoder.h"
 
-#if DEPLOY_DIN_CODEC == SUPPORT_YES
+/* Activate support for DIN */
 #include "dinEXIDatatypes.h"
+#if DEPLOY_DIN_CODEC == SUPPORT_YES
 #include "dinEXIDatatypesEncoder.h"
 #include "dinEXIDatatypesDecoder.h"
 #endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
 
+/* Activate support for XMLDSIG */
+#include "xmldsigEXIDatatypes.h"
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+#include "xmldsigEXIDatatypesEncoder.h"
+#include "xmldsigEXIDatatypesDecoder.h"
+#endif /* DEPLOY_XMLDSIG_CODEC == SUPPORT_YES */
+
+
+
 #include "v2gEXIDatatypes.h"
 #include "v2gEXIDatatypesEncoder.h"
 #include "v2gEXIDatatypesDecoder.h"
@@ -2318,7 +2330,6 @@ static int dc_charging() {
 
 
 #if DEPLOY_DIN_CODEC == SUPPORT_YES
-
 static int din_test() {
 	int errn = 0;
 
@@ -2404,6 +2415,40 @@ static int din_test() {
 	}
 
 
+	/* sessionStopReq  */
+	pos2 = 0; /* reset position */
+
+	/* V: 0x80, 0x9a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x91, 0xf0  */
+	buffer2[0] = 0x80;
+	buffer2[1] = 0x9a;
+	buffer2[2] = 0x02;
+	buffer2[3] = 0x00;
+	buffer2[4] = 0x00;
+	buffer2[5] = 0x00;
+	buffer2[6] = 0x00;
+	buffer2[7] = 0x00;
+	buffer2[8] = 0x00;
+	buffer2[9] = 0x00;
+	buffer2[10] = 0x03;
+	buffer2[11] = 0x91;
+	buffer2[12] = 0xf0;
+
+	errn =  decode_dinExiDocument(&stream2, &exiDin2);
+
+	if(errn != 0) {
+		printf("\n\nDIN test error %d!\n", errn);
+		return errn;
+	} else if (pos2 != 13) {
+		printf("\n\nDIN warning. not all bytes read!\n");
+		errn = -1;
+		return errn;
+	} else if(exiDin2.V2G_Message_isUsed == 0 || exiDin2.V2G_Message.Body.SessionStopReq_isUsed == 0) {
+		printf("\n\nDIN warning. no sessionStopReq message!\n");
+		errn = -1;
+		return errn;
+	}
+
+
 	if(errn == 0) {
 		printf("DIN test passed\n");
 	} else {
@@ -2415,6 +2460,177 @@ static int din_test() {
 #endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
 
 
+
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+#if DEPLOY_ISO_CODEC_FRAGMENT == SUPPORT_YES
+static int xmldsig_test() {
+	int errn = 0, i;
+
+	bitstream_t stream1;
+	uint16_t pos1 = 0;
+	stream1.size = BUFFER_SIZE;
+	stream1.data = buffer1;
+	stream1.pos = &pos1;
+
+	bitstream_t stream2;
+	uint16_t pos2 = 0;
+	stream2.size = BUFFER_SIZE;
+	stream2.data = buffer2;
+	stream2.pos = &pos2;
+
+	struct v2gEXIFragment exiV2G_AR;
+	struct xmldsigEXIFragment exiXMLDSIG_SI;
+
+	int sizeIsoStream1 = 25;
+	int isoStream1[] = {0x80, 0x04, 0x01, 0x52, 0x51, 0x0C, 0x40, 0x82, 0x9B, 0x7B, 0x6B, 0x29, 0x02, 0x93, 0x0B, 0x73, 0x23, 0x7B, 0x69, 0x02, 0x23, 0x0B, 0xA3, 0x09, 0xE8};
+
+	int sizeIsoStream2 = 209;
+	int isoStream2[] = {0x80, 0x81, 0x12, 0xB4, 0x3A, 0x3A, 0x38, 0x1D, 0x17, 0x97, 0xBB, 0xBB, 0xBB, 0x97, 0x3B, 0x99, 0x97, 0x37, 0xB9, 0x33, 0x97, 0xAA, 0x29, 0x17, 0xB1, 0xB0, 0xB7, 0x37, 0xB7, 0x34, 0xB1, 0xB0, 0xB6, 0x16, 0xB2, 0xBC, 0x34, 0x97, 0xA1, 0xAB, 0x43, 0xA3, 0xA3, 0x81, 0xD1, 0x79, 0x7B, 0xBB, 0xBB, 0xB9, 0x73, 0xB9, 0x99, 0x73, 0x7B, 0x93, 0x39, 0x79, 0x91, 0x81, 0x81, 0x89, 0x79, 0x81, 0xA1, 0x7B, 0xC3, 0x6B, 0x63, 0x23, 0x9B, 0x4B, 0x39, 0x6B, 0x6B, 0x7B, 0x93, 0x29, 0x1B, 0x2B, 0x1B, 0x23, 0x9B, 0x09, 0x6B, 0x9B, 0x43, 0x09, 0x91, 0xA9, 0xB2, 0x20, 0x62, 0x34, 0x94, 0x43, 0x10, 0x25, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x77, 0x77, 0x77, 0x2E, 0x77, 0x33, 0x2E, 0x6F, 0x72, 0x67, 0x2F, 0x54, 0x52, 0x2F, 0x63, 0x61, 0x6E, 0x6F, 0x6E, 0x69, 0x63, 0x61, 0x6C, 0x2D, 0x65, 0x78, 0x69, 0x2F, 0x48, 0x52, 0xD0, 0xE8, 0xE8, 0xE0, 0x74, 0x5E, 0x5E, 0xEE, 0xEE, 0xEE, 0x5C, 0xEE, 0x66, 0x5C, 0xDE, 0xE4, 0xCE, 0x5E, 0x64, 0x60, 0x60, 0x62, 0x5E, 0x60, 0x68, 0x5E, 0xF0, 0xDA, 0xD8, 0xCA, 0xDC, 0xC6, 0x46, 0xE6, 0xD0, 0xC2, 0x64, 0x6A, 0x6C, 0x84, 0x1A, 0x36, 0xBC, 0x07, 0xA0, 0x0C, 0xB7, 0xDC, 0xAD, 0x66, 0x2F, 0x30, 0x88, 0xA6, 0x0A, 0x3D, 0x6A, 0x99, 0x43, 0x1F, 0x81, 0xC1, 0x22, 0xC2, 0xE9, 0xF1, 0x67, 0x8E, 0xF5, 0x31, 0xE9, 0x55, 0x23, 0x70};
+
+
+	uint8_t digestValue[] = {0xD1, 0xB5, 0xE0, 0x3D, 0x00, 0x65, 0xBE, 0xE5, 0x6B, 0x31, 0x79, 0x84, 0x45, 0x30, 0x51, 0xEB, 0x54, 0xCA, 0x18, 0xFC, 0x0E, 0x09, 0x16, 0x17, 0x4F, 0x8B, 0x3C, 0x77, 0xA9, 0x8F, 0x4A, 0xA9}; /* 32 Bytes */
+
+
+	/*
+	<v2gci_b:AuthorizationReq xmlns:v2gci_b="urn:iso:15118:2:2013:MsgBody" v2gci_b:Id="ID1">
+	    <v2gci_b:GenChallenge>U29tZSBSYW5kb20gRGF0YQ==</v2gci_b:GenChallenge>
+	</v2gci_b:AuthorizationReq>
+	*/
+
+	init_v2gEXIFragment(&exiV2G_AR);
+	exiV2G_AR.AuthorizationReq_isUsed = 1u;
+	init_v2gAuthorizationReqType(&exiV2G_AR.AuthorizationReq);
+	exiV2G_AR.AuthorizationReq.Id_isUsed = 1;
+	exiV2G_AR.AuthorizationReq.Id.charactersLen = 3;
+	exiV2G_AR.AuthorizationReq.Id.characters[0] = 'I';
+	exiV2G_AR.AuthorizationReq.Id.characters[1] = 'D';
+	exiV2G_AR.AuthorizationReq.Id.characters[2] = '1';
+	exiV2G_AR.AuthorizationReq.GenChallenge_isUsed = 1;
+	/* base64 U29tZSBSYW5kb20gRGF0YQ== */
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytesLen = 16;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[0] = 0x53;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[1] = 0x6F;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[2] = 0x6D;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[3] = 0x65;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[4] = 0x20;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[5] = 0x52;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[6] = 0x61;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[7] = 0x6E;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[8] = 0x64;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[9] = 0x6F;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[10] = 0x6D;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[11] = 0x20;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[12] = 0x44;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[13] = 0x61;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[14] = 0x74;
+	exiV2G_AR.AuthorizationReq.GenChallenge.bytes[15] = 0x61;
+
+	/* encode fragment with ISO schema */
+	errn = encode_v2gExiFragment(&stream1, &exiV2G_AR);
+
+	if((*stream1.pos) != sizeIsoStream1) {
+		errn = -1;
+		printf("EXI1 stream length does not match !\n");
+		return errn;
+	} else {
+		for(i=0; i<sizeIsoStream1; i++) {
+			if(stream1.data[i] != isoStream1[i]) {
+				errn = -1;
+				printf("EXI1 stream does not match at position %d !\n", i);
+				return errn;
+			}
+		}
+	}
+
+	/* TODO Create Hash for stream 1 etc ... */
+	/* SHA-256 is "0bXgPQBlvuVrMXmERTBR61TKGPwOCRYXT4s8d6mPSqk=" */
+
+	/*
+	<xmlsig:SignedInfo xmlns:xmlsig="http://www.w3.org/2000/09/xmldsig#" >
+	    <xmlsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/canonical-exi/"/>
+	    <xmlsig:SignatureMethod
+	        Algorithm="http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"/>
+	    <xmlsig:Reference URI="#ID1">
+	        <xmlsig:Transforms>
+	            <xmlsig:Transform Algorithm="http://www.w3.org/TR/canonical-exi/"/>
+	        </xmlsig:Transforms>
+	        <xmlsig:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
+	        <xmlsig:DigestValue>0bXgPQBlvuVrMXmERTBR61TK
+	            GPwOCRYXT4s8d6mPSqk=</xmlsig:DigestValue>
+	    </xmlsig:Reference>
+	</xmlsig:SignedInfo>
+	*/
+
+	/* encode SignedInfo element with xmldsig schema */
+
+	char arrayCanonicalEXI[35] = {"http://www.w3.org/TR/canonical-exi/"};
+	char arrayxmldsigSHA256[51] = {"http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256"};
+	char arrayxmlencSHA256[39] = {"http://www.w3.org/2001/04/xmlenc#sha256"};
+
+	init_xmldsigEXIFragment(&exiXMLDSIG_SI);
+	exiXMLDSIG_SI.SignedInfo_isUsed = 1;
+	init_xmldsigSignedInfoType(&exiXMLDSIG_SI.SignedInfo);
+	{
+		init_xmldsigCanonicalizationMethodType(&exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod);
+		exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod.Algorithm.charactersLen = 35;
+		strncpy(exiXMLDSIG_SI.SignedInfo.CanonicalizationMethod.Algorithm.characters, arrayCanonicalEXI, 35);
+
+		exiXMLDSIG_SI.SignedInfo.SignatureMethod.HMACOutputLength_isUsed = 0;
+		exiXMLDSIG_SI.SignedInfo.SignatureMethod.Algorithm.charactersLen = 51;
+		strncpy(exiXMLDSIG_SI.SignedInfo.SignatureMethod.Algorithm.characters, arrayxmldsigSHA256, 51);
+
+		exiXMLDSIG_SI.SignedInfo.Reference.arrayLen = 1;
+		 /* "#ID1" */
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI_isUsed = 1;
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.charactersLen = 4;
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[0] = '#';
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[1] = 'I';
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[2] = 'D';
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].URI.characters[3] = '1';
+		/* "http://www.w3.org/TR/canonical-exi/" */
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms_isUsed = 1;
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.arrayLen = 1;
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].Algorithm.charactersLen = 35;
+		strncpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].Algorithm.characters, arrayCanonicalEXI, 35); /* Will copy 35 characters from arrayCanonicalEXI to characters */
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].Transforms.Transform.array[0].XPath.arrayLen = 0;
+
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestMethod.Algorithm.charactersLen = 39;
+		strncpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestMethod.Algorithm.characters, arrayxmlencSHA256, 39);
+
+		/* "0bXgPQBlvuVrMXmERTBR61TKGPwOCRYXT4s8d6mPSqk=" --> 16 Bytes 536F6D652052616E646F6D2044617461 */
+		exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestValue.bytesLen = 32;
+		memcpy(exiXMLDSIG_SI.SignedInfo.Reference.array[0].DigestValue.bytes, digestValue, 32);
+	}
+
+	errn = encode_xmldsigExiFragment(&stream2, &exiXMLDSIG_SI);
+
+	if((*stream2.pos) != sizeIsoStream2) {
+		errn = -1;
+		printf("EXI2 stream length does not match !\n");
+		return errn;
+	} else {
+		for(i=0; i<sizeIsoStream2; i++) {
+			if(stream2.data[i] != isoStream2[i]) {
+				errn = -1;
+				printf("EXI2 stream does not match at position %d !\n", i);
+				return errn;
+			}
+		}
+	}
+
+
+	if(errn == 0) {
+		printf("XMLDSIG test passed\n");
+	} else {
+		printf("XMLDSIG test error %d!\n", errn);
+	}
+
+	return errn;
+}
+#endif /* DEPLOY_ISO_CODEC_FRAGMENT */
+#endif /* DEPLOY_XMLDSIG_CODEC == SUPPORT_YES */
+
+
 #define ASK_FOR_USER_INPUT 0
 
 int main_example(int argc, char *argv[]) {
@@ -2430,6 +2646,19 @@ int main_example(int argc, char *argv[]) {
 	}
 #endif /* DEPLOY_DIN_CODEC == SUPPORT_YES */
 
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+#if DEPLOY_ISO_CODEC_FRAGMENT == SUPPORT_YES
+	printf("+++ Start simple XMLDSIG test +++\n");
+	errn = xmldsig_test();
+	printf("+++ Terminate simple XMLDSIG test +++\n\n");
+	if(errn != 0) {
+		printf("\nXMLDSIG test error %d!\n", errn);
+		return errn;
+	}
+#endif /* DEPLOY_ISO_CODEC_FRAGMENT */
+#endif /* DEPLOY_XMLDSIG_CODEC == SUPPORT_YES */
+
+
 	printf("+++ Start application handshake protocol example +++\n\n");
 	errn = appHandshake();
 	printf("+++ Terminate application handshake protocol example +++\n\n");

+ 2 - 2
src/transport/v2gtp.c

@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2007-2012 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -20,7 +20,7 @@
  *
  * @author Sebastian.Kaebisch@siemens.com
  * @author Daniel.Peintner.EXT@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  ********************************************************************/

+ 2 - 2
src/transport/v2gtp.h

@@ -1,6 +1,6 @@
 
 /*
- * Copyright (C) 2007-2011 Siemens AG
+ * Copyright (C) 2007-2015 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
@@ -19,7 +19,7 @@
 /*******************************************************************
  *
  * @author Sebastian.Kaebisch@siemens.com
- * @version 0.9.2
+ * @version 0.9.3
  * @contact Joerg.Heuer@siemens.com
  *
  ********************************************************************/

+ 241 - 0
src/xmldsig/xmldsigEXIDatatypes.c

@@ -0,0 +1,241 @@
+/*
+ * Copyright (C) 2007-2015 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9.3 
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * <p>Code generated by EXIdizer</p>
+ * <p>Schema: xmldsig-core-schema.xsd</p>
+ *
+ *
+ ********************************************************************/
+
+
+
+#include <stdint.h>
+
+#include "xmldsigEXIDatatypes.h"
+#include "EXITypes.h"
+
+
+#ifndef EXI_xmldsig_DATATYPES_C
+#define EXI_xmldsig_DATATYPES_C
+
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+
+
+void init_xmldsigEXIDocument(struct xmldsigEXIDocument* exiDoc) {
+	exiDoc->SignatureProperty_isUsed = 0u;
+	exiDoc->DSAKeyValue_isUsed = 0u;
+	exiDoc->SignatureProperties_isUsed = 0u;
+	exiDoc->KeyValue_isUsed = 0u;
+	exiDoc->Transforms_isUsed = 0u;
+	exiDoc->DigestMethod_isUsed = 0u;
+	exiDoc->Signature_isUsed = 0u;
+	exiDoc->RetrievalMethod_isUsed = 0u;
+	exiDoc->Manifest_isUsed = 0u;
+	exiDoc->Reference_isUsed = 0u;
+	exiDoc->CanonicalizationMethod_isUsed = 0u;
+	exiDoc->RSAKeyValue_isUsed = 0u;
+	exiDoc->Transform_isUsed = 0u;
+	exiDoc->PGPData_isUsed = 0u;
+	exiDoc->MgmtData_isUsed = 0u;
+	exiDoc->SignatureMethod_isUsed = 0u;
+	exiDoc->KeyInfo_isUsed = 0u;
+	exiDoc->SPKIData_isUsed = 0u;
+	exiDoc->X509Data_isUsed = 0u;
+	exiDoc->SignatureValue_isUsed = 0u;
+	exiDoc->KeyName_isUsed = 0u;
+	exiDoc->DigestValue_isUsed = 0u;
+	exiDoc->SignedInfo_isUsed = 0u;
+	exiDoc->Object_isUsed = 0u;
+}
+
+#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES
+void init_xmldsigEXIFragment(struct xmldsigEXIFragment* exiFrag) {
+	exiFrag->RSAKeyValue_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->PGPKeyPacket_isUsed = 0u;
+	exiFrag->X509Data_isUsed = 0u;
+	exiFrag->PgenCounter_isUsed = 0u;
+	exiFrag->X509Certificate_isUsed = 0u;
+	exiFrag->Seed_isUsed = 0u;
+	exiFrag->Modulus_isUsed = 0u;
+	exiFrag->X509SKI_isUsed = 0u;
+	exiFrag->SPKISexp_isUsed = 0u;
+	exiFrag->CanonicalizationMethod_isUsed = 0u;
+	exiFrag->X509SerialNumber_isUsed = 0u;
+	exiFrag->SignatureProperties_isUsed = 0u;
+	exiFrag->Reference_isUsed = 0u;
+	exiFrag->KeyName_isUsed = 0u;
+	exiFrag->P_isUsed = 0u;
+	exiFrag->SignatureValue_isUsed = 0u;
+	exiFrag->SignedInfo_isUsed = 0u;
+	exiFrag->KeyInfo_isUsed = 0u;
+	exiFrag->DigestMethod_isUsed = 0u;
+	exiFrag->SPKIData_isUsed = 0u;
+	exiFrag->Object_isUsed = 0u;
+	exiFrag->Exponent_isUsed = 0u;
+	exiFrag->X509IssuerName_isUsed = 0u;
+	exiFrag->X509SubjectName_isUsed = 0u;
+	exiFrag->PGPData_isUsed = 0u;
+	exiFrag->HMACOutputLength_isUsed = 0u;
+	exiFrag->DigestValue_isUsed = 0u;
+	exiFrag->MgmtData_isUsed = 0u;
+	exiFrag->KeyValue_isUsed = 0u;
+	exiFrag->SignatureProperty_isUsed = 0u;
+	exiFrag->DSAKeyValue_isUsed = 0u;
+	exiFrag->X509IssuerSerial_isUsed = 0u;
+	exiFrag->Y_isUsed = 0u;
+	exiFrag->J_isUsed = 0u;
+	exiFrag->Signature_isUsed = 0u;
+	exiFrag->Transform_isUsed = 0u;
+	exiFrag->PGPKeyID_isUsed = 0u;
+	exiFrag->Transforms_isUsed = 0u;
+	exiFrag->G_isUsed = 0u;
+	exiFrag->X509CRL_isUsed = 0u;
+	exiFrag->Q_isUsed = 0u;
+	exiFrag->XPath_isUsed = 0u;
+	exiFrag->SignatureMethod_isUsed = 0u;
+	exiFrag->RetrievalMethod_isUsed = 0u;
+	exiFrag->Manifest_isUsed = 0u;
+}
+#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */
+
+void init_xmldsigKeyValueType(struct xmldsigKeyValueType* xmldsigKeyValueType) {
+	xmldsigKeyValueType->DSAKeyValue_isUsed = 0u;
+	xmldsigKeyValueType->RSAKeyValue_isUsed = 0u;
+}
+
+void init_xmldsigDSAKeyValueType(struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType) {
+	xmldsigDSAKeyValueType->P_isUsed = 0u;
+	xmldsigDSAKeyValueType->Q_isUsed = 0u;
+	xmldsigDSAKeyValueType->G_isUsed = 0u;
+	xmldsigDSAKeyValueType->J_isUsed = 0u;
+	xmldsigDSAKeyValueType->Seed_isUsed = 0u;
+	xmldsigDSAKeyValueType->PgenCounter_isUsed = 0u;
+}
+
+void init_xmldsigRSAKeyValueType(struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType) {
+}
+
+void init_xmldsigSignaturePropertiesType(struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType) {
+	xmldsigSignaturePropertiesType->Id_isUsed = 0u;
+	xmldsigSignaturePropertiesType->SignatureProperty.arrayLen = 0u;
+}
+
+void init_xmldsigCanonicalizationMethodType(struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType) {
+}
+
+void init_xmldsigObjectType(struct xmldsigObjectType* xmldsigObjectType) {
+	xmldsigObjectType->Id_isUsed = 0u;
+	xmldsigObjectType->MimeType_isUsed = 0u;
+	xmldsigObjectType->Encoding_isUsed = 0u;
+}
+
+void init_xmldsigTransformsType(struct xmldsigTransformsType* xmldsigTransformsType) {
+	xmldsigTransformsType->Transform.arrayLen = 0u;
+}
+
+void init_xmldsigTransformType(struct xmldsigTransformType* xmldsigTransformType) {
+	xmldsigTransformType->XPath.arrayLen = 0u;
+}
+
+void init_xmldsigDigestMethodType(struct xmldsigDigestMethodType* xmldsigDigestMethodType) {
+}
+
+void init_xmldsigSignatureType(struct xmldsigSignatureType* xmldsigSignatureType) {
+	xmldsigSignatureType->Id_isUsed = 0u;
+	xmldsigSignatureType->KeyInfo_isUsed = 0u;
+	xmldsigSignatureType->Object.arrayLen = 0u;
+}
+
+void init_xmldsigReferenceType(struct xmldsigReferenceType* xmldsigReferenceType) {
+	xmldsigReferenceType->Id_isUsed = 0u;
+	xmldsigReferenceType->URI_isUsed = 0u;
+	xmldsigReferenceType->Type_isUsed = 0u;
+	xmldsigReferenceType->Transforms_isUsed = 0u;
+}
+
+void init_xmldsigSPKIDataType(struct xmldsigSPKIDataType* xmldsigSPKIDataType) {
+	xmldsigSPKIDataType->SPKISexp.arrayLen = 0u;
+}
+
+void init_xmldsigPGPDataType(struct xmldsigPGPDataType* xmldsigPGPDataType) {
+	xmldsigPGPDataType->PGPKeyID_isUsed = 0u;
+	xmldsigPGPDataType->PGPKeyPacket_isUsed = 0u;
+}
+
+void init_xmldsigX509IssuerSerialType(struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType) {
+}
+
+void init_xmldsigSignatureMethodType(struct xmldsigSignatureMethodType* xmldsigSignatureMethodType) {
+	xmldsigSignatureMethodType->HMACOutputLength_isUsed = 0u;
+}
+
+void init_xmldsigRetrievalMethodType(struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType) {
+	xmldsigRetrievalMethodType->URI_isUsed = 0u;
+	xmldsigRetrievalMethodType->Type_isUsed = 0u;
+	xmldsigRetrievalMethodType->Transforms_isUsed = 0u;
+}
+
+void init_xmldsigSignaturePropertyType(struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType) {
+	xmldsigSignaturePropertyType->Id_isUsed = 0u;
+}
+
+void init_xmldsigSignedInfoType(struct xmldsigSignedInfoType* xmldsigSignedInfoType) {
+	xmldsigSignedInfoType->Id_isUsed = 0u;
+	xmldsigSignedInfoType->Reference.arrayLen = 0u;
+}
+
+void init_xmldsigKeyInfoType(struct xmldsigKeyInfoType* xmldsigKeyInfoType) {
+	xmldsigKeyInfoType->Id_isUsed = 0u;
+	xmldsigKeyInfoType->KeyName.arrayLen = 0u;
+	xmldsigKeyInfoType->KeyValue.arrayLen = 0u;
+	xmldsigKeyInfoType->RetrievalMethod.arrayLen = 0u;
+	xmldsigKeyInfoType->X509Data.arrayLen = 0u;
+	xmldsigKeyInfoType->PGPData.arrayLen = 0u;
+	xmldsigKeyInfoType->SPKIData.arrayLen = 0u;
+	xmldsigKeyInfoType->MgmtData.arrayLen = 0u;
+}
+
+void init_xmldsigManifestType(struct xmldsigManifestType* xmldsigManifestType) {
+	xmldsigManifestType->Id_isUsed = 0u;
+	xmldsigManifestType->Reference.arrayLen = 0u;
+}
+
+void init_xmldsigSignatureValueType(struct xmldsigSignatureValueType* xmldsigSignatureValueType) {
+	xmldsigSignatureValueType->Id_isUsed = 0u;
+}
+
+void init_xmldsigX509DataType(struct xmldsigX509DataType* xmldsigX509DataType) {
+	xmldsigX509DataType->X509IssuerSerial.arrayLen = 0u;
+	xmldsigX509DataType->X509SKI.arrayLen = 0u;
+	xmldsigX509DataType->X509SubjectName.arrayLen = 0u;
+	xmldsigX509DataType->X509Certificate.arrayLen = 0u;
+	xmldsigX509DataType->X509CRL.arrayLen = 0u;
+}
+
+
+
+#endif /* DEPLOY_XMLDSIG_CODEC */
+
+#endif
+

+ 856 - 0
src/xmldsig/xmldsigEXIDatatypes.h

@@ -0,0 +1,856 @@
+/*
+ * Copyright (C) 2007-2015 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9.3 
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * <p>Code generated by EXIdizer</p>
+ * <p>Schema: xmldsig-core-schema.xsd</p>
+ *
+ *
+ ********************************************************************/
+
+
+
+/**
+ * \file 	EXIDatatypes.h
+ * \brief 	Datatype definitions and structs for given XML Schema definitions and initialization methods
+ *
+ */
+
+#ifndef EXI_xmldsig_DATATYPES_H
+#define EXI_xmldsig_DATATYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SUPPORT_YES 1
+#define SUPPORT_NO 2
+#define DEPLOY_XMLDSIG_CODEC SUPPORT_NO
+#define DEPLOY_XMLDSIG_CODEC_FRAGMENT SUPPORT_NO
+
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+
+#include <stdint.h>
+
+#include "EXITypes.h"
+
+
+/* Datatype definitions and structs for given XML Schema definitions */
+
+#define UNION_YES 1
+#define UNION_NO 2
+#define SAVE_MEMORY_WITH_UNNAMED_UNION UNION_YES
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##any])){0-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigObjectType_Id_CHARACTERS_SIZE 50
+#define xmldsigObjectType_MimeType_CHARACTERS_SIZE 50
+#define xmldsigObjectType_Encoding_CHARACTERS_SIZE 50
+struct xmldsigObjectType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigObjectType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* attribute: MimeType {http://www.w3.org/2001/XMLSchema,string} */
+	struct {
+		exi_string_character_t characters[xmldsigObjectType_MimeType_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  MimeType ;
+	unsigned int MimeType_isUsed:1;
+	/* attribute: Encoding {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigObjectType_Encoding_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Encoding ;
+	unsigned int Encoding_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigTransformType_Algorithm_CHARACTERS_SIZE 65
+#define xmldsigTransformType_XPath_CHARACTERS_SIZE 50 
+#define xmldsigTransformType_XPath_ARRAY_SIZE 1
+struct xmldsigTransformType {
+	/* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigTransformType_Algorithm_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Algorithm ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":XPath, http://www.w3.org/2001/XMLSchema,string */
+	struct {
+		struct {
+			exi_string_character_t characters[xmldsigTransformType_XPath_CHARACTERS_SIZE];
+			uint16_t charactersLen;
+		}  array[xmldsigTransformType_XPath_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} XPath;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigDigestMethodType_Algorithm_CHARACTERS_SIZE 65
+struct xmldsigDigestMethodType {
+	/* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigDigestMethodType_Algorithm_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Algorithm ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))',  derivedBy='RESTRICTION'.  */
+#define xmldsigPGPDataType_PGPKeyID_BYTES_SIZE 350 
+#define xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE 350 
+struct xmldsigPGPDataType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyID, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		uint8_t bytes[xmldsigPGPDataType_PGPKeyID_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PGPKeyID ;
+	unsigned int PGPKeyID_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		uint8_t bytes[xmldsigPGPDataType_PGPKeyPacket_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PGPKeyPacket ;
+	unsigned int PGPKeyPacket_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})',  derivedBy='RESTRICTION'.  */
+#define xmldsigDSAKeyValueType_P_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_Q_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_G_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_Y_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_J_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_Seed_BYTES_SIZE 350 
+#define xmldsigDSAKeyValueType_PgenCounter_BYTES_SIZE 350 
+struct xmldsigDSAKeyValueType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":P, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_P_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  P ;
+	unsigned int P_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Q, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_Q_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Q ;
+	unsigned int Q_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":G, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_G_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  G ;
+	unsigned int G_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Y, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_Y_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Y ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":J, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_J_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  J ;
+	unsigned int J_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Seed, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_Seed_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Seed ;
+	unsigned int Seed_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":PgenCounter, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigDSAKeyValueType_PgenCounter_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PgenCounter ;
+	unsigned int PgenCounter_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType',  base type name='base64Binary',  content type='SIMPLE',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  derivedBy='EXTENSION'.  */
+#define xmldsigSignatureValueType_Id_CHARACTERS_SIZE 50
+#define xmldsigSignatureValueType_CONTENT_BYTES_SIZE 350
+struct xmldsigSignatureValueType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigSignatureValueType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* simple content: http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		uint8_t bytes[xmldsigSignatureValueType_CONTENT_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  CONTENT ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)',  derivedBy='RESTRICTION'.  */
+#define xmldsigX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE 50 
+struct xmldsigX509IssuerSerialType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerName, http://www.w3.org/2001/XMLSchema,string */
+	struct {
+		exi_string_character_t characters[xmldsigX509IssuerSerialType_X509IssuerName_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  X509IssuerName ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509SerialNumber, http://www.w3.org/2001/XMLSchema,integer */
+	int64_t X509SerialNumber ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)',  derivedBy='RESTRICTION'.  */
+#define xmldsigRSAKeyValueType_Modulus_BYTES_SIZE 350 
+#define xmldsigRSAKeyValueType_Exponent_BYTES_SIZE 350 
+struct xmldsigRSAKeyValueType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Modulus, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigRSAKeyValueType_Modulus_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Modulus ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Exponent, http://www.w3.org/2000/09/xmldsig#,CryptoBinary */
+	struct {
+		uint8_t bytes[xmldsigRSAKeyValueType_Exponent_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Exponent ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE 1
+#define xmldsigX509DataType_X509SKI_BYTES_SIZE 350 
+#define xmldsigX509DataType_X509SKI_ARRAY_SIZE 1
+#define xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE 50 
+#define xmldsigX509DataType_X509SubjectName_ARRAY_SIZE 1
+#define xmldsigX509DataType_X509Certificate_BYTES_SIZE 350 
+#define xmldsigX509DataType_X509Certificate_ARRAY_SIZE 1
+#define xmldsigX509DataType_X509CRL_BYTES_SIZE 350 
+#define xmldsigX509DataType_X509CRL_ARRAY_SIZE 1
+struct xmldsigX509DataType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509IssuerSerialType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":X509IssuerName,"http://www.w3.org/2000/09/xmldsig#":X509SerialNumber)',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigX509IssuerSerialType array[xmldsigX509DataType_X509IssuerSerial_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509IssuerSerial;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509SKI, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		struct {
+			uint8_t bytes[xmldsigX509DataType_X509SKI_BYTES_SIZE];
+			uint16_t bytesLen;
+		}  array[xmldsigX509DataType_X509SKI_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509SKI;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509SubjectName, http://www.w3.org/2001/XMLSchema,string */
+	struct {
+		struct {
+			exi_string_character_t characters[xmldsigX509DataType_X509SubjectName_CHARACTERS_SIZE];
+			uint16_t charactersLen;
+		}  array[xmldsigX509DataType_X509SubjectName_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509SubjectName;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509Certificate, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		struct {
+			uint8_t bytes[xmldsigX509DataType_X509Certificate_BYTES_SIZE];
+			uint16_t bytesLen;
+		}  array[xmldsigX509DataType_X509Certificate_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509Certificate;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509CRL, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		struct {
+			uint8_t bytes[xmldsigX509DataType_X509CRL_BYTES_SIZE];
+			uint16_t bytesLen;
+		}  array[xmldsigX509DataType_X509CRL_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509CRL;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigSignatureMethodType_Algorithm_CHARACTERS_SIZE 65
+struct xmldsigSignatureMethodType {
+	/* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigSignatureMethodType_Algorithm_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Algorithm ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":HMACOutputLength, http://www.w3.org/2000/09/xmldsig#,HMACOutputLengthType */
+	int64_t HMACOutputLength ;
+	unsigned int HMACOutputLength_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigSPKIDataType_SPKISexp_BYTES_SIZE 350 
+#define xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE 1
+struct xmldsigSPKIDataType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SPKISexp, http://www.w3.org/2001/XMLSchema,base64Binary */
+	struct {
+		struct {
+			uint8_t bytes[xmldsigSPKIDataType_SPKISexp_BYTES_SIZE];
+			uint16_t bytesLen;
+		}  array[xmldsigSPKIDataType_SPKISexp_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} SPKISexp;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE 50
+#define xmldsigSignaturePropertyType_Id_CHARACTERS_SIZE 50
+struct xmldsigSignaturePropertyType {
+	/* attribute: Target {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigSignaturePropertyType_Target_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Target ;
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigSignaturePropertyType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##any]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE 65
+struct xmldsigCanonicalizationMethodType {
+	/* attribute: Algorithm {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigCanonicalizationMethodType_Algorithm_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Algorithm ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigTransformsType_Transform_ARRAY_SIZE 1
+struct xmldsigTransformsType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Transform, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])|"http://www.w3.org/2000/09/xmldsig#":XPath){0-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigTransformType array[xmldsigTransformsType_Transform_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} Transform;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))',  derivedBy='RESTRICTION'.  */
+struct xmldsigKeyValueType {
+	/* element: "http://www.w3.org/2000/09/xmldsig#":DSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,DSAKeyValueType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":P,"http://www.w3.org/2000/09/xmldsig#":Q){0-1},"http://www.w3.org/2000/09/xmldsig#":G{0-1},"http://www.w3.org/2000/09/xmldsig#":Y,"http://www.w3.org/2000/09/xmldsig#":J{0-1},("http://www.w3.org/2000/09/xmldsig#":Seed,"http://www.w3.org/2000/09/xmldsig#":PgenCounter){0-1})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigDSAKeyValueType DSAKeyValue ;
+	unsigned int DSAKeyValue_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":RSAKeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,RSAKeyValueType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Modulus,"http://www.w3.org/2000/09/xmldsig#":Exponent)',  derivedBy='RESTRICTION'.  */
+	struct xmldsigRSAKeyValueType RSAKeyValue ;
+	unsigned int RSAKeyValue_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})',  derivedBy='RESTRICTION'.  */
+#define xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE 50
+#define xmldsigRetrievalMethodType_Type_CHARACTERS_SIZE 50
+struct xmldsigRetrievalMethodType {
+	/* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigRetrievalMethodType_URI_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  URI ;
+	unsigned int URI_isUsed:1;
+	/* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigRetrievalMethodType_Type_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Type ;
+	unsigned int Type_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigTransformsType Transforms ;
+	unsigned int Transforms_isUsed:1;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertiesType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":SignatureProperty{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigSignaturePropertiesType_Id_CHARACTERS_SIZE 50
+#define xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE 1
+struct xmldsigSignaturePropertiesType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigSignaturePropertiesType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SignatureProperty, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignaturePropertyType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigSignaturePropertyType array[xmldsigSignaturePropertiesType_SignatureProperty_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} SignatureProperty;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)',  derivedBy='RESTRICTION'.  */
+#define xmldsigReferenceType_Id_CHARACTERS_SIZE 50
+#define xmldsigReferenceType_URI_CHARACTERS_SIZE 50
+#define xmldsigReferenceType_Type_CHARACTERS_SIZE 50
+#define xmldsigReferenceType_DigestValue_BYTES_SIZE 350 
+struct xmldsigReferenceType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigReferenceType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* attribute: URI {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigReferenceType_URI_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  URI ;
+	unsigned int URI_isUsed:1;
+	/* attribute: Type {http://www.w3.org/2001/XMLSchema,anyURI} */
+	struct {
+		exi_string_character_t characters[xmldsigReferenceType_Type_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Type ;
+	unsigned int Type_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Transforms, Complex type name='http://www.w3.org/2000/09/xmldsig#,TransformsType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transform{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigTransformsType Transforms ;
+	unsigned int Transforms_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":DigestMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,DigestMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigDigestMethodType DigestMethod ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":DigestValue, http://www.w3.org/2000/09/xmldsig#,DigestValueType */
+	struct {
+		uint8_t bytes[xmldsigReferenceType_DigestValue_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  DigestValue ;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigSignedInfoType_Id_CHARACTERS_SIZE 50
+#define xmldsigSignedInfoType_Reference_ARRAY_SIZE 1
+struct xmldsigSignedInfoType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigSignedInfoType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,CanonicalizationMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##any]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigCanonicalizationMethodType CanonicalizationMethod ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SignatureMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureMethodType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":HMACOutputLength{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigSignatureMethodType SignatureMethod ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigReferenceType array[xmldsigSignedInfoType_Reference_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} Reference;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+#define xmldsigKeyInfoType_Id_CHARACTERS_SIZE 50
+#define xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE 50 
+#define xmldsigKeyInfoType_KeyName_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_KeyValue_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_X509Data_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_PGPData_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_SPKIData_ARRAY_SIZE 1
+#define xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE 50 
+#define xmldsigKeyInfoType_MgmtData_ARRAY_SIZE 1
+struct xmldsigKeyInfoType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigKeyInfoType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":KeyName, http://www.w3.org/2001/XMLSchema,string */
+	struct {
+		struct {
+			exi_string_character_t characters[xmldsigKeyInfoType_KeyName_CHARACTERS_SIZE];
+			uint16_t charactersLen;
+		}  array[xmldsigKeyInfoType_KeyName_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} KeyName;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":KeyValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyValueType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":DSAKeyValue|"http://www.w3.org/2000/09/xmldsig#":RSAKeyValue|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigKeyValueType array[xmldsigKeyInfoType_KeyValue_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} KeyValue;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":RetrievalMethod, Complex type name='http://www.w3.org/2000/09/xmldsig#,RetrievalMethodType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1})',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigRetrievalMethodType array[xmldsigKeyInfoType_RetrievalMethod_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} RetrievalMethod;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":X509Data, Complex type name='http://www.w3.org/2000/09/xmldsig#,X509DataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":X509IssuerSerial|"http://www.w3.org/2000/09/xmldsig#":X509SKI|"http://www.w3.org/2000/09/xmldsig#":X509SubjectName|"http://www.w3.org/2000/09/xmldsig#":X509Certificate|"http://www.w3.org/2000/09/xmldsig#":X509CRL|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]))){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigX509DataType array[xmldsigKeyInfoType_X509Data_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} X509Data;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":PGPData, Complex type name='http://www.w3.org/2000/09/xmldsig#,PGPDataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='(("http://www.w3.org/2000/09/xmldsig#":PGPKeyID,"http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket{0-1},(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED})|("http://www.w3.org/2000/09/xmldsig#":PGPKeyPacket,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-UNBOUNDED}))',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigPGPDataType array[xmldsigKeyInfoType_PGPData_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} PGPData;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SPKIData, Complex type name='http://www.w3.org/2000/09/xmldsig#,SPKIDataType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":SPKISexp,(WC[##other:"http://www.w3.org/2000/09/xmldsig#"]){0-1}){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigSPKIDataType array[xmldsigKeyInfoType_SPKIData_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} SPKIData;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":MgmtData, http://www.w3.org/2001/XMLSchema,string */
+	struct {
+		struct {
+			exi_string_character_t characters[xmldsigKeyInfoType_MgmtData_CHARACTERS_SIZE];
+			uint16_t charactersLen;
+		}  array[xmldsigKeyInfoType_MgmtData_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} MgmtData;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,ManifestType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigManifestType_Id_CHARACTERS_SIZE 50
+#define xmldsigManifestType_Reference_ARRAY_SIZE 1
+struct xmldsigManifestType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigManifestType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Reference, Complex type name='http://www.w3.org/2000/09/xmldsig#,ReferenceType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":Transforms{0-1},"http://www.w3.org/2000/09/xmldsig#":DigestMethod,"http://www.w3.org/2000/09/xmldsig#":DigestValue)',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigReferenceType array[xmldsigManifestType_Reference_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} Reference;
+};
+
+/* Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":SignedInfo,"http://www.w3.org/2000/09/xmldsig#":SignatureValue,"http://www.w3.org/2000/09/xmldsig#":KeyInfo{0-1},"http://www.w3.org/2000/09/xmldsig#":Object{0-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+#define xmldsigSignatureType_Id_CHARACTERS_SIZE 50
+#define xmldsigSignatureType_Object_ARRAY_SIZE 1
+struct xmldsigSignatureType {
+	/* attribute: Id {http://www.w3.org/2001/XMLSchema,ID} */
+	struct {
+		exi_string_character_t characters[xmldsigSignatureType_Id_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  Id ;
+	unsigned int Id_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SignedInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignedInfoType',  base type name='anyType',  content type='ELEMENT',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":CanonicalizationMethod,"http://www.w3.org/2000/09/xmldsig#":SignatureMethod,"http://www.w3.org/2000/09/xmldsig#":Reference{1-UNBOUNDED})',  derivedBy='RESTRICTION'.  */
+	struct xmldsigSignedInfoType SignedInfo ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":SignatureValue, Complex type name='http://www.w3.org/2000/09/xmldsig#,SignatureValueType',  base type name='base64Binary',  content type='SIMPLE',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  derivedBy='EXTENSION'.  */
+	struct xmldsigSignatureValueType SignatureValue ;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":KeyInfo, Complex type name='http://www.w3.org/2000/09/xmldsig#,KeyInfoType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='("http://www.w3.org/2000/09/xmldsig#":KeyName|"http://www.w3.org/2000/09/xmldsig#":KeyValue|"http://www.w3.org/2000/09/xmldsig#":RetrievalMethod|"http://www.w3.org/2000/09/xmldsig#":X509Data|"http://www.w3.org/2000/09/xmldsig#":PGPData|"http://www.w3.org/2000/09/xmldsig#":SPKIData|"http://www.w3.org/2000/09/xmldsig#":MgmtData|(WC[##other:"http://www.w3.org/2000/09/xmldsig#"])){1-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct xmldsigKeyInfoType KeyInfo ;
+	unsigned int KeyInfo_isUsed:1;
+	/* element: "http://www.w3.org/2000/09/xmldsig#":Object, Complex type name='http://www.w3.org/2000/09/xmldsig#,ObjectType',  base type name='anyType',  content type='MIXED',  isAbstract='false',  hasTypeId='false',  final='0',  block='0',  particle='((WC[##any])){0-UNBOUNDED}',  derivedBy='RESTRICTION'.  */
+	struct {
+		struct xmldsigObjectType array[xmldsigSignatureType_Object_ARRAY_SIZE];
+		uint16_t arrayLen;
+	} Object;
+};
+
+
+
+#define EXIDocument_MgmtData_CHARACTERS_SIZE 50 
+#define EXIDocument_KeyName_CHARACTERS_SIZE 50 
+#define EXIDocument_DigestValue_BYTES_SIZE 350 
+#define EXIFragment_PGPKeyPacket_BYTES_SIZE 350 
+#define EXIFragment_PgenCounter_BYTES_SIZE 350 
+#define EXIFragment_X509Certificate_BYTES_SIZE 350 
+#define EXIFragment_Seed_BYTES_SIZE 350 
+#define EXIFragment_Modulus_BYTES_SIZE 350 
+#define EXIFragment_X509SKI_BYTES_SIZE 350 
+#define EXIFragment_SPKISexp_BYTES_SIZE 350 
+#define EXIFragment_KeyName_CHARACTERS_SIZE 50 
+#define EXIFragment_P_BYTES_SIZE 350 
+#define EXIFragment_Exponent_BYTES_SIZE 350 
+#define EXIFragment_X509IssuerName_CHARACTERS_SIZE 50 
+#define EXIFragment_X509SubjectName_CHARACTERS_SIZE 50 
+#define EXIFragment_DigestValue_BYTES_SIZE 350 
+#define EXIFragment_MgmtData_CHARACTERS_SIZE 50 
+#define EXIFragment_Y_BYTES_SIZE 350 
+#define EXIFragment_J_BYTES_SIZE 350 
+#define EXIFragment_PGPKeyID_BYTES_SIZE 350 
+#define EXIFragment_G_BYTES_SIZE 350 
+#define EXIFragment_X509CRL_BYTES_SIZE 350 
+#define EXIFragment_Q_BYTES_SIZE 350 
+#define EXIFragment_XPath_CHARACTERS_SIZE 50 
+
+
+/* Global elements of EXI Document */
+struct xmldsigEXIDocument {
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
+	union {
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
+	struct xmldsigSignaturePropertyType SignatureProperty ;
+	struct xmldsigDSAKeyValueType DSAKeyValue ;
+	struct xmldsigSignaturePropertiesType SignatureProperties ;
+	struct xmldsigKeyValueType KeyValue ;
+	struct xmldsigTransformsType Transforms ;
+	struct xmldsigDigestMethodType DigestMethod ;
+	struct xmldsigSignatureType Signature ;
+	struct xmldsigRetrievalMethodType RetrievalMethod ;
+	struct xmldsigManifestType Manifest ;
+	struct xmldsigReferenceType Reference ;
+	struct xmldsigCanonicalizationMethodType CanonicalizationMethod ;
+	struct xmldsigRSAKeyValueType RSAKeyValue ;
+	struct xmldsigTransformType Transform ;
+	struct xmldsigPGPDataType PGPData ;
+	struct {
+		exi_string_character_t characters[EXIDocument_MgmtData_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  MgmtData ;
+	struct xmldsigSignatureMethodType SignatureMethod ;
+	struct xmldsigKeyInfoType KeyInfo ;
+	struct xmldsigSPKIDataType SPKIData ;
+	struct xmldsigX509DataType X509Data ;
+	struct xmldsigSignatureValueType SignatureValue ;
+	struct {
+		exi_string_character_t characters[EXIDocument_KeyName_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  KeyName ;
+	struct {
+		uint8_t bytes[EXIDocument_DigestValue_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  DigestValue ;
+	struct xmldsigSignedInfoType SignedInfo ;
+	struct xmldsigObjectType Object ;
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
+	};
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
+	unsigned int SignatureProperty_isUsed:1;
+	unsigned int DSAKeyValue_isUsed:1;
+	unsigned int SignatureProperties_isUsed:1;
+	unsigned int KeyValue_isUsed:1;
+	unsigned int Transforms_isUsed:1;
+	unsigned int DigestMethod_isUsed:1;
+	unsigned int Signature_isUsed:1;
+	unsigned int RetrievalMethod_isUsed:1;
+	unsigned int Manifest_isUsed:1;
+	unsigned int Reference_isUsed:1;
+	unsigned int CanonicalizationMethod_isUsed:1;
+	unsigned int RSAKeyValue_isUsed:1;
+	unsigned int Transform_isUsed:1;
+	unsigned int PGPData_isUsed:1;
+	unsigned int MgmtData_isUsed:1;
+	unsigned int SignatureMethod_isUsed:1;
+	unsigned int KeyInfo_isUsed:1;
+	unsigned int SPKIData_isUsed:1;
+	unsigned int X509Data_isUsed:1;
+	unsigned int SignatureValue_isUsed:1;
+	unsigned int KeyName_isUsed:1;
+	unsigned int DigestValue_isUsed:1;
+	unsigned int SignedInfo_isUsed:1;
+	unsigned int Object_isUsed:1;
+
+
+	int _warning_;
+};
+
+#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES
+/* Possible elements of EXI Fragment */
+struct xmldsigEXIFragment {
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
+	union {
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
+	struct xmldsigRSAKeyValueType RSAKeyValue ;
+	struct {
+		uint8_t bytes[EXIFragment_PGPKeyPacket_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PGPKeyPacket ;
+	struct xmldsigX509DataType X509Data ;
+	struct {
+		uint8_t bytes[EXIFragment_PgenCounter_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PgenCounter ;
+	struct {
+		uint8_t bytes[EXIFragment_X509Certificate_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  X509Certificate ;
+	struct {
+		uint8_t bytes[EXIFragment_Seed_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Seed ;
+	struct {
+		uint8_t bytes[EXIFragment_Modulus_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Modulus ;
+	struct {
+		uint8_t bytes[EXIFragment_X509SKI_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  X509SKI ;
+	struct {
+		uint8_t bytes[EXIFragment_SPKISexp_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  SPKISexp ;
+	struct xmldsigCanonicalizationMethodType CanonicalizationMethod ;
+	int64_t X509SerialNumber ;
+	struct xmldsigSignaturePropertiesType SignatureProperties ;
+	struct xmldsigReferenceType Reference ;
+	struct {
+		exi_string_character_t characters[EXIFragment_KeyName_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  KeyName ;
+	struct {
+		uint8_t bytes[EXIFragment_P_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  P ;
+	struct xmldsigSignatureValueType SignatureValue ;
+	struct xmldsigSignedInfoType SignedInfo ;
+	struct xmldsigKeyInfoType KeyInfo ;
+	struct xmldsigDigestMethodType DigestMethod ;
+	struct xmldsigSPKIDataType SPKIData ;
+	struct xmldsigObjectType Object ;
+	struct {
+		uint8_t bytes[EXIFragment_Exponent_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Exponent ;
+	struct {
+		exi_string_character_t characters[EXIFragment_X509IssuerName_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  X509IssuerName ;
+	struct {
+		exi_string_character_t characters[EXIFragment_X509SubjectName_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  X509SubjectName ;
+	struct xmldsigPGPDataType PGPData ;
+	int64_t HMACOutputLength ;
+	struct {
+		uint8_t bytes[EXIFragment_DigestValue_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  DigestValue ;
+	struct {
+		exi_string_character_t characters[EXIFragment_MgmtData_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  MgmtData ;
+	struct xmldsigKeyValueType KeyValue ;
+	struct xmldsigSignaturePropertyType SignatureProperty ;
+	struct xmldsigDSAKeyValueType DSAKeyValue ;
+	struct xmldsigX509IssuerSerialType X509IssuerSerial ;
+	struct {
+		uint8_t bytes[EXIFragment_Y_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Y ;
+	struct {
+		uint8_t bytes[EXIFragment_J_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  J ;
+	struct xmldsigSignatureType Signature ;
+	struct xmldsigTransformType Transform ;
+	struct {
+		uint8_t bytes[EXIFragment_PGPKeyID_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  PGPKeyID ;
+	struct xmldsigTransformsType Transforms ;
+	struct {
+		uint8_t bytes[EXIFragment_G_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  G ;
+	struct {
+		uint8_t bytes[EXIFragment_X509CRL_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  X509CRL ;
+	struct {
+		uint8_t bytes[EXIFragment_Q_BYTES_SIZE];
+		uint16_t bytesLen;
+	}  Q ;
+	struct {
+		exi_string_character_t characters[EXIFragment_XPath_CHARACTERS_SIZE];
+		uint16_t charactersLen;
+	}  XPath ;
+	struct xmldsigSignatureMethodType SignatureMethod ;
+	struct xmldsigRetrievalMethodType RetrievalMethod ;
+	struct xmldsigManifestType Manifest ;
+#if SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES
+	};
+#endif /* SAVE_MEMORY_WITH_UNNAMED_UNION == UNION_YES */ 
+	unsigned int RSAKeyValue_isUsed:1;
+	unsigned int PGPKeyPacket_isUsed:1;
+	unsigned int X509Data_isUsed:1;
+	unsigned int PgenCounter_isUsed:1;
+	unsigned int X509Certificate_isUsed:1;
+	unsigned int Seed_isUsed:1;
+	unsigned int Modulus_isUsed:1;
+	unsigned int X509SKI_isUsed:1;
+	unsigned int SPKISexp_isUsed:1;
+	unsigned int CanonicalizationMethod_isUsed:1;
+	unsigned int X509SerialNumber_isUsed:1;
+	unsigned int SignatureProperties_isUsed:1;
+	unsigned int Reference_isUsed:1;
+	unsigned int KeyName_isUsed:1;
+	unsigned int P_isUsed:1;
+	unsigned int SignatureValue_isUsed:1;
+	unsigned int SignedInfo_isUsed:1;
+	unsigned int KeyInfo_isUsed:1;
+	unsigned int DigestMethod_isUsed:1;
+	unsigned int SPKIData_isUsed:1;
+	unsigned int Object_isUsed:1;
+	unsigned int Exponent_isUsed:1;
+	unsigned int X509IssuerName_isUsed:1;
+	unsigned int X509SubjectName_isUsed:1;
+	unsigned int PGPData_isUsed:1;
+	unsigned int HMACOutputLength_isUsed:1;
+	unsigned int DigestValue_isUsed:1;
+	unsigned int MgmtData_isUsed:1;
+	unsigned int KeyValue_isUsed:1;
+	unsigned int SignatureProperty_isUsed:1;
+	unsigned int DSAKeyValue_isUsed:1;
+	unsigned int X509IssuerSerial_isUsed:1;
+	unsigned int Y_isUsed:1;
+	unsigned int J_isUsed:1;
+	unsigned int Signature_isUsed:1;
+	unsigned int Transform_isUsed:1;
+	unsigned int PGPKeyID_isUsed:1;
+	unsigned int Transforms_isUsed:1;
+	unsigned int G_isUsed:1;
+	unsigned int X509CRL_isUsed:1;
+	unsigned int Q_isUsed:1;
+	unsigned int XPath_isUsed:1;
+	unsigned int SignatureMethod_isUsed:1;
+	unsigned int RetrievalMethod_isUsed:1;
+	unsigned int Manifest_isUsed:1;
+
+
+	int _warning_;
+};
+#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */
+
+/* Initialization methods for structs */
+
+void init_xmldsigEXIDocument(struct xmldsigEXIDocument* exiDoc);
+#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES
+void init_xmldsigEXIFragment(struct xmldsigEXIFragment* exiFrag);
+#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */
+void init_xmldsigKeyValueType(struct xmldsigKeyValueType* xmldsigKeyValueType);
+void init_xmldsigDSAKeyValueType(struct xmldsigDSAKeyValueType* xmldsigDSAKeyValueType);
+void init_xmldsigRSAKeyValueType(struct xmldsigRSAKeyValueType* xmldsigRSAKeyValueType);
+void init_xmldsigSignaturePropertiesType(struct xmldsigSignaturePropertiesType* xmldsigSignaturePropertiesType);
+void init_xmldsigCanonicalizationMethodType(struct xmldsigCanonicalizationMethodType* xmldsigCanonicalizationMethodType);
+void init_xmldsigObjectType(struct xmldsigObjectType* xmldsigObjectType);
+void init_xmldsigTransformsType(struct xmldsigTransformsType* xmldsigTransformsType);
+void init_xmldsigTransformType(struct xmldsigTransformType* xmldsigTransformType);
+void init_xmldsigDigestMethodType(struct xmldsigDigestMethodType* xmldsigDigestMethodType);
+void init_xmldsigSignatureType(struct xmldsigSignatureType* xmldsigSignatureType);
+void init_xmldsigReferenceType(struct xmldsigReferenceType* xmldsigReferenceType);
+void init_xmldsigSPKIDataType(struct xmldsigSPKIDataType* xmldsigSPKIDataType);
+void init_xmldsigPGPDataType(struct xmldsigPGPDataType* xmldsigPGPDataType);
+void init_xmldsigX509IssuerSerialType(struct xmldsigX509IssuerSerialType* xmldsigX509IssuerSerialType);
+void init_xmldsigSignatureMethodType(struct xmldsigSignatureMethodType* xmldsigSignatureMethodType);
+void init_xmldsigRetrievalMethodType(struct xmldsigRetrievalMethodType* xmldsigRetrievalMethodType);
+void init_xmldsigSignaturePropertyType(struct xmldsigSignaturePropertyType* xmldsigSignaturePropertyType);
+void init_xmldsigSignedInfoType(struct xmldsigSignedInfoType* xmldsigSignedInfoType);
+void init_xmldsigKeyInfoType(struct xmldsigKeyInfoType* xmldsigKeyInfoType);
+void init_xmldsigManifestType(struct xmldsigManifestType* xmldsigManifestType);
+void init_xmldsigSignatureValueType(struct xmldsigSignatureValueType* xmldsigSignatureValueType);
+void init_xmldsigX509DataType(struct xmldsigX509DataType* xmldsigX509DataType);
+
+
+#endif /* DEPLOY_XMLDSIG_CODEC */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Разлика између датотеке није приказан због своје велике величине
+ 4207 - 0
src/xmldsig/xmldsigEXIDatatypesDecoder.c


+ 64 - 0
src/xmldsig/xmldsigEXIDatatypesDecoder.h

@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2007-2015 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9.3 
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * <p>Code generated by EXIdizer</p>
+ * <p>Schema: xmldsig-core-schema.xsd</p>
+ *
+ *
+ ********************************************************************/
+
+
+
+/**
+ * \file 	EXIDatatypesDecoder.h
+ * \brief 	Decoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_xmldsig_DATATYPES_DECODER_H
+#define EXI_xmldsig_DATATYPES_DECODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+
+#include <stdint.h>
+
+#include "EXITypes.h"
+#include "xmldsigEXIDatatypes.h"
+
+int decode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc);
+
+#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES
+int decode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag);
+#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */
+
+#endif /* DEPLOY_XMLDSIG_CODEC */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Разлика између датотеке није приказан због своје велике величине
+ 2897 - 0
src/xmldsig/xmldsigEXIDatatypesEncoder.c


+ 65 - 0
src/xmldsig/xmldsigEXIDatatypesEncoder.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2007-2015 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 <http://www.gnu.org/licenses/>.
+ */
+
+/*******************************************************************
+ *
+ * @author Daniel.Peintner.EXT@siemens.com
+ * @version 0.9.3 
+ * @contact Joerg.Heuer@siemens.com
+ *
+ * <p>Code generated by EXIdizer</p>
+ * <p>Schema: xmldsig-core-schema.xsd</p>
+ *
+ *
+ ********************************************************************/
+
+
+
+/**
+ * \file 	EXIDatatypesEncoder.h
+ * \brief 	Encoder for datatype definitions
+ *
+ */
+
+#ifndef EXI_xmldsig_DATATYPES_ENCODER_H
+#define EXI_xmldsig_DATATYPES_ENCODER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if DEPLOY_XMLDSIG_CODEC == SUPPORT_YES
+
+#include <stdint.h>
+
+#include "EXITypes.h"
+#include "xmldsigEXIDatatypes.h"
+
+
+int encode_xmldsigExiDocument(bitstream_t* stream, struct xmldsigEXIDocument* exiDoc);
+
+#if DEPLOY_XMLDSIG_CODEC_FRAGMENT == SUPPORT_YES
+int encode_xmldsigExiFragment(bitstream_t* stream, struct xmldsigEXIFragment* exiFrag);
+#endif /* DEPLOY_XMLDSIG_CODEC_FRAGMENT */
+
+#endif /* DEPLOY_XMLDSIG_CODEC */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif

Неке датотеке нису приказане због велике количине промена