Esercitazione XML

XML CASA Introduzione XML XML Come usare Albero XML Sintassi XML Elementi XML Attributi XML Spazi dei nomi XML Visualizzazione XML Richiesta HTTP XML Analizzatore XML XML DOM XPath XML XML XSLT XQuery XML XML XLink Validatore XML DTD XML Schema XML Server XML Esempi XML Quiz XML Certificato XML

XML AJAX

Introduzione AJAX AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

XML DOM

DOM Introduzione Nodi DOM Accesso DOM Informazioni sul nodo DOM Elenco dei nodi DOM DOM attraversando Navigazione DOM DOM Ottieni valori Nodi di modifica DOM DOM Rimuovere i nodi DOM Sostituisci nodi DOM Crea nodi DOM Aggiungi nodi Clonazione dei nodi DOM Esempi DOM

Esercitazione XPath

Introduzione a XPath Nodi XPath Sintassi XPath Assi XPath Operatori XPath Esempi di XPath

Esercitazione XSLT

Introduzione a XSLT Lingue XSL Trasformazione XSLT XSLT <modello> XSLT <valore-di> XSLT <per-ciascuno> XSLT <ordina> XSLT <se> XSLT <scegli> Applicare XSLT XSLT sul Cliente XSLT sul server XSLT Modifica XML Esempi XSLT

Esercitazione XQuery

Introduzione a XQuery Esempio XQuery XQuery FLWOR XQuery HTML Termini di XQuery Sintassi XQuery Aggiungi XQuery XQuery Seleziona Funzioni XQuery

DTD XML

Introduzione alla DTD Blocchi di costruzione DTD Elementi DTD Attributi DTD Elementi DTD vs Attr Entità DTD Esempi di DTD

Schema XSD

Introduzione all'XSD XSD Come fare per XSD <schema> Elementi XSD Attributi XSD Restrizioni XSD

Complesso XSD

Elementi XSD XSD vuoto Solo elementi XSD Solo testo XSD XSD misto Indicatori XSD XSD <qualsiasi> XSD <qualsiasi attributo> Sostituzione XSD Esempio XSD

Dati XSD

Stringa XSD Data XSD Numerico XSD XSD Varie Riferimento XSD

Servizi Web

Servizi XML XML WSDL SAPONE XML XML RDF RSS XML

Riferimenti

Tipi di nodi DOM Nodo DOM Elenco nodi DOM DOM NamedNodeMap Documento DOM Elemento DOM Attributo DOM Testo DOM DOM CDATA Commento DOM DOM XMLHttpRichiesta Analizzatore DOM Elementi XSLT Funzioni XSLT/XPath

XML RDF


Esempio di documento 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>

Cos'è l'RDF?

  • RDF sta per R esource D escription F ramework
  • RDF è un framework per descrivere le risorse sul web
  • RDF è progettato per essere letto e compreso dai computer
  • RDF non è progettato per essere mostrato alle persone
  • RDF è scritto in XML
  • RDF fa parte della Semantic Web Activity del W3C
  • RDF è una raccomandazione del W3C del 10 febbraio 2004

RDF - Esempi di utilizzo

  • Descrivere le proprietà degli articoli per l'acquisto, come prezzo e disponibilità
  • Descrivere gli orari degli eventi web
  • Descrivere informazioni sulle pagine web (contenuto, autore, data di creazione e modifica)
  • Descrivere il contenuto e la valutazione per le immagini web
  • Descrivere i contenuti per i motori di ricerca
  • Descrivere le biblioteche elettroniche

RDF è progettato per essere letto dai computer

RDF è stato progettato per fornire un modo comune per descrivere le informazioni in modo che possano essere lette e comprese dalle applicazioni del computer.

Le descrizioni RDF non sono progettate per essere visualizzate sul Web.



RDF è scritto in XML

I documenti RDF sono scritti in XML. Il linguaggio XML utilizzato da RDF è chiamato RDF/XML.

Utilizzando XML, le informazioni RDF possono essere facilmente scambiate tra diversi tipi di computer che utilizzano diversi tipi di sistemi operativi e linguaggi applicativi.


RDF e "Il Web semantico"

Il linguaggio RDF fa parte della Semantic Web Activity del W3C. La "Semantic Web Vision" del W3C è un futuro in cui:

  • Le informazioni web hanno un significato esatto
  • Le informazioni Web possono essere comprese ed elaborate dai computer
  • I computer possono integrare le informazioni dal web

RDF utilizza identificatori Web (URI) per identificare le risorse.

RDF descrive le risorse con proprietà e valori di proprietà.


Risorsa RDF, proprietà e valore della proprietà

RDF identifica le cose utilizzando identificatori Web (URI) e descrive le risorse con proprietà e valori di proprietà.

Spiegazione del valore della risorsa, della proprietà e della proprietà:

  • Una risorsa è tutto ciò che può avere un URI, come "https://www.w3schools.com/rdf"
  • Una proprietà è una risorsa che ha un nome, ad esempio "autore" o "homepage"
  • Un valore di una proprietà è il valore di una proprietà, come "Jan Egil Refsnes" o "https://www.w3schools.com" (notare che un valore di una proprietà può essere un'altra risorsa)

Il seguente documento RDF potrebbe descrivere la risorsa "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'esempio sopra è semplificato. Gli spazi dei nomi sono omessi.


Dichiarazioni RDF

La combinazione di un valore di Risorsa, Proprietà e Proprietà forma una Dichiarazione (nota come soggetto, predicato e oggetto di una Dichiarazione).

Diamo un'occhiata ad alcune affermazioni di esempio per capire meglio:

Dichiarazione: "L'autore di https://www.w3schools.com/rdf è Jan Egil Refsnes".

  • L'oggetto della dichiarazione di cui sopra è: https://www.w3schools.com/rdf
  • Il predicato è: autore
  • L'oggetto è: Jan Egil Refsnes

Dichiarazione: "La homepage di https://www.w3schools.com/rdf è https://www.w3schools.com".

  • L'oggetto della dichiarazione di cui sopra è: https://www.w3schools.com/rdf
  • Il predicato è: homepage
  • L'oggetto è: https://www.w3schools.com

Esempio RDF

Ecco due record da un elenco di 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

Di seguito alcune righe di un documento 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 prima riga del documento RDF è la dichiarazione XML. La dichiarazione XML è seguita dall'elemento radice dei documenti RDF: <rdf:RDF> .

Lo spazio dei nomi xmlns:rdf specifica che gli elementi con il prefisso rdf provengono dallo spazio dei nomi "http://www.w3.org/1999/02/22-rdf-syntax-ns#".

Lo spazio dei nomi xmlns:cd specifica che gli elementi con il prefisso cd provengono dallo spazio dei nomi "http://www.recshop.fake/cd#".

L' elemento <rdf:Description> contiene la descrizione della risorsa identificata dall'attributo rdf:about .

Gli elementi: <cd:artista>, <cd:paese>, <cd:azienda>, ecc. sono proprietà della risorsa.


Validatore in linea RDF

Il servizio di convalida RDF del W3C è utile durante l'apprendimento di RDF. Qui puoi sperimentare con i file RDF.

Il validatore RDF online analizza il tuo documento RDF, controlla la tua sintassi e genera viste tabulari e grafiche del tuo documento RDF.

Copia e incolla l'esempio seguente nel validatore RDF del 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>

Quando analizzi l'esempio sopra, il risultato sarà simile a questo .


Elementi RDF

Gli elementi principali di RDF sono l'elemento radice, <RDF>, e l'elemento <Description>, che identifica una risorsa.


L'elemento <rdf:RDF>

<rdf:RDF> è l'elemento radice di un documento RDF. Definisce il documento XML come un documento RDF. Contiene anche un riferimento allo spazio dei nomi 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'elemento <rdf:Descrizione>

L'elemento <rdf:Description> identifica una risorsa con l'attributo about.

L'elemento <rdf:Description> contiene elementi che descrivono la risorsa:

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

Gli elementi, artista, paese, azienda, prezzo e anno, sono definiti nello spazio dei nomi http://www.recshop.fake/cd#. Questo spazio dei nomi è esterno a RDF (e non fa parte di RDF). RDF definisce solo il framework. Gli elementi, artista, paese, azienda, prezzo e anno, devono essere definiti da qualcun altro (azienda, organizzazione, persona, ecc.).


Proprietà come attributi

Gli elementi della proprietà possono anche essere definiti come attributi (anziché elementi):

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

Proprietà come risorse

Gli elementi della proprietà possono anche essere definiti come risorse:

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

Nell'esempio sopra, l'artista della proprietà non ha un valore, ma un riferimento a una risorsa contenente informazioni sull'artista.


Contenitori CDR

I contenitori RDF sono usati per descrivere un gruppo di cose.

I seguenti elementi RDF vengono utilizzati per descrivere i gruppi: <Bag>, <Seq> e <Alt>.


L'elemento <rdf:Bag>

L'elemento <rdf:Bag> viene utilizzato per descrivere un elenco di valori che non devono necessariamente trovarsi in un ordine specifico.

L'elemento <rdf:Bag> può contenere valori duplicati.

Esempio

<?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'elemento <rdf:Seq>

L'elemento <rdf:Seq> viene utilizzato per descrivere un elenco ordinato di valori (ad esempio, in ordine alfabetico).

L'elemento <rdf:Seq> può contenere valori duplicati.

Esempio

<?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'elemento <rdf:Alt>

L'elemento <rdf:Alt> viene utilizzato per descrivere un elenco di valori alternativi (l'utente può selezionare solo uno dei valori).

Esempio

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

Termini RDF

Negli esempi precedenti abbiamo parlato di "lista di valori" quando descriviamo gli elementi del contenitore. In RDF queste "liste di valori" sono chiamate membri.

Quindi, abbiamo quanto segue:

  • Un contenitore è una risorsa che contiene cose
  • Le cose contenute sono chiamate membri (non elenco di valori)

Collezioni RDF

Le raccolte RDF descrivono i gruppi che possono contenere SOLO i membri specificati.


L'attributo rdf:parseType="Collezione".

Come visto nel capitolo precedente, un contenitore dice che le risorse che lo contengono sono membri - non dice che altri membri non sono ammessi.

Le raccolte RDF vengono utilizzate per descrivere i gruppi che possono contenere SOLO i membri specificati.

Una raccolta è descritta dall'attributo rdf:parseType="Collection".

Esempio

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

Schema RDF e classi di applicazione

RDF Schema (RDFS) è un'estensione di RDF.

RDF descrive le risorse con classi, proprietà e valori.

Inoltre, RDF necessita anche di un modo per definire classi e proprietà specifiche dell'applicazione. Le classi e le proprietà specifiche dell'applicazione devono essere definite utilizzando le estensioni di RDF.

Una di queste estensioni è RDF Schema.


Schema RDF (RDFS)

Lo schema RDF non fornisce classi e proprietà specifiche dell'applicazione.

Invece, lo schema RDF fornisce il framework per descrivere le classi e le proprietà specifiche dell'applicazione.

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