- priority: 5 --> 9
Multiple problems when a schema uses multiple levels of substitution groups. For example, version 0.2 of the Interactive Schema has the following structure:
TestAction -> { Compound_testAction, Question_testAction }
Question_testAction -> { BooleanQuestion_testAction, ChoiceQuestion_testAction, NumericQuestion_testAction,
StringQuestion_testAction }
Both TestAction and Question_testAction are abstract elements.
When the metafile uses the TestAction element as a MetafileElement, Compound_testAction is correctly identified as a valid substitution, but none of the children of Question_testAction are correctly idetified as MetafileElements. As a result, instances of these elements in a file do not get reflected in the trees of the Benchmark Editor.
In addition, even when each of the child elements is written out in the metafile (creating separate <element> blocks for BooleanQuestion_testAction, ChoiceQuestion_testAction, etc.) the tool still does not correctly locate them. This is because the method getXpaths in SchemaInterpreter.FieldDescription does not correctly create a path through the multiple levels of substitution group parents. (Specifically, it creates the path /BooleanQuestion_testAction, but
not the path /Interactive/BooleanQuestion_testAction. The latter would pass through both sets of substitution group parents.) Note that Compound_testAction, with its single level of substitution, is correctly expanded and recognized.
The two problems above probably have the same or similar causes.