- 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 re-loaded?
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, called a stub file. The next time the XML is opened in XMLMax, the data in the stub file enables the XML to be displayed in the tree view without reparsing the entire XML file. However, if the XML is modified, the stub is deleted because it is no longer valid and will be re-created the next time the XML is opened and fully parsed.
- 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 the de-referenced enity is displayed in the treeview.
Undeclared named entities will, by default, result in an XML error in accordance to the XML specification. However, this
may be relaxed by using a setting in the Options Dialog which will not result in an error and the unresolved entity
will be displayed. 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.