Hi there,
I've been trying to get a Xalan XSLT transformation working with an XML
catalog for a while now.
After reading around about the (newer version) classes needing to be in
the jre/lib/endorsed directory (e.g.
http://www.laurenwood.org/anyway/index.php?p=16) I have successfully
gotten the following to work using Xalan 2.6.2 and the jdk 1.4:
java org.apache.xalan.xslt.Process -ENTITYRESOLVER
org.apache.xml.resolver.tools.CatalogResolver -URIRESOLVER
org.apache.xml.resolver.tools.CatalogResolver -out out.xml -in dd/in.xml
-xsl the.xsl
The catalog is invoked and everything works fine. However, for scalability
and reusability I am trying to build this into a class (i.e. no have to
start this process 100 times for 100 xmls) and have written a little java
class containing:
import org.apache.xml.resolver.tools.CatalogResolver;
import java.util.Properties;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
TransformerFactory tFactory =
TransformerFactory.newInstance();
CatalogResolver resolver = new CatalogResolver();
tFactory.setURIResolver(resolver);
Transformer transformer = tFactory.newTransformer(new
StreamSource(xslFile));
transformer.setURIResolver(resolver);
transformer.transform(new StreamSource(xmlFile), new
StreamResult(new FileOutputStream(outFile)));
The catalog resolver sucessfully initialises.. i get the :
Parse catalog: file:/xxx/catalog.xml
Loading catalog: file:/xxx/catalog.xml
Default BASE: file:/xxx/catalog.xml
override: yes
OVERRIDE: yes
but it is never invoked during the parse of the input file, instead the
transformer returns all sorts of http server errors and parse errors as it
tries to get the (often missing/broken) dtds and entities. Note these are
the same input files as are being successfully resolved using the command
line method. Should there be an entity method on the transformer?
What is the point of the tFactory.setURIResolver(resolver); method ? is
this a bug or am I misusing it ?
I would rather the transformer not validate the XML before transforming
it, allowing me to validate the result and reject the file at that stage
if i choose to.
Thanks in advance..
-ivan
Ivan Price
Department of Infrastructure, Planning and Environment
Northern Territory Government
Tel: (08) 8924 4024
Fax: (08) 8924 4045
Email: ivan(_dot_)price(_at_)nt(_dot_)gov(_dot_)au
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--