There is a version attribute on both iati-activities and iati-activity. Currently it is not clear whether these versions must be the same, or whether individual activities may have different versions of the IATI Standard. Also, most publishers use the attribute on iati-activities and not iati-activity, so most data consumers are also using the attribute on iati-activities.
In order to make interpreting IATI data easier for data consumers, I propose that:
- iati-activities/@version and iati-activity/@version must match
- iati-activities/@version is required if iati-activity/@version is given (so that it's always possible to determine the version of a file just by looking at iati-activities/@version)
This is simply making mandatory what almost all publishers do already, so I forsee relatively little impact on publishers.
This proposal is a continuation discussion on github - mostly at https://github.com/IATI/IATI-Schemas/issues/30 but also at https://github.com/IATI/IATI-Schemas/issues/21
This proposal has been moved into the 2.01 forum because this issue is being addressed in 2.01. This is not actually the final proposal for 2.01, for that see http://support.iatistandard.org/entries/57866638-Tightening-up-on-version
Discussion on versions is now split across a number of posts, so for clarity:
I understand that this being addressed in version 2.01 of the standard. Therefore I am moving this into the 2.01 upgrade forum.
If the iati-activities/@version and iati-activity/@version must match, what is the use of specifying the version on the activity level at all?
Are there any examples where the version on the activity level differs from the version on the activities level?
We thought about this...
Bottom line is we need (1) but could do without (2)
For case 1: if the iati-activity/@version is missing, I would think it can easily be derived from the iati-activities/@version from the header. No need to have any version information on the activity level.
(but I maybe I am missing something here because I am not using the IATI datastore myself, I am processing the raw data)
The data store saves each iati--activity as a blob in its original format WITHOUT adding anything.
A user request for xml data from the datastore will create a single xml file containing activities from a range of different publishers - each could have a different version.
The datastore would have to modify the raw data to write the version onto the activity header
I know that it could be possible to set decimal places in XSD. However, @version should be an object rather than attribute of either iati-activitiesor iati-activity. Maybe that would be a good option.
I used SQL-to-XML tool and I just set the @version as DECIMAL(10,2).
Wouldnot it be better to avoid data redundancy (with the risk of introducing inconsistencies) in the IAT standard? Or is it valid and useful to have different versions in one file? Because different data consumers will have different requirements for the structure of the data they want to use, it is better in my opnion to avoid modelling the IATI data for a specific use case.