Xml3
|
The original two XML parsers (XML(1) and XML(2))
suffered from numerous problems because they attempted to decompose XML files using fairly rigid
code. This rigidity was intentional, but some XML files exposed the weakness of these techniques.
This parser is different. It uses well defined and tested techniques
for parsing, and represents a heavily bastardised and rationalised
version of a parser I am working on for a compiler.
It works by using a lexical parser to break the document down into
atomic and sub-atomic units, and a lexical analyser/semantic analyser to
decide how decomposition should proceed. The back-end of the compiler
has been replaced by an Xbase++ class generator.
Both the original parsers have been deprecated in favour of this one. Aside from it's blazing
speed, this parser allows much more flexibility in interpretation, and should a valid XML file
be found that cannot be successfully decomposed by this parser, then the code should be simple
enough to tweak in order to accept it.
|