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.
Good stuff Andy Lulham : and nice to see some XSLT in use
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?
Tim Davies Thanks! (And thanks for trying it out & providing feedback!)
TimDavies: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.
TimDavies: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.