Whenever you find yourself writing the same thing more than once, think entity . That lets you write it one place and reference it multiple places. If the information is likely to change, especially if it is used in more than one place, definitely think in terms of defining an entity. An example is defining productName as an entity so that you can easily change the documents when the product name changes. If the entity will be referenced from multiple documents, define it as an external entity, the same way that would define any generally usable class as an external class.
External entities produce modular XML that is smaller, easier to update and maintain.
They can also make the resulting document somewhat more difficult to visualize, much as a good OO design can be easy to change, once you understand it, but harder to wrap your head around at first. You can also go overboard with entities. When you define an external entity that covers a whole section on installation instructions, for example, making changes to the section is unlikely to make any of the documents that depend on it come out wrong. Small inline substitutions can be more problematic, though. That's a verb.