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.
Get XML in a Nutshell, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.