The current version of XMCDA is 4.0.0.
It is available as usual as a XML schema, at:
However, it is not the operational version of XMCDA yet, and XMCDA v2.2.3 is still the one on which web-services and diviz operate.
The reason is that switching from v2.x to v4.x is a huge step for all of us.
The objective of the redesign of XMCDA v2 into XMCDA v4 was to remove ambiguities in the v2 format, and to make it more consistent.
Some of the ambiguities historically came from a desire to simplify, where possible, the writing of an XMCDA file. For example, in many places such as in the performance table, it was possible to give a value or a list of values in two ways, either directly:
or by including them in a
<values> <value>1<value> </values>
Similarly, it was possible to declare
<criterionValue> directly in the root
XMCDA tag or inside a
<criteriaValues> tag, etc.
In practice, this has caused real interoperability problems, when some programs that had adopted only one of the two ways were unable to read the other.
The other type of ambiguity found in XMCDA v2 is structural and occurs in the representation of MCDA concepts, some of which could be represented in two different ways. For example, weights on criteria could be described either directly in the ``criteria’’ tag or as ``criteriaValues’‘. The problem of interoperability of programs using the standard obviously arose in this case, too. Within the Decision Deck Consortium, we solved this problem by checking the submissions of program authors before they were integrated into the web services offering, and by guiding the authors when necessary to choose the representation that was used by the programs already present. In this way we ensured the interoperability of all programs hosted by the Consortium (and used in the diviz but this was of course not satisfactory, most importantly from the perspective of the XMCDA standard.
Finally, there were some inconsistencies in XMCDA v2: criteria’ scale or functions could only be declared inside
criterion, while criteria values could be declared bot inside a
criterion tag or as
criteriaValues. On the other hand, categories themselves could only declare ranks (in addition to
categoriesValues). hence, the decision was made to unify everything: alternatives, criteria and categories (and their “xxxSets” equivalent) only describe these objects, and everythong else get it own, dedicated tag (
That were the main reasons why we decided to re-examine the XMCDA v2 format, resulting in the current version 4 (version 3 was the next version until we realized we forgot to rename some tags!).
The following roadmap has been adopted:
- This implementation should be available to (at the minimum) the following languages: Java, R and Python.
- This implementation should be able to translate from one version to another, using the principle of the maximum efforts (bot versions are not compatible so certain things cannot be translated).