Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

XML RDF


Exemple de document RDF

<?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>

Qu'est-ce que RDF ?

  • RDF signifie R esource D escription F ramework
  • RDF est un framework pour décrire des ressources sur le web
  • RDF est conçu pour être lu et compris par les ordinateurs
  • RDF n'est pas conçu pour être affiché aux gens
  • RDF est écrit en XML
  • RDF fait partie de l'activité Web sémantique du W3C
  • RDF est une recommandation du W3C du 10 février 2004

RDF - Exemples d'utilisation

  • Décrire les propriétés des articles d'achat, telles que le prix et la disponibilité
  • Description des horaires des événements Web
  • Description des informations sur les pages Web (contenu, auteur, date de création et de modification)
  • Description du contenu et évaluation des images Web
  • Description du contenu pour les moteurs de recherche
  • Description des bibliothèques électroniques

RDF est conçu pour être lu par des ordinateurs

RDF a été conçu pour fournir une manière commune de décrire les informations afin qu'elles puissent être lues et comprises par les applications informatiques.

Les descriptions RDF ne sont pas conçues pour être affichées sur le Web.



RDF est écrit en XML

Les documents RDF sont écrits en XML. Le langage XML utilisé par RDF s'appelle RDF/XML.

En utilisant XML, les informations RDF peuvent facilement être échangées entre différents types d'ordinateurs utilisant différents types de systèmes d'exploitation et de langages d'application.


RDF et "le Web sémantique"

Le langage RDF fait partie de l'activité Web sémantique du W3C. La "Vision Web sémantique" du W3C est un avenir où :

  • Les informations Web ont une signification exacte
  • Les informations Web peuvent être comprises et traitées par des ordinateurs
  • Les ordinateurs peuvent intégrer des informations provenant du Web

RDF utilise des identifiants Web (URI) pour identifier les ressources.

RDF décrit les ressources avec des propriétés et des valeurs de propriété.


Ressource RDF, propriété et valeur de propriété

RDF identifie les éléments à l'aide d'identificateurs Web (URI) et décrit les ressources avec des propriétés et des valeurs de propriété.

Explication de la ressource, de la propriété et de la valeur de la propriété :

  • Une ressource est tout ce qui peut avoir un URI, tel que "https://www.w3schools.com/rdf"
  • Une propriété est une ressource qui a un nom, tel que "auteur" ou "page d'accueil"
  • Une valeur de propriété est la valeur d'une propriété, telle que "Jan Egil Refsnes" ou "https://www.w3schools.com" (notez qu'une valeur de propriété peut être une autre ressource)

Le document RDF suivant pourrait décrire la ressource "https://www.w3schools.com/rdf":

<?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>

L'exemple ci-dessus est simplifié. Les espaces de noms sont omis.


Déclarations RDF

La combinaison d'une ressource, d'une propriété et d'une valeur de propriété forme une déclaration (appelée sujet, prédicat et objet d'une déclaration).

Examinons quelques exemples d'énoncés pour mieux comprendre :

Déclaration : "L'auteur de https://www.w3schools.com/rdf est Jan Egil Refsnes".

  • Le sujet de la déclaration ci-dessus est : https://www.w3schools.com/rdf
  • Le prédicat est : auteur
  • L'objet est : Jan Egil Refsnes

Déclaration : "La page d'accueil de https://www.w3schools.com/rdf est https://www.w3schools.com".

  • Le sujet de la déclaration ci-dessus est : https://www.w3schools.com/rdf
  • Le prédicat est : page d'accueil
  • L'objet est : https://www.w3schools.com

Exemple RDF

Voici deux enregistrements d'une liste de CD :

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

Voici quelques lignes d'un document RDF :

<?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>

La première ligne du document RDF est la déclaration XML. La déclaration XML est suivie de l'élément racine des documents RDF : <rdf:RDF> .

L' espace de noms xmlns:rdf spécifie que les éléments avec le préfixe rdf proviennent de l'espace de noms "http://www.w3.org/1999/02/22-rdf-syntax-ns#".

L' espace de noms xmlns:cd spécifie que les éléments avec le préfixe cd proviennent de l'espace de noms "http://www.recshop.fake/cd#".

L' élément <rdf:Description> contient la description de la ressource identifiée par l' attribut rdf:about .

Les éléments : <cd:artist>, <cd:country>, <cd:company>, etc. sont des propriétés de la ressource.


Validateur en ligne RDF

Le service de validation RDF du W3C est utile lors de l'apprentissage de RDF. Ici, vous pouvez expérimenter avec des fichiers RDF.

Le validateur RDF en ligne analyse votre document RDF, vérifie votre syntaxe et génère des vues tabulaires et graphiques de votre document RDF.

Copiez et collez l'exemple ci-dessous dans le validateur RDF du W3C :

<?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>

Lorsque vous analysez l'exemple ci-dessus, le résultat ressemblera à ceci .


Éléments RDF

Les principaux éléments de RDF sont l'élément racine, <RDF>, et l'élément <Description>, qui identifie une ressource.


L'élément <rdf:RDF>

<rdf:RDF> est l'élément racine d'un document RDF. Il définit le document XML comme étant un document RDF. Il contient également une référence à l'espace de noms RDF :

<?xml version="1.0"?>

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

L'élément <rdf:Description>

L'élément <rdf:Description> identifie une ressource avec l'attribut about.

L'élément <rdf:Description> contient des éléments décrivant la ressource :

<?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>

Les éléments, artiste, pays, entreprise, prix et année, sont définis dans l'espace de noms http://www.recshop.fake/cd#. Cet espace de noms est en dehors de RDF (et ne fait pas partie de RDF). RDF ne définit que le cadre. Les éléments, artiste, pays, entreprise, prix et année, doivent être définis par quelqu'un d'autre (entreprise, organisation, personne, etc.).


Propriétés en tant qu'attributs

Les éléments de propriété peuvent également être définis comme des attributs (au lieu d'éléments) :

<?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>

Propriétés en tant que ressources

Les éléments de propriété peuvent également être définis comme des ressources :

<?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>

Dans l'exemple ci-dessus, la propriété artist n'a pas de valeur, mais une référence à une ressource contenant des informations sur l'artiste.


Conteneurs RDF

Les conteneurs RDF sont utilisés pour décrire un groupe de choses.

Les éléments RDF suivants sont utilisés pour décrire les groupes : <Bag>, <Seq> et <Alt>.


L'élément <rdf:Bag>

L'élément <rdf:Bag> est utilisé pour décrire une liste de valeurs qui n'ont pas besoin d'être dans un ordre spécifique.

L'élément <rdf:Bag> peut contenir des valeurs en double.

Exemple

<?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>

L'élément <rdf:Seq>

L'élément <rdf:Seq> est utilisé pour décrire une liste ordonnée de valeurs (par exemple, par ordre alphabétique).

L'élément <rdf:Seq> peut contenir des valeurs en double.

Exemple

<?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>

L'élément <rdf:Alt>

L'élément <rdf:Alt> est utilisé pour décrire une liste de valeurs alternatives (l'utilisateur ne peut sélectionner qu'une seule des valeurs).

Exemple

<?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>

Termes RDF

Dans les exemples ci-dessus, nous avons parlé de "liste de valeurs" lors de la description des éléments du conteneur. En RDF, ces "listes de valeurs" sont appelées membres.

Donc, nous avons ce qui suit :

  • Un conteneur est une ressource qui contient des choses
  • Les éléments contenus sont appelés membres (et non liste de valeurs)

Collections RDF

Les collections RDF décrivent des groupes qui peuvent UNIQUEMENT contenir les membres spécifiés.


L'attribut rdf:parseType="Collection"

Comme vu dans le chapitre précédent, un conteneur indique que les ressources contenantes sont des membres - il ne dit pas que les autres membres ne sont pas autorisés.

Les collections RDF sont utilisées pour décrire des groupes qui peuvent UNIQUEMENT contenir les membres spécifiés.

Une collection est décrite par l'attribut rdf:parseType="Collection".

Exemple

<?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>

Schéma RDF et classes d'application

RDF Schema (RDFS) est une extension de RDF.

RDF décrit les ressources avec des classes, des propriétés et des valeurs.

De plus, RDF a également besoin d'un moyen de définir des classes et des propriétés spécifiques à l'application. Les classes et les propriétés spécifiques à l'application doivent être définies à l'aide d'extensions de RDF.

L'une de ces extensions est RDF Schema.


Schéma RDF (RDFS)

RDF Schema ne fournit pas de classes et de propriétés spécifiques à l'application.

Au lieu de cela, RDF Schema fournit le cadre pour décrire les classes et les propriétés spécifiques à l'application.

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