IATI Consultations Archive

Live discussions and consultations can be found at discuss.iatistandard.org.

@version should be consistent

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

Have more questions? Submit a request

8 Comments

  • 0
    Avatar
    IATI Tech Team

    Discussion on versions is now split across a number of posts, so for clarity:

  • 0
    Avatar
    David Carpenter

    I understand that this being addressed in version 2.01 of the standard. Therefore I am moving this into the 2.01 upgrade forum.

  • 0
    Avatar
    Herman van Loon

    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?

  • 0
    Avatar
    Bill Anderson

    We thought about this...

    1. For users consuming xml blobs from the datastore we need iati-activity/@version
    2. For users consuming raw publisher files we thought it was easier to leave it in the file header

    Bottom line is we need (1) but could do without (2)

  • 0
    Avatar
    Herman van Loon

    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)

     

  • 0
    Avatar
    Bill Anderson

    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

  • 0
    Avatar
    Cristián Mansilla Aguilera

    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).

  • 0
    Avatar
    Herman van Loon

    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.

Article is closed for comments.