NanoXML

From FreeMind
Revision as of 11:18, 27 August 2026 by Dan Polansky (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

(Development documentation.)

NanoXML is said to be an XML parser, which was perhaps true of version 1, but is now actually a collection of XML parsers. See also Components.

As per the original web site, the parsers are as follows:

  • NanoXML/Java
  • NanoXML/SAX
  • NanoXML/Lite

See the link above for detail.

FreeMind 1.0.1 (and multiple earlier versions) uses a modified version of NanoXML 2 Lite to parse mind map XML (and possibly for other purposes?). As per devix.com, "NanoXML/Lite" is "An extremely small (6KB) XML parser which is the successor of NanoXML 1. It only provides a limited functionality: no mixed content and the DTD is ignored."[1].

A (modified) copy of the source code is present in the FreeMind source code repository.

Files relating to NanoXML:

  • freemind\freemind\main\XMLElement.java[2]
  • freemind\freemind\main\XMLParseException.java[3]
  • freemind\freemind\modes\XMLElementAdapter.java
  • freemind\freemind\modes\browsemode\BrowseXMLElement.java
  • freemind\freemind\modes\mindmapmode\MindMapXMLElement.java

Related directories:

  • freemind\freemind\main[4]
  • etc.

In the patches tracker, there is a patch to NanoXML's XMLElement.java and other files that would enable FreeMind to store mind maps as UTF-8: https://sourceforge.net/p/freemind/patches/67/. And that patch points to User:Jiangxin/Better chinese characters support, which has a diff.

Links: