- 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 our blog 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. All XPath 1.0 axes are supported, including the "backward-looking" axes, such as ancestor and preceding. The XPath expression must evaluate to a nodeset of XML elements or comments, and upon completion of the evaluation one may iterate through the nodeset in the treeview. One may also write the nodeset to a separate file. Xpath queries require an index, which index byte offsets of each elementis. The index enables using Xpath even if the XML is too big to load into memory, as well as the location of ancestor and preceeding axes.
- 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.
- Does XMLMax attempt to access an externally referenced DTD?
Not during the intial parsing and tree view display because there is no validation performed at that time. If one wishes to validate the XML after it is displayed, the Validate menu accomplishes that. The Options menu has settings for accessing or ignoring DTD files during validation, along with other validation related settings.
- 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. The Edit panel displays entity references (unresolved or raw xml).
The pre-defined entites, <, >, &, ", ' are handled similarly.
- Are XML documents validated when they are opened by XMLMax?
XML documents may be validated only after they have been parsed and displayed in the treeview. Parsing determines if the XML is well-formed. To validate the XML against a schema, choose the Validate menu, select one or more schema files, then select Validate Document.
|