XMLMax challenges long-established ideas about what can be accomplished with large XML. What is "large"? Our answer is that XMLMax considers anything less than 500 MB to be small. It solves problems with large XML thought to be unsolvable. Here are a few examples.
Few have thought it possible to have a graphical XML editor without loading the entire XML into memory. It has been done with XML viewers, but never before with an XML Editor. Xponent devised a method of using byte offsets for segmenting, buffering and caching XML that not only uses very little memory but results in excellent performance. Approxamately ten thousand XML nodes are held in memory at one time. This typically uses about twenty megabytes of RAM if the text nodes are small.
Speed and Capacity.
What sets XMLMax apart from all other XML Editors and XML tools are its load speed and ability to handle any size XML. XMLMax can fully parse and load a one gigabyte XML into our treeview about ten seconds. The load rate does not slow significantly with larger files having similar structure. It has no structure-related limitations, such as the number of child nodes or node types. XMLMax uses an XmlReader as well as fast access to any element at any time using byte offsets. Several XMLMax customers regularly use it with files in the 1-3 gigabyte range, and one with XML files as large as 60 gigabytes.
The treeview has earned a reputation of being horribly slow when used with large XML. Software that dynamically adds child nodes when an element is expanded helps, but does not work with all XML files. Download the simple.xml file in zip format(1.5MB zipped, 21 MB XML) and try loading it into a treeview with whatever software you have. It will likely be very slow or not load at all. XMLMax loads it in about three seconds. The time required to display large XML in Xponent's proprietary treeview is little more than the time it takes to read ( parse) the XML; once parsed, loading it into the treeview takes a small fraction of one second. Our treeview article goes into some detail on how it works. Briefly, it loads only about twenty-five XML nodes into the treeview (total, including any child nodes) and dynamically figures out what nodes to swap in and out as the tree is navigated. How is this possible? It actually is not a treeview in the traditional sense, but a totally unique object that exhibits the behavior of a treeview.
Re-opening an XML file is instaneous. This huge time-saver is perhaps the most impressive feature. It is truly amazing to see a ten or even sixty gigabyte XML file displayed in a treeview in just one or two seconds, fully ready for all functions including editing, query and splitting. The only exception is if the file was edited and saved, which requires a full parsing the next time it is opened, after which instant re-load is again available.
Flexible XML File Splitting.
It is often necessary to split large XML into smaller files for data import or use with other software applications. This can require hours of coding. XMLMax offers several methods for splitting XML files based on depth, tag name, attribute value and other criteria. A customized root node and an include file may be inserted into each split XML file. If you require a command-line tool that splits large XML without a user-interface, try our XmlSplit
Copyright(c), 2009, 2010. Xponent LLC.