Only objects from which we generate processors (parsers/unparsers)
can lookup scoped property values.
This avoids the possibility of a property being resolved incorrectly by
not looking at the complete chain of schema components contributing to the
property resolution.
The only objects that should resolve properties are instances of Term
ElementRef, Root, LocalElementDecl, Sequence, Choice, SequenceRef, ChoiceRef,
EnumerationFactory, SimpleTypeDefFactory,
All "real" terms are able to resolve properties. Most other objects just contribute
properties to the mix, but they are not points where properties are
used to generate processors.
EnumerationFactory and SimpleTypeDefFactory are the oddballs out. In addition to
being used to generate processors, these classes our also used to generate abstract
TypeCalculators, which are not necessarily attached to any particular element, nor
used to generate any processor (for instance, there may be a globalSimpleType whose
only purpose is to define a TypeCalculator for use in DPath expressions)
List of properties that when looked up should only be found on the
immediate element--properties on a reference or defaults should not be
taken into account.
Only objects from which we generate processors (parsers/unparsers) can lookup scoped property values.
This avoids the possibility of a property being resolved incorrectly by not looking at the complete chain of schema components contributing to the property resolution.
The only objects that should resolve properties are instances of Term ElementRef, Root, LocalElementDecl, Sequence, Choice, SequenceRef, ChoiceRef, EnumerationFactory, SimpleTypeDefFactory,
All "real" terms are able to resolve properties. Most other objects just contribute properties to the mix, but they are not points where properties are used to generate processors.
EnumerationFactory and SimpleTypeDefFactory are the oddballs out. In addition to being used to generate processors, these classes our also used to generate abstract TypeCalculators, which are not necessarily attached to any particular element, nor used to generate any processor (for instance, there may be a globalSimpleType whose only purpose is to define a TypeCalculator for use in DPath expressions)