Validation is a recursive process. One Element validates each of
its child Elements. Each of those in turn validate their
In the event that an inconsistency is found, it useful to know
how the current Element was arrived at.
The Stack consists of a sequence of ValidationStackNode.
Each node indicates the state of validation at the point at
which a child element was asked to validate itself.
There may be apparent duplicates on the stack as sub-classes may
result in multiple calls to the Start function.