private QilName ParseModeAttribute(int attNum)
{
//Debug.Assert(
// input.IsXsltKeyword(atoms.ApplyTemplates) ||
// input.IsXsltKeyword(atoms.Template) && V1
//);
if (!_input.MoveToXsltAttribute(attNum, "mode"))
{
return nullMode;
}
// mode is always optional attribute
_compiler.EnterForwardsCompatible();
string qname = _input.Value;
QilName mode;
if (!V1 && qname == "#default")
{
mode = nullMode;
}
else if (!V1 && qname == "#current")
{
ReportNYI("xsl:apply-templates[@mode='#current']");
mode = nullMode;
}
else if (!V1 && qname == "#all")
{
ReportError(SR.Xslt_ModeListAll);
mode = nullMode;
}
else
{
mode = CreateXPathQName(qname);
}
if (!_compiler.ExitForwardsCompatible(_input.ForwardCompatibility))
{
mode = nullMode;
}
return mode;
}