if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_RDF, kResourceAtom,
if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_None, kResourceAtom,
XULSortServiceImpl::NodeHasSortInfo(nsIContent *child, nsString &sortResource, nsString &sortDirection,				nsString &sortResource2, PRBool &inbetweenSeparatorSort, PRBool &found){	nsresult	rv;	inbetweenSeparatorSort = PR_FALSE;	found = PR_FALSE;	nsAutoString	value;	if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_None, kSortActiveAtom, value))		&& (rv == NS_CONTENT_ATTR_HAS_VALUE))	{		if (value.EqualsIgnoreCase(trueStr))		{			if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_RDF, kResourceAtom,				sortResource)) && (rv == NS_CONTENT_ATTR_HAS_VALUE))			{				if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_None, kSortDirectionAtom,					sortDirection)) && (rv == NS_CONTENT_ATTR_HAS_VALUE))				{					found = PR_TRUE;					// sort separator flag is optional					if (NS_SUCCEEDED(rv = child->GetAttribute(kNameSpaceID_None, kSortSeparatorsAtom,						value)) && (rv == NS_CONTENT_ATTR_HAS_VALUE))					{						if (value.EqualsIgnoreCase(trueStr))						{							inbetweenSeparatorSort = PR_TRUE;						}					}					// secondary sort info is optional					if (NS_FAILED(rv = child->GetAttribute(kNameSpaceID_RDF, kResource2Atom,						sortResource2)) || (rv != NS_CONTENT_ATTR_HAS_VALUE))					{						sortResource2.Truncate();					}				}			}		}	}	return(NS_OK);}