uri.Append(tag);  return mRDFService->GetUnicodeResource(uri, aResource);
return mRDFService->GetUnicodeResource(tag, aResource);
RDFContentSinkImpl::GetIdAboutAttribute(const nsIParserNode& aNode,                                        nsIRDFResource** aResource){    // This corresponds to the dirty work of production [6.5]    nsAutoString k;    nsAutoString attr;    PRInt32 nameSpaceID;    PRInt32 ac = aNode.GetAttributeCount();    nsresult rv;    for (PRInt32 i = 0; i < ac; i++) {        // Get upper-cased key        const nsString& key = aNode.GetKeyAt(i);        SplitQualifiedName(key, nameSpaceID, attr);        if (nameSpaceID != mRDFNameSpaceID)            continue;        // XXX you can't specify both, but we'll just pick up the        // first thing that was specified and ignore the other.        if (attr.Equals(kTagRDF_about)) {            nsAutoString uri = aNode.GetValueAt(i);            nsRDFParserUtils::StripAndConvert(uri);            return mRDFService->GetUnicodeResource(uri, aResource);        }        if (attr.Equals(kTagRDF_ID)) {            const char* docURI;            mDocumentURL->GetSpec(&docURI);            if (NS_FAILED(rv = mRDFService->GetResource(docURI, aResource)))                return rv;            nsAutoString uri(docURI);            nsAutoString tag = aNode.GetValueAt(i);            nsRDFParserUtils::StripAndConvert(tag);            if (uri.Last() != '#' && tag.First() != '#')                uri.Append('#');            uri.Append(tag);            return mRDFService->GetUnicodeResource(uri, aResource);        }        if (attr.Equals(kTagRDF_aboutEach)) {            // XXX we don't deal with aboutEach...            NS_NOTYETIMPLEMENTED("RDF:aboutEach is not understood at this time");        }    }    // Otherwise, we couldn't find anything, so just gensym one...    const char* url;    mDocumentURL->GetSpec(&url);    return rdf_CreateAnonymousResource(url, aResource);}