Backup 2.0 multiple formats
One of the major goals of the Moodle 2.0 backup development is to be able to support multiple formats, both on export (backup) and import (restore), all them handled from core backup/restore code in a central and unified way.
This document explains how those formats will work and interact with Moodle, defining responsibilities and data flow between each part.
Moodle 2.0 has one unique, documented, valid XML format. Details about it can be found in the Backup 2.0 XML format page. (note the page doesn't exist yet because it's one of the parts being researched in the next weeks) This will be the M20-BCK format. It's highly possible that this format will end being noticeably different from current (monolithic) format used in Moodle 1.9, although internal structures will remain pretty similar.
Also, there is one unique, undocumented (but easily readable and understandable because it's basically one DB dump) XML format used before Moodle 2.0, let's call it the M19-BCK (from Moodle 1.9) format. It's an important format because we need to guarantee that any M19-BCK file will be properly restored in Moodle 2.0.
And then there are various formats, let's call them 3RD-BCK (3rd part backup formats) that should provide Moodle with extra backup / restore abilities. Notorious examples of these formats are: Blackboard 5.5, Blackboard 6.0 (see cvs to see how they are working in Moodle 1.x), or the new IMS CC format. In any case, all them will work in the same way under Moodle 2.0, so let's put them under the "3RD-BCK" umbrella.
Restore Data Flow
Here it's one general overview of how those multiple formats are supported on restore. It handles M20-BCK backups (in blue, main restore process) and both 3RD-BCK and M19-BCK formats (in green, handling other formats sub-process).