You want to balance these against each other:
Re-usability - using your definitions/declarations in other schemata.
Composition - mixing your schemata with others
Complexity - levels in the document, optionality, occurrences, etc.
Compactness - of definitions, declarations, and instances.
The "balancing decisions" should be made against your requirements and user community.