In XML, external parsed entities are used to merge one file into another. This mechanism is used to partition larger XML documents (such as this book) into smaller ones (such as this chapter). Such external entities aren’t quite the same as actual XML documents. They do not have DTDs; they have zero or more top-level elements instead of exactly one; and they have text declarations at the top instead of XML declarations.
Those entities are in some ways awkward to use.
Some people don’t like to use DTDs, and their tools
might not let them declare and create references to such
entities. In any case, DTDs add the requirement that
such entities be declared in advance.
When you’re building big documents out of little ones,
widely spreading such knowledge can be undesirable.
It’s often easier to keep a local reference accurate than
to update the remote declarations it depends on.
Also, documents nest inside others, and small changes
nested inside one document could force updates to many DTDs
if the document is included in several others.
In short, external parsed entities aren’t as easy or natural
to use as the
#include "filename" syntax
widely known to C/C++ developers.
This is often viewed as a problem.
The response is obvious: use some other part of XML syntax to define a more natural inclusion construct. There’s a W3C draft called XInclude, which doesn’t quite do this (in the most current draft). XInclude uses element syntax, which is fine, but it ...