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