Introduction
Entity management is the term used to describe the process for controlling how an XML application discovers and accesses external resources known as entities. Entity management is an often overlooked aspect of XML application development; however, the technique offers a number of advantages, including:
- Increased robustness, by removing sensitivity to network failures
- Better security, by reducing the opportunity for external resources to be compromised
- Improved performance, by reducing sensitivity to network bottlenecks
- Greater interoperability, by granting local control over how resources are located
This tutorial presents the basic principles of entity management through the concept of an XML catalog -- an address book that defines mappings from resources referenced in XML documents (such as a stylesheet or schema) to URI references (such as file system paths or URLs). A catalog is therefore used to control the external resources that an application accesses. The XML Catalog specification, which provides a standard means of describing these catalogs using a simple XML format, is also introduced using working examples.
Tutorial examples use the open source Resolver API, provided as part of the Apache XML Commons project, to demonstrate entity management in practice as well as to illustrate how to implement an XML application with XML catalog support through the Java API for XML Parsing (JAXP).
This tutorial is aimed at Java developers who are already familiar with XML application development, particularly JAXP. While some examples illustrate how entity management works in conjunction with XSL transformations, no detailed knowledge of XSLT is required. For pointers to other tutorials covering JAXP and XSLT, see Resources.
This tutorial will also be of interest to application developers who want to learn more about XML catalogs in general so that they may get the most flexibility from applications that already provide support for entity management using the OASIS XML Catalog format. A number of open source XML frameworks and parsers, including Apache Cocoon, already include this support.
To compile and run the Java examples and applications introduced later in the tutorial, the reader will need a Java 2 Development Kit installed. The Java 2 SDK 1.4.2 can be downloaded from http://java.sun.com/j2se/.
Other than a text or XML editor for viewing the example documents, no other tools are required.
See Installing the XML Commons Resolver classes for instructions on how to download and configure the Apache XML Resolver classes used throughout the examples.
The tutorial examples are available from x-entmngexamples.zip. To install the examples, simply extract the files from the archive (preserving the directory
structure) into a newly created directory. This directory, referred to as $EXAMPLES_HOME
throughout the rest of the tutorial, contains the following sub-directories:
-
bin-- shell scripts for running the resolver command-line tool -
basics-- the example catalogs referenced in Exploring XML catalogs -
jaxp-- Java source code and example files referenced in Adding catalog support to XML applications


