Mark doesn't influence Sweep, Sweep removes all?

[email protected] Fri, 01 May 2009 16:50:53 +0400
Newsgroups gmane.comp.mozilla.devel.rdf
Message-ID <[email protected]>
I have created below RDF in memory:


<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
          xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
   <RDF:Seq RDF:about="urn:root">
     <RDF:li RDF:resource="urn:root:base_1"/>
     <RDF:li RDF:resource="urn:root:base_2"/>
     <RDF:li RDF:resource="urn:root:base_3"/>
   </RDF:Seq>
   <RDF:Description RDF:about="urn:root:base_2"
                    NC:id="2"
                    NC:name="10002" />
   <RDF:Description RDF:about="urn:root:base_3"
                    NC:id="3"
                    NC:name="10003" />
   <RDF:Description RDF:about="urn:root:base_1"
                    NC:id="1"
                    NC:name="10001" />
</RDF:RDF>



... and trying to Mark one and Sweep:


     ds.QueryInterface(Components.interfaces.nsIRDFPurgeableDataSource);
     ds.Mark(rdf.GetResource("urn:root:base_1"), 
rdf.GetResource("http://home.netscape.com/NC-rdf#name"), 
rdf.GetLiteral("1001"), true);
     ds.Sweep();


... and it remove whole document. The result is:


<?xml version="1.0"?>
<RDF:RDF xmlns:NC="http://home.netscape.com/NC-rdf#"
          xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
</RDF:RDF>


... what is wrong?


Alexander.