RDF Mark doesn't influence Sweep and Sweep removes all, why?

Зажигин Александр <[email protected]> Fri, 01 May 2009 16:56:59 +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.