Aren elements declared many times?
Shared components are declared in their own namespaces, and the object-oriented approach allows defining them only once, but making use of them in different contexts. For instance variables that have the same name and are defined in multiple objects it might feel like a redefinition. Some of that is due to the fact that they really are different, some of that is due to the fact that current DTDs’ cannot express inheritance, and thus require the redefinition of elements, which would have been factored into common super classes in an object-oriented data model.