А можно как-то посмотреть содержание, ну например rdf:charset-menu, в виде файла rdf? Скачал исходинки firefox'а, но там эти файлы, как я понял, получаются Cишными инструкциями (rdfUtil->MakeSeq(...), etc), а с Cи у меня не сложились отношения.

v743 пишет

А можно как-то посмотреть содержание, ну например rdf:charset-menu, в виде файла rdf?...

Если известно название источника данных, можно выполнить такой код:

Выделить код

Код:

var dsName = "bookmarks";
var file = "file:///H:/" + dsName + ".rdf";
var rdfService = Components. classes ["@mozilla.org/rdf/rdf-service;1"].
                 getService (Components. interfaces. nsIRDFService);
var ds = rdfService. GetDataSource ("rdf:" + dsName);
var ds2 = Components. classes ["@mozilla.org/rdf/datasource;1?name=xml-datasource"].
          createInstance (Components. interfaces. nsIRDFDataSource);
var subs = ds. GetAllResources ();
var sub, preds, pred, targ;
while (subs. hasMoreElements ())
{
    sub = subs. getNext ();
    preds = ds. ArcLabelsOut (sub);
    while (preds. hasMoreElements ())
    {
        pred = preds. getNext ();
        targ = ds. GetTarget (sub, pred, true);
        try
        {
            ds2. Assert (sub, pred, targ, true);
        }
        catch (e)
        {
            print ("error: " + e + "\n\tsubject: " + sub + " : predicate: " + pred + " : target: " + targ);
        }
    }
}
ds2. QueryInterface (Components. interfaces. nsIRDFRemoteDataSource);
ds2. FlushTo (file);

в Javascript Environment расширения Extension Developer.

Спасибо.
Только почему-то это не для всех источников данных работает :(
При том же упомянутом мной в первом посте rdf:charset-menu в цикл не заходит. Т.е, как я понимаю, ds.GetAllResources() почему-то возвращает пустой список.

Почему?

v743 пишет

Спасибо.
Только почему-то это не для всех источников данных работает :(
При том же упомянутом мной в первом посте rdf:charset-menu в цикл не заходит. Т.е, как я понимаю, ds.GetAllResources() почему-то возвращает пустой список.

Почему?

Потому что не зарегистрирован ещё этот источник данных. Достаточно перед выполнением кода "пройтись" по меню "Вид" - "Кодировка".