We should use a substitution group for facets, but that's ruled out because it would allow users to add their own, which we're not ready for yet.
The three kinds of identity constraints, all with type of or derived from 'keybase'.
This group is for the elements which can self-redefine (see <redefine> below).
This group is for the elements which occur freely at the top level of schemas.
This group is for the elements which occur freely at the top level of schemas. All of their types are based on the "annotated" type by extension.
'complexType' uses this