(an XML parser written in nML)
XML describes a class of data objects called XML documents and partially describes the behavior of computer programs which process them. XML is an application profile or restricted form of SGML, the Standard Generalized Markup Language [ISO 8879]. By construction, XML documents are conforming SGML documents. XML documents are made up of storage units called entities, which contain either parsed or unparsed data. Parsed data is made up of characters, some of which form character data, and some of which form markup. Markup encodes a description of the document's storage layout and logical structure. XML provides a mechanism to impose constraints on the storage layout and logical structure.
A software module called an XML processor is used to read XML documents and provide access (e.g. http, ftp, ...) to their content and structure. It is assumed that an XML processor is doing its work on behalf of another module, called the application.
XML 1.0 specification is describing the required behavior of an XML processor in terms of how it must read XML data and the information it must provide to the application. An XML processor's job is summarized as following.
Our goal is implementing a non-validating XML processor in nML. The result of parsing is an internal data structure which represents XML document itself.