GermanSniper
GermanSniper

Reputation: 269

Saxon .net how handle external resources xml

I have a batch and want to rebuild this in a .net application. How can I handle this in .net?

-xsl:"style.xsl" resource-path="%runtimepath%%respath%" srcAutotexte="%runtimepath%%respath%\autotext\autotext.xml" 

My attempt. How can I include the autotext.xml?

        // Create a transformer for the stylesheet.
        XsltCompiler compiler = processor.NewXsltCompiler();
        compiler.BaseUri = new Uri(styleXslFilePath);
        XsltTransformer transformer = compiler.Compile(File.OpenRead(styleXslFilePath)).Load();

Upvotes: 1

Views: 129

Answers (1)

Michael Kay
Michael Kay

Reputation: 163262

The command line options

 resource-path="%runtimepath%%respath%"
 srcAutotexte="%runtimepath%%respath%\autotext\autotext.xml" 

set the values of stylesheet parameters in the transformation.

The equivalent when using the Saxon.Api interface is to call

    transformer.SetParameter(
         new QName("resource-path"), 
         new XdmAtomicValue("%runtimepath%%respath%"));

etc.

(Perhaps your shell interprets %xxxx% as a reference to a shell/system variable of some kind - it's a long time since I wrote batch scripts under Windows. If that's the case then you'll need to get hold of the values of these variables. You can do that at the C# level using the .NET API, or you might be able to do it from within XSLT 3.0 using the environment-variable() function.)

Upvotes: 1

Related Questions