> > For export, a xml file describe how to export
> > a node at one level.
And now, there is the same xml file for import.
> Fine. I hope one can specify a header (and footer)
> for the generated file?
It is not explicit but you can add text before root (and after
As there is only one root, it is like a header (and footer).
But I can add a header and footer xml entity if needed.
> This would be very useful for LaTeX exports.
Of course. Just add a LaTeX export with correct extensions (LTX ?).
> Also, I think we could run into a problem to decide
> when it's necessary to write a new FreeMind mode to
> get some functionality and when to use import/export
> (and thus eventually modify/extend import/export to
> fit the needs).
> the obvious way is to go via import/export first and
> only write a new mode if that is not enough.
> But if one can see that a feature needs some functionality
> that is not available in MindMapMode, its better to
> directly write a new mode.
Just remember that xml freemind file are the default (mm files).
So you can use import the first time, save in an mm file, work with it and
some time export to another type.
This is because all the mindmap parameters are not save in export (color
> I hope your xml syntax is easy?
I hope so :-)
> Maybe you can send an example?
Of course , here are a template files to export and import both in txt and
html file (symetrical way).
The structure is the same for import and export.
For export, when filter write a node at level x, :
- we select the correct level in xml file,
- write the text in node/begin block
- if node has children, write the text in children/begin block
- export children (if there are at least one)
- if node has children, write the text in children/end block
- write the text in node/end block
The level * match every level not found before.
<text value=".."/> write text in value prop.
<text/> write the text node.
For import, the filter parse the file and try to find some tags then :
- try to find the corresponding xml block
- if it is a node/begin, the following text is a node at the level
indicated by the level block (if *, current level). The text is could be
delimitated with an <text value> block. Import the node then parse until a
new found block
- if it is a node/end, stop import and parse until a new found block
- if it is a children/begin, increment the current level
- if it is a children/end, decrement the current level
(See attached file: export_text.xml)
(See attached file: export_html.xml)
(See attached file: import_html.xml)
(See attached file: import_text.xml)