private XslNode XslSort(int sortNumber)
{
ContextInfo ctxInfo = _input.GetAttributes(_sortAttributes);
string select = ParseStringAttribute(0, "select");
string lang = ParseStringAttribute(1, "lang");
string order = ParseStringAttribute(2, "order");
string collation = ParseCollationAttribute(3);
TriState stable = ParseYesNoAttribute(4, "stable");
string caseOrder = ParseStringAttribute(5, "case-order");
string dataType = ParseStringAttribute(6, "data-type");
if (stable != TriState.Unknown)
{
CheckError(sortNumber != 0, SR.Xslt_SortStable);
}
List<XslNode> content = null;
if (V1)
{
CheckNoContent();
}
else
{
content = LoadContent(select != null);
if (content.Count != 0)
{
ReportNYI("xsl:sort/*");
content = null;
}
}
if (select == null /*&& content.Count == 0*/)
{
select = ".";
}
return SetInfo(f.Sort(select, lang, dataType, order, caseOrder, _input.XslVersion),
null, ctxInfo
);
}