HomeClusterLabs Projects

XML: regression.sh: modularize "XSLT processor", allow substitutes

Description

XML: regression.sh: modularize "XSLT processor", allow substitutes

In general, it's better to have the transformation validated against
XSLT specification, not a particular implementation thereof.
Hence enable cross-validation also against other XSLT processors,
Xalan and saxon (arranged with setting XSLTPROCESSOR=Xalan|saxon
environment variable, respectively). The interoperability aspect is
also important, should anyone want to upgrade the CIB instance offline,
outside of pacemaker's realm, because the only qualification of the
chosen executive tool it compliance with XSLT 1.0 standard.

Note that implicit (unpreprocessed) mode of diff'ing displays some
minor formatting differences, meaning only '-B' switch to regression.sh
is suitable.
Also, these other implementations revealed some discrepancies:

  • per both Xalan and saxon, the stylesheet should rather explicitly drop some namespace prefixes explicitly to avoid the namespaces being verbosely established at the elements that are generated as brand new in the output
  • per saxon:

Warning: on line 1476 of upgrade-2.10.xsl:

The attribute axis starting at an attribute node will never select anything

Details

Provenance
Jan Pokorný <jpokorny@redhat.com>Authored on May 11 2018, 5:44 AM
Parents
rP66d9dfe16f66: XML: regression.sh: allow for granular test specifications
Branches
Unknown
Tags
Unknown

Event Timeline