Planning for Growth
Some applications may not need to evolve over time, but some thought should be given to how users of the application will be able to extend it to meet their own needs. In DTD-based applications, this is done by providing parameter entity “hooks” into the document type definition, which could either be referenced or redefined by an instance document. Take the simple DTD shown in Example 16-8.
<!ENTITY % varContent "(EMPTY)"> <!ELEMENT variable %varContent;>
This fragment is not a very interesting application by itself,
but since it provides the capability for extension, the document
author can make it more useful by providing an alternative entity
declaration for the content of the variable element, as shown in Example 16-9.
<?xml version="1.0"?> <!DOCTYPE variable SYSTEM "extensible.dtd" [ <!ENTITY % varContent "(#PCDATA)"> ]> <variable>Useful content.</variable>
The W3C XML Schema language provides more comprehensive and
controlled support for extending markup using the extension, include, redefine, and import elements. These mechanisms can be
used in conjunction to create very powerful, customizable
application frameworks.