// SxS: This method does not take any resource name and does not expose any resources to the caller.
// It's OK to suppress the SxS warning.
private void CompileInclude(Compiler compiler)
{
Uri uri = compiler.ResolveUri(compiler.GetSingleAttribute(compiler.Input.Atoms.Href));
string resolved = uri.ToString();
if (compiler.IsCircularReference(resolved))
{
throw XsltException.Create(SR.Xslt_CircularInclude, resolved);
}
NavigatorInput input = compiler.ResolveDocument(uri);
compiler.PushInputDocument(input);
try
{
CompileDocument(compiler, /*inInclude*/ true);
}
catch (XsltCompileException)
{
throw;
}
catch (Exception e)
{
throw new XsltCompileException(e, input.BaseURI, input.LineNumber, input.LinePosition);
}
finally
{
compiler.PopInputDocument();
}
CheckEmpty(compiler);
}