NS_IMETHODIMP nsRDFXMLSerializer::Init(nsIRDFDataSource* aDataSource) { if (! aDataSource) return NS_ERROR_NULL_POINTER; mDataSource = aDataSource; mDataSource->GetURI(getter_Copies(mBaseURLSpec)); // Add the ``RDF'' prefix, by default. nsCOMPtr<nsIAtom> prefix; prefix = do_GetAtom("RDF"); AddNameSpace(prefix, NS_LITERAL_STRING("http://www.w3.org/1999/02/22-rdf-syntax-ns#")); prefix = do_GetAtom("NC"); AddNameSpace(prefix, NS_LITERAL_STRING("http://home.netscape.com/NC-rdf#")); mPrefixID = 0; return NS_OK; }
nsresult NameSpaceManagerImpl::RegisterNameSpace(const nsAString& aURI, PRInt32& aNameSpaceID) { if (aURI.IsEmpty()) { aNameSpaceID = kNameSpaceID_None; // xmlns="", see bug 75700 for details return NS_OK; } nsresult rv = NS_OK; if (!mURIToIDTable.Get(&aURI, &aNameSpaceID)) { aNameSpaceID = mURIArray.Length() + 1; // id is index + 1 rv = AddNameSpace(aURI, aNameSpaceID); if (NS_FAILED(rv)) { aNameSpaceID = kNameSpaceID_Unknown; } } NS_POSTCONDITION(aNameSpaceID >= -1, "Bogus namespace ID"); return rv; }