Universal XML-data representation for future SuperMemos

What should this XML design accomplish:

Basic XML elements that form SuperMemo XML data:

Accessory elements:

Same Elements may be organized in a different way. For example export from SuperMemo for Windows could result in the nested tree structure of SuperMemoElement's, their content and learning data, list of elements, list of content and list of learning data in separate files, elements and the knowledge tree, etc.. LearningData may link to SuperMemoElement/Content while SuperMemoElement may link to LearningData.

Elements can be located anywhere in the world, learning data can also be remote or local.

Wherever possible Elements on the web must be indexable by search engines!

Components

Core implementation:

Single text files organized as follows:

  1. Student element (optional)
  2. SuperMemoCollection element (optional)
  3. Nested structure of SuperMemoElement's with SuperMemoElement/Content and Learning data (optional)

We should allow of SuperMemoCollection being a child of Student as well as Student being a child of SuperMemoCollection (circular dependencies).

Repetition history may need to be stored on handhelds to retain continuity with SMWin.

Contents as XML, one element can belong to many branches, one branch can belong to many branches! Circularity will not be a problem as the user can dig as deep as (s)he wants, and the whole tree does not ever need to be displayed.