The Functional XML Parsing Framework is a package of low-to-high-level lexing and parsing procedures that can be combined to yield a SAX, DOM, validating parsers, or a parser intended for a particular document type. The procedures in the package can be used separately to tokenize or parse various pieces of XML documents. The package supports XML namespaces, character, internal, and external parsed entities, xml:space, attribute value normalization, processing instructions and CDATA sections. It is intended to be a framework, a set of "Lego blocks" you can use to build a parser that follows DOM, SAX, or another discipline, and performs validation to any degree. As an example of such parser construction, the package includes a semi-validating SXML parser. It converts XML to SXML, an instance of XML Infoset as S-expressions, an abstract syntax tree of an XML document. SXML can be queried (in a XPath style), transformed, and evaluated. The framework parses XML in a pure functional style, as folding over a text XML document considered a spread-out tree. The input port is treated as a linear, read-once parameter. The framework's code does not use assignments at all.
|Tags||Software Development Libraries Internet Web Text Processing Markup|
|Operating Systems||OS Independent|
Release Notes: This release implemented complete R5RS compatibility for the whole library and the examples. All low-level macros in the library proper and the examples were replaced with syntax-rules. SRFI-13 is now used natively if available, or via srfi-13-local.scm. SXML 3.0 compatibility was established, and Scheme 48 packages and package declarations were added for the library and the examples. Petite Chez Scheme was added as a supported platform.
Release Notes: The new version is roughly 10% faster than the previous one, and allocates half as much memory. It is more easily ported, and it works on more Scheme systems. The project's CVS repository at SourceForge includes several sample applications and usable examples.
Release Notes: This release includes complete support for XML Namespaces, support for xml:space, character, external, and internal parsed entities with detection of nonrecursion violations, support for validation of element and attribute content, a number of validation self-tests, and more portability. It currently runs on Gambit 3.0 and SCM 5d3, and there are distributions for several other Scheme systems.