Nota di Traduzione
XML Base
Nel tradurre questo documento, pur avendo solo l'originale valore normativo, si è cercato di attenersi il più possibile fedeli al testo inglese. A volte, per ragioni di esattezza scientifica, si è ritenuto di:
Traduttore: Daniele Gabriele. Data di pubblicazione: 31 dicembre 2004. Data di ultima revisione: 31 dicembre 2004.
Copyright © 2001 W3C® (MIT, INRIA, Keio), Tutti i Diritti Riservati. Si applicano le regole del W3C su responsabilità, marchio registrato, uso del documento e licenza del software.
Questo documento si propone come ausilio, simile a quello di HTML BASE, nel definire gli URI di base per parti dei documenti XML.
Questo documento è stato revisionato dai Membri del W3C e da altre parti interessate ed è stato approvato dal Direttore come una Raccomandazione W3C. è un documento definitivo e potrebbe essere utilizzato come materiale di riferimento o citato come un riferimento normativo da un altro documento. Il ruolo del W3C nel fare la Raccomandazione è attirare l'attenzione sulla specifica e promuoverne l'impiego diffuso. Ciò rafforza la funzionalità e l'interoperabilità del Web.
Questo documento è stato prodotto dal Gruppo di Lavoro del W3C per il Collegamento XML come parte dell'Attività XML nel Dominio di Architettura del W3C. Per i retroscena di quest'opera, si prega di vedere la Dichiarazione di Attività XML.
Si prega di riportare eventuali errori nel presente documento alla lista pubblica www-xml-linking-comments@w3.org (archivio presso http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Ciascun errore confermato sarà documentato in un elenco di errata disponibile presso http://www.w3.org/2001/06/xmlbase-errata.
La versione in inglese della presente specifica è l'unica normativa. Informazioni sulle traduzioni di questo documento sono disponibili presso http://www.w3.org/2001/06/xmlbase-translations.
Un elenco delle Raccomandazioni attuali del W3C e altri documenti tecnici si possono trovare presso http://www.w3.org/TR/.
1 Introduzione
2 Terminologia
3
Attributo xml:base
3.1
Codificare e convertire in caratteri escape il Riferimento URI
4 Risolvere gli URI
Relativi
4.1 Relazione con la RFC 2396
4.2 Granularità
dell'informazione dell'URI di base
4.3
Combinare gli URI
con gli URI di base
5 Conformità
A Riferimenti
B Riferimenti (non
normativa)
C Impatti su Altri Standard (non
normativa)
Il Linguaggio di Collegamento di XML {XML Linking Language} [XLink] definisce i costrutti del Linguaggio di Marcatura Estensibile {Extensible Markup Language} (XML) 1.0 [XML] per descrivere i collegamenti fra le risorse. Uno dei requisiti richiesti da XLink è di supportare i costrutti di collegamento HTML [HTML 4.01] in maniera generica. L'elemento HTML BASE è uno di tali costrutti che il Gruppo di Lavoro di XLink ha preso inconsiderazione. BASE permette agli autori di specificare in modo esplicito un URI di base del documento con il compito di risolvere gli URI relativi in collegamenti verso l'esterno a immagini, applet, programmi di elaborazione dei moduli, fogli di stile, e così via.
Questo documento descrive un meccanismo per fornire a XLink dei servizi per
gli URI di base, ma come una specifica modulare cosicché anche altre
applicazioni XML, che beneficiano del controllo aggiuntivo sugli URI relativi
ma non costruiti su XLink, possano farne uso. La sintassi consiste di un
singolo attributo XML che ha il nome di xml:base
.
L'impiego
di Base di XML è attraverso riferimento normativo da nuove specifiche, ad
esempio XLink e l'Infoset XML. Le applicazioni e le specifiche costruite su
queste nuove tecnoloige supporteranno in maniera nativa Base di XML. Non è
definito il comportamento degli attributi xml:base
nelle
applicazioni basate sulle specifiche che non hanno riferimento normativo
diretto o indiretto a Base di XML.
[Definizione: Le parole chiave deve, non deve, richiesto, dovrà, non dovrà, dovrebbe, non dovrebbe, raccomandato, potrebbe e facoltativo in questa specifica si devono interpretare come descritte in [IETF RFC 2119].]
I termini URI di base e URI relativi sono usati in questa specifica come sono definiti in [IETF RFC 2396].
xml:base
L'attributo xml:base
potrebbe essere inserito nei documenti XML per
specificare un URI di base diverso dall'URI di base del documento o di
un'entità esterna. Il valore di questo attributo è interpretato come un
Riferimento di URI come definito nella RFC 2396 [IETF RFC 2396], dopo averlo elaborato in accordo
alla Sezione 3.1.
Negli elaboratori di XML consapevoli del namespace,
il prefisso "xml" è legato al nome di namespace http://www.w3.org/XML/1998/namespace
come descritto ne "I Namespace in XML" [XML Names].
Si noti che xml:base
può ancora essere usato da elaboratori non
consapevoli del namespace.
Un esempio di xml:base
in un
semplice documento contenente codice XLink. XLink si riferisce in modo
normativo a Base di XML per l'interpretazione di riferimenti a
URI relativi negli attributi xlink:href
.
<?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc> |
Gli URI in questo esempio si risolvono in URI completi nel modo che segue:
"what's new" si risolve nell'URI "http://example.org/today/new.xml"
"Hot Pick #1" si risolve nell'URI "http://example.org/hotpicks/pick1.xml"
"Hot Pick #2" si risolve nell'URI "http://example.org/hotpicks/pick2.xml"
"Hot Pick #3" si risolve nell'URI "http://example.org/hotpicks/pick3.xml"
L'insieme di caratteri consentito negli attributi xml:base
è lo stesso di XML, vale a dire [Unicode]. In ogni caso, alcuni caratteri Unicode
non sono consentiti dai riferimenti URI e in tal modo gli elaboratori
devono codificare e convertire in caratteri
escape questi caratteri per ottenere un riferimento URI valido dal
valore di attributo.
I caratteri non consentiti includono tutti quelli non ASCII, più i caratteri esclusi elencati nella Sezione 2.4 di [IETF RFC 2396], eccetto che per i caratteri che stanno per il numero (#) e la percentuale (%) e i caratteri delle parentesi quadre ri-consentiti in [IETF RFC 2732]. Caratteri non consentiti devono essere convertiti in caratteri escape come segue:
Ciascun carattere non consentito è convertito in UTF-8 [IETF RFC 2279] con un solo o più byte.
Ogni byte corrispondente a un carattere non consentito viene convertito in codici escape con il relativo meccanismo di URI (ovvero, convertito in %HH, dove HH è la notazione esadecimale del valore del byte).
Il carattere originale viene sostituito dalla sequenza di caratteri che ne risulta.
La RFC 2396 [IETF RFC 2396] fornisce informazioni per gli URI di base che devono essere integrati all'interno dei documenti. Le regole per determinare l'URI di base possono essere elencate come segue (dalla priorità più alta alla più bassa):
L'URI di base è integrato nel contenuto del documento.
L'URI di base è quello dell'entità incapsulata (messaggio, documento o nessuna).
L'URI di base è l'URI usato per reperire l'entità.
L'URI di base è definito dal contesto dell'applicazione.
Nota:
Il termine "entità" nei punti #2 e #3 di cui sopra viene usato nel significato del termine della RFC 2396. Negli altri punti di questo documento il termine "entità" viene usato nel senso di XML.
Questo documento specifica i dettagli della regola #1 per integrare l'informazione sull'URI di base nel caso specifico dei documenti XML.
Gli URI relativi che appaiono in un documento XML sono sempre risolti in relazione o a un elemento, un'entità di documento, o un entità esterna. Non esiste strumento per una granularità più fine, come l'informazione di base per attributo, per carattere o per entità. Né le entità interne, se dichiarate nel sottoinsieme interno o nella DTD esterna, né il testo a sé stante (testo non incluso in un elemento) in un'entità esterna, vengono presi in considerazione per impostare un URI di base separato dall'URI di base nell'ambito per il riferimento dell'entità.
L'URI di base di un'entità di documento o di un'entità esterna è determinata dalle regole della RFC 2396, vale a dire, che l'URI di base è l'URI utilizzato per reperire l'entità del documento o l'entità esterna.
L'URI di base di un elemento è:
l'URI di base specificato da un attributo
xml:base
nell'elemento, se ne esiste uno, altrimenti
l'URI di base dell'elemento genitore dell'elemento all'interno del documento o dell'entità esterna, se ne esiste uno, altrimenti
l'URI di base dell'entità di documento o dell'entità esterna che contengono l'elemento.
L'URI di base corrispondente a un dato URI relativo che compare in un documento XML viene determinato come segue:
L'URI di base per un riferimento URI che compare in un contenuto testuale è l'URI di base dell'elemento che contiene il testo.
L'URI di base per un riferimento URI che
compare in un attributo xml:base
è l'URI di base
dell'elemento genitore dell'elemento che porta l'attributo xml:base
,
se ne esite uno all'interno dell'entità di documento o dell'entità
esterna, altrimenti l'URI di base dell'entità di documento o dell'entità
esterna che contiene l'elemento.
L'URI di base per un riferimento URI che compare in qualsiasi altro valore di attributo, inclusi i valori predefiniti di attributo, è l'URI di base dell'elemento che porta l'attributo.
L'URI di base per un riferimento URI che compare nel contenuto di un'istruzione d'elaborazione è l'URI di base dell'elemento genitore dell'istruzione d'elaborazione, se ne esite una all'interno dell'entità di documento o dell'entità esterna, altrimeni l'URI di base dell'entità di documento o dell'entità esterna che contiene l'istruzione d'elaborazione.
Nota:
La presenza degli attributi xml:base
potrebbero condurre a
risultati inattesi nel caso in cui sia fornito il valore dell'attributo,
non direttamente nell'enità di documento XML, ma attraverso un attributo
predefinito dichiarato in un'entità esterna. Tali dichiarazioni
potrebbero non essere lette da software che non è basato su un
elaboratore che non convalida XML. Molte applicazioni XML falliscono
perché richiedono elaboratori che convalidano. Per una corretta
operatività con tali applicazioni, i valori xml:base
dovrebbero essere forniti o direttamente o
attraverso gli attributi predefiniti dichiarati nel sottoinsieme interno
della DTD.
Base di XML definisce un meccanismo per integrare l'informazione sull'URI di base all'interno di un documento. Non definisce un meccanismo per riconoscere quale contenuto o valori di attributo possano accogliere gli URI. Ciò è conosciuto solo dalle specifiche o dalle applicazioni che attribuiscono la semantica al vocabolario.
E intenzione di Base di XML che le future specifiche e revisioni dei vocabolari di XML identifichino quali parti del documento XML si considerano essere gli URI e fornire il riferimento normativo per questa specifica nell'intento di assicurare che gli URI relativi siano trattati in modo consistente fra tutti i documenti XML.
Gli impatti di Base di XML sugli altri standard (alla data di pubblicazione del presente documento) sono descritte di seguito.
XML 1.0 [XML] utilizza
i riferimenti URI negli identificatori di sistema per le entità esterne.
Dal momento che queste dichiarazioni compaiono fuori dell'elemento del
documento (in un sottoinsieme interno o in una DTD sterna), le regole di
ambito per xml:base
prevengono questi URI dall'essere
influenzati dal valore di xml:base
.
L'Infoset di XML [XML Infoset] definisce la proprietà dell'URI di base di componenti informativi dell'elemento. L'ultima specifica Infoset supporta Base di XML con lo scopo di determinare il valore di questa proprietà. Interfacce, applicazioni e specifiche che fanno riferimento a questa proprietà infoset supporteranno in maniera nativa Base di XML.
I Namespace in XML [XML Names] utilizzano riferimenti URI, che come
definiti attualmente non dovrebbero essere risolti relativi all'URI
di base definito da xml:base
per gli scopi dell'identificazione
del namespace. Elaborazioni di livello più alto che seguono il riferimento
degli URI dei namespace non sono coperte dalla specifica dei namespace
e potrebbero specificare come vogliono che xml:base
viene
rispettato per gli scopi di reperimento delle risorse presso quegli
URI.
Il modello di dati XPath [XPath] non preserva né l'informazione sull'URI di
base, né i legami delle entità esterne e in tal modo non è sufficiente per
supportare la risoluzione dei riferimenti URI relativi all'interno di
queste entità per essere risolti correttamente. Questo include i
riferimenti URI relativi negli attributi xml:base
.
Le estensioni XSLT [XSLT] al modello di dati XPath forniscono l'informazione dell'URI di base che deve essere conservata, ma definisce questa informazione in un modo che preclude il supporto per Base di XML. Versioni future di XSLT potrebbero voler richiedere il supporto per la Base di XML.
Schema di XML Parte 2: Tipi di dati [XML Datatypes] definisce un primitivo tipo di dato uriReference
.
La specifica dei Tipi di dati XML potrebbe voler richiedere che le
applicazioni che riconoscono questo tipo di dati e che risolvono tali URI
tengano in considerazione Base di XML.
La specifica XLink [XLink] richiede il supporto per Base di XML.
XHTML [XHTML] utilizza i riferimenti URI al di là di quelli esprimibili in XLink. Questi riferimenti URI potrebbero essere risolti da un'applicazione relativa all'URI di base definito da Base di XML. La specifica XHTML potrebbe voler descrivere il loro livello di supporto per Base di XML.