On 03 Sep 2009, at 22:07, Stephan Thesing wrote:
Seems reasonable, although... validateChildNode() is more meant to
take care of very specific cases, mentioned in the definition of the
content model. Now I'm thinking: a change-bar-* is a neutral item
is basically allowed anywhere, except as a child/descendant of a very
limited set of FOs that cannot appear as descendants of an fo:flow or
The requirement of a flow/static-content ancestor is specific to the
change-bar-* nodes, not to their parent/ancestor, so I'm not entirely
sure whether FObj is the right place to enforce that rule...
Yes, that rule is enforced in the ChangeBar class' startNode(),
which is the base class for the ChangeBarBegin and ChangeBarEnd
But the validateChildNode() has to accept change-bar-begin and
change-bar-end children for all nodes in order to allow them to
occur at the allowed places.
For the answer to this, see the pointer I gave about
'isNeutralItem()'. That's basically ALL that really needs to be
modified in FObj AFAICT.