Show IATI: Transform v1.0x data to v2.03


(Andy Lulham) #1

Here is an experimental tool to transform v1.0x data to v2.03:

https://iati-transformer.herokuapp.com

You can one-off transform legacy data with this. Alternatively, you could run current data through the transformer, copy the generated link, and post that to the registry. Or the datastore could potentially use this to import v1.0x data.

Of course, if the v1.0x data is missing information that is required at v2.03, you’ll see an error, and the requisite fields will need to be populated. But it can still potentially save a bit of work.

Under the hood, this app uses an XSLT file to transform IATI v1.0x activity XML into IATI v2.03 activity XML (this one). Producing an XSLT file like this should probably be part of any major version upgrade.


IATI Datastore - what data should go in?
(Andy Lulham) #2

I tried using IATI Transformer to transform all the v1.0x data on the registry to v2.03.

Here’s the result.

In summary:

  • 127 v1.0x datasets were transformed to v2.03 successfully (i.e. without schema or codelist errors)
  • 738 v1.0x datasets were transformed to v2.03, but the result has schema or codelist errors
  • 190 v1.0x datasets were invalid beforehand (so the transformer refused to try and transform them)

(Tim Davies) #3

Good stuff @andylolz: and nice to see some XSLT in use :slight_smile:

I noticed quite a lot of the schema errors were to do with missing elements (titles and descriptions in the examples I saw), and I guess the strict element ordering validation in 2.x.

Have you considered having a ‘quirks mode’ conversion that populates these missing descriptive elements with ‘Not provided’ or some default text?


(Andy Lulham) #4

@TimDavies Thanks! (And thanks for trying it out & providing feedback!)

Hmm… Could you provide some examples? The output XML shouldn’t have element ordering errors, as the XSLT should account for that… But I agree about missing elements – that’s certainly a consequence of 2.0x being a bit more strict.

There’s a very very tiny bit of auto-population at the moment (the old activity-website element gets reshaped into a document-link, so it’s given the title “Activity website” and a category.) Quirksmode is an interesting idea – I certainly wouldn’t make it default behaviour (as I don’t want the transformer to modify the content of publishers’ data by default – just the shape) but I’d be interested in adding that as a request parameter.