public void Handle()

in src/Core/Compiling/Policy/XslTransformCompiler.cs [19:61]


    public void Handle(ICompilationContext context, InvocationExpressionSyntax node)
    {
        if (!node.TryExtractingConfigParameter<XslTransformConfig>(context, "xsl-transform", out var values))
        {
            return;
        }

        var element = new XElement("xsl-transform");

        if (!values.TryGetValue(nameof(XslTransformConfig.StyleSheet), out var styleSheetValue))
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterNotDefined,
                node.GetLocation(),
                "xsl-transform",
                nameof(XslTransformConfig.StyleSheet)
            ));
            return;
        }

        if (values.TryGetValue(nameof(XslTransformConfig.Parameters), out var parametersValue))
        {
            HandleParameters(context, parametersValue, element);
        }

        try
        {
            var xml = XElement.Parse(styleSheetValue.Value!);
            element.Add(xml);
        }
        catch (XmlException ex)
        {
            context.Report(Diagnostic.Create(
                CompilationErrors.RequiredParameterHasXmlErrors,
                styleSheetValue.Node.GetLocation(),
                "xsl-transform",
                nameof(XslTransformConfig.StyleSheet),
                ex.ToString()
            ));
        }

        context.AddPolicy(element);
    }