rdf_MakeRelativeRef(NS_ConvertUTF8toUCS2(mURLSpec), uri);
rdf_MakeRelativeRef(NS_ConvertUTF8toUCS2(mOriginalURLSpec.get()), uri);
RDFXMLDataSourceImpl::SerializeMember(nsIOutputStream* aStream,                                      nsIRDFResource* aContainer,                                      nsIRDFNode* aMember){    nsresult rv;    // If it's a resource, then output a "<RDF:li resource=... />"    // tag, because we'll be dumping the resource separately. (We    // iterate thru all the resources in the datasource,    // remember?) Otherwise, output the literal value.    nsIRDFResource* resource = nsnull;    nsIRDFLiteral* literal = nsnull;    if (NS_SUCCEEDED(rv = aMember->QueryInterface(NS_GET_IID(nsIRDFResource), (void**) &resource))) {        nsXPIDLCString s;        if (NS_SUCCEEDED(rv = resource->GetValue( getter_Copies(s) ))) {static const char kRDFLIResource1[] = "    <RDF:li resource=\"";static const char kRDFLIResource2[] = "\"/>\n";            nsAutoString uri = NS_ConvertUTF8toUCS2(s);            rdf_MakeRelativeRef(NS_ConvertUTF8toUCS2(mURLSpec), uri);            rdf_EscapeAttributeValue(uri);            rdf_BlockingWrite(aStream, kRDFLIResource1, sizeof(kRDFLIResource1) - 1);            rdf_BlockingWrite(aStream, uri);            rdf_BlockingWrite(aStream, kRDFLIResource2, sizeof(kRDFLIResource2) - 1);        }        NS_RELEASE(resource);    }    else if (NS_SUCCEEDED(rv = aMember->QueryInterface(NS_GET_IID(nsIRDFLiteral), (void**) &literal))) {        nsXPIDLString value;        if (NS_SUCCEEDED(rv = literal->GetValue( getter_Copies(value) ))) {static const char kRDFLILiteral1[] = "    <RDF:li>";static const char kRDFLILiteral2[] = "</RDF:li>\n";            rdf_BlockingWrite(aStream, kRDFLILiteral1, sizeof(kRDFLILiteral1) - 1);            nsAutoString s(value);            rdf_EscapeAmpersands(s); // do these first!            rdf_EscapeAngleBrackets(s);            rdf_BlockingWrite(aStream, s);            rdf_BlockingWrite(aStream, kRDFLILiteral2, sizeof(kRDFLILiteral2) - 1);        }        NS_RELEASE(literal);    }    else {        NS_ASSERTION(PR_FALSE, "uhh -- it's not a literal or a resource?");    }    return NS_OK;}