The eXtensible Markup Language (XML) is a markup language that allows users to describe data in hierarchically-structured documents or equivalent files. In general, the data is not only present in an XML document, but is described in some way. For example, various sets of text in an XML document might be tagged as separate paragraphs, whereby a program interpreting the document would know something about the text's organization.
XML is a simplified subset of SGML (Standard Generalized Markup Language) that removes some of SGML's more complex features to simplify programming. XML is a defined non-proprietary standard, so XML-formatted information is accessible and reusable by any XML-compatible software, in contrast to proprietary formats used by many conventional programs such as traditional word processors. In other words, XML can be used to store any kind of structured information in a manner that enables it to be communicated between computers, including those that are otherwise unable to communicate. The format is robust, persistable and verifiable.
XML allows the flexible development of user-defined document types that are stored, transmitted and/or processed in some manner, while providing information content that is richer and easy to use, (e.g., relative to HTML), because the descriptive and hypertext linking abilities of XML are much greater than those of HTML.
As XML and XML documents are becoming extremely popular, various tools are needed to work with XML technology. One such tool that would benefit users would provide a way to compare two XML documents. File comparison has a wide range of uses, generally known from word processor utilities and the like that perform line-oriented comparisons, such as those that compare text.
However, while such line-oriented comparisons systems are straightforward to implement, they are also rather limited, and do not fit the hierarchical nature of the structure of XML documents. What it needed is a comparison method and system that are tree-oriented, to match the hierarchical structure of structured documents such as XML documents.