SetDOMStringToNull(aURI);
nsXPath1SchemeNSResolver::LookupNamespaceURI(const nsAString &aPrefix,                                             nsAString &aURI){  aURI.Truncate();  // This method will be called each time the XPath engine encounters  // a prefix.    // We could cache the extracted prefix + URI pairs in a hash table,  // and do a lookup from that first. But typical XPointers only have  // a few scheme + data pairs (and only some of those will be xmlns  // schemes), and typical XPath expressions only have a few prefixes  // as well, so we'll see if we can manage without...  if (!mContext) {    return NS_OK;  }  NS_NAMED_LITERAL_STRING(xmlns, "xmlns");  PRUint32 count;  mContext->GetCount(&count);  PRUint32 i;  for (i = 0; i < count; ++i) {    nsAutoString scheme, data;    mContext->GetSchemeData(i, scheme, data);    if (scheme.Equals(xmlns)) {      PRInt32 sep = data.FindChar('=');      if (sep > 0 && aPrefix.Equals(Substring(data, 0, sep))) {        aURI.Assign(Substring(data, sep + 1, data.Length() - sep - 1));        return NS_OK;      }    }  }  return NS_OK;}