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);
}
}