We are looking at adding a field to all document types that allows the use of a controlled vocabulary to identify keywords.  This brings up several design questions:


It is desirable to have a way to extend XSDs besides editing them directly.  That way, Fez upgrades that touch the XSDs can be applied and the extensions continue to work.


Additionally, it is even more desirable to be able to make these extensions at the community or collection level.  For example, one community may want to use one set of controlled vocabulary for keywords, while another community may want to use a different set, while another may not have controlled vocabulary.  If the changes are applied directly to the XSDs, they are by definition going to affect all documents of that type.


I don’t think that keywords is the only use case.  We are going to be doing some other work that may also require additional fields to all document types.


I’m interested to hear what others think about this concept?