MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla
Ihre Suchergebnisse

    RDF in Mozilla FAQ

    Allgemeines

    Wo fange ich an?

    RDF dient zwei primären Zielen in Mozilla. Erstens ist es eine einfache, plattformübergreifende Datenbank für kleinere Datenmengen und zweitens - und das ist der Hauptgrund - wird das RDF-Modell zusammen mit XUL Templates als eine abstrakte "API" zur Anzeige von Informationen benutzt. RDF in fünfzig Worten oder weniger ist eine kurze Beschreibung auf hohem Niveau, was RDF in Mozilla macht. Die RDF Back-End Architektur beschreibt die RDF Implementierung in Mozilla detaillierter und gibt eine kurze Übersicht der beteiligten Schnittstellen.

    Wo finde ich Informationen über Open Directory ("dmoz")?

    Detaillierte Informationen zu Open Directory gibt es auf www.dmoz.org. Das Open Directory Datenset ist als (riesiger) RDF/XML Dump verfügbar. Es beschreibt tausende von Webseiten, die eine Mischung aus dem Dublin Core Metadaten-Vokabular und der DMoz Klassifizierung benutzen. Für mehr Informationen zu diesem Thema lesen Sie bitte die DMoz RDF Seiten oder odp-rdf-announce für Änderungen an dessen genauem Datenformat. Die Seite ChefMoz (gemeinnütziger Restaurantführer) ist auch als RDF verfügbar.

    Wenn Sie Probleme mit den Daten von DMoz bzw. ChefMoz haben, ist es das Beste, die Leute hinter diesen Projekten direkt zu kontaktieren. Aber wenn Sie etwas Interessantes mit diesem Inhalt machen (z.B. ihn in Mozilla benutzen, um beispielsweise Teile davon in das XUL UI von einer entfernten Seite zu laden), vergessen Sie bitte nicht, es mozilla-rdf und die RDF Interest Group wissen zu lassen. Diese Gruppen sind wahrscheinlich auch an Tools interessiert, die die DMoz Daten säubern, umgestalten oder speichern. Besuchen Sie die Seiten, die ODP Daten benutzen, um einige Verzeichnisse zu sehen, die auf den ODP RDF Dumps basieren.

    Was ist eine Datenquelle?

    RDF kann für gewöhnlich auf zwei verschiedene Arten angezeigt werden: Entweder als Datenmenge mit Knoten und Bogen oder als Gruppierung logischer Aussagen. Eine Datenquelle ist eine Teilmenge (oder eine Ansammlung von Aussagen, abhängig von Ihrem Standpunkt), die aus bestimmten Gründen zusammengefasst werden. Einige Beispiele für bereits existierende Datenquellen sind Browser Lesezeichen, Browser Verlauf, IMAP E-Mail Accounts, NNTP News Server und RDF/XML Dateien.

    In Mozilla können Datenquellen mit Hilfe der Composite Data Source zusammengefasst werden. Dies entspricht dem Überlagern von Datenmengen oder dem Zusammenfassen von Gruppen von Aussagen. Aussagen über die selbe RDF Ressource können dann gemischt werden: Zum Beispiel das Datum des letzten Besuchs einer bestimmten Webseite kommt aus dem globalen Browser-Verlauf und die Tastenkombination zum Erreichen der Webseite per Tastatur kann aus der Datenquelle für die Browser-Lesezeichen stammen. Beide Datenquellen gehören zur Webseite, die über die URL angesprochen wird: Das ist der Schlüssel, der es erlaubt, die Datenquellen korrekt zu verbinden.

    Für eine detailliertere Beschreibung, wie man Datenquellen schreibt, lesen Sie sich bitte das RDF Datenquellen Tutorial durch.

    Wie verwaltet Mozilla Datenquellen?

    Der RDF Service verwaltet eine Tabelle aller geladenen Datenquellen. Die Tabelle ist mit der URI der Datenquelle verbunden, welche entweder die URL einer RDF/XML Datei oder eine spezielle URI mit "rdf:" am Anfang ist, welche auf eine eingebaute Datenquelle zielt.

    Datenquellen können über den RDF Service unter Verwendung der GetDataSource() Methode bezogen werden. Wenn sich das URI Argument auf eine URL einer RDF/XML Datei bezieht, wird der RDF Service eine RDF/XML Datenquelle erstellen und diese asynchron parsen. Die Datenquelle bleibt im Cache bis die letzte Referenz der Datenquelle ausgegeben wurde.

    Wenn sich das URI-Argument auf eine eingebaute Datenquelle bezieht, wird der RDF Service den XPCOM Component Manager verwenden, um eine Komponente zu laden, deren ContractID über eine spezielle URI geladen wurde: prefix@mozilla.org/rdf/datasource;1?name=.

    Zum Beispiel,

    rdf:foo
    

    Würde folgendes laden::

    @mozilla.org/rdf/datasource;1?name=foo
    

    Wie bei RDF/XML Datenquellen, wird eine Datenquelle über diesen Weg solange im Cache bleiben die letzte Referenz ausgegeben wurde.

    Wie erstelle ich eine Datenquelle aus einer RDF/XML Datei?

    Sie können entweder eine RDF/XML Datenquelle über die RDF Service GetDataSource() Methode erstellen:

    // Get the RDF service
    var RDF =
      Components
      .classes["@mozilla.org/rdf/rdf-service;1"]
      .getService(Components.interfaces.nsIRDFService);
    // ...and from it, get the datasource. Make sure that your web server
    // dishes it up as text/xml (recommended) or text/rdf!
    var ds = RDF.GetDataSource("http://www.mozilla.org/some-rdf-file.rdf"); // Note that ds will load asynchronously, so assertions will not
    // be immediately available

    Alternativ können Sie eine direkt erstellen, indem Sie den XPCOM Component Manager nutzen, so wie im folgendem Codeausschnitt dargestellt:

    // Create an RDF/XML datasource using the XPCOM Component Manager
    var ds =
      Components
      .classes["@mozilla.org/rdf/datasource;1?name=xml-datasource"]
      .createInstance(Components.interfaces.nsIRDFDataSource);
    // The nsIRDFRemoteDataSource interface has the interfaces
    // that we need to setup the datasource.
    var remote = ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); // Be sure that your web server will deliver this as text/xml (recommended) or text/rdf! remote.Init("http://www.mozilla.org/some-rdf-file.rdf"); // Make it load! Note that this will happen asynchronously. By setting
    // aBlocking to true, we could force it to be synchronous, but this
    // is generally a bad idea, because your UI will completely lock up!
    remote.Refresh(false); // Note that ds will load asynchronously, so assertions will not
    // be immediately available

    Sie können sich auch dafür entscheiden, die RDF/XML Datenquelle "manuell" zu erstellen, wenn Sie diese synchron statt asynchron laden wollen.

    Wie lade ich eine RDF/XML Datenquelle neu?

    Sie können eine RDF/XML Datenquelle (oder jede andere Datenquelle, die nsIRDFRemoteDataSource unterstützen) neu laden, indem Sie die Refresh() Methode von nsIRDFRemoteDataSource nutzen. Refresh() nimmt einen Parameter an, welcher angibt, ob Sie die Operation synchron ("blocking") oder asynchron ("non-blocking") ausführen möchten. Sie sollten niemals einen synchronen Ladevorgang durchführen, wenn Sie nicht wirklich wissen, was Sie tun: Das wird die Benutzeroberfläche zum Einfrieren bringen bis der Ladevorgang abgeschlossen ist!

    Wie kann ich feststellen, ob eine RDF/XML Datenquelle geladen wurde?

    Über die nsIRDFRemoteDataSource Schnittstelle ist es möglich die Eigenschaft "loaded" zu befragen, um zu bestimmen, ob die Datenquelle geladen wurde oder nicht:

    // Get the RDF service
    var RDF =
      Components
      .classes["@mozilla.org/rdf/rdf-service;1"]
      .getService(Components.interfaces.nsIRDFService);
    // Get the datasource.
    var ds = RDF.GetDataSource("http://www.mozilla.org/some-rdf-file.rdf");
    // Now see if it's loaded or not...
    var remote =
      ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
    
    if (remote.loaded) {
      alert("the datasource was already loaded!");
    }
    else {
      alert("the datasource wasn't loaded, but it's loading now!");
    }
    

    Sagen wir mal, dass die Datenquelle nicht geladen wurde und sie asynchron geladen werden wird. Über diese API und über JavaScript setTimeout() können wird eine Schleife erstellen, die kontinuierlich die "loaded" Eigenschaft prüft. Das ist sehr zusammengeschustert und schlecht, da kein fehlgeschlagener Ladevorgang erkannt wird, beispielsweise, wenn gar keine Daten in der URL vorhanden waren!

    Aus diesem Grund gibt es ein Observer Interface, welche Ihnen erlaubt den Fortschritt der Datenquelle zu beobachten. Der folgende Code zeigt die Verwendung:

    // This is the object that will observe the RDF/XML load's progress
    var Observer = {
      onBeginLoad: function(aSink)
        {},
    
      onInterrupt: function(aSink)
        {},
    
      onResume: function(aSink)
        {},
    
      onEndLoad: function(aSink)
        { 
          aSink.removeXMLSinkObserver(this);
          alert("done!");
        },
    
      onError: function(aSink, aStatus, aErrorMsg)
        { alert("error! " + aErrorMsg); }
    };
    // Get the RDF service
    var RDF =
      Components
      .classes["@mozilla.org/rdf/rdf-service;1"]
      .getService(Components.interfaces.nsIRDFService);
    // Get the datasource.
    var ds = RDF.GetDataSource("http://www.mozilla.org/some-rdf-file.rdf");
    // Now see if it's loaded or not...
    var remote =
      ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
    
    if (remote.loaded) {
      alert("the datasource was already loaded!");
    }
    else {
      alert("the datasource wasn't loaded, but it's loading now!");
      // RDF/XML Datasources are all nsIRDFXMLSinks
      var sink =
        ds.QueryInterface(Components.interfaces.nsIRDFXMLSink);
      // Attach the observer to the datasource-as-sink
      sink.addXMLSinkObserver(Observer);
      // Now Observer's methods will be called-back as
    // the load progresses.
    }

    Beachten Sie, dass der Observer an der RDF/XML Datenquelle angehängt bleibt, bis removeXMLSinkObserver aufgerufen wurde.

    Wie bekomme ich Zugang zu den Informationen in einer Datenquelle?

    Das nsIRDFDataSource Interface ist ein Hilfsmittel mit dem Sie die Assertions der Datenquelle erreichen und verändern können.

    • boolean HasAssertion(aSource, aProperty, aTarget, aTruthValue).
      This tests the datasource to see if it has the specified tuple.
    • nsIRDFNode GetTarget(aSource, aProperty, aTruthValue).
    • nsISimpleEnumerator GetTargets(aSource, aProperty, aTruthValue).
    • nsIRDFResource GetSource(aProperty, aTarget, aTruthValue).
    • nsISimpleEnumerator GetSources(aProperty, aTarget, aTruthValue).
    • nsISimpleEnumerator ArcLabelsIn(aTarget).
    • nsISimpleEnumerator ArcLabelsOut(aSource).

    Sie können außerdem RDF Container Schnittstellen verwenden, um Zugang zu Informationen der RDF Container zu erhalten.

    Wie kann ich Informationen in der Datenquelle ändern?

    Um 'Assert' verwenden zu können, um eine Assertion hinzuzufügen und 'Unassert' zu verwenden, um eine zu entfernen, lesen Sie Mozilla RDF Back end Architecture (engl.).

    ds.Assert(homepage, FV_quality, value, true);
    ds.Unassert(homepage, FV_quality, value, true);
    

    Wie mache ich Änderungen an einer RDF/XML Datenquelle rückgängig?

    Eine RDF/XML Datenquelle kann über QueryInterface() der nsIRDFRemoteDataSource Schnittstelle gesteuert werden. Dieses Interface hat eine Flush() Methode, welche versuchen wird, die Inhalte der Datenquelle zurück zur URL, von der Sie kommen, wiederherzustellen. Das geschieht über ein speziellen Protokollmechanismus (z.B., schreibt eine "file:" URL nur die Datei; eine "http:" URL kann einen HTTP-POST ausführen). Flush() schreibt nur zur Datenquelle, wenn sich die Inhalte geändert haben.

    Wie füge ich zwei oder mehr Datenquellen zusammen, um sie als eine zu sehen?

    Verwenden Sie nsIRDFCompositeDataSource. Dieses Interface ist von nsIRDFDataSource abgeleitet. Eine Implementierung dieser Schnittstelle kombiniert typischerweise die Aussagen mehrerer Datenquellen zusammen als eine Sammlung. Weil das nsIRDFCompositeDataSource Interface von nsIRDFDataSource abgeleitet ist, kann es genau so abgefragt und verändert werden wie eine individuelle Datenquelle.

    Wie bekomme ich Zugang zu "eingebauten" Datenquellen?

    Eine eingebaute Datenquelle ist eine lokal installierte Komponente, die nsIRDFDataSource implementiert. Zum Beispiel den Bookmarks Service. Prüfen Sie zunächst hier, um sicher zu gehen, dass sie Zugang zu einer eingebauten Datenquelle haben. Es gibt mehrere Sicherheitsbeschränkungen für den Zugang zu eingebauten Datenquellen von "unsicherem" XUL und JS.

    Da eine eingebaute Datenquelle nur eine XPCOM Komponente ist, können Sie diese direkt über den XPConnect Component Manager instanzieren.

    // Use the component manager to get the bookmarks service
    var bookmarks =
    Components.
    classes["@mozilla.org/rdf/datasource;1?name=bookmarks"].
    getService(Components.interfaces.nsIRDFDataSource);
    // Now do something interesting with it... if (bookmarks.HasAssertion( RDF.GetResource("http://home.netscape.com/NC-rdf#BookmarksRoot"), RDF.GetResource("http://home.netscape.com/NC-rdf#child"), RDF.GetResource("http://home.netscape.com/NC-rdf#PersonalToolbarFolder"), true) { // ... }

    Alternativ haben einige Datenquellen "spezielle" RDF-freundliche ContractIDs, die es einfach machen, die Datenquelle über die nsIRDFSerivce GetDataSource() Method zu instantiieren oder die Datenquellenattribute auf einem XUL Template. Diese ContractIDs haben die Form

    @mozilla.org/rdf/datasource;1?name=name
    

    und sind über GetDataSource() und die Datenquellenattribute über den Kürzel "rdf:name" erreichbar. Beispielsweise zeigt der folgende Codeausschnitt, wie man den Bookmark Service als eine Datenquelle in ein XUL Template hinzufügt.

    <tree datasources="rdf:bookmarks">
      ...
    </tree>
    

    Wie manipuliere ich RDF "container"?

    Um einen RDF "container" (ein <rdf:Seq>, zum Beispiel) zu manipulieren, können Sie nsIRDFContainerUtils verwenden, welche als Service mit der folgenden ContractID instantiiert werden kann:

    @mozilla.org/rdf/container-utils;1
    

    Sie können diesen Service verwenden, um zu ermitteln, ob etwas ein RDF Container ist, indem Sie IsSeq(), IsBag() und IsAlt() benutzen. Sie können eine Quelle in einen Container machen, wenn das nicht schon der Fall ist, in dem Sie MakeSeq(), MakeBag() oder MakeAlt() verwenden. Diese Methoden geben einen nsIRDFContainer zurück, welcher Ihnen erlaubt Container-ähnliche Operationen auszuführen und das Sie sich Ihre Hände schmutzig machen.

    Alternativ, wenn Ihre Datenquelle bereits ein Objekt hat, welches ein RDF Container ist, können Sie ein nsIRDFContainer Objekt mit der folgenden Zeile instantiieren:

    @mozilla.org/rdf/container;1
    

    Mit der ContractID und Init() mit der Datenquelle und der Ressource als Parameter. Beachten Sie, dass dies fehlschlagen wird, wenn die Ressource nicht bereits ein Container ist.

    XUL Templates

    XUL Templates werden durch die Angabe eines Datenquellenattributs für ein Element in einem XUL Dokument festgelegt.

    Es gibt zwei Arten von XUL Templates. Die einfache Art, welche aktuell die meist genutzte im Mozilla Code ist, und die erweiterte Art, welche anspruchsvolle Muster im RDF Graphen bietet. Siehe Vorlagen Tutotrial.

    Was ich mit einem XUL Template machen?

    Sie können jede Art von Inhalt mit einem XUL Template verarbeiten. Sie können jede Art von Tags in dem <action> Bereich des <rule> Tags verwenden (auch HTML oder beliebiges XML).

    Wann sollte ich ein XUL Template verwenden?

    Eine Alternative zur Verwendung von RDF und XUL Templates ist die Verwendung von W3C DOM APIs, um XUL (oder HTML) Inhaltsmodelle zu verändern. Es kann jedoch sein, dass es dann etwas umständlich werden kann:

    1. Es gibt mehrere "views" der Daten. Zum Beispiel erkennen Mozilla mail/news die Verzeichnisstruktur in der Toolbar, das "folder pane", in mehreren Menüs und in einigen Dialogen. Um nicht drei Stücke JS (oder C++) Code zum Aufbau der DOM Trees für <menubutton>, <menu> and <tree> Inhaltsmodell zu erstellen, schreiben Sie einfach drei kompakte Regeln für jedes Inhaltsmodell.
    2. Die Daten können sich verändern. Zum Beispiel kann ein mail/news Benutzer IMAP Ordner löschen oder hinzufügen. (Beachten Sie wie diese Aufgabe das Inhaltsmodell verkompliziert). Der XUL Template Builder verwendet Regeln, um automatisch alle Inhaltsmodelle synchron zu halten.

    Um die Vorteile dieser Funktionen zu nutzen, müssen Sie natürlich in der Lage sein, Ihre Informationen nach der RDF datasource API auszudrücken, entweder durch die Verwendung des eingebauten Datenquellenspeichers, durch RDF/XML zum Speichern Ihrer Informationen oder durch das Schreiben Ihrer eigenen Implementierung (möglicherweise in JavaScript) der nsIRDFDataSource Schnittstelle.

    Was wird geladen, wenn ich "datasources=" festlege?

    Das "datasources" Attribut in der Wurzel eines Templates legt eine Leerzeichen-getrennte Liste von Datenquellen URIs zum Laden fest. Aber was ist eine "Datenquellen URI"? Entweder:

    • Eine abgekürzte ContractID für eine lokal installierte Komponente. Durch das Festlegen von rdf:name, weisen Sie den Template-Builder an, die XPCOM Komponente mit der ContractID: @mozilla.org/rdf/datasource;1?name=name zu laden.
    • Die URL einer RDF/XML Datei. Zum Beispiel,
      file:///tmp/foo.rdf
      chrome://mycomponent/content/component-data.rdf
      http://www.mysite.com/generate-rdf.cgi
      ftp://ftp.somewhere.org/toc.rdf
      

      Der Ladevorgang wird asynchron ausgeführt und wenn das RDF/XML ankommt, wird der Template-Builder den Inhalt generieren.

    In beiden Fällen wird die Datenquelle über die GetDataSource() Methode der nsIRDFService Schnittstelle geladen, daher wird es ähnlich verwaltet wie alle anderen Datenquellen, die auf diesem Weg geladen werden.

    Was ist das Sicherheitsmodell für RDF/XML in XUL?

    XUL wird von einer "vertrauten" URL geladen. Jede "chrome:" URL kann jede Datenquellen-URI über das Datenquellenattribut des XUL Templates festlegen.

    XUL, welches von einer "unvertrauten" URL geladen wurde, kann nur ein RDF/XML Dokument aus der gleichen Codebase (im Sinne von Java) festlegen. Keine speziellen (z.B., rdf:) Datenquellen können von unsicherem XUL geladen werden.

    Wie füge ich eine Datenquelle zu einem XUL Template hinzu?

    Obwohl es möglich ist ein XUL Template mit einem eingeschlossenen Set von Datenquellen durch das Datenquellenattribut auszustatten, gibt es oft Situationen bei denen Sie nicht wissen, welche Datenquelle geladen werden soll, bis das XUL geladen wurde. Beispielsweise muss Ihr XUL die Datenquellen erst berechnen, daher brauchen Sie eine onload Routine. Oder es muss eine Datenquelle auf Basis der Benutzeraktionen hinzugefügt werden.

    Hier ist ein einfaches Beispiel, welches zeigt wie man dies machen kann. fangen wir mit dem folgendem XUL an.

    <window xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul">
      ...
      <tree id="my-tree" datasources="rdf:null">
    ...
    </tree>
    ... </window>

    Nehmen wir an, dass wir die Datenquelle irgendwie erhalten haben. Der folgende Beispielcode zeigt, wie man eine Datenquelle zu einem Template hinzufügtund dann das Template auffordert, sich selbst auf Basis der neuen Daten neu zu laden.

    var ds = /* assume we got this somehow! */;
    // Get the DOM element for 'my-tree'
    var tree = document.getElementById('my-tree');
    // Add our datasource to it
    tree.database.AddDataSource(ds);
    // Force the tree to rebuild *now*. You have to do this "manually"!
    tree.builder.rebuild();
    

    Jedes XUL Element mit einem "datasources" Attribut wird eine Datenbank- und eine Builder-Eigenschaft erhalten. Die Datenbankeigenschaft bezieht sich auf ein nsIRDFCompositeDataSource Objekt, welches die Datenquellen aus denen ein Template erstellt wird, enthält.

    Der Builder-Eigenschaft bezieht sich auf ein nsIXULTemplateBuilder Objekt, welches ein "builder" ist, der den Status der Template-Inhalte verwaltet.

    Hinweis zur rdf:null Datenquelle: Das ist eine spezielle Datenquelle, die sagt, "Hey, Ich habe noch keine Datenquelle für dich, aber ich werde später eine hinzufügen, also mach dich bereit!" Die database und builder Eigenschaften werdn eingerichtet, aber lassen die Datenbank der Datenquellen leer: Sie müssen diese selbst hinzufügen!

    Kann ich ein XUL Template über DOM APIs manipulieren?

    Ja: Sie können Regeln hinzufügen und Regeln entfernen, eine Abfrage ändern und den Inhalt, der durch eine Regel erzeugt wird, ändern. Sie können sogar alles über die W3C DOM APIs verändern.

    Die einzige Einschränkung ist, dass Sie rebuild() aufrufen müssen, bevor die Änderungen sichtbar werden (so als wenn Sie eine Datenquelle zu einem XUL Template hinzufügen).

    Wie füge ich Plaintext aus einem Template hinzu?

    Um Plaintext in ein Template hinzuzufügen, verwenden Sie das <text> Element.

    <template>
      <rule>
        <query>...</query>
        <binding>...</binding>
        <action>
          <text value="?some-variable" />
        </action>
      </rule>
    </template>
    

    Das obige Template wird ein Inhaltsmodell erstellen, dass eine Reihe von Textknoten zusammen ausführt.

    Problemlösungen

    Tipps und Tricks.

    Meine RDF/XML Datei wird nicht geladen.

    Der häufigste Grund dafür, dass RDF/XML nicht von einem Webserver geladen werden kann, ist ein falscher MIME Type. Stellen Sie sicher, dass Ihr Server die Datei als text/xml (empfohlen) oder als text/rdf ausliefert.

    Beachten Sie, dass die W3C RDF Core WG application/rdf+xml registriert hat, aber dies noch nicht von Mozilla verstanden wird.

    Ein weiteres, mögliches Problem: Für fern-geladenes XUL und RDF müssen Mozillas Sicherheitsbeschränkungen richtig eingestellt werden (siehe unten für Beispielcode). Wenn XUL nicht in Ihr RDF geladen wurde und der Mimetype OK ist, könnte dies Ihr Problem sein.

    Sie können die rdfcat und rdfpoll Tools verwenden, um sicherzustellen, dass das RDF/XML valide ist. Beide Programme werden unter Windows geladen, wenn Sie configure --enable-tests festgelegt haben.

    • rdfcat url
      Nimmt als Parameter eine URL von welcher eine RDF/XML Datei gelesen werden soll und wird die Datei zurück zur Konsole senden. Sie können dieses Tool verwenden, um sicherstellen, dass das RDF/XML richtig von Mozilla geparst wurde.
    • rdfpoll url interval
      Nimmt als Parameter eine URL von welcher eine RDF/XML Datei gelesen werden soll. Es wird auch ein optionaler Parameter poll interval angenommen, der dafür sorgen kann, dass die URL neu geladen wird. Es werden die Assertions, die von jedem Ladevorgang generiert werden, ausgegeben. Beachten Sie, dass mehrfache Reloads eine Reihe von Unterschieden zwischen der aktuellen und der vorherigen RDF/XML Datei generieren. Das ist nützlich zum Debuggen von generiertem RDF/XML, welches sich von Zeit zu zeit verändert.

    Beide Programme sind zu langsam zum Laden und zum Laufen (aber sie werden laufen, letztendlich). Sie initialisieren XPCOM und bringen Necko dazu, die URLs zu laden und auszuführen, so wie es Mozilla tut.

    Es passiert nichts nachdem ich AddDataSource aufgerufen habe.

    Beachten Sie, dass der Template-Builder die Inhalte eines Templates nicht automatisch neu aufbaut nachdem AddDataSource oder RemoveDataSource aufgerufen wurden. Um die Inhalte des Templates zu erneuern, müssen Siel elt.builder.rebuild() selbst aufrufen.

    Warum? Das kommt daher, weil man mehrere Rebuilds verhindern möchte, wenn mehr als eine Datenquelle zur Datenbank hinzugefügt wird.

    Beispiele

    Wo kann ich einige (funktionierende) Beispiele finden?

    Einige Beispiele kann man hier finden. Einige sind in signierten Skripts enthalten und sind über HTTP direkt ausführbar.

    Siehe auch duplicates.rdf (Live RDF Feed von Mozilla) und duplicates.xul. Beachten Sie, dass sie Mozillas Sicherheitsmodell einhalten müssen. Um das zu tun, fügen Sie die folgende Zeile in Ihre Preferences Datei hinzu. (Schließen Sie Mozilla erst, da sonst die Datei überschrieben wird, wenn Sie Mozilla beenden.)

    user_pref("signed.applets.codebase_principal_support", true);
    

    Mozilla wird Sie fragen, ob Sie den Skripten in duplicates.xul Rechte zum Zugang zu XPConnect geben wollen; stimmen Sie dem zu.

    Aktuell erlaubt Mozilla kein unprivilegierten Zugang zu RDF Schnittstellen und Services; Siehe Bug 122846 für Details.

    Bitte schicken Sie danbri, mozilla-rdf oder waterson eine Mail mit URLs, wenn Sie weitere Beispiele haben, die wir hier hinzufügen können!

    Hinweise

    1. Siehe auch W3C RDF und Semantic Web für weitere Informationen über RDF und verwandte Technologien.

    Mitwirkende

    • Beispiel Abschnitt hinzugefügt, am 2002-07-02 von danbri
    • Danke an Myk Melez für die Hinweise zu remote XUL / Sicherheitsmethoden

    Autor: Chris Waterson

    Informationen zum Originaldokument

    Schlagwörter des Dokuments und Mitwirkende

    Schlagwörter: 
    Mitwirkende an dieser Seite: fscholz, Sebastianzartner@gmx.de
    Zuletzt aktualisiert von: fscholz,