For subnodes representing simplevalues that belong to a given finite set of possible values all these possible values should be explicitly enumerated as part of the language definition.
For example, consider the following grammar rule:
Modifier
keyword simplevalue="ModifierKeyword"
In the XML language grammar, no node definition exists for the ModifierKeyword node. Probably this is because it is a simplevalue and therefore considered as less important.
However, if we extract the grammar from the concrete syntax tree, we do find a language rule like
keyword <- abstract | public | protected | private | final | static
because we can extract the actual values for the modifier keyword from the concrete source code trees. However, by lack of information from the XML language grammar we don't know if this list of possible keywords is complete or not. It would have been interesting if in the XML language grammar all possible modifier values would have been enumerated explicitly as part of the language definition, so that we can crosscheck the values found in the extracted grammar which those in the language definition. This might for example allow us to find some keywords are never/always used which could represent interesting coding idioms.
More on this issue can be found in point 4.G and 3.a.9 of the file metamodel/experiment1.txt