- Will the tree view bog down given a large enough XML file with a lot of depth?
No. The tree view itself takes less than one second to populate and display because it is completely virtual.
The only time factor is that of parsing the XML, which is done incrementally, so even if the XML is many gigabytes
and each element has millions of child elements, it should never take more than a couple of seconds to parse the
first few thousand elements. XMLMax uses Microsoft's XmlReader, arguably the fastest XML parser. The tree view
technology is addressed in greater detail in a white paper article.
- Can the tree view collapse a large element with over one million child elements, for example?
Yes. Even in a worse case scenario with millions of child elements, it should take only a couple of seconds to collapse. Expansion of large elements is even quicker.
- What if I have a file that is not well-formed XML?
It will be parsed until an XML syntax error is encountered, at which time parsing stops and an error message is displayed with a description that includes the line and character position of the error. An option is then provided to display the section of the file that contains the error so that it may be fixed, saved and reloaded.
- How is an XML document instantly reloaded?
When the XML is first parsed and displayed in the tree view, a small amount of meta data about the file is saved to a separate disk file. The meta file size is typically between
.001 percent and .0001 percent of the the size of the XML file.
The next time the XML is opened in XMLMax, the data in the meta file enables the XML to be displayed in the tree view without reparsing the entire XML file.
If the XML is modified with XMLMax, the metafile is automatically updated. However, if the XML is modified outside of XMLMax, then the next time it is
opened with XMLMax the meta file will be deleted because its data is no longer valid and the entire XML must be fully parsed and a new meta file created.
- How well does XMLMax support XPath and what versions are supported?
XPath 1.0 is supported. XML files that can be fully loaded into available memory may be queried. The resulting
nodeset may be viewed in the treeview and saved to a separate XML file.
- Are XPath queries namespace aware?
Yes. In order for the query to locate an element that is in the scope of a namespace, the XPath expression must prefix the element name, as per the XPath 1.0 specification.
- What about XSLT?
XML files that can be fully loaded into available memory may be transformed.
- Does XMLMax attempt to access an externally referenced DTD?
By default, XMLMax does not attempt to access an externally referenced DTD. The Options Dialog has a ProhibitDTD setting
that may be changed to permit the parser to access an externally referenced DTD.
- How does XMLMax handle the Document Type node?
The complete content of a Document Type node(DOCTYPE) is displayed in the treeview, but it may not be edited.
- How does XMLMax handle entities?
Named entities declared in a DOCTYPE node are resolved and displayed in the treeview.
Undeclared named entities will, by default, result in an XML error in accordance to the XML specification.
The pre-defined entites, <, >, &, " and ' are always resolved.
- Are XML documents validated, by schema or DTD, when they are opened by XMLMax?
Not by default. A setting in the Options Dialog may be used to have XML files validated upon opening them.
XML documents may be also be validated after they have been parsed and displayed in the treeview.