This program illustrates how a XML application can use the SAX EntityResolver
                   handler to redirect the input stream for external entities. It installs an entity
                   resolver, traps the call to the external DTD file and redirects it to another specific
                   file which contains the actual DTD.
                    The program then counts and reports the number of elements and attributes in
                   the given XML file.
                   Redirect is invoked as follows:
|  |  |  | 
|  | cd xerces-c1_5_2-linux/samples/data
Redirect personal.xml |  | 
|  |  |  | 
The output is the following:
|  |  |  | 
|  | cd xerces-c1_5_2-linux/samples/data
Redirect personal.xml
personal.xml: 30 ms (37 elems, 12 attrs, 0 spaces, 268 chars) |  | 
|  |  |  | 
External files required to run this sample are 'personal.xml', 'personal.dtd' and
             'redirect.dtd', which are all present in the 'samples/data' directory. Make sure
             that you run redirect in the samples/data directory.
             The 'resolveEntity' callback in this sample looks for an external entity with
             system id as 'personal.dtd'. When it is asked to resolve this particular external
             entity, it creates and returns a new InputSource for the file 'redirect.dtd'.
             A real-world XML application can similarly do application specific processing
             when encountering external entities. For example, an application might want to
             redirect all references to entities outside of its domain to local cached copies.