Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Frage zu RDF der DelphiPraxis.net (https://www.delphipraxis.net/21156-frage-zu-rdf-der-delphipraxis-net.html)

MaBuSE 28. Apr 2004 15:34


Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von sakura
Ich möchte darauf hinweisen, daß ich davon ausgehe, daß sich der RDF Feed geringfügig ändern wird.

Im Feed wird als NameSpace der RDF-Feed angegeben.

Du gibt als NameSpace den RDF-Newsfeed an
XML-Code:
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">
....
</rdf:RDF>
Das zurückgelieferte XML ist damit aber nicht(!) konform, also denke ich, daß Daniel diese Zeile entfernen wird.

Der neue Feed könnte so aussehen:
XML-Code:
<rdf>
   ....
</rdf>

Bei der ShoutBox wurde das RDF... also entfernt.

Meine Frage: Was bedeutet das RDS Tag eigentlich ?

Und warum kann der Delphi 7 XML-Experte der die TXMLDocument benutzt nicht mit dem Ding umgehen.

Der erzeugte Quellcode unterscheidet sich eigentlich nur in der Zeile:

ohne den RDF Firlefanz:
Delphi-Quellcode:
  TargetNamespace = '';
mit dem RDF Firlefanz:
Delphi-Quellcode:
  TargetNamespace = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';
Der Unterschied im der Benutzung ist aber gewaltig.

z.B. "http://www.delphipraxis.net/rdf.php" -> "news.xml"

Wenn die RDF Daten angegeben sind, ergibt der MyNews.Item.Count = 0
Wenn man die Daten entfernt -> MyNews.Item.Count > 0

Was soll das ?

Danke für eine Antwort.

ps: Ach ja hinter dem Link verbirgt sich eine 7 kb großes XML Dokument mit lauter seltsamen Definitionen drin.

MathiasSimmack 28. Apr 2004 15:43

Re: Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von MaBuSE
Meine Frage: Was bedeutet das RDS Tag eigentlich ?

Du meinst "RDF"? Ich hab´s damals im Beitrag zum Programmier-Wettbewerb schon mal geschrieben. Im Prinzip hat Daniel damals den falschen Teil entfernt (;)), denn eigentlich war "RDF" der Name des root-Knotens und "rdf:" der explizit zugewiesene Namespace:
Code:
<[color=#ff0000]rdf:[/color]RDF xmlns[color=#ff0000]:rdf[/color]="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://my.netscape.com/rdf/simple/0.9/">
Der zweite Namespace, der keine separate ID besitzt (der Teil nach dem Doppelpunkt), gilt damit für alle anderen Knoten in dem Dokument, sofern die ebenfalls keinen speziell angegebenen Namespace benutzen. Diese Vorgaben stammen übrigens vom W3C. Die Definition des Formats findet sich dort.

Ansonsten zum Rest deines Beitrags bzgl. RDF und Delphi:
Schau mal hier.

MaBuSE 28. Apr 2004 15:59

Re: Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von MathiasSimmack
Code:
<[color=#ff0000]rdf:[/color]RDF xmlns[color=#ff0000]:rdf[/color]="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns="http://my.netscape.com/rdf/simple/0.9/">

Hmmm.

Nun habe ich folgendes editiert:

XML-Code:
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">
...
</RDF>
-> Der Delphi XML Experte gibt mir nun beim Öffnen des XML Files folgende Fehlermeldung:

Zitat:

Zitat von Experte für XML Datenanbindung
Fehler

Doppeltes Atribut.

Line: 2
<RDF xmlns="http://www.w3.

Ich vermute mal mit Atribut meint er das xmlns. -> Also weg damit:
XML-Code:
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
...
</RDF>
-> Hurra es klappt !!!

Ich hab den anderen Beitrag überflogen, und ich frage mich immer noch:

Was ist RDF und wozu braucht man das?

Mathias, danke für die schnelle Antwort :-)

Phoenix 28. Apr 2004 16:19

Re: Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von MaBuSE
Nun habe ich folgendes editiert:

Nein, Du hast es ediert!
Wortbildungen, siehe II. Wortbildung des Verbs - 4.2.2

teebee 28. Apr 2004 16:38

Re: Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von Phoenix
Zitat:

Zitat von MaBuSE
Nun habe ich folgendes editiert:

Nein, Du hast es ediert!

Das Verb editieren ist aber auch korrekt, steht im Duden ein paar Einträge nach edieren. :wink:

Gruß, teebee

MathiasSimmack 28. Apr 2004 17:13

Re: Frage zu RDF der DelphiPraxis.net
 
Zitat:

Zitat von MaBuSE
XML-Code:
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">
...
</RDF>
-> Der Delphi XML Experte gibt mir nun beim Öffnen des XML Files folgende Fehlermeldung:

Zitat:

Zitat von Experte für XML Datenanbindung
Fehler

Doppeltes Atribut.


Na ja, ist ja auch logisch, weil du in beiden Fällen einfach nur "xmlns" (XML Namespace) benutzt hast. Wenn du dir das Original mal anschaust: dort wird das erste Attribut sozusagen auf die ID ":rdf" eingegrenzt.

Zitat:

Ich hab den anderen Beitrag überflogen, und ich frage mich immer noch:

Was ist RDF und wozu braucht man das?
Man braucht es nicht zwangsläufig. In dem Fall ist es die Vorgabe des W3C. Ich vermute mal, dass die Deklarationen sicherstellen sollen, dass die RDF-Datei das korrekte Format benutzt. Bei eigenen Dateien kannst du drauf verzichten. Oder wenn du dir mal das RSS-Format anschaust, das ja auch von einigen Seiten für Newsfeeds benutzt wird, dort gibt es keinen Namespace.
Wenn du korrekt auslesen willst, dann musst du (je nach benutztem Parser) den Namespace entsprechend setzen. Und deswegen hatte ich dich ja an den anderen Beitrag verwiesen. Der zeigt dir das Prinzip für MS-XML.

IMHO war dein Fehler (s. dein erstes Posting) der, dass du den falschen Namespace zugewiesen hast:
Zitat:

Delphi-Quellcode:
TargetNamespace = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';

Wie gesagt, das ist der Namespace für den <RDF>-Knoten gewesen. Um die Items (und damit die Newsmeldungen usw.) zu finden, hättest du
Code:
http://my.netscape.com/rdf/simple/0.9/
zuweisen müssen, denn der gilt für alle Knoten, die nicht durch "rdf:" gekennzeichnet sind. Das habe ich auch hier erläutert.

MaBuSE 29. Apr 2004 09:05

Re: Frage zu RDF der DelphiPraxis.net
 
Danke :dp:

Ultimator 17. Dez 2004 06:07

Re: Frage zu RDF der DelphiPraxis.net
 
Ich habe mir jetzt einen Newsreader für einen anderen, aber fast gleich aufgebauten RSS-Newsfeed geschrieben.
Zuerst konnte ich ihn jedoch nicht ganz normal einlesen, weil dieses "<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">" oben stand.
Also hab ich es per stringreplace durch einen sinnlosen Root-Node ersetzt mit dem Namen '<newsfeed>'.

Was sagt ihr dazu: Ist das unschön? Kann man es besser machen? Macht es was, wenn ich es so lasse? :wiejetzt:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz