-
Notifications
You must be signed in to change notification settings - Fork 364
sonar.cxx.xslt
The cxx plugin has a built-in XLS transformation. This is especially handy when XML data needs to be converted before being read in with the plugin. It is ensured that the XLST sensor is executed before the report sensors.
The XSLT processor takes one or more XML source documents (.inputs
), plus one XSLT stylesheet (.stylesheet
), and processes them to produce one or mpre output documents (.outputs
). The original document is not changed; rather, a new document is created based on the content of an existing one.
parameter | description |
---|---|
.stylesheet |
predefined or external stylesheet for the XSL transformation |
.inputs |
XML data to be converted: - single file or path with wildchards - multiple paths may be comma-delimited - supporting absolute or relative paths |
.outputs |
Filename for output. If * is included as wildchard, * will be replaced by the current filename of .inputs (without file extension). The file path is always taken from .inputs . |
Further notes:
- In order to configure multiple transformations, an index must also be specified. 10 stylesheets with index 1 to 10 are supported. The indices must be consecutive and are executed in ascending order.
- Paths may be absolute or relative to the project base directory.
The example shows the simplest case, here the file C:\MyProject\input.xml
is transformed with C:\MyProject\stylesheet.xlst
and the result is saved in C:\MyProject\input.xml
.
sonar.cxx.xslt.1.stylesheet=C:/MyProject/stylesheet.xlst
sonar.cxx.xslt.1.inputs=C:/MyProject/input.xml
sonar.cxx.xslt.1.outputs=output.xml
As with Report Paths, wildcards can be used for the .inputs
parameter. The .ouputs
parameter must then have a *
as wildcard, which is replaced with the current input file name (without file extension). In the example the file C:\MyProject\input-001.xml
would be transformed to C:\MyProject\output-input-001.xml
.
sonar.cxx.xslt.1.stylesheet=C:/MyProject/stylesheet.xlst
sonar.cxx.xslt.1.inputs=C:/MyProject/input-???.xml
sonar.cxx.xslt.1.outputs=output-*.xml
It is also possible to define multiple input paths. .outputs
is always only a single entry with wildcard. In the example the files C:\MyProject\A-001.xml
and C:\MyProject\BFile.xml
would be transformed to C:\MyProject\output-A-001.xml
and C:\MyProject\output-BFile.xml
.
sonar.cxx.xslt.1.stylesheet=C:/MyProject/stylesheet.xlst
sonar.cxx.xslt.1.inputs=C:/MyProject/A-???.xml,C:/MyProject/B*.xml
sonar.cxx.xslt.1.outputs=output-*.xml
If several transformations are to be performed, they are configured with different indices. The indices must be consecutive and are executed in ascending order. This also allows several transformations to be performed in cascade.
sonar.cxx.xslt.1.stylesheet=stylesheet_1.xlst
sonar.cxx.xslt.1.inputs=...
sonar.cxx.xslt.1.outputs=...
sonar.cxx.xslt.2.stylesheet=stylesheet_2.xlst
sonar.cxx.xslt.2.inputs=...
sonar.cxx.xslt.2.outputs=...
For some file formats the cxx plugin already includes predefined XLS transformations. The predefined XLST are defined without specifying a path under .stylesheet
.
.stylesheet | description |
---|---|
boosttest-1.x-to-junit-1.0.xsl | For transforming Boost.Test reports to read in with sonar.cxx.xunit.reportPaths. |
cpptestunit-1.x-to-junit-1.0.xsl | For transforming CppTest reports to read in with sonar.cxx.xunit.reportPaths. |
cppunit-1.x-to-junit-1.0.xsl | For transforming CppUnit reports to read in with sonar.cxx.xunit.reportPaths. |