private List<XslNode> LoadFallbacks(string instrName)
{
_input.MoveToElement();
ISourceLineInfo extElmLineInfo = _input.BuildNameLineInfo();
List<XslNode> fallbacksArray = new List<XslNode>();
// TODO: Unknown element can have NS declarations that will be in affect in fallback clouse.
/* Process children */
if (_input.MoveToFirstChild())
{
do
{
if (_input.IsXsltKeyword(_atoms.Fallback))
{
ContextInfo ctxInfo = _input.GetAttributes();
fallbacksArray.Add(SetInfo(f.List(), LoadInstructions(), ctxInfo));
}
else
{
_input.SkipNode();
}
} while (_input.MoveToNextSibling());
}
// Generate runtime error if there is no fallbacks
if (fallbacksArray.Count == 0)
{
fallbacksArray.Add(
f.Error(XslLoadException.CreateMessage(extElmLineInfo, SR.Xslt_UnknownExtensionElement, instrName))
);
}
return fallbacksArray;
}