XML -Tutorial

XML-HOME XML-Einführung XML-Wie zu verwenden XML-Baum XML-Syntax XML-Elemente XML-Attribute XML-Namespaces XML-Anzeige XML-HttpRequest XML-Parser XML-DOM XML-XPath XML-XSLT XML-XQuery XML-XLink XML-Validierer XML-DTD XML-Schema XML-Server XML-Beispiele XML-Quiz XML-Zertifikat

XML-AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

XML-DOM

DOM-Einführung DOM-Knoten DOM-Zugriff DOM-Knoten-Info DOM-Knotenliste DOM-Traversierung DOM-Navigation DOM Get-Werte DOM-Änderungsknoten DOM-Knoten entfernen DOM-Ersetzungsknoten DOM-Knoten erstellen DOM-Knoten hinzufügen DOM-Klonknoten DOM-Beispiele

XPath -Tutorial

XPath-Einführung XPath-Knoten XPath-Syntax XPath-Achsen XPath-Operatoren XPath-Beispiele

XSLT -Tutorial

XSLT-Einführung XSL-Sprachen XSLT-Transformation XSLT <Vorlage> XSLT <Wert von> XSLT <für-jeden> XSLT <sortieren> XSLT <wenn> XSLT <auswählen> XSLT anwenden XSLT auf dem Client XSLT auf dem Server XSLT XML bearbeiten XSLT-Beispiele

XQuery- Tutorial

XQuery-Einführung XQuery-Beispiel XQuery FLWOR XQuery-HTML XQuery-Bedingungen XQuery-Syntax XQuery hinzufügen XQuery-Auswahl XQuery-Funktionen

XML -DTD

DTD-Einführung DTD-Bausteine DTD-Elemente DTD-Attribute DTD-Elemente vs. Attr DTD-Entitäten DTD-Beispiele

XSD- Schema

XSD-Einführung XSD-Anleitung XSD <Schema> XSD-Elemente XSD-Attribute XSD-Einschränkungen

XSD- Komplex

XSD-Elemente XSD leer Nur XSD-Elemente Nur XSD-Text XSD gemischt XSD-Indikatoren XSD <beliebig> XSD <beliebiges Attribut> XSD-Ersetzung XSD-Beispiel

XSD -Daten

XSD-String XSD-Datum XSD Numerisch XSD Sonstiges XSD-Referenz

Webdienste _

XML-Dienste XML-WSDL XML-SOAP XML-RDF XML-RSS

Verweise

DOM-Knotentypen DOM-Knoten DOM-Knotenliste DOM NamedNodeMap DOM-Dokument DOM-Element DOM-Attribut DOM-Text DOM-CDATA DOM-Kommentar DOM-XMLHttpRequest DOM-Parser XSLT-Elemente XSLT/XPath-Funktionen

XML -RDF


Beispiel für ein RDF-Dokument

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">

<rdf:Description rdf:about="https://www.w3schools.com">
  <si:title>W3Schools</si:title>
  <si:author>Jan Egil Refsnes</si:author>
</rdf:Description>

</rdf:RDF>

Was ist RDF?

  • RDF steht für Resource D esscription Framework
  • RDF ist ein Framework zur Beschreibung von Ressourcen im Web
  • RDF wurde entwickelt, um von Computern gelesen und verstanden zu werden
  • RDF ist nicht darauf ausgelegt, Menschen angezeigt zu werden
  • RDF ist in XML geschrieben
  • RDF ist Teil der Semantic Web Activity des W3C
  • RDF ist eine W3C-Empfehlung vom 10. Februar 2004

RDF - Anwendungsbeispiele

  • Beschreiben von Eigenschaften für Einkaufsartikel, wie z. B. Preis und Verfügbarkeit
  • Beschreiben von Zeitplänen für Web-Events
  • Beschreiben von Informationen über Webseiten (Inhalt, Autor, Erstellungs- und Änderungsdatum)
  • Beschreibung des Inhalts und Bewertung von Webbildern
  • Beschreibung von Inhalten für Suchmaschinen
  • Beschreibung elektronischer Bibliotheken

RDF wurde entwickelt, um von Computern gelesen zu werden

RDF wurde entwickelt, um eine gemeinsame Methode zur Beschreibung von Informationen bereitzustellen, damit sie von Computeranwendungen gelesen und verstanden werden können.

RDF-Beschreibungen sind nicht für die Anzeige im Web konzipiert.



RDF ist in XML geschrieben

RDF-Dokumente werden in XML geschrieben. Die von RDF verwendete XML-Sprache heißt RDF/XML.

Durch die Verwendung von XML können RDF-Informationen problemlos zwischen verschiedenen Computertypen mit unterschiedlichen Betriebssystemen und Anwendungssprachen ausgetauscht werden.


RDF und "Das semantische Web"

Die RDF-Sprache ist Teil der Semantic Web Activity des W3C. Die „Semantic Web Vision“ des W3C ist eine Zukunft, in der:

  • Web-Informationen haben eine genaue Bedeutung
  • Webinformationen können von Computern verstanden und verarbeitet werden
  • Computer können Informationen aus dem Internet integrieren

RDF verwendet Web-Identifikatoren (URIs), um Ressourcen zu identifizieren.

RDF beschreibt Ressourcen mit Eigenschaften und Eigenschaftswerten.


RDF-Ressource, Eigenschaft und Eigenschaftswert

RDF identifiziert Dinge mithilfe von Web-Identifikatoren (URIs) und beschreibt Ressourcen mit Eigenschaften und Eigenschaftswerten.

Erläuterung von Ressource, Eigentum und Eigentumswert:

  • Eine Ressource ist alles, was einen URI haben kann, z. B. „https://www.w3schools.com/rdf“.
  • Eine Eigenschaft ist eine Ressource, die einen Namen hat, z. B. „Autor“ oder „Homepage“.
  • Ein Eigenschaftswert ist der Wert einer Eigenschaft, z. B. „Jan Egil Refsnes“ oder „https://www.w3schools.com“ (beachten Sie, dass ein Eigenschaftswert eine andere Ressource sein kann).

Das folgende RDF-Dokument könnte die Ressource "https://www.w3schools.com/rdf" beschreiben:

<?xml version="1.0"?>

<RDF>
  <Description about="https://www.w3schools.com/rdf">
    <author>Jan Egil Refsnes</author>
    <homepage>https://www.w3schools.com</homepage>
  </Description>
</RDF>

Das obige Beispiel ist vereinfacht. Namensräume werden weggelassen.


RDF-Anweisungen

Die Kombination aus einer Ressource, einer Eigenschaft und einem Eigenschaftswert bildet eine Anweisung (bekannt als Subjekt, Prädikat und Objekt einer Anweisung).

Schauen wir uns zum besseren Verständnis einige Beispielaussagen an:

Aussage: "Der Autor von https://www.w3schools.com/rdf ist Jan Egil Refsnes".

  • Der Betreff der obigen Erklärung lautet: https://www.w3schools.com/rdf
  • Das Prädikat ist: Autor
  • Das Objekt ist: Jan Egil Refsnes

Erklärung: "Die Homepage von https://www.w3schools.com/rdf ist https://www.w3schools.com".

  • Der Betreff der obigen Erklärung lautet: https://www.w3schools.com/rdf
  • Das Prädikat lautet: Homepage
  • Das Objekt ist: https://www.w3schools.com

RDF-Beispiel

Hier zwei Aufnahmen aus einer CD-Liste:

Title Artist Country Company Price Year
Empire Burlesque Bob Dylan USA Columbia 10.90 1985
Hide your heart Bonnie Tyler UK CBS Records 9.90 1988

Unten sind ein paar Zeilen aus einem RDF-Dokument:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
  <cd:artist>Bonnie Tyler</cd:artist>
  <cd:country>UK</cd:country>
  <cd:company>CBS Records</cd:company>
  <cd:price>9.90</cd:price>
  <cd:year>1988</cd:year>
</rdf:Description>
.
.
.
</rdf:RDF>

Die erste Zeile des RDF-Dokuments ist die XML-Deklaration. Auf die XML-Deklaration folgt das Root-Element von RDF-Dokumenten: <rdf:RDF> .

Der Namespace xmlns:rdf gibt an, dass Elemente mit dem Präfix rdf aus dem Namespace „http://www.w3.org/1999/02/22-rdf-syntax-ns#“ stammen.

Der Namespace xmlns:cd gibt an, dass Elemente mit dem Präfix cd aus dem Namespace „http://www.recshop.fake/cd#“ stammen.

Das Element <rdf:Description> enthält die Beschreibung der Ressource, die durch das Attribut rdf:about identifiziert wird.

Die Elemente: <cd:artist>, <cd:country>, <cd:company> usw. sind Eigenschaften der Ressource.


RDF-Online-Validator

Der RDF-Validierungsdienst des W3C ist beim Erlernen von RDF hilfreich. Hier können Sie mit RDF-Dateien experimentieren.

Der Online-RDF-Validator parst Ihr RDF-Dokument, überprüft Ihre Syntax und generiert tabellarische und grafische Ansichten Ihres RDF-Dokuments.

Kopieren Sie das folgende Beispiel und fügen Sie es in den RDF-Validator des W3C ein:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:si="https://www.w3schools.com/rdf/">
<rdf:Description rdf:about="https://www.w3schools.com">
  <si:title>W3Schools.com</si:title>
  <si:author>Jan Egil Refsnes</si:author>
</rdf:Description>
</rdf:RDF>

Wenn Sie das obige Beispiel parsen, sieht das Ergebnis in etwa so aus .


RDF-Elemente

Die Hauptelemente von RDF sind das Wurzelelement <RDF> und das Element <Description>, das eine Ressource identifiziert.


Das <rdf:RDF>-Element

<rdf:RDF> ist das Wurzelelement eines RDF-Dokuments. Es definiert das XML-Dokument als RDF-Dokument. Es enthält auch einen Verweis auf den RDF-Namensraum:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  ...Description goes here...
</rdf:RDF>

Das <rdf:Description>-Element

Das Element <rdf:Description> identifiziert eine Ressource mit dem about-Attribut.

Das Element <rdf:Description> enthält Elemente, die die Ressource beschreiben:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

</rdf:RDF>

Die Elemente Künstler, Land, Firma, Preis und Jahr werden im Namensraum http://www.recshop.fake/cd# definiert. Dieser Namensraum befindet sich außerhalb von RDF (und ist kein Teil von RDF). RDF definiert nur den Rahmen. Die Elemente Künstler, Land, Unternehmen, Preis und Jahr müssen von jemand anderem (Unternehmen, Organisation, Person usw.) definiert werden.


Eigenschaften als Attribute

Die Eigenschaftselemente können auch als Attribute (statt als Elemente) definiert werden:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque"
cd:artist="Bob Dylan" cd:country="USA"
cd:company="Columbia" cd:price="10.90"
cd:year="1985" />

</rdf:RDF>

Eigenschaften als Ressourcen

Die Eigenschaftselemente können auch als Ressourcen definiert werden:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist rdf:resource="http://www.recshop.fake/cd/dylan" />
  ...
  ...
</rdf:Description>

</rdf:RDF>

Im obigen Beispiel hat die Eigenschaft Künstler keinen Wert, sondern einen Verweis auf eine Ressource, die Informationen über den Künstler enthält.


RDF-Behälter

RDF-Container werden verwendet, um Gruppen von Dingen zu beschreiben.

Die folgenden RDF-Elemente werden verwendet, um Gruppen zu beschreiben: <Bag>, <Seq> und <Alt>.


Das <rdf:Bag>-Element

Das Element <rdf:Bag> wird verwendet, um eine Liste von Werten zu beschreiben, die nicht in einer bestimmten Reihenfolge vorliegen müssen.

Das Element <rdf:Bag> kann doppelte Werte enthalten.

Beispiel

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:artist>
    <rdf:Bag>
      <rdf:li>John</rdf:li>
      <rdf:li>Paul</rdf:li>
      <rdf:li>George</rdf:li>
      <rdf:li>Ringo</rdf:li>
    </rdf:Bag>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

Das <rdf:Seq>-Element

Das Element <rdf:Seq> wird verwendet, um eine geordnete Liste von Werten zu beschreiben (z. B. in alphabetischer Reihenfolge).

Das Element <rdf:Seq> kann doppelte Werte enthalten.

Beispiel

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:artist>
    <rdf:Seq>
      <rdf:li>George</rdf:li>
      <rdf:li>John</rdf:li>
      <rdf:li>Paul</rdf:li>
      <rdf:li>Ringo</rdf:li>
    </rdf:Seq>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

Das <rdf:Alt>-Element

Das Element <rdf:Alt> wird verwendet, um eine Liste alternativer Werte zu beschreiben (der Benutzer kann nur einen der Werte auswählen).

Beispiel

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Beatles">
  <cd:format>
    <rdf:Alt>
      <rdf:li>CD</rdf:li>
      <rdf:li>Record</rdf:li>
      <rdf:li>Tape</rdf:li>
    </rdf:Alt>
  </cd:format>
</rdf:Description>

</rdf:RDF>

RDF-Bedingungen

In den obigen Beispielen haben wir bei der Beschreibung der Containerelemente von "Werteliste" gesprochen. In RDF werden diese "Wertelisten" Mitglieder genannt.

Wir haben also folgendes:

  • Ein Container ist eine Ressource, die Dinge enthält
  • Die enthaltenen Dinge heißen Mitglieder (nicht Werteliste)

RDF-Sammlungen

RDF-Sammlungen beschreiben Gruppen, die NUR die angegebenen Mitglieder enthalten können.


Das Attribut rdf:parseType="Collection".

Wie im vorherigen Kapitel gesehen, sagt ein Container, dass die enthaltenden Ressourcen Mitglieder sind – er sagt nicht, dass andere Mitglieder nicht erlaubt sind.

RDF-Sammlungen werden verwendet, um Gruppen zu beschreiben, die NUR die angegebenen Mitglieder enthalten können.

Eine Collection wird durch das Attribut rdf:parseType="Collection" beschrieben.

Beispiel

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://recshop.fake/cd#">

<rdf:Description
rdf:about="http://recshop.fake/cd/Beatles">
  <cd:artist rdf:parseType="Collection">
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/George"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/John"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Paul"/>
    <rdf:Description rdf:about="http://recshop.fake/cd/Beatles/Ringo"/>
  </cd:artist>
</rdf:Description>

</rdf:RDF>

RDF-Schema und Anwendungsklassen

RDF-Schema (RDFS) ist eine Erweiterung von RDF.

RDF beschreibt Ressourcen mit Klassen, Eigenschaften und Werten.

Darüber hinaus benötigt RDF auch eine Möglichkeit, anwendungsspezifische Klassen und Eigenschaften zu definieren. Anwendungsspezifische Klassen und Eigenschaften müssen mithilfe von Erweiterungen zu RDF definiert werden.

Eine solche Erweiterung ist RDF Schema.


RDF-Schema (RDFS)

Das RDF-Schema stellt keine eigentlichen anwendungsspezifischen Klassen und Eigenschaften bereit.

Stattdessen stellt RDF Schema das Framework bereit, um anwendungsspezifische Klassen und Eigenschaften zu beschreiben.

Classes in RDF Schema are much like classes in object oriented programming languages. This allows resources to be defined as instances of classes, and subclasses of classes.


RDFS Example

The following example demonstrates some of the RDFS facilities:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">

<rdf:Description rdf:ID="animal">
  <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
</rdf:Description>

<rdf:Description rdf:ID="horse">
  <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:subClassOf rdf:resource="#animal"/>
</rdf:Description>

</rdf:RDF>

In the example above, the resource "horse" is a subclass of the class "animal".


Example Abbreviated

Since an RDFS class is an RDF resource we can abbreviate the example above by using rdfs:Class instead of rdf:Description, and drop the rdf:type information:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://www.animals.fake/animals#">

<rdfs:Class rdf:ID="animal" />

<rdfs:Class rdf:ID="horse">
  <rdfs:subClassOf rdf:resource="#animal"/>
</rdfs:Class>

</rdf:RDF>

That's it!


The Dublin Core

The Dublin Core Metadata Initiative (DCMI) has created some predefined properties for describing documents.

RDF is metadata (data about data). RDF is used to describe information resources.

The Dublin Core is a set of predefined properties for describing documents.

The first Dublin Core properties were defined at the Metadata Workshop in Dublin, Ohio in 1995 and is currently maintained by the Dublin Core Metadata Initiative.

Property Definition
Contributor An entity responsible for making contributions to the content of the resource
Coverage The extent or scope of the content of the resource
Creator An entity primarily responsible for making the content of the resource
Format The physical or digital manifestation of the resource
Date A date of an event in the lifecycle of the resource
Description An account of the content of the resource
Identifier An unambiguous reference to the resource within a given context
Language A language of the intellectual content of the resource
Publisher An entity responsible for making the resource available
Relation A reference to a related resource
Rights Information about rights held in and over the resource
Source A Reference to a resource from which the present resource is derived
Subject A topic of the content of the resource
Title A name given to the resource
Type The nature or genre of the content of the resource

A quick look at the table above indicates that RDF is ideal for representing Dublin Core information.


RDF Example

The following example demonstrates the use of some of the Dublin Core properties in an RDF document:

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc= "http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="https://www.w3schools.com">
  <dc:description>W3Schools - Free tutorials</dc:description>
  <dc:publisher>Refsnes Data as</dc:publisher>
  <dc:date>2008-09-01</dc:date>
  <dc:type>Web Development</dc:type>
  <dc:format>text/html</dc:format>
  <dc:language>en</dc:language>
</rdf:Description>

</rdf:RDF>

RDF Reference

The RDF namespace (xmlns:rdf) is: http://www.w3.org/1999/02/22-rdf-syntax-ns#

The RDFS namespace (xmlns:rdfs ) is: http://www.w3.org/2000/01/rdf-schema#

The recommended file extension for RDF files is .rdf. However, the extension .xml is often used to provide compatibility with old xml parsers.

The MIME type should be "application/rdf+xml".


RDFS / RDF Classes

Element Class of Subclass of
rdfs:Class All classes  
rdfs:Datatype Data types Class
rdfs:Resource All resources Class
rdfs:Container Containers Resource
rdfs:Literal Literal values (text and numbers) Resource
rdf:List Lists Resource
rdf:Property Properties Resource
rdf:Statement Statements Resource
rdf:Alt Containers of alternatives Container
rdf:Bag Unordered containers Container
rdf:Seq Ordered containers Container
rdfs:ContainerMembershipProperty Container membership properties Property
rdf:XMLLiteral XML literal values Literal

RDFS / RDF Properties

Element Domain Range Description
rdfs:domain Property Class The domain of the resource
rdfs:range Property Class The range of the resource
rdfs:subPropertyOf Property Property The property is a sub property of a property
rdfs:subClassOf Class Class The resource is a subclass of a class
rdfs:comment Resource Literal The human readable description of the resource
rdfs:label Resource Literal The human readable label (name)  of the resource
rdfs:isDefinedBy Resource Resource The definition of the resource
rdfs:seeAlso Resource Resource The additional information about the resource
rdfs:member Resource Resource The member of the resource
rdf:first List Resource  
rdf:rest List List  
rdf:subject Statement Resource The subject of the resource in an RDF Statement
rdf:predicate Statement Resource The predicate of the resource in an RDF Statement
rdf:object Statement Resource The object of the resource in an RDF Statement
rdf:value Resource Resource The property used for values
rdf:type Resource Class The resource is an instance of a class

RDF Attributes

Attribute Description
rdf:about Defines the resource being described
rdf:Description Container for the description of a resource
rdf:resource Defines a resource to identify a property
rdf:datatype Defines the data type of an element
rdf:ID Defines the ID of an element
rdf:li Defines a list
rdf:_n Defines a node
rdf:nodeID Defines the ID of an element node
rdf:parseType Defines how an element should be parsed
rdf:RDF The root of an RDF document
xml:base Defines the XML base
xml:lang Defines the language of the element content