Such design doc as we have is rooted here:

https://cwiki.apache.org/confluence/display/DAFFODIL/Design+Notes

Daffodil starts with a DFDL Schema Compiler. That breaks the DFDL schema into a 
number of objects called DSOM objects. DSOM = DFDL Schema Object Model.

There is a wiki page describing DSOM here: 
https://cwiki.apache.org/confluence/display/DAFFODIL/DFDL+Schema+Object+Model+%28DSOM%29+with+UML

That's a starting point. The "tree" of DSOM objects is an abstract syntax tree 
for the DFDL schema, and attributes of it (lazy values) are computed by 
referencing other structures.

There's no overview or gradual introduction to the remainder of the system as 
yet. There's many design notes, but they tend to be quite focused on one or 
another intricate problem.

E.g.,the DSOM objects try to share substructure per: 
https://daffodil.apache.org/dev/design-notes/term-sharing-in-schema-compiler/ 
discussion.

Eventually these DSOM objects ask for a parser/unparser to be constructed. 
Those are generated from a Grammar/Rules system which is a "simple" rule-based 
optimizer.  The runtime data structures needed by those parser/unparser objects 
are also created.

Those parsers/unparsers are combinator-based and they are defined using a 
variety of helper classes. There are some design notes e.g., 
https://daffodil.apache.org/dev/design-notes/infoset-inputter-streaming-unparser/


That's what we have thusfar.

________________________________
From: Regis Thomas <regis.tho...@nteligen.com>
Sent: Tuesday, November 10, 2020 3:53 AM
To: dev@daffodil.apache.org <dev@daffodil.apache.org>
Subject: Daffodil Flow Diagram

Hi All,

I am a new contributor to the Daffodil project.  I am looking through the Jira 
Issues for a project to get my feet wet, but it is difficult to find an 
interesting and easy issue without understanding how the components fit 
together and interact with each other.  Is there a flow diagram that explains 
how all the various components interact with each other?

Reply via email to