XML/XLink
- Imparare diverse tecniche di implementazione di XLink in XML
- Creare un XLink personalizzato
- Apprendere la funzionalità dietro i vari parametri di XLink
Tramite l'utilizzo di Uniform Resource Identifier (URI), un XLink consente di inserire elementi in documenti XML che creano collegamenti tra risorse quali documenti, immagini, file e altre pagine. Un XLink è simile nel concetto a un collegamento ipertestuale HTML, ma è più potente e flessibile.
Questo modulo propone una panoramica generale della sintassi XLink. Fornisce anche l'esposizione di alcuni dei concetti base di XLink. Per la specifica XLink completa, vedere la versione più recente dello standard.[1]
XLink
[modifica | modifica sorgente]XLink crea una relazione di collegamento tra due o più risorse. Consente di specificare qualsiasi elemento XML, immagine, testo o file di markup nel collegamento.
Utilizzando un metodo simile alla formattazione centralizzata dei fogli di stile XSL, XLink consente ai collegamenti ipertestuali di un documento di essere isolati e centralizzati in un documento separato. Quando gli indirizzi di un documento collegato cambiano, XLink rimane funzionante.
L'utilizzo di XLink richiede la dichiarazione del namespace XLink. Questo namespace fornisce gli attributi globali per type, href, role, arcrole, title, show, actuate, label, from e to. L'esempio seguente rendere disponibile il prefisso XLink all'interno dell'elemento tourGuide.
<tourGuide
xmlns:xlink="http://www.w3.org/1999/xlink">
...
</tourGuide>
Attributi globali XLink
[modifica | modifica sorgente]Nella tabella seguente vengono illustrati gli attributi che possono essere utilizzati con il namespace XLink. Gli attributi globali sono type, href, role, arcrole, title, show, actuate, label, from e to. La tabella include anche le descrizioni di come possono essere utilizzati gli attributi.
Attributi | Descrizione e valori validi |
---|---|
type | descrive il significato di un elemento
|
href | localizzazione della risorsa
|
role | descrizione del contenuto di XLink
|
arcrole | descrizione del contenuto di XLink
|
title | nome visualizzato, in genere breve descrizione del collegamento |
show | descrive il comportamento del browser una volta che XLink è stato attuato e caricato
|
actuate | specifica quando la risorsa viene recuperata o si verifica l'elaborazione del collegamento
|
label, from & to | specifica la direzione del collegamento |
Schema XML
[modifica | modifica sorgente]Lo schema XML seguente definisce una guida turistica che contiene almeno una città. Ogni città contiene una o più attrazioni. Il nome di ogni attrazione è un XLink.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : TourGuide.xsd
Created on : February 28, 2006
Author : Billy Timmins
-->
<!--
Dichiarazione di uso del Namespace xlink
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified"
xmlns:xlink="http://www.w3.org/1999/xlink">
<xsd:element name="tourGuide">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="city" type="cityDetails" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--
Questa sezione conterrà i dettagli della città
-->
<xsd:complexType name="cityDetails">
<xsd:sequence>
<xsd:element name="cityName" type="xsd:string"/>
<xsd:element name="adminUnit" type="xsd:string"/>
<xsd:element name="country" type="xsd:string"/>
<xsd:element name="continent">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Asia"/>
<xsd:enumeration value="Africa"/>
<xsd:enumeration value="Australia"/>
<xsd:enumeration value="Europe"/>
<xsd:enumeration value="North America"/>
<xsd:enumeration value="South America"/>
<xsd:enumeration value="Antarctica"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="population" type="xsd:integer"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="attraction" type="attractionDetails" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="attractionDetails">
<xsd:sequence>
<!--
si noti l'uso di xlink
-->
<xsd:element name="attractionName" xlink:type="simple"/>
<xsd:element name="attractionDescription" type="xsd:string"/>
<xsd:element name="attractionRating" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Documento XML
[modifica | modifica sorgente]Nel documento XML seguente viene illustrato il modo il XLink attractionName, definito nello schema XML, viene utilizzato in un documento XML. Si noti che è necessario includere xlink:href="" all'interno del tag per definire il sito web collegato.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : SomeTourGuide.xml
Created on : February 28, 2006
Author : Billy Timmins
-->
<!--
dichiarazione di uso del namespace xlink
-->
<?xml-stylesheet href="TourGuide.xsl" type="text/xsl"?>
<tourGuide xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xlink="http://www.w3.org/1999/xlink" xsi:noNamespaceSchemaLocation="TourGuide.xsd">
<city>
<cityName>Atlanta</cityName>
<adminUnit>Georgia</adminUnit>
<country>USA</country>
<continent>North America</continent>
<population>425000</population>
<description>Atlanta is the capital of and largest city in the U.S. state of Georgia.</description>
<attraction>
<!--
dichiarazione di XLink e del link associato
-->
<attractionName xlink:href="http://www.georgiaaquarium.org/"> Georgia Aquarium </attractionName>
<attractionDescription>World’s Largest Aquarium</attractionDescription>
<attractionRating>5</attractionRating>
</attraction>
<attraction>
<!--
dichiarazione di XLink e del link associato
-->
<attractionName xlink:href="http://www.high.org/"> High Museum of Art </attractionName>
<attractionDescription>The High Museum of Art, founded in 1905 as the Atlanta Art Association, is the leading art museum in the Southeastern United States.</attractionDescription>
<attractionRating>4</attractionRating>
</attraction>
<attraction>
<!--
dichiarazione di XLink e del link associato
-->
<attractionName xlink:href="http://www.underground-atlanta.com/"> Underground Atlanta </attractionName>
<attractionDescription> Go beneath the streets of a bustling downtown, to the heart of a great American city. Underground Atlanta is at the center of it all.</attractionDescription>
<attractionRating>2</attractionRating>
</attraction>
</city>
<city>
<cityName>Tampa</cityName>
<adminUnit>Florida</adminUnit>
<country>USA</country>
<continent>North America</continent>
<population>303000</population>
<description>Tampa is a major United States city located in Hillsborough County, on the west coast of Florida.</description>
<attraction>
<!--
dichiarazione di XLink e del link associato
-->
<attractionName xlink:href="http://www.buschgardens.com/buschgardens/fla/default.aspx"> Bush Gardens </attractionName>
<attractionDescription>The nation's fourth largest zoo, Bush Gardens is where you can see African animals roaming free and an exciting amusement park featuring its world-famous rides like Kumba and the new inverted roller-coaster, Montu.</attractionDescription>
<attractionRating>5</attractionRating>
</attraction>
<attraction>
<!--
dichiarazione di XLink e del link associato
-->
<attractionName xlink:href="http://www.plantmuseum.com/"> Henry B. Plant Museum </attractionName>
<attractionDescription>Discover a museum which transports you to turn-of-the-century Florida.</attractionDescription>
<attractionRating>1</attractionRating>
</attraction>
</city>
</tourGuide>
Foglio di stile XML
[modifica | modifica sorgente]Il foglio di stile XML seguente visualizza il contenuto del documento XML.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Document : TourGuide.xsl
Created on : February 28, 2006
Author : Billy Timmins
-->
<!--
dichiarazione dell'uso del Namespace XLink
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink" exclude-result-prefixes="xlink" version="1.0">
<xsl:output method="html"/>
<!--
Attributo XLink definito come un href di tipo simple
-->
<xsl:template match="*[@xlink:type = 'simple' and @xlink:href]">
<a href="{@xlink:href}">
<xsl:apply-templates/>
</a>
</xsl:template>
<xsl:template match="/">
<html>
<head>
<title>Tour Guide XLink Example</title>
</head>
<body>
<h2>Cities</h2>
<xsl:apply-templates select="tourGuide"/>
</body>
</html>
</xsl:template>
<!--
modello per la gestione di un link
-->
<xsl:template match="attractionName">
<a href="{@xlink:href}">
<xsl:value-of select="."/>
</a>
</xsl:template>
<xsl:template match="tourGuide">
<table border="1" width="100%">
<xsl:for-each select="city">
<tr>
<td>
<br/>
<xsl:text>City: </xsl:text>
<xsl:value-of select="cityName"/>
<br/>
<xsl:text>County: </xsl:text>
<xsl:value-of select="adminUnit"/>
<br/>
<xsl:text>Continent: </xsl:text>
<xsl:value-of select="continent"/>
<br/>
<xsl:text>Population: </xsl:text>
<xsl:value-of select="population"/>
<br/>
<xsl:text>Description: </xsl:text>
<xsl:value-of select="description"/>
<br/>
<br/>
</td>
</tr>
<tr>
<td>
<xsl:text>Attraction: </xsl:text>
</td>
<td>
<xsl:text>Attraction Description: </xsl:text>
</td>
<td>
<xsl:text>Attraction Rating: </xsl:text>
</td>
</tr>
<xsl:for-each select="attraction">
<tr>
<td>
<!--
applicazione del modello
-->
<xsl:apply-templates select="attractionName"/>
</td>
<td>
<xsl:value-of select="attractionDescription"/>
</td>
<td>
<xsl:value-of select="attractionRating"/>
</td>
</tr>
</xsl:for-each>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
Note
[modifica | modifica sorgente]