Saxon w Javie: XSLT dla CSV do XML

Najczęściej kontynuowano od tego pytania:XSLT: CSV (lub płaski plik lub zwykły tekst) do XML

Mam stąd XSLT:http://andrewjwelch.com/code/xslt/csv/csv-to-xml_v2.html

I konwertuje plik CSV na dokument XML. Robi to, gdy używa się następującego polecenia w wierszu poleceń:

java -jar saxon9he.jar -xsl: csv-to-xml.csv -it: main -o: output.xml

Teraz pytanie brzmi:Jak mam to zrobić w moim kodzie Java?

W tej chwili mam kod, który wygląda tak:

TransformerFactory transformerFactory = TransformerFactory.newInstance();
StreamSource xsltSource = new StreamSource(new File("location/of/csv-to-xml.xsl"));
Transformer transformer = transformerFactory.newTransformer(xsltSource);
StringWriter stringWriter = new StringWriter();
transformer.transform(documentSource, new StreamResult(stringWriter));
String transformedDocument = stringWriter.toString().trim();

(TheTransformer jest przykłademnet.sf.saxon.Controller.)

Sztuczka w wierszu poleceń polega na określeniu „-it: main”, aby wskazać odpowiedni szablon w XSLT. Oznacza to, że nie musisz podawać pliku źródłowego z flagą „-s”.

Problem zaczyna się ponownie po stronie Java. Gdzie / jak by to określić „-it: main”? Czy nie zrobiłoby to złamania innych XSLT, które tego nie wymagają? Czy musiałbym nazywać każdy szablon w każdym pliku XSLT „main”? Biorąc pod uwagę podpis metody Transformer.transform (), Imieć aby określić plik źródłowy, więc czy to nie pokonuje wszystkich postępów, jakie poczyniłem w obliczaniu tego?

Edytować: Znalazłem s9api ukryty wewnątrz saxon9he.jar, jeśli ktoś go szuka.