NS_RELEASE(nameSpaceAtom);
RDFElementImpl::ParseAttributeString(const nsString& aStr,                                      nsIAtom*& aName,                                      PRInt32& aNameSpaceID){static char kNameSpaceSeparator[] = ":";    nsAutoString prefix;    nsAutoString name(aStr);    PRInt32 nsoffset = name.Find(kNameSpaceSeparator);    if (-1 != nsoffset) {        name.Left(prefix, nsoffset);        name.Cut(0, nsoffset+1);    }    // Figure out the namespace ID    // XXX This is currently broken, because _nobody_ will ever set    // the namespace scope via the nsIXMLElement interface. To make    // that work will require a bit more machinery: something that    // remembers the XML namespace scoping as nodes get created in the    // RDF graph, and can then extract them later when content nodes    // are built via the content model builders.    //    // Since mNameSpace will _always_ be null, specifying    // kNameSpaceID_None allows us to at least match on the    // tag. You'll start seeing problems when the same name is used in    // different namespaces.    //    // See http://bugzilla.mozilla.org/show_bug.cgi?id=3275 for more    // info.    aNameSpaceID = kNameSpaceID_None;    if (0 < prefix.Length()) {        nsIAtom* nameSpaceAtom = NS_NewAtom(prefix);        if (mNameSpace) {            mNameSpace->FindNameSpaceID(nameSpaceAtom, aNameSpaceID);        }        NS_RELEASE(nameSpaceAtom);    }    aName = NS_NewAtom(name);    return NS_OK;}