GitHub user mbeckerle opened a pull request:
https://github.com/apache/incubator-daffodil/pull/5
Property Resolution - part of fixing schema compilation
Refactors property resolving onto elementrefs and grouprefs so
as to eliminate use of backrefs when accessing properties.
Reorganized DSOM for model groups and references to them.
Converted OOLAGHost, SchemaComponent etc. down to LocalElementBase
into traits so that I can mix them the way I need to so that
Global elements aren't terms, etc.
Group references are allowed to carry annotations like dfdl:assert. It
is global group definitions that cannot. (They can't have annotations
period. Annotations go on the model group within the global group
definition)
SequenceBase is a ModelGroup is a Term, and is
the base of Sequence and SequenceGroupRef.
SequenceGroupDef is not a SequenceBase. It is GroupDefLike in that
it has children. It is not a Term, because the SequenceGroupRef that
refers to it is the Term.
Groups work exactly analogously to Elements now. For Elements, the Terms
are
LocalElementDecl and ElementRef. A GlobalElementDecl is *not* a Term.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/mbeckerle/incubator-daffodil
daffodil-1855-prop-resolve
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-daffodil/pull/5.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #5
----
commit 89f640dab66bd68546f43bbd828eb58451f8f987
Author: mbeckerle <[email protected]>
Date: 2017-10-23T21:50:21Z
Property Resolution - part of fixing schema compilation
Refactors property resolving onto elementrefs and grouprefs so
as to eliminate use of backrefs when accessing properties.
Reorganized DSOM for model groups and references to them.
Converted OOLAGHost, SchemaComponent etc. down to LocalElementBase
into traits so that I can mix them the way I need to so that
Global elements aren't terms, etc.
Group references are allowed to carry annotations like dfdl:assert. It
is global group definitions that cannot. (They can't have annotations
period. Annotations go on the model group within the global group
definition)
SequenceBase is a ModelGroup is a Term, and is
the base of Sequence and SequenceGroupRef.
SequenceGroupDef is not a SequenceBase. It is GroupDefLike in that
it has children. It is not a Term, because the SequenceGroupRef that
refers to it is the Term.
Groups work exactly analogously to Elements now. For Elements, the Terms
are
LocalElementDecl and ElementRef. A GlobalElementDecl is *not* a Term.
----
---