private static void HandleParameters()

in src/Core/Compiling/Policy/XslTransformCompiler.cs [63:106]


    private static void HandleParameters(ICompilationContext context, InitializerValue parametersValue,
        XElement element)
    {
        foreach (var paramValue in parametersValue.UnnamedValues ?? [])
        {
            if (!paramValue.TryGetValues<XslTransformParameter>(out var paramValues))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.PolicyArgumentIsNotOfRequiredType,
                    paramValue.Node.GetLocation(),
                    "xsl-transform.parameter",
                    nameof(XslTransformParameter)
                ));
                continue;
            }

            XElement paramElement = new("parameter");

            if (!paramElement.AddAttribute(paramValues, nameof(XslTransformParameter.Name), "name"))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    paramValue.Node.GetLocation(),
                    "xsl-transform.parameter",
                    nameof(XslTransformParameter.Name)
                ));
                continue;
            }

            if (!paramValues.TryGetValue(nameof(XslTransformParameter.Value), out var value))
            {
                context.Report(Diagnostic.Create(
                    CompilationErrors.RequiredParameterNotDefined,
                    paramValue.Node.GetLocation(),
                    "xsl-transform.parameter",
                    nameof(XslTransformConfig.StyleSheet)
                ));
                continue;
            }

            paramElement.Value = value.Value!;
            element.Add(paramElement);
        }
    }