Hello list,

I have been using Xalan for many, many tasks in many different projects and
at many different opportunities.
This is a really great tool which makes working with huge amounts of data so
much easier.

I have a question however; most of the times, I have been using perl code to
generate command line calls for xalan

i.e. something like the following:

set XMS=-Xms256m
set XMX=-Xmx384m

d:
cd D:\xslt\xalan
java %XMS% %XMX%  -classpath
xalan.jar;serializer.jar;xml-apis.jar;xercesImpl.jar
org.apache.xalan.xslt.Process  -in D:\exports\tmpexport19\tmpexport19 -xsl
D:\xslt\transformation.xsl  -out
D:\\exports\ENS_translation_information021309_032038.xml -param
targetLanguage ENS -param sourceLanguage DEU

java %XMS% %XMX% -classpath
xalan.jar;serializer.jar;xml-apis.jar;xercesImpl.jar
org.apache.xalan.xslt.Process  -in D:\exports\tmpexport19\tmpexport19 -xsl
D:\xslt\transformation2.xsl  -out
D:\exports\ENS_translation_started021309_032038.xml -param targetLanguage
ENS


Now, I have a small SWT GUI project which allows setting a couple of
switches and then calls Xalan to do certain transformations with certain
attributes and so on.

What I am using in my Java project is the following (Exception handling
removed for increased readability):

    public  void runXalan1(String targetLanguage, String sourceLanguage)
    {
        Source xmlSource = null;
        xmlSource = new StreamSource(new File(MainWindow.getSourceFile()));
        Source xslSource = null;
        xslSource = new
StreamSource(this.getClass().getResource("/xslt/transformation.xsl").openStream());

        Transformer transformer = null;
        transformer = tFactory.newTransformer(xslSource);

        File outfile = new File(MainWindow.getExportDirectory() +
File.separator    + "test" + "_" +  GUIHelper.getTimestamp() + "_" +
targetLanguage + ".xml");
        outfile.createNewFile();

        transformer.setParameter("targetLanguage", targetLanguage);
        transformer.setParameter("sourceLanguage", sourceLanguage);

        transformer.transform(xmlSource, new StreamResult(outfile));
     }


The problem now is that the XML files I receive use the following encoding:

<?xml version="1.0" encoding="Cp1252"?>

The command line calls never complained about this, calling the transformer
directly yields

file:///C:/temp/tmpexport4/tmpexport4; Line #1; Column #40; Invalid encoding
name "Cp1252".

And my result XML file is empty.

Normally, I cannot change the XML I receive.
If, for testing purposes I change CP1252 to "windows-1252", the transformer
does not complain.
What have I overlooked in configuring the transformer?

Could someone please shed some light on this and show me my mistake?

Cheers,

Claus

Reply via email to