aboutsummaryrefslogtreecommitdiff
path: root/files/de/archive/web-standards
diff options
context:
space:
mode:
Diffstat (limited to 'files/de/archive/web-standards')
-rw-r--r--files/de/archive/web-standards/index.html69
-rw-r--r--files/de/archive/web-standards/rdf_in_mozilla_faq/index.html264
2 files changed, 333 insertions, 0 deletions
diff --git a/files/de/archive/web-standards/index.html b/files/de/archive/web-standards/index.html
new file mode 100644
index 0000000000..6b29b8e71c
--- /dev/null
+++ b/files/de/archive/web-standards/index.html
@@ -0,0 +1,69 @@
+---
+title: Webstandards
+slug: Archive/Web-Standards
+tags:
+ - Webstandards
+translation_of: Archive/Web_Standards
+---
+<div>
+ <strong>Webstandards</strong> wurden sorgfältig entworfen, um für die größtmögliche Zahl von Internet-Nutzern den größtmöglichen Nutzen zu erzielen und gleichzeitig die Langlebigkeit von im Internet veröffentlichten Dokumenten sicherzustellen. Wer sich beim Entwerfen und Erstellen von Websites an diese Standards hält, vereinfacht die Produktion und senkt die Kosten, während gleichzeitig Websites entstehen, die für mehr Menschen und mehr webfähige Endgeräte zugänglich sind. Websites, die gemäß dieser Richtlinien entwickelt wurden, bleiben auch dann voll funktionsfähig, wenn sich herkömmliche Desktop-Browser verändern und neue internetfähige Endgeräte auf den Markt kommen.{{ Ref(1) }}</div>
+<table class="topicpage-table">
+ <tbody>
+ <tr>
+ <td>
+ <h4 id="Dokumentation">Dokumentation</h4>
+ <dl>
+ <dt>
+ <a href="https://developer.mozilla.org/en-US/docs/Migrate_apps_from_Internet_Explorer_to_Mozilla">Anwendungen vom Internet Explorer zu Mozilla migrieren</a></dt>
+ <dd>
+ <small>Jemals Probleme mit Internet Explorer-spezifischen Webanwendungen unter Mozilla gehabt? In diesem Artikel werden geläufige Probleme bei der Verwendung von IE-Anwendungen unter Mozilla-basierenden Browsern erläutert.</small></dd>
+ <dt>
+ <a href="https://developer.mozilla.org/en/Using_Web_Standards_in_your_Web_Pages">Verwendung von Webstandards</a></dt>
+ <dd>
+ <small>Dieser Artikel liefert einen Überblick über die Einhaltung von W3C Webstandards für die Inhalte der eigenen Webseite.</small></dd>
+ <dt>
+ <a href="https://developer.mozilla.org/en/Choosing_Standards_Compliance_Over_Proprietary_Practices">Wahl von Webstandards gegenüber proprietären Praktiken</a></dt>
+ <dd>
+ <small>In der Welt der (Web-)Entwicklung gibt es einen Bedarf an Standards, weil Anwendungen für für mehrere Entwicklergruppen entworfen werden.</small></dd>
+ <dt>
+ <a href="https://developer.mozilla.org/en/The_Business_Benefits_of_Web_Standards">Vorteile von Webstandards</a></dt>
+ <dd>
+ <small>Wie das Festhalten an Webstandards sowie die Verminderung von proprietären Markup und Technologien dazu beitragen kann, geschäftliche Ziele zu erreichen.</small></dd>
+ </dl>
+ </td>
+ <td>
+ <h4 id="Community" name="Community">Community</h4>
+ <p>Mozillas Webstandardsforen</p>
+ <div>
+ {{ DiscussionList("dev-web-development", "mozilla.dev.web-development") }}</div>
+ <ul>
+ <li><a class="external" href="http://webstandards.org/">Das Web Standards Projekt (en)</a></li>
+ <li><a class="external" href="http://webdevfeedhouse.com/">WebDev FeedHouse (en)</a></li>
+ <li><a href="/de/Web-Standards/Community" title="de/Web-Standards/Community">Weitere Community Links</a></li>
+ </ul>
+ <h4 id="Tools" name="Tools">Tools</h4>
+ <ul>
+ <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug Erweiterung</a></li>
+ <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/60">Web Developer Erweiterung</a></li>
+ <li><a class="external" href="http://validator.w3.org/">Markup Validator (W3C)</a></li>
+ <li><a class="external" href="http://jigsaw.w3.org/css-validator/">CSS Validator (W3C)</a></li>
+ <li><a href="/Special:Tags?tag=Webstandards:Tools&amp;language=de" title="Special:Tags?tag=Webstandards:Tools&amp;language=de">Weitere Tools...</a></li>
+ </ul>
+ <h4 id="Beispiele">Beispiele</h4>
+ <ul>
+ <li><a class="external" href="http://www.mozilla.org/start/1.0/demos.html">Mozilla 1.0 Demos</a></li>
+ <li><a class="external" href="http://www.mozilla.org/newlayout/demo/">Gecko Demos</a></li>
+ <li><a class="external" href="http://www.csszengarden.com/">CSS Zen Garden</a></li>
+ <li><a class="external" href="http://www.meyerweb.com/eric/css/edge/">Eric Meyers's CSS Ecke</a></li>
+ <li><a class="external" href="http://dmoz.org/Computers/Programming/Languages/JavaScript/W3C_DOM/Demos/">W3C DOM Demos</a></li>
+ </ul>
+ <h4 id="Verwandte_Themen">Verwandte Themen</h4>
+ <dl>
+ <dd>
+ <a href="/de/CSS" title="de/CSS">CSS</a>, <a href="/de/DHTML" title="de/DHTML">DHTML</a>, <a href="/de/HTML" title="de/HTML">HTML</a>, <a href="/de/Webentwicklung" title="de/Webentwicklung">Webentwicklung</a>, <a href="/de/XHTML" title="de/XHTML">XHTML</a>, <a href="/de/XML" title="de/XML">XML</a></dd>
+ </dl>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p><small>{{ endnote("1") }} - <a class="external" href="http://webstandards.org/">The Web Standards Project</a></small></p>
diff --git a/files/de/archive/web-standards/rdf_in_mozilla_faq/index.html b/files/de/archive/web-standards/rdf_in_mozilla_faq/index.html
new file mode 100644
index 0000000000..cbd3c1194b
--- /dev/null
+++ b/files/de/archive/web-standards/rdf_in_mozilla_faq/index.html
@@ -0,0 +1,264 @@
+---
+title: RDF in Mozilla FAQ
+slug: Archive/Web-Standards/RDF_in_Mozilla_FAQ
+tags:
+ - RDF
+translation_of: Archive/Web_Standards/RDF_in_Mozilla_FAQ
+---
+<h2 id="Allgemeines">Allgemeines</h2>
+<h3 id="Wo_fange_ich_an">Wo fange ich an?</h3>
+<p><a href="/de/RDF" title="de/RDF">RDF</a> 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 <a href="/de/XUL/Vorlagen_Tutorial" title="de/XUL/Vorlagen Tutorial">XUL Templates</a> als eine abstrakte "API" zur Anzeige von Informationen benutzt. <a href="/de/RDF_in_fünfzig_Worten_oder_weniger" title="de/RDF_in_fünfzig_Worten_oder_weniger">RDF in fünfzig Worten oder weniger</a> ist eine kurze Beschreibung auf hohem Niveau, was RDF in Mozilla macht. Die <a class=" external" href="http://www.mozilla.org/rdf/back-end-architecture.html" title="http://www.mozilla.org/rdf/back-end-architecture.html">RDF Back-End Architektur</a> beschreibt die RDF Implementierung in Mozilla detaillierter und gibt eine kurze Übersicht der beteiligten Schnittstellen.</p>
+<h3 id="Wo_finde_ich_Informationen_über_Open_Directory_(dmoz)">Wo finde ich Informationen über Open Directory ("dmoz")?</h3>
+<p>Detaillierte Informationen zu Open Directory gibt es auf <a class="external" href="http://www.dmoz.org/">www.dmoz.org</a>. Das Open Directory Datenset ist als (riesiger) RDF/XML Dump verfügbar. Es beschreibt tausende von Webseiten, die eine Mischung aus dem <a class="external" href="http://www.dublincore.org/">Dublin Core</a> Metadaten-Vokabular und der DMoz Klassifizierung benutzen. Für mehr Informationen zu diesem Thema lesen Sie bitte die <a class="external" href="http://dmoz.org/rdf.html">DMoz RDF Seiten</a> oder <a class="external" href="http://groups.yahoo.com/group/odp-rdf-announce/">odp-rdf-announce</a> für Änderungen an dessen genauem Datenformat. Die Seite <a class="external" href="http://chefmoz.org/">ChefMoz</a> (gemeinnütziger Restaurantführer) ist auch als <a class="external" href="http://chefmoz.org/rdf.html">RDF verfügbar</a>.</p>
+<p>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 <a class="link-mailto" href="mailto:mozilla-rdf@mozilla.org">mozilla-rdf</a> und die <a class="link-mailto" href="mailto:www-rdf-interest@w3.org">RDF Interest Group</a> wissen zu lassen. Diese Gruppen sind wahrscheinlich auch an Tools interessiert, die die DMoz Daten säubern, umgestalten oder speichern. Besuchen Sie die <a class="external" href="http://dmoz.org/Computers/Internet/Searching/Directories/Open_Directory_Project/Use_of_ODP_Data/">Seiten, die ODP Daten benutzen</a>, um einige Verzeichnisse zu sehen, die auf den ODP RDF Dumps basieren.</p>
+<h3 id="Was_ist_eine_Datenquelle">Was ist eine Datenquelle?</h3>
+<p>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.</p>
+<p>In Mozilla können Datenquellen mit Hilfe der <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFCompositeDataSource.idl">Composite Data Source</a> <em>zusammengefasst</em> werden. Dies entspricht dem Überlagern von Datenmengen oder dem Zusammenfassen von Gruppen von Aussagen. Aussagen über die selbe RDF <em>Ressource</em> 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.</p>
+<p>Für eine detailliertere Beschreibung, wie man Datenquellen schreibt, lesen Sie sich bitte das <a href="/de/RDF_Datenquellen_Tutorial" title="de/RDF Datenquellen Tutorial">RDF Datenquellen Tutorial</a> durch.</p>
+<h3 id="Wie_verwaltet_Mozilla_Datenquellen">Wie verwaltet Mozilla Datenquellen?</h3>
+<p>Der <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFService.idl">RDF Service</a> 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 "<code>rdf:" am Anfang ist, welche auf eine eingebaute Datenquelle zielt</code>.</p>
+<p>Datenquellen können über den RDF Service unter Verwendung der <code>GetDataSource()</code> Methode bezogen werden. Wenn sich das URI Argument auf eine URL einer RDF/XML Datei bezieht, wird der RDF Service eine <em>RDF/XML Datenquelle</em> erstellen und diese asynchron parsen. Die Datenquelle bleibt im Cache bis die letzte Referenz der Datenquelle ausgegeben wurde.</p>
+<p>Wenn sich das URI-Argument auf eine eingebaute Datenquelle bezieht, wird der RDF Service den XPCOM <em>Component Manager</em> verwenden, um eine Komponente zu laden, deren <em>ContractID</em> über eine spezielle URI geladen wurde: <code><a class=" link-mailto" href="mailto:prefix@mozilla.org" rel="freelink">prefix@mozilla.org</a>/rdf/datasource;1?name=</code>.</p>
+<p>Zum Beispiel,</p>
+<pre class="eval">rdf:foo
+</pre>
+<p>Würde folgendes laden::</p>
+<pre class="eval">@mozilla.org/rdf/datasource;1?name=foo
+</pre>
+<p>Wie bei RDF/XML Datenquellen, wird eine Datenquelle über diesen Weg solange im Cache bleiben die letzte Referenz ausgegeben wurde.</p>
+<h3 id="Wie_erstelle_ich_eine_Datenquelle_aus_einer_RDFXML_Datei">Wie erstelle ich eine Datenquelle aus einer RDF/XML Datei?</h3>
+<p>Sie können entweder eine RDF/XML Datenquelle über die <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFService.idl">RDF Service</a> <code>GetDataSource()</code> Methode erstellen:</p>
+<pre class="eval"><span class="highlightblue">// Get the RDF service</span>
+var RDF =
+ Components
+ .classes["@mozilla.org/rdf/rdf-service;1"]
+ .getService(Components.interfaces.nsIRDFService);
+<span class="highlightblue">// ...and from it, get the datasource. Make sure that your web server<br>// dishes it up as <strong>text/xml</strong> (recommended) or <strong>text/rdf</strong>!</span>
+var ds = RDF.GetDataSource("<a class=" external" href="http://www.mozilla.org/some-rdf-file.rdf" rel="freelink">http://www.mozilla.org/some-rdf-file.rdf</a>");
+<span class="highlightblue">// Note that <strong>ds</strong> will load asynchronously, so assertions will not<br>// be immediately available</span>
+</pre>
+<p>Alternativ können Sie eine direkt erstellen, indem Sie den XPCOM Component Manager nutzen, so wie im folgendem Codeausschnitt dargestellt:</p>
+<pre class="eval"><span class="highlightblue">// Create an RDF/XML datasource using the XPCOM Component Manager</span>
+var ds =
+ Components
+ .classes["@mozilla.org/rdf/datasource;1?name=xml-datasource"]
+ .createInstance(Components.interfaces.nsIRDFDataSource);
+<span class="highlightblue">// The <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFRemoteDataSource.idl">nsIRDFRemoteDataSource</a> interface has the interfaces<br>// that we need to setup the datasource.</span>
+var remote =
+ ds.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
+<span class="highlightblue">// Be sure that your web server will deliver this as <strong>text/xml</strong> (recommended) or <strong>text/rdf</strong>!</span>
+remote.Init("<a class=" external" href="http://www.mozilla.org/some-rdf-file.rdf" rel="freelink">http://www.mozilla.org/some-rdf-file.rdf</a>");
+<span class="highlightblue">// Make it load! Note that this will happen asynchronously. By setting<br>// <strong>aBlocking</strong> to true, we could force it to be synchronous, but this<br>// is generally a bad idea, because your UI will completely lock up!</span>
+remote.Refresh(false);
+<span class="highlightblue">// Note that <strong>ds</strong> will load asynchronously, so assertions will not<br>// be immediately available</span>
+</pre>
+<p>Sie können sich auch dafür entscheiden, die RDF/XML Datenquelle "manuell" zu erstellen, wenn Sie diese synchron statt asynchron laden wollen.</p>
+<h3 id="Wie_lade_ich_eine_RDFXML_Datenquelle_neu">Wie lade ich eine RDF/XML Datenquelle neu?</h3>
+<p>Sie können eine RDF/XML Datenquelle (oder jede andere Datenquelle, die <a class="external" href="http://lxr.mozilla.org/mozilla/source/source/rdf/base/idl/nsIRDFRemoteDataSource.idl"><code>nsIRDFRemoteDataSource</code></a> unterstützen) neu laden, indem Sie die <code>Refresh()</code> Methode von <code>nsIRDFRemoteDataSource</code> nutzen. <code>Refresh()</code> nimmt einen Parameter an, welcher angibt, ob Sie die Operation synchron ("blocking") oder asynchron ("non-blocking") ausführen möchten. Sie sollten <em>niemals</em> einen synchronen Ladevorgang durchführen, wenn Sie nicht <em>wirklich </em>wissen, was Sie tun: Das wird die Benutzeroberfläche zum Einfrieren bringen bis der Ladevorgang abgeschlossen ist!</p>
+<h3 id="Wie_kann_ich_feststellen_ob_eine_RDFXML_Datenquelle_geladen_wurde">Wie kann ich feststellen, ob eine RDF/XML Datenquelle geladen wurde?</h3>
+<p>Über die <a class="external" href="http://lxr.mozilla.org/mozilla/source/source/rdf/base/idl/nsIRDFRemoteDataSource.idl"><code>nsIRDFRemoteDataSource</code></a> Schnittstelle ist es möglich die Eigenschaft "<code>loaded" zu befragen</code>, um zu bestimmen, ob die Datenquelle geladen wurde oder nicht:</p>
+<pre class="eval"><span class="highlightblue">// Get the RDF service</span>
+var RDF =
+ Components
+ .classes["@mozilla.org/rdf/rdf-service;1"]
+ .getService(Components.interfaces.nsIRDFService);
+<span class="highlightblue">// Get the datasource.</span>
+var ds = RDF.GetDataSource("<a class=" external" href="http://www.mozilla.org/some-rdf-file.rdf" rel="freelink">http://www.mozilla.org/some-rdf-file.rdf</a>");
+<span class="highlightblue">// Now see if it's loaded or not...</span>
+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!");
+}
+</pre>
+<p>Sagen wir mal, dass die Datenquelle nicht geladen wurde und sie asynchron geladen werden wird. Über diese API und über JavaScript <code>setTimeout()</code> können wird eine Schleife erstellen, die kontinuierlich die "loaded" Eigenschaft prüft. Das ist sehr zusammengeschustert und schlecht, da kein <em>fehlgeschlagener</em> Ladevorgang erkannt wird, beispielsweise, wenn gar keine Daten in der URL vorhanden waren!</p>
+<p>Aus diesem Grund gibt es ein <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFXMLSink.idl">Observer Interface</a>, welche Ihnen erlaubt den Fortschritt der Datenquelle zu beobachten. Der folgende Code zeigt die Verwendung:</p>
+<pre class="eval"><span class="highlightblue">// This is the object that will observe the RDF/XML load's progress</span>
+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); }
+};
+<span class="highlightblue">// Get the RDF service</span>
+var RDF =
+ Components
+ .classes["@mozilla.org/rdf/rdf-service;1"]
+ .getService(Components.interfaces.nsIRDFService);
+<span class="highlightblue">// Get the datasource.</span>
+var ds = RDF.GetDataSource("<a class=" external" href="http://www.mozilla.org/some-rdf-file.rdf" rel="freelink">http://www.mozilla.org/some-rdf-file.rdf</a>");
+<span class="highlightblue">// Now see if it's loaded or not...</span>
+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!");
+ <span class="highlightblue">// RDF/XML Datasources are all <strong>nsIRDFXMLSink</strong>s</span>
+ var sink =
+ ds.QueryInterface(Components.interfaces.nsIRDFXMLSink);
+ <span class="highlightblue">// Attach the observer to the datasource-as-sink</span>
+ sink.addXMLSinkObserver(Observer);
+ <span class="highlightblue">// Now <strong>Observer'</strong>s methods will be called-back as<br> // the load progresses.</span>
+}
+</pre>
+<p>Beachten Sie, dass der Observer an der RDF/XML Datenquelle angehängt bleibt, bis <code>removeXMLSinkObserver</code> aufgerufen wurde.</p>
+<h3 id="Wie_bekomme_ich_Zugang_zu_den_Informationen_in_einer_Datenquelle">Wie bekomme ich Zugang zu den Informationen in einer Datenquelle?</h3>
+<p>Das <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFDataSource.idl"><code>nsIRDFDataSource</code></a> Interface ist ein Hilfsmittel mit dem Sie die Assertions der Datenquelle erreichen und verändern können.</p>
+<ul> <li><code>boolean HasAssertion(aSource, aProperty, aTarget, aTruthValue)</code>.<br> This tests the datasource to see if it has the specified tuple.</li> <li><code>nsIRDFNode GetTarget(aSource, aProperty, aTruthValue)</code>.</li> <li><code>nsISimpleEnumerator GetTargets(aSource, aProperty, aTruthValue)</code>.</li> <li><code>nsIRDFResource GetSource(aProperty, aTarget, aTruthValue)</code>.</li> <li><code>nsISimpleEnumerator GetSources(aProperty, aTarget, aTruthValue)</code>.</li> <li><code>nsISimpleEnumerator ArcLabelsIn(aTarget)</code>.</li> <li><code>nsISimpleEnumerator ArcLabelsOut(aSource)</code>.</li>
+</ul>
+<p>Sie können außerdem <a href="/#Wie_manipuliere_ich_RDF_.22container.22.3f" title="#Wie manipuliere ich RDF .22container.22.3f">RDF Container</a> Schnittstellen verwenden, um Zugang zu Informationen der RDF <em>Container</em> zu erhalten.</p>
+<h3 id="Wie_kann_ich_Informationen_in_der_Datenquelle_ändern">Wie kann ich Informationen in der Datenquelle ändern?</h3>
+<p>Um 'Assert' verwenden zu können, um eine Assertion hinzuzufügen und 'Unassert' zu verwenden, um eine zu entfernen, lesen Sie <a class="external" href="http://www.mozilla.org/rdf/back-end-architecture.html">Mozilla RDF Back end Architecture</a> (engl.).</p>
+<pre class="eval">ds.Assert(homepage, FV_quality, value, true);
+ds.Unassert(homepage, FV_quality, value, true);
+</pre>
+<h3 id="Wie_mache_ich_Änderungen_an_einer_RDFXML_Datenquelle_rückgängig">Wie mache ich Änderungen an einer RDF/XML Datenquelle rückgängig?</h3>
+<p>Eine RDF/XML Datenquelle kann über <code>QueryInterface()</code> der <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFRemoteDataSource.idl"><code>nsIRDFRemoteDataSource</code></a> Schnittstelle gesteuert werden. Dieses Interface hat eine <code>Flush()</code> 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 "<code>file:</code>" URL nur die Datei; eine "<code>http:</code>" URL kann einen HTTP-POST ausführen). <code>Flush()</code> schreibt nur zur Datenquelle, wenn sich die Inhalte geändert haben.</p>
+<h3 id="Wie_füge_ich_zwei_oder_mehr_Datenquellen_zusammen_um_sie_als_eine_zu_sehen">Wie füge ich zwei oder mehr Datenquellen zusammen, um sie als eine zu sehen?</h3>
+<p>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.</p>
+<h3 id="Wie_bekomme_ich_Zugang_zu_eingebauten_Datenquellen">Wie bekomme ich Zugang zu "eingebauten" Datenquellen?</h3>
+<p>Eine <em>eingebaute Datenquelle</em> ist eine lokal installierte Komponente, die <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFDataSource.idl">nsIRDFDataSource</a> implementiert. Zum Beispiel den <a class="external" href="http://lxr.mozilla.org/mozilla/source/xpfe/components/bookmarks/src/nsBookmarksService.cpp">Bookmarks Service</a>. Prüfen Sie zunächst <a href="/#Was_ist_das_Sicherheitsmodell_f.c3.bcr_RDF.2fXML_in_XUL.3f" title="#Was ist das Sicherheitsmodell f.c3.bcr RDF.2fXML in XUL.3f">hier</a>, um sicher zu gehen, dass sie<span style="font-style: italic;"> Zuga</span><em><span style="font-style: italic;">ng zu einer eingebauten Datenquelle haben</span></em>. Es gibt mehrere Sicherheitsbeschränkungen für den Zugang zu eingebauten Datenquellen von "unsicherem" XUL und JS.</p>
+<p>Da eine eingebaute Datenquelle nur eine XPCOM Komponente ist, können Sie diese direkt über den XPConnect Component Manager instanzieren.</p>
+<pre class="eval">// Use the component manager to get the bookmarks service
+<span class="highlightgreen">var bookmarks =<br> Components.<br> classes["@mozilla.org/rdf/datasource;1?name=bookmarks"].<br> getService(Components.interfaces.nsIRDFDataSource);</span>
+
+// Now do something interesting with it...
+if (bookmarks.HasAssertion(
+ RDF.GetResource("<a class=" external" href="http://home.netscape.com/NC-rdf#BookmarksRoot" rel="freelink">http://home.netscape.com/NC-rdf#BookmarksRoot</a>"),
+ RDF.GetResource("<a class=" external" href="http://home.netscape.com/NC-rdf#child" rel="freelink">http://home.netscape.com/NC-rdf#child</a>"),
+ RDF.GetResource("<a class=" external" href="http://home.netscape.com/NC-rdf#PersonalToolbarFolder" rel="freelink">http://home.netscape.com/NC-rdf#PersonalToolbarFolder</a>"),
+ true) {
+ // ...
+}
+</pre>
+<p>Alternativ haben einige Datenquellen "spezielle" RDF-freundliche ContractIDs, die es einfach machen, die Datenquelle über die <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFService.idl"><code>nsIRDFSerivce</code></a> <code>GetDataSource()</code> Method zu instantiieren oder die Datenquellenattribute auf einem XUL Template. Diese ContractIDs haben die Form</p>
+<pre class="eval">@mozilla.org/rdf/datasource;1?name=<em>name</em>
+</pre>
+<p>und sind über <code>GetDataSource()</code> und die Datenquellenattribute über den Kürzel <code><span style="font-family: Verdana,Tahoma,sans-serif;">"r</span>df:<em>name</em></code>" erreichbar. Beispielsweise zeigt der folgende Codeausschnitt, wie man den Bookmark Service als eine Datenquelle in ein XUL Template hinzufügt.</p>
+<pre class="eval">&lt;tree datasources="rdf:bookmarks"&gt;
+ ...
+&lt;/tree&gt;
+</pre>
+<h3 id="Wie_manipuliere_ich_RDF_container">Wie manipuliere ich RDF "container"?</h3>
+<p>Um einen RDF "container" (ein <code>&lt;rdf:Seq&gt;</code>, zum Beispiel) zu manipulieren, können Sie <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFContainerUtils.idl"><code>nsIRDFContainerUtils</code></a> verwenden, welche als Service mit der folgenden ContractID instantiiert werden kann:</p>
+<pre class="eval">@mozilla.org/rdf/container-utils;1
+</pre>
+<p>Sie können diesen Service verwenden, um zu ermitteln, ob etwas ein RDF Container ist, indem Sie <code>IsSeq()</code>, <code>IsBag()</code> und <code>IsAlt()</code> benutzen. Sie können eine Quelle in einen Container machen, wenn das nicht schon der Fall ist, in dem Sie <code>MakeSeq()</code>, <code>MakeBag()</code> oder <code>MakeAlt()</code> verwenden. Diese Methoden geben einen <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFContainer.idl"><code>nsIRDFContainer</code></a> zurück, welcher Ihnen erlaubt Container-ähnliche Operationen auszuführen und das Sie sich Ihre Hände schmutzig machen.</p>
+<p>Alternativ, wenn Ihre Datenquelle bereits ein Objekt hat, welches ein RDF Container ist, können Sie ein <code>nsIRDFContainer</code> Objekt mit der folgenden Zeile instantiieren:</p>
+<pre class="eval">@mozilla.org/rdf/container;1
+</pre>
+<p>Mit der ContractID und <code>Init()</code> mit der Datenquelle und der Ressource als Parameter. Beachten Sie, dass dies fehlschlagen wird, wenn die Ressource nicht bereits ein Container ist.</p>
+<h2 id="XUL_Templates">XUL Templates</h2>
+<p>XUL Templates werden durch die Angabe eines Datenquellenattributs für ein Element in einem XUL Dokument festgelegt.</p>
+<p>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 <a href="/de/XUL/Vorlagen_Tutorial" title="de/XUL/Vorlagen Tutorial">Vorlagen Tutotrial</a>.</p>
+<h3 id="Was_ich_mit_einem_XUL_Template_machen">Was ich mit einem XUL Template machen?</h3>
+<p>Sie können <em>jede</em> Art von Inhalt mit einem XUL Template verarbeiten. Sie können jede Art von Tags in dem <code>&lt;action&gt;</code> Bereich des <code>&lt;rule&gt;</code> Tags verwenden (auch HTML oder beliebiges XML).</p>
+<h3 id="Wann_sollte_ich_ein_XUL_Template_verwenden">Wann sollte ich ein XUL Template verwenden?</h3>
+<p>Eine Alternative zur Verwendung von RDF und XUL Templates ist die Verwendung von <a class="external" href="http://www.w3.org/TR/REC-DOM-Level-1/">W3C DOM APIs</a>, um XUL (oder HTML) Inhaltsmodelle zu verändern. Es kann jedoch sein, dass es dann etwas umständlich werden kann:</p>
+<ol> <li><em>Es gibt mehrere "views" der Daten</em>. 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 <code>&lt;menubutton&gt;</code>, <code>&lt;menu&gt;</code> and <code>&lt;tree&gt;</code> Inhaltsmodell zu erstellen, schreiben Sie einfach drei kompakte Regeln für jedes Inhaltsmodell.</li> <li><em>Die Daten können sich verändern</em>. 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.</li>
+</ol>
+<p>Um die Vorteile dieser Funktionen zu nutzen, müssen Sie natürlich in der Lage sein, Ihre Informationen nach der <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFDataSource.idl">RDF datasource API</a> auszudrücken, entweder durch die Verwendung des eingebauten <em>Datenquellenspeichers</em>, durch RDF/XML zum Speichern Ihrer Informationen oder durch das Schreiben Ihrer eigenen Implementierung (möglicherweise in JavaScript) der <code>nsIRDFDataSource</code> Schnittstelle.</p>
+<h3 id="Was_wird_geladen_wenn_ich_datasources_festlege">Was wird geladen, wenn ich "datasources=" festlege?</h3>
+<p>Das "<code>datasources"</code> Attribut in der Wurzel eines Templates legt eine Leerzeichen-getrennte Liste von <em>Datenquellen URIs</em> zum Laden fest. Aber was ist eine "Datenquellen URI"? Entweder:</p>
+<ul> <li>Eine abgekürzte ContractID für eine lokal installierte Komponente. Durch das Festlegen von <code>rdf:<em>name</em></code>, weisen Sie den Template-Builder an, die XPCOM Komponente mit der ContractID: <code>@mozilla.org/rdf/datasource;1?name=<em>name</em></code> zu laden.</li> <li>Die URL einer RDF/XML Datei. Zum Beispiel, <pre>file:///tmp/foo.rdf
+chrome://mycomponent/content/component-data.rdf
+http://www.mysite.com/generate-rdf.cgi
+ftp://ftp.somewhere.org/toc.rdf
+</pre> <p>Der Ladevorgang wird <em>asynchron</em> ausgeführt und wenn das RDF/XML ankommt, wird der Template-Builder den Inhalt generieren.</p> </li>
+</ul>
+<p>In beiden Fällen wird die Datenquelle über die <code>GetDataSource() Methode der</code> <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFService.idl"><code>nsIRDFService</code></a> Schnittstelle geladen, daher wird es ähnlich verwaltet wie alle anderen Datenquellen, die auf diesem Weg geladen werden.</p>
+<h3 id="Was_ist_das_Sicherheitsmodell_für_RDFXML_in_XUL">Was ist das Sicherheitsmodell für RDF/XML in XUL?</h3>
+<p>XUL wird von einer "vertrauten" URL geladen. Jede <code>"chrome:</code>" URL kann <em>jede</em> Datenquellen-URI über das Datenquellenattribut des XUL Templates festlegen.</p>
+<p>XUL, welches von einer "unvertrauten" URL geladen wurde, kann nur ein RDF/XML Dokument aus der gleichen <em>Codebase</em> (im Sinne von Java) festlegen. Keine speziellen (z.B., <code>rdf:</code>) Datenquellen können von unsicherem XUL geladen werden.</p>
+<h3 id="Wie_füge_ich_eine_Datenquelle_zu_einem_XUL_Template_hinzu">Wie füge ich eine Datenquelle zu einem XUL Template hinzu?</h3>
+<p>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 <code>onload</code> Routine. Oder es muss eine Datenquelle auf Basis der Benutzeraktionen hinzugefügt werden.</p>
+<p>Hier ist ein einfaches Beispiel, welches zeigt wie man dies machen kann. fangen wir mit dem folgendem XUL an.</p>
+<pre class="eval">&lt;window xmlns="<a class=" external" href="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" rel="freelink">http://www.mozilla.org/keymaster/gat...re.is.only.xul</a>"&gt;
+ ...
+ <span class="highlightgreen">&lt;tree id="my-tree" datasources="rdf:null"&gt;<br> ...<br> &lt;/tree&gt;</span>
+ ...
+&lt;/window&gt;
+</pre>
+<p>Nehmen wir an, dass wir die Datenquelle irgendwie erhalten haben. Der folgende Beispielcode zeigt, wie man eine Datenquelle zu einem Template <em>hinzufügt</em>und dann das Template auffordert, sich selbst auf Basis der neuen Daten neu zu laden.</p>
+<pre class="eval">var ds = <span class="highlightblue">/* assume we got this somehow! */</span>;
+<span class="highlightblue">// Get the DOM element for 'my-tree'</span>
+var tree = document.getElementById('my-tree');
+<span class="highlightblue">// Add our datasource to it</span>
+tree.database.AddDataSource(ds);
+<span class="highlightblue">// Force the tree to rebuild *now*. You have to do this "manually"!</span>
+tree.builder.rebuild();
+</pre>
+<p>Jedes XUL Element mit einem "<code>datasources</code>" Attribut wird eine Datenbank- und eine Builder-Eigenschaft erhalten. Die Datenbankeigenschaft bezieht sich auf ein <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIRDFCompositeDataSource.idl"><code>nsIRDFCompositeDataSource</code></a> Objekt, welches die Datenquellen aus denen ein Template erstellt wird, enthält.</p>
+<p>Der <code><span style="font-family: Verdana,Tahoma,sans-serif;"><span style="font-family: monospace;">B</span></span>uilder</code>-Eigenschaft bezieht sich auf ein <a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/base/idl/nsIXULTemplateBuilder.idl"><code>nsIXULTemplateBuilder</code></a> Objekt, welches ein "builder" ist, der den Status der Template-Inhalte verwaltet.</p>
+<p>Hinweis zur <code>rdf:null</code> 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 <code>database</code> und <code>builder</code> Eigenschaften werdn eingerichtet, aber lassen die Datenbank der Datenquellen leer: Sie müssen diese selbst hinzufügen!</p>
+<h3 id="Kann_ich_ein_XUL_Template_über_DOM_APIs_manipulieren">Kann ich ein XUL Template über DOM APIs manipulieren?</h3>
+<p>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 <em>alles</em> über die <a class="external" href="http://www.w3.org/TR/REC-DOM-Level-1/">W3C DOM APIs</a> verändern.</p>
+<p>Die einzige Einschränkung ist, dass Sie <code>rebuild()</code> aufrufen müssen, bevor die Änderungen sichtbar werden (so als wenn Sie eine Datenquelle zu einem XUL Template hinzufügen).</p>
+<h3 id="Wie_füge_ich_Plaintext_aus_einem_Template_hinzu">Wie füge ich Plaintext aus einem Template hinzu?</h3>
+<p>Um Plaintext in ein Template hinzuzufügen, verwenden Sie das <code>&lt;text&gt;</code> Element.</p>
+<pre class="eval">&lt;template&gt;
+ &lt;rule&gt;
+ &lt;query&gt;...&lt;/query&gt;
+ &lt;binding&gt;...&lt;/binding&gt;
+ &lt;action&gt;
+ <span class="highlightgreen">&lt;text value="?some-variable" /&gt;</span>
+ &lt;/action&gt;
+ &lt;/rule&gt;
+&lt;/template&gt;
+</pre>
+<p>Das obige Template wird ein Inhaltsmodell erstellen, dass eine Reihe von Textknoten zusammen ausführt.</p>
+<h2 id="Problemlösungen">Problemlösungen</h2>
+<p>Tipps und Tricks.</p>
+<h3 id="Meine_RDFXML_Datei_wird_nicht_geladen.">Meine RDF/XML Datei wird nicht geladen.</h3>
+<p>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 <code>text/xml</code> (empfohlen) oder als <code>text/rdf</code> ausliefert.</p>
+<p>Beachten Sie, dass die W3C RDF Core WG application/rdf+xml registriert hat, aber dies noch nicht von Mozilla verstanden wird.</p>
+<p>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.</p>
+<p>Sie können die <code>rdfcat</code> und <code>rdfpoll</code> Tools verwenden, um sicherzustellen, dass das RDF/XML valide ist. Beide Programme werden unter Windows geladen, wenn Sie <code>configure --enable-tests</code> festgelegt haben.</p>
+<ul> <li><code><a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/tests/rdfcat/rdfcat.cpp">rdfcat</a> <em>url</em></code><br> 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.</li> <li><code><a class="external" href="http://lxr.mozilla.org/mozilla/source/rdf/tests/rdfpoll/rdfpoll.cpp">rdfpoll</a> <em>url</em> </code><em><code>interval</code></em><br> Nimmt als Parameter eine URL von welcher eine RDF/XML Datei gelesen werden soll. Es wird auch ein optionaler Parameter <em>poll interval</em> 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.</li>
+</ul>
+<p>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.</p>
+<h3 id="Es_passiert_nichts_nachdem_ich_AddDataSource_aufgerufen_habe.">Es passiert nichts nachdem ich AddDataSource aufgerufen habe.</h3>
+<p>Beachten Sie, dass der Template-Builder die Inhalte eines Templates <em>nicht</em> automatisch neu aufbaut nachdem <code>AddDataSource</code> oder <code>RemoveDataSource</code> aufgerufen wurden. Um die Inhalte des Templates zu erneuern, müssen Siel <code><em>elt.</em>builder.rebuild()</code> selbst aufrufen.</p>
+<p>Warum? Das kommt daher, weil man mehrere Rebuilds verhindern möchte, wenn mehr als eine Datenquelle zur Datenbank hinzugefügt wird.</p>
+<h2 id="Beispiele">Beispiele</h2>
+<h3 id="Wo_kann_ich_einige_(funktionierende)_Beispiele_finden">Wo kann ich einige (funktionierende) Beispiele finden?</h3>
+<p>Einige Beispiele kann man <a class="external" href="http://www.mozilla.org/rdf/doc/examples.html">hier</a> finden. Einige sind in signierten Skripts enthalten und sind über HTTP direkt ausführbar.</p>
+<p>Siehe auch <a class="link-https" href="https://bugzilla.mozilla.org/data/duplicates.rdf"><code>duplicates.rdf</code></a> (Live RDF Feed von Mozilla) und <a class="link-https" href="https://bugzilla.mozilla.org/duplicates.xul"><code>duplicates.xul</code></a>. 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.)</p>
+<pre class="eval">user_pref("signed.applets.codebase_principal_support", true);
+</pre>
+<p>Mozilla wird Sie fragen, ob Sie den Skripten in <code>duplicates.xul</code> Rechte zum Zugang zu XPConnect geben wollen; stimmen Sie dem zu.</p>
+<p>Aktuell erlaubt Mozilla kein unprivilegierten Zugang zu RDF Schnittstellen und Services; Siehe Bug <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=122846">122846</a> für Details.</p>
+<p>Bitte schicken Sie <a class="external" href="http://rdfweb.org/people/danbri/">danbri</a>, mozilla-rdf oder waterson eine Mail mit URLs, wenn Sie weitere Beispiele haben, die wir hier hinzufügen können!</p>
+<h2 id="Notes" name="Notes">Hinweise</h2>
+<ol> <li>Siehe auch <a class="external" href="http://www.w3.org/RDF/">W3C RDF</a> und <a class="external" href="http://www.w3.org/2001/sw/">Semantic Web</a> für weitere Informationen über RDF und verwandte Technologien.</li>
+</ol>
+<h2 id="Mitwirkende">Mitwirkende</h2>
+<ul> <li>Beispiel Abschnitt hinzugefügt, am 2002-07-02 von <a class="external" href="http://rdfweb.org/people/danbri/">danbri</a></li> <li>Danke an Myk Melez für die Hinweise zu remote XUL / Sicherheitsmethoden</li>
+</ul>
+<p>Autor: <a class="link-mailto" href="mailto:waterson@netscape.com">Chris Waterson</a></p>
+<div class="originaldocinfo">
+<h2 id="Informationen_zum_Originaldokument">Informationen zum Originaldokument</h2>
+<ul> <li>Autor(en): <a class="link-mailto" href="mailto:waterson@netscape.com">Chris Waterson</a></li> <li>Zuletzt aktualisiert: 22. Dezember 2004</li> <li>Copyright Informationen: Copyright (C) <a class="link-mailto" href="mailto:waterson@netscape.com">Chris Waterson</a></li>
+</ul>
+</div>
+<p>{{ languages( { "en": "en/RDF_in_Mozilla_FAQ", "es": "es/Preguntas_frecuentes_sobre_RDF_en_Mozilla", "ja": "ja/RDF_in_Mozilla_FAQ", "ko": "ko/RDF_in_Mozilla_FAQ" } ) }}</p>