You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 14 Next »

Principles of Operation

Please see the package documentation for the dsom package in the code base (dsom folder, package.scala file), as that is where the primary motivational documentation is.

In general, Daffodil converts the DFDL schema into a DSOM tree/graph. The DSOM tree is used for much semantic checking, but it is the generator for a corresponding Gram (short for Grammar) tree the nodes of which correspond to combinators and terminals of a data syntax grammar. This grammar provides a simple framework for localized optimizations. Ultimately the Gram tree/graph generates the processors - parser and unparser - which are themselves trees of objects derived from the Parser and Unparser base traits/classes.

So really it's a 4 step process DFDL XSD → DSOM → Gram → Parser/Unparser.

UML Class Diagram

This diagram shows only the primary traits and classes of DSOM. Threre are many other components, and a wide variety of mixin traits that enable code sharing.

 


  • No labels