yslt_noindent.yml2
author Edouard Tisserant
Tue, 23 Aug 2022 12:19:44 +0200
changeset 3594 30f7eade322f
parent 2638 f48dcd148209
permissions -rw-r--r--
SVGHMI: add support for "enable expressions" with arbitrary variable name assignment.

HMI tree paths can be prefixed with a variable name "@name=/MY/HMI/VAR"
Widget declarations can end with a "#" followed by a JS expression that refers to name given to variables.
Widget is disabled if expression's result is false.

Commit includes some more-or-less related generated code refactoring, that should simplify extending widget's variables attributes.
include yslt.yml2
!!
def indent(level):
    return ""
!!

in xsl {
    decl istylesheet (
        *output="xml",
        version="1.0",
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform",
        xmlns:exsl='http://exslt.org/common',
        xmlns:regexp="http://exslt.org/regular-expressions",
        xmlns:str="http://exslt.org/strings",
        xmlns:func="http://exslt.org/functions",
        extension-element-prefixes='exsl regexp str func'
    ) alias stylesheet {
        output *output;
        content;
    };

    decl indent() alias -; 

    decl template(match) {
        content;
    };

    decl function(name) alias template {
        content;
    };
   
    decl call(name) alias call-template {
        content;
    };

    decl apply(select) alias apply-templates {
        content;
    };
}