Thanks to the efforts of the ODX standardization its possible to describe the command sets of an electric control module in a formal syntax.
But to use these information in OOBD or other tools, it's nessesary to transform these ODX syntax into a format which is understood by the tools.
This is what OpenDiagX do. Honestly OpenDiagX is nothing more as a simple XSLT transformer, but as the ODX input format and output format needed for OOBD (and SKDS) are so different, the author decided to wrap some software around the translation process - which means that an XSLT specialist could maybe do the whole translation only in xslt - but the author can't..
The software is available in two variants: OpenDiagXGUI and OpenDiagXCL. The GUI version is mainly for testing purposes, while the CL (Command Line) is made to use in batch or make files. Both programs do basically the same, so we have a very short look into the command line syntax
opendiagxcl input-xslt-file output-xslt-file inputfile outputfile
and look deeper into the GUI variant, as this explains it all:
When the program is started, it first scans its two subfolders “input” and “output” for contained *.xslt files. The found files are then shown in the two selection boxes “Input-Format” and “Output-Format”.
Then the user chooses the “Input” file by using the file browser button on the right and presses “Start”
Then the following sequence starts:
When using the output format “plain” (included in the OOBD software repository), the output is a 1:1 copy of the internal data representation.
Also the input format “mdx” is also just a 1:1 translation of the input, because the program reads in reality the MDX format (a OEM specific dialect) instead of “real” ODX. But when having a working ODX-MDX XSLT file handy, this can be copied into the “input” folder and than OpenDiagX could read ODX files directly.