NanoXML: Difference between revisions

From FreeMind
Jump to navigationJump to search
No edit summary
No edit summary
 
Line 1: Line 1:
''(Development documentation.)''
''(Development documentation. Written by Dan Polansky, bar perhaps any edits later.)''


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]].
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]].
Line 8: Line 8:
* NanoXML/Lite
* NanoXML/Lite
See the link above for detail.
See the link above for detail.
A note on naming: the prefix "nano-" in NanoXML referred to its being extremely small (compare nanometer, nanobot, etc.) It seems that what was originally NanoXML became NanoXML/Lite (I must have read it in the documentation). The presence of "NanoXML" in "NanoXML/Java" in misleading: this parser is no longer nano.


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."[https://web.archive.org/web/20110814134950/http://devkix.com/nanoxml.php].
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."[https://web.archive.org/web/20110814134950/http://devkix.com/nanoxml.php].

Latest revision as of 08:57, 29 August 2026

(Development documentation. Written by Dan Polansky, bar perhaps any edits later.)

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.

A note on naming: the prefix "nano-" in NanoXML referred to its being extremely small (compare nanometer, nanobot, etc.) It seems that what was originally NanoXML became NanoXML/Lite (I must have read it in the documentation). The presence of "NanoXML" in "NanoXML/Java" in misleading: this parser is no longer nano.

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.

NanoXML/Lite itself comes with two files only:

  • XMLElement.java
  • XMLParseException.java

These two files in FreeMind:

  • freemind\freemind\main\XMLElement.java[2]
  • freemind\freemind\main\XMLParseException.java[3]

XMLElement class is extended by XMLElementAdapter, which is then extended by MindMapXMLElement and BrowseXMLElement.

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: