Skip to content
Phil Fearon edited this page May 18, 2014 · 29 revisions

The XMLSpectrum project was started with the primary goal of providing syntax-highlighting for XPath-family source code (XSLT, XQuery etc.) and leave the formatting exactly as in the source. However, when testing XMLSpectrum against many XSLT samples in the public domain, a significant number of formatting issues were found in the original source.

Issues in code formatting can severely impact the readability of the code - to the extent where syntax-highlighting becomes largely irrelevant. This is why a significant number of XML/XSLT formatting features are included in XMLSpectrum - along with the option to preserve the original formatting 'as-is'.

This page summarises the XSLT parameters used to control formatting of XML/XSLT by highlight-file.xsl.

auto-trim off

XSLT Parameter: auto-trim=no (default) no formatting The above screenshot shows the highlighted result with auto-trim set to 'no'. Note that to ensure the original formatting is kept intact, the following settings are required - these are the defaults:

  • XSLT Parameter: format-mixed-content=no
  • XSLT Parameter: indent=-1
  • XSLT Parameter: force-newline=no

The following settings are also required if the XSLT is not well formed (e.g. namespace declarations are missing).

  • XSLT Parameter: document-type=xslt
  • XSLT Parameter: document-type-prefix=xsl (in this case it is inferred because it is on the first element)

auto-trim on

XSLT Parameter: auto-trim=yes no formatting

Here we can see that all indentation proportional to the XML nesting level has been identified and removed. Note that the indentation of both the select attribute name and the XPath expression value is still intact, this is a key feature in any tool that attempts to reformat XSLT.

indent 3

XSLT Parameter: indent=3 no formatting In this screenshot, the XML formatting of 2 spaces per nesting-level has been removed (because auto-trim is 'on') and then replaced with 3 spaces per nesting level - as specified by the indent=3 parameter value.

color-theme css-inline css-path document-type document-type-prefix font-name format-mixed-content indent link-names output-method output-path sourcepath w3c-xpath-functions-uri

Clone this wiki locally