I'm faced with the need to export a group of model instances (some of which have associated file attachments) in a format that will be easy to read back into my system, but that is also human friendly to read, and possibly import into another similar system (though I don't care about exporting it to fit any particular standard as there doesn't seem to be huge consensus around ePortfolio export standards yet.
The major point of this is for end user backup, and so that they can share these ePortfolio's with other schools that use our product.
My current thinking is to add an export method to each applicable model that defines what to spit out. This method will also call the export methods of associated models that this one relies on (e.g. child relations).
My current export format choice is YAML for its readability and ready integration with Ruby. The filesystem format would probably be a zip file structure and I guess I'd need to somehow re-id all of the model instances or show this parent-child relationship in the YAML file so that it can be created in a new system without everything needing the same ID's as in the original system.
Anyway, I know this is a bit broad but I'd like to hear about what you'd suggest for a mechanism like this.
In the end I went with a ZIP file containing an XML file along with all the linked assets (documents, pictures etc...). Seemed to be the most open and future-proof way to go and will allow a savvy person to import this data into another system.
There is LEAP2A but it seemed to vague to me.