XMLMax FAQ
  • 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 here.
  • 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.
  • Does XMLMax transform an entire XML document using XSLT?

    No. Since XMLMax is designed to handle unlimited size XML, there would be memory and performance limitations if the entire XML were to be loaded into memory. The transformation uses an XPATH expression to locate XML fragments and each matching fragment is transformed using an XSL file. The XSL file must, therefore, be designed to handle a fragment, rather than the entire XML. The results of the transformation of each fragment are appended to a single output file, with an option to insert an Xml Declaration and root element so that it is a well-formed XML document.
  • How well does XMLMax support XPATH and what versions are supported?
    XPATH 1.0 is supported, but only partially. It is limited to forward-looking XPATH expressions. The only operators that may appear in the axes are "/", "//", "*" and "@". The union operator is not supported. The XPATH expression must evaluate to a nodeset of XML elements, 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.
  • 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 named entities?
    Named entities declared in a DOCTYPE node are not resolved and their raw xml format is displayed.
  • How does XMLMax handle default entities?
    The default entities, which are "illegal" xml characters, (single and double quotes, ampersand, less than and greater than symbols) are automatically contracted and expanded. When the xml is parsed and the expanded form "&" is encountered, the ampersand symbol is displayed, both in the tree view and the edit panel. To enter one of the five default entities when editing, enter the character. For example, enter the ampersand character not the expanded form "&" to have an ampersand in the text. When saved to disk, it will be written in the legal, or expanded, form.



copyright © 2008, 2009. Xponent LLC. All rights reserved.