Home

Possibili errori di traduzione possono essere presenti in questo documento.

Translation time: 2005/02/15, Tadas Talaikis, info@nakagava.com

Solo il documento originale in inglese puo essere considerato ufficiale: http://www.w3.org/TR/2004/REC-xinclude-20041220/

W3C

Inclusioni XML (XInclude) Versione 1.0

Raccomandazione W3C 20 Dicembre 2004

Questa versione (in inglese):
http://www.w3.org/TR/2004/REC-xinclude-20041220/
Ultima versione (in inglese):
Versione precedente (in inglese):
http://www.w3.org/TR/2004/PR-xinclude-20040930/
Curatori:
Jonathan Marsh, Microsoft mailto:jmarsh@microsoft.com
David Orchard, BEA Systems mailto:dorchard@bea.com

Si prega di far riferimento agli errori noti di questo documento, i quali potrebbero includere alcune correzioni normative.

Vedere anche le traduzioni.

Questo documento è anche disponibile in questi formati non normativi: XML.


Riassunto

Questo documento specifica un modello di processamento ed una sintassi per un’inclusione di proposito generale. L’inclusione si realizza unendo alcuni set d’informazione XML in un singolo infoset composto. La specificazione dei documenti XML (infoset) ad essere uniti ed il controllo sul processo d’unione si esprimono in una sintassi simile allo XML (elementi, attributi, referenze URI).

Status of this Document

Questa sezione descrive lo stato di questo documento al momento della sua pubblicazione. Altri documenti possono sostituire questo documento. Un elenco delle pubblicazioni attuali del W3C e l´ultima revisione di questo rapporto tecnico si trova nell’ indice di rapporti tecnici del W3C presso http://www.w3.org/TR/.

Questo documento è una Raccomandazione del W3C. È stato rivisto dai Membri del W3C e da altre parti interessate ed è stato approvato dal Direttore come una Raccomandazione W3C. È un documento stabile e può essere usato come materiale di riferimento o citato da un altro documento come una normativa di riferimento. L'obiettivo del W3C nel fare le Raccomandazioni è quello di richiamare l'attenzione alle specifiche e di promuovere la loro più ampia diffusione. Questo aumenta la funzionalità e l'interoperabilità del Web.

Questo documento è stato prodotto dal W3C XML Core Working Group come parte dell’ XML Activity. La versione inglese di questa specifica è l’unica versione normativa. In ogni modo, per traduzioni di questo documento, si veda http://www.w3.org/2003/03/Translations/byTechnology?technology=xinclude10.

Il XML Core Working Group crede che questa specifica esamina tutti i temi della Last Call e della Candidate Recommendation (non è sorto nessun tema durante la revisione della Raccomandazione Proposta). Le implementazioni conosciute sono documentate nel Rapporto d’Implementazioni XInclude. Un Insieme di Prova è disponibile per aiutare nella valutazione della conformità con questa specifica.

Questo documento è stato prodotto secondo la 24 January 2002 CPP riformata dalla W3C Patent Policy Transition Procedure. Chi abbia una conoscenza attuale di un brevetto che possa avere Rivendicazioni Essenziali relative a questa specifica deve divulgare l’informazione di conformità con la sezione 6 della linea di condotta W3C su brevetti. Documentazione di proprietà intellettuale che sia possibilmente attinente a questa specifica è disponibile nella pagina pubblica IPR di divulgazione del Working Group.

Si prega di riportare possibili errori in questo documento a www-xml-xinclude-comments@w3.org; archivi pubblici sono disponibili. Un’errata corrige di quest’edizione è disponibile presso http://www.w3.org/2004/12/xinclude-errata.

Contenuti

1 Introduzione
    1.1 Relazione con XLink
    1.2 Relazione con Entità Esterne XML
    1.3 Relazione con DTD
    1.4 Relazione con Schemi XML
    1.5 Relazione con Inclusioni di Grammatiche Specifiche
2 Terminologia
3 Sintassi
    3.1 Elemento xi:include
    3.2 Elemento xi:fallback
4 Modello di Processamento
    4.1 Posizione dell’Include
        4.1.1 Escaping dei valori d’attributo href
        4.1.2 Usare XInclude with Negoziazione di Contenuto
    4.2 Item Inclusi quando parse="xml"
        4.2.1 Item Informazione del Documento
        4.2.2 Nodi Molteplici
        4.2.3 Posizione della Serie
        4.2.4 Posizione del Punto
        4.2.5 Item Informazione dell’Elemento, del Commento e delle Istruzioni di Processamento
        4.2.6 Item Informazione della Dichiarazione dell’Attributo e Namespace
        4.2.7 Loop d’Inclusione
    4.3 Item Inclusi quando parse="text"
    4.4 Comportamento Fallback
    4.5 Creare il Result Infoset
        4.5.1 Entità Unparsed
        4.5.2 Notazioni
        4.5.3 Regolazione Proprietà referenze
        4.5.4 Regolazione Namespace
        4.5.5 Regolazione URI base
        4.5.6 Regolazione Linguaggio
        4.5.7 Proprietà Preservate dall’Infoset
5 Conformità
    5.1 Conformità alla Marcatura
    5.2 Conformità alle Applicazioni
    5.3 Conformità al Set d’Informazione XML

Appendici

A Riferimenti
B Riferimenti (Non-Normativo)
C Esempi (Non-Normativo)
    C.1 Esempio d’Inclusione Basica
    C.2 Esempio d’Inclusione Testuale
    C.3 Esempio d’Inclusione Testuale XML
    C.4 Esempio d’Inclusione di Frammento
    C.5 Esempio d’Inclusione di Serie
    C.6 Esempi di Fallback


1 Introduzione

Molti linguaggi di programmazione forniscono un meccanismo d’inclusione per facilitare la modularità. Anche i linguaggi di marcatura spesso hanno bisogno di un tale meccanismo. Questa specifica introduce un meccanismo generico per unire documenti XML (come sono rappresentati dai suoi set d’informazione) ad essere usato per applicazioni che bisognino quest’abilità. La sintassi funziona con le costruzioni XML esistenti - elementi, attributi e referenze URI.

1.1 Relationship to XLink

XInclude differisce dalle caratteristiche di collegamento descritte nel [XML Linking Language], specificamente i link con il valore d’attributo show="embed". Questi link forniscono un sintassi media-type indipendente per indicare che una risorsa deve essere incorporata graficamente dentro il display del documento. XLink non specifica un determinato modello di processamento, facilita però la scoperta dei link e il riconoscimento dei metadata associati da un’applicazione di livello più alto.

XInclude, dall’altra parte, specifica una determinata trasformazione di media-type (XML in XML). Definisce un modello di processamento specifico per unire set d’informazione. Il processamento XInclude accade ad un livello basso, spesso attraverso un processore XInclude generico che torna disponibile il set d’informazione risultante per applicazione di un livello più alto.

La inclusione semplice d’item informazione come si descrive in questa specifica è diversa dalla trasclusione, che preserva informazione contestuale come lo stile.

1.2 Relazione con Entità Esterne XML

Ci sono alcune differenze tra XInclude ed entità esterne [XML 1.0] o [XML 1.1], le quali determinano che siano tecnologie complementari.

Il processamento d’entità esterne (come il resto delle DTD) accade in parse time. XInclude opera in set d’informazione e così è ortogonale al parsing.

La dichiarazione d’entità esterne richiede una DTD o subset interno. Così entra in inclusione un set di dipendenze, per esempio, la sintassi per la dichiarazione DOCTYPE richiede che l’elemento del documento abbia nome ortogonale per l’inclusione in molti casi. I parser validanti devono avere un contenuto modello completamente definito. XInclude è ortogonale alla validazione e al nome dell’elemento del documento.

Le entità esterne forniscono un livello di vie indirette – l’entità esterna deve essere dichiarata e nominata, e invocata separatamente. XInclude usa referenze dirette. Le applicazioni che generano XML output incrementalmente possono beneficiarsi dal fatto di non avere inclusioni predichiarate.

Il fallimento in caricare un’entità esterna è normalmente un errore fatale. XInclude permette all’autore di fornire contenuti per default che si useranno se la risorsa remota non può essere caricata.

La sintassi di un subset interno è scomoda per molti autori di semplici documenti XML ben formati. La sintassi XInclude è basata su costruzioni XML famigliari.

1.3 Relazione con DTD

XInclude non definisce una relazione con la validazione DTD. XInclude descrive una trasformazione infoset-ad-infoset e non cambia nel comportamento parsing XML. XInclude non definisce un meccanismo di validazione DTD dell’infoset risultanti.

1.4 Relazione con Schemi XML

XInclude non definisce nessuna relazione con gli infoset aumentati prodotti applicando uno schema XML. Quest’infoset aumentato può essere fornito come l’infoset input, o l’aumento può essere applicato all’infoset risultante dall’inclusione.

1.5 Relazione con Inclusioni di Grammatiche Specifiche

I meccanismi d’inclusione di proposito speciale sono stati introdotti nelle grammatiche specifiche XML. XInclude provvede un meccanismo generico di riconoscimento e processamento delle inclusioni, e così può offrire un’esperienza autoriale generale più semplice, un’esecuzione migliore e meno ridondanza di codici.

2 Terminologia

[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].]

[Definizione: Il termine set d’informazione si riferisce all’output di un processore [XML 1.0] o [XML 1.1], espresso come una collezione d’item d’informazione e proprietà conforme alla definizione della specifica [Set d’Informazione XML] .] In questo documento il termine infoset si usa come un sinonimo di set d’informazione.

[Definizione: Il termine errore fatale si riferisce alla presenza di fattori che impediscono la continuazione di un processamento normale.] [Definizione: Il termine errore di risorsa si riferisce ad un tentativo fallito di ricuperare una risorsa da un URL.] I processori XInclude devono fermare il processamento quando accadono errori che non siano errori di risorsa, che devono gestirsi come si descrive in 4.4 Comportamento Fallback.

3 Sintassi

XInclude definisce un namespace associato con l’URI http://www.w3.org/2001/XInclude. Il namespace XInclude contiene due elementi con i nomi locali include e fallback. Per comodità, in questa specifica si fa riferimento a questi elementi come xi:include e xi:fallback rispettivamente.

Il seguente (non normativo) Schema XML [Schemi XML] illustra il contenuto modello del namespace xi:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:xi="http://www.w3.org/2001/XInclude"
           targetNamespace="http://www.w3.org/2001/XInclude"
           finalDefault="extension">

  <xs:element name="include" type="xi:includeType" />

  <xs:complexType name="includeType" mixed="true">
    <xs:choice minOccurs='0' maxOccurs='unbounded' >
      <xs:element ref='xi:fallback' />
      <xs:any namespace='##other' processContents='lax' />
      <xs:any namespace='##local' processContents='lax' />
    </xs:choice>
    <xs:attribute name="href" use="optional" type="xs:anyURI"/>
    <xs:attribute name="parse" use="optional" default="xml"
                  type="xi:parseType" />
    <xs:attribute name="xpointer" use="optional" type="xs:string"/>
    <xs:attribute name="encoding" use="optional" type="xs:string"/>
    <xs:attribute name="accept" use="optional" type="xs:string"/>
    <xs:attribute name="accept-language" use="optional" type="xs:string"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>

  <xs:simpleType name="parseType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="xml"/>
      <xs:enumeration value="text"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:element name="fallback" type="xi:fallbackType" />

  <xs:complexType name="fallbackType" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="xi:include"/>
      <xs:any namespace="##other" processContents="lax"/>
      <xs:any namespace="##local" processContents="lax"/>
    </xs:choice>
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>

</xs:schema>

3.1 Elemento xi:include

L’elemento xi:include ha i seguenti attributi:

href

Un valore che, dopo l’esecuzione dell’escaping appropriato (vedere 4.1.1 Escaping dei valori d’attributo href), risulta in una referenza URI o in una referenza IRI che specifica la posizione della risorsa che si voglia includere. L’attributo href è facoltativo; la mancanza di quest’attributo è uguale a specificare href="", vale a dire, la referenza è allo stesso documento. Se manca l’attributo href quando parse="xml", l’attributo xpointer deve essere presente. Gli identificatori di frammenti non si devono usare; la sua apparizione è un errore fatale. Un valore che risulti un URI o IRI sintatticamente invalidi deve riportarsi come un errore fatale, però alcune implementazioni possono trovare non pratica la distinzione tra questo caso ed un errore di risorsa.

Nota:

Un URI che finisca in # è considerato da [IETF RFC 2396] come se avesse un identificatore di frammento vuoto. Quest’URI risulterebbe un errore fatale come si descrive sopra.

Nota:

Una caratteristica chiave dello XInclude è quella di permettere ad una risorsa calcolare il tipo specificato secondo l’uso per l’inclusione (XML o text). Il media type restituito è essenzialmente ignorato per i propositi del processamento dell’inclusione, e la sintassi dell’identificatore di frammenti del media type restituito non sarà, di solito, applicabile al tipo specificato secondo l’uso. Per le inclusioni parse="xml", le sub risorse sono identificate da un attributo xpointer separato, il quale s’applica dopo il calcolo. Anche se questo non impedisce che le sub risorse dei documenti XML siano identificate dall’URI (Si veda Architecture of the World Wide Web [Identification]), non preclude l’uso di quest’identificatori direttamente dentro XInclude.

parse (analisi)

Indica se la risorsa se deve includere come parsed (analizzata) XML o come text. Gli attributi parse permettono allo XInclude di dare all’autore del documento includente la priorità sul server del documento incluso, rispetto a come processare il contenuto incluso. Un valore "xml" indica che la risorsa deve essere analizzata (parsed) come XML e gli infoset devono unirsi. Un valore "text" indica che la risorsa deve essere inclusa come gli item informazione del carattere. Quest’attributo è facoltativo. Quando il valore è omesso, il valore "xml" è implicito (anche se mancasse una dichiarazione de valore per difetto). I valori che non siano "xml" e "text" sono errori fatali.

Nota:

Per ragioni d’interoperabilità fra sistemi validanti e non validanti,whitespace non dovrà comparire nell’attributo parse.

xpointer

Quando parse="xml", il XPointer (si veda [Struttura XPointer]) contenuto nell’attributo xpointer si valuta per identificare una porzione della risorsa che si deva includere. Quest’attributo è opzionale; quando è omesso, la risorsa completa è inclusa. L’attributo xpointer non deve essere presente quando parse="text". Se manca l’attributo xpointer, l’attributo href deve essere presente.

Note:

Siccome l’attributo xpointer non è una referenza URI, %-escaping non deve apparire nello XPointer, né c’è nessun bisogno per il processore d’applicare o revertire quest’escaping.

Codifica (encoding)

Quando parse="text", a volte è impossibile scoprire correttamente la codifica della risorsa del testo. L’attributo encoding specifica come si deve tradurre la risorsa. Il valore di quest’attributo è un EncName come si definisce nella specifica XML, sezione 4.3.3, regola [81]. L’attributo encoding non ha nessun effetto quando parse="xml".

accept (accettare)

Il valore dell’attributo accept può essere usato dal processore XInclude in aiuto della negoziazione di contenuto. Quando il processore XInclude recupera una risorsa via HTTP, dovrebbe porre il valore dell’attributo accept, se c’é qualcuno, nella richiesta HTTP come un header Accept secondo la descrizione della sezione 14.1 della [IETF RFC 2616]. I valori che contengano caratteri fuori la serie #x20 a #x7E non si permettono nei header HTTP, e devono essere indicati come errori fatali.

accept-language

Il valore dell’attributo accept-language può essere usato per il processore XInclude in aiuto della negoziazione di contenuto. Quando il processore XInclude recupera una risorsa via HTTP, dovrebbe porre il valore dell’attributo accept-language, se c’è qualcuno, nella richiesta HTTP come un header Accept-Language secondo la descrizione della sezione 14.4 della [IETF RFC 2616]. I valori che contengano caratteri fuori la serie #x20 a #x7E non si permettono nei header HTTP, e devono essere indicati come errori fatali.

Gli attributi che siano diversi dagli elencati sopra potrebbero apparire nell’elemento xi:include. I nomi d’attributi senza prefissi sono riservati per versioni future di questa specifica, e devono essere ignorati dai processori XInclude 1.0.

La proprietà discendenti (children) dell’elemento xi:include potrebbe includere un singolo elemento xi:fallback; l’apparizione di più di un elemento xi:fallback, un elemento xi:include, o qualsiasi altro elemento del namespace Xinclude è un errore fatale. Gli altri contenuti (testo, istruzioni di processamento, commenti, elementi che non appartengano al namespace XInclude, discendenti degli elementi) non sono vincolati da questa specifica e sono ignorati dal processore XInclude, cioè, non hanno nessun effetto nel processamento dell’inclusione, e non appaiono nelle proprietà discendenti dell’infoset risultato. Questo contenuto potrebbe essere usato dalle applicazioni che analizzino un infoset pre-inclusione, o rendersi disponibile per un’applicazione post-inclusione attraverso mezzi che non siano le proprietà di un infoset normale.

Il seguente frammento DTD (non normativo) fornisce un esempio di dichiarazione per l’elemento xi:include:

<!ELEMENT xi:include (xi:fallback?)>
<!ATTLIST xi:include
    xmlns:xi        CDATA       #FIXED    "http://www.w3.org/2001/XInclude"
    href            CDATA       #IMPLIED
    parse           (xml|text)  "xml"
    xpointer        CDATA       #IMPLIED
    encoding        CDATA       #IMPLIED
    accept          CDATA       #IMPLIED
    accept-language CDATA       #IMPLIED
>

3.2 Elemento xi:fallback

L’elemento xi:fallback appare come un elemento discendente (child) di un elemento xi:include. Fornisce un meccanismo di ricupero da risorse perdute. Quando si trova un errore di risorsa, l’elemento xi:include si sostituisce con i contenuti dell’elemento xi:fallback. Se l’elemento xi:fallback è vuoto, l’elemento xi:include si stacca dal risultato. Se l’elemento xi:fallback è perduto, un errore di risorsa diventa un errore fatale.

L’elemento xi:fallback può apparire soltanto come discendente di un elemento xi:include. È un errore fatale per un elemento xi:fallback se appare in un documento in qualsiasi altro luogo che non sia come discendente diretto del xi:include (prima del processamento dell’inclusione dei contenuti dell’elemento). Se l’elemento xi:fallback contiene qualsiasi elemento del namespace XInclude che non sia xi:include è un errore fatale.

Gli attributi possono mettersi nell’elemento xi:fallback. I nomi d’attributi senza prefissi si riservano per versioni future di questa specifica, e devono essere ignorati dai processori XInclude 1.0.

Il seguente frammento DTD (non normativo) dà un esempio di dichiarazione per l’elemento xi:fallback:

<!ELEMENT xi:fallback ANY>
<!ATTLIST xi:fallback
    xmlns:xi   CDATA   #FIXED   "http://www.w3.org/2001/XInclude"
>

4 Modello di Processamento

L’inclusione definita in questo documento è un tipo specifico di trasformazione [Set d’Informazione XML].

[Definizione: L’input per la trasformazione inclusione è un source infoset.] [Definizione: L’output, chiamato result infoset, è un nuovo infoset che unisce il source infoset con gli infoset delle risorse identificati dalle referenze URI o le referenze IRI che appariscono negli elementi xi:include.] Così si assume un meccanismo per risolvere URI e IRI e ritornare le risorse identificate come infoset. L’entità XML ben formate che non abbiano infoset definiti (ad esempio, un’entità esterna con molti elementi top-level) sono oltre lo scopo di questa specifica, sia per l’uso come source infoset o come result infoset.

Gli elementi xi:include nel source infoset hanno la funzione d’istruzioni per la trasformazione per inclusione. [Definizione: Gli item informazione localizzati dall’elemento xi:include si chiamano item top-level inclusi ]. [Definizione: Gli item top-level inclusi insieme ai suoi attributi, namespace e discendenti si chiamano item inclusi ]. Il result infoset è essenzialmente una copia del source infoset, in cui ogni elemento xi:include ed i suoi discendenti sono sostituiti dai suoi corrispondenti item inclusi.

4.1 Posizione dell’Include

Il valore dell’attributo href, dopo l’escaping secondo 4.1.1 Escaping dei valori d’attributo href, si interpreta sia come una referenza URI, sia come una referenza IRI. L’URI base per i corrispondenti URI o IRI é l’URI base dell’elemento xi:include come si specifica in [XML Base]. [Definizione: L’URI o IRI risultante dalla conversione di un valore normalizzato dell’attributo href (o la stringa vuota se non compare nessun attributo) ad una forma assoluta URI o IRI si chiama la posizione dell’Include.]

L’assenza di un valore per l’attributo href, sia per l’apparizione di href="" o per l’assenza dell’attributo href, rappresenta un caso che potrebbe essere incompatibile con alcune strategie d’implementazione. Per esempio, un processore XInclude può non avere una rappresentazione testuale del source infoset per includere come parse="text", o può non essere capace di accedere ad altra parte del documento usando parse="xml" e uno xpointer per ragioni di fluidezza. Un’implementazione potrebbe decidere trattare una o tutte le assenze di valore dell’attributo href come errore di risorse. Le implementazioni dovrebbero documentare le condizione in cui accadano questi errori di risorse.

4.1.1 Escaping dei valori d’attributo href

Il valore d’attributo href si converte in una referenza URI o una referenza IRI, come sia appropriato per l’implementazione.

Si lavora attualmente per produrre una RFC che definisca gli Internationalized Resource Identifiers (IRI). Siccome questo lavoro non è ancora finito, in questa sezione definiamo le referenze IRI sintatticamente. È la nostra intenzione stimolare la discussione sugli errori di questa sezione e la sua sostituzione con referenze alla RFC quando sia pubblicata. Per una definizione più generale e la discussione sugli IRI si veda [IRI draft] (work in progress).

[Definizione: Una referenza IRI è una stringa che può essere convertita in una referenza URI scappando i seguenti caratteri addizionali:]

  • i caratteri Unicode plane #xA0 - #xD7FF, #xF900-#xFDCF, #xFDF0-#xFFEF

  • i caratteri Unicode plane 1-14 #x10000-#x1FFFD ... #xE0000-#xEFFFD

Per convertire il valore dell’attributo href in una referenza IRI, i seguenti caratteri devono essere scappati:

  • space #x20

    Nota:

    Si consiglia agli autori d’evitare spazi non scappati, giacché lo Schema XML li ha identificati come un rischio per l’interoperabilità.

  • i delimiter < #x3C, > #x3E and " #x22

  • i caratteri unwise { #x7B, } #x7D, | #x7C, \ #x5C, ^ #x5E and ` #x60

Questi caratteri si devono scappare così:

  1. Ogni carattere addizionale è convertito a UTF-8 [Unicode] come uno o più byte.

  2. I byte risultanti si scappano con il meccanismo escaping URI (cioè, convertiti a %HH, essendo HH la notazione esadecimale del valore byte).
  3. I caratteri originali sono sostituiti dalla sequenza di caratteri risultante.

Per convertire una referenza IRI in una referenza URI, i caratteri addizionali permessi in IRI si devono scappare usando lo stesso metodo.

4.1.2 Usare XInclude con Negoziazione di Contenuto

L’uso di un meccanismo come la negoziazione di contenuto HTTP [IETF RFC 2616] introduce un livello addizionale di complessità potenziale nell’uso dello XInclude. Gli sviluppatori che usino XInclude in situazioni nelle quali sia probabile o possibile la negoziazione di contenuto devono essere consapevole della possibilità d’includere contenuto che può essere strutturalmente diverso del contenuto atteso, anche se quel contenuto sia XML. Per esempio, un singolo URI o IRI può diversamente ritornare una rappresentazione XML cruda della risorsa, una rappresentazione XSL-FO [XSL-FO], o una rappresentazione XHTML [XHTML], e anche versioni in diverse codificazioni di caratteri o linguaggi.

Gli autori il cui processamento XInclude dipenda dalla ricevuta di un particolare vocabolario XML dovrebbero usare gli attributi accept e accept-language per incrementare la probabilità di una fornitura di risorsa nel formato atteso.

4.2 Item inclusi quando parse="xml"

Quando parse="xml", la posizione dell’include non è referenziata, si ricupera la risorsa e si crea un infoset analizzando la risorsa come se il media type fosse application/xml (includendo la determinazione della codificazione di carattere).

Nota:

Intenzionalmente non si specifica come si crea l’infoset, permettendo una maggiore flessibilità alle implementazioni e per evitare la definizione di un particolare modello di processamento per i componenti dell’architettura XML. I particolari su come si eseguisce la validazione delle DTD o dello Schema XML, ad esempio, non sono limitati da questa specifica.

Nota:

I caratteri di codifica delle risorse includenti e incluse potrebbero essere differenti. Questo non affetta l’infoset risultante, però può essere necessario tenere in conto questo dato durante la posteriore serializzazione.

Le risorse che non siano disponibili per qualsiasi ragione (per esempio, la risorsa non esiste, ci sono difficoltà o restrizioni di sicurezza che impediscono il ricupero, lo schema URI non consente il ricupero, la risorsa è in una codifica non supportata, o la risorsa è determinata attraverso meccanismi specifici dell’implementazione che non siano XML) risultano un errore di risorsa. Le risorse che contengano XML che non siano ben formati risultano un errore fatale.

Nota:

La distinzione tra un errore di risorsa e un errore fatale dipende, in certo modo, dall’implementazione. Si consideri una posizione dell’include che ritorni un documento HTML, forse come un errore di pagina. Un processore può determinare che non si può creare nessun infoset dalla risorsa (esaminando i media type, per esempio) lanciando un errore di risorsa che abilita il comportamento fallback. Un altro processore con altre caratteristiche potrebbe tentare l’analisi della risorsa non-XML come XML e trovare un errore di buona formazione (fatale).

[Definizione: gli elementi xi:include in questo infoset sono processati per creare l’acquired infoset. Per una referenza intra-documento (via attributo xpointer) il source infoset si usa come acquired infoset.]

[Definizione: La parte dell’acquired infoset ad includersi si chiama inclusion target.] L’item informazione del documento dell’acquired infoset serve come inclusion target a meno che l’attributo xpointer sia presente ed identifichi una subrisorsa. XPointer nelle forme descritte in [Struttura XPointer] e [XPointer Schema elemento()] devono essere supportati. I processori Xinclude supportano facoltativamente altre forme di XPointer come quelle descritte in [XPointer xpointer Schema()]. Un errore nel XPointer è un errore di risorsa.

Il [XPointer xpointer Schema()] non è specificato nei termini del [Set d’Informazione XML], è basato nel [XPath 1.0] Data Model, perché il Set d’Informazione XML non era stato ancora sviluppato. Il rilevamento tra posizioni di nodi XPath e item d’informazione è diretto. In ogni modo, xpointer() assume che tutte le entità sono state espanse. Perciò è un errore fatale tentare la risoluzione di un xpointer schema() in un documento che contenga item informazione della referenza entità non espanse.

Il set di item top-level inclusi si deriva dall’acquired infoset come segue.

4.2.1 Item Informazione del Documento

L’inclusion target può essere un item informazione del documento (per esempio, un attributo xpointer non specificato, o un XPointer specificamente localizzato nella radice del documento). In questo caso, il set d’item top-level inclusi è il discendente dell’item informazione del documento dell’acquired infoset, salvo per l’item informazione sulla dichiarazione di tipo del documento discendente, se c’è qualcuno.

Nota:

La specifica Set d’Informazione XML non procura la preservazione degli white space fuori l’elemento del documento. Neanche lo fa XInclude.

4.2.2 Nodi Molteplici

L’inclusion target può consistere in più di un nodo. In questo caso il set d’item top-level inclusi sono gli item del set d’informazione dall’acquired infoset corrispondenti ai nodi attribuiti dallo XPointer, nell’ordine in cui appaiono nell’acquired infoset.

4.2.3 Posizione della Serie

L’inclusion target può essere un set di posizioni che rappresenti una serie o un set di serie.

Ogni serie corrisponde ad un set d’item informazione nell’acquired infoset. [Definizione: Si afferma che un item informazione è selezionato da una serie se accade dopo (nell’ordine del documento) del punto d’inizio della serie e prima del punto finale della serie.] [Definizione: Si dice che un item informazione è parzialmente selezionato da una serie se contiene soltanto il punto d’inizio della serie, o soltanto il punto finale della serie]. Per definizione, un item informazione del carattere non può essere parzialmente selezionato.

Il set d’item top-level inclusi è l’unione, nel ordine del documento e con i duplicati rimossi, degli item informazione selezionati o parzialmente selezionati dalla serie. La proprietà discendenti degli item informazione selezionati non si modifica. La proprietà discendenti degli item informazione parzialmente selezionati è il set degli item informazione che sono a turno selezionati o parzialmente selezionati, è così via.

4.2.4 Posizione del Punto

L’inclusion target può essere un set di posizioni che rappresenti un punto. In questo caso il set degli item inclusi è vuoto.

4.2.5 Item Informazione dell’Elemento, del Commento e delle Istruzioni del Processamento

L’inclusion target può essere un nodo elemento, un nodo commento, o un nodo istruzioni di processamento, rappresentando rispettivamente un item informazione dell’elemento, un item informazione del commento, o un item informazione delle istruzioni del processamento. In questo caso il set degli top-level included items è l’item informazione corrispondente al nodo elemento, commento o istruzioni del processamento nell’acquired infoset.

4.2.6 Item Informazione della Dichiarazione dell’Attributo e Namespace

È un errore fatale se l’inclusion target è un nodo attributo o un nodo namespace.

4.2.7 Loop d’inclusione

Quando si processa un elemento xi:include è un errore fatale processare un altro elemento xi:include con posizione dell’include e un valore d’attributo xpointer che siano stati processati nella catena d’inclusione.

In altre parole, è legale:

  • Un elemento xi:include potrebbe riferirsi al documento che contenga l’elemento include, quando parse="text".

  • Un elemento xi:include potrebbe identificare una parte diversa della stessa risorsa locale (uguale href, differente xpointer).

  • Due elementi non nidificati xi:include potrebbero identificare una risorsa che contenga un elemento xi:include.

È illegale:

  • Un elemento xi:include puntando su se stesso o su un suo genitore, quando parse="xml".

  • Un elemento xi:include puntando su qualsiasi elemento incluso o su un suo genitore che sia già stato processato ad un livello superiore.

4.3 Item Inclusi quando parse="text"

Quando parse="text", la posizione dell’include è dereferenziata e la risorsa si ricupera e trasforma in un set d’item informazione del carattere. Questa caratteristica facilita l’inclusione d’esempi di lavoro XML, e d’altri formati con base text.

Le risorse che per qualsiasi ragione non siano disponibili (per esempio, una risorsa inesistente, difficoltà di connessione o restrizioni di sicurezza che impediscano il ricupero, lo schema URI non consente il ricupero o la risorsa è in un codice non supportato) risultano in un errore di risorsa.

La codifica di una tale risorsa è determinata da:

  • Informazione esterna sulla codificazione, se disponibile, altrimenti

  • se il media type della risorsa è text/xml, application/xml, o è compie le convenzioni text/*+xml o application/*+xml come si descrive in XML Media Types [IETF RFC 3023], la codifica si riconosce come specificata nello XML, altrimenti

  • il valore dell’attributo encoding, se c’è qualcuno, altrimenti
  • UTF-8.

Le sequenze byte fuori la serie permessa dalla codifica sono un errore fatale. Anche i caratteri non permessi nei documenti in XML sono errore fatale.

Ogni carattere che si ottiene dalla trasformazione della risorsa si rappresenta negli item top-level inclusi come un item informazione del carattere con il set codificazione di carattere a codice carattere in codificazione ISO 10646, e il set elemento contenuto whitespace a falso.

[Character Model] discute la normalizzazione del testo incluso.

4.4 Comportamento Fallback

I processori XInclude devono eseguire il comportamento fallback nel caso di un errore di risorsa, così:

Se i discendenti dell’item informazione dell’elemento xi:include nel source infoset contiene esattamente un elemento xi:fallback, gli item top-level inclusi sono gli item informazione corrispondenti al risultato dell’esecuzione del processamento Xinclude nei discendenti dell’elemento xi:fallback. È un errore fatale se c’è zero o più di un elemento xi:fallback.

Nota:

Il contenuto Fallback non dipende del valore dell’attributo parse. L’elemento xi:fallback può contenere marcatura anche quando parse="text". Così, può contenere una stringa semplice quando parse="xml".

4.5 Creare il Result Infoset

Il result infoset è una copia del source infoset, con ogni elemento xi:include processato così:

L’item informazione dell’elemento xi:include è trovato. [Definizione: La proprietà parente di quest’item si riferisce a un item informazione chiamato include parent.] La proprietà discendenti dell’include parent si modifica sostituendo l’item informazione dell’elemento xi:include con gli item top-level inclusi. La proprietà parente di ogni item incluso si mette nell’include parent.

Sarà un errore fatale tentare la sostituzione di un elemento xi:include che appaia come l’elemento (top-level) del documento nel source infoset con qualcosa che non sia un elenco di zero o più commenti, zero o più istruzioni di processamento ed un elemento.

Alcuni processori potrebbero non essere capaci di rappresentare una proprietà in-scope namespaces di un elemento se non include vincoli per tutti i prefissi limiti nel suo in-scope namespaces discendente. Questi processori potrebbero dunque includere vincoli namespace addizionali ereditati dal’include parent nel in-scope namespaces degli item inclusi.

La storia dell’inclusione di ogni item top-level inclusi si registra nella proprietà estensione include history. La proprietà include history è un elenco di item informazione dell’elemento, rappresentando gli elementi xi:include per livelli d’inclusione. Se una proprietà include history appare in un item top-level incluso, l’item informazione dell’elemento xi:include è elencato. Se non esiste nessuna proprietà include history, allora questa proprietà si aggiunge con il valore semplice dell’item informazione dell’elemento xi:include.

Gli item inclusi appariranno tutti nel result infoset. Questo include gli item informazione delle referenza entità non espansa se sono presenti.

Le referenze intra-documento dentro gli elementi xi:include si risolvono contro il source infoset. Perciò, l’ordine in cui gli elementi xi:include sono processati non affetta il risultato.

Nel seguente esempio, il secondo include punta verso il primo elemento xi:include e non verso se stesso, nonostante l’ordine in cui gli include si processino. Così il risultato di questa inclusione sono due copie di something.xml, e non produce un errore d’inclusione loop.

<x xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="something.xml"/>
  <xi:include xpointer="xmlns(xi=http://www.w3.org/2001/XInclude)xpointer(x/xi:include[1])"
              parse="xml"/>
</x>

4.5.1 Entità Unparsed

Qualsiasi item informazione d’entità unparsed che appaia nella proprietà referenze di un attributo negli item inclusi o qualsiasi discendente suo si aggiunge alla proprietà entità non espanse del item informazione del documento del result infoset, se non è un duplicato di un membro già esistente. I duplicati non appaiono nel result infoset.

Gli item entità unparsed con lo stesso nome, identificatore di sistema, identificatore pubblico, dichiarazione URI base, nome di notazione, e notazione si considerano duplicati. Un’applicazione potrebbe anche essere capace di scoprire se le entità unparsed sono duplicati attraverso altri mezzi. Per esempio, l’URI risultante della combinazione dell’identificatore di sistema con la dichiarazione URI base è la stessa.

È un errore fatale includere item entità unparsed con lo stesso nome che non siano determinati come duplicati.

4.5.2 Notazioni

Qualsiasi item informazione della notazione che appaia nella proprietà referenze di un attributo negli item inclusi o il suo discendente si aggiunge alla proprietà notazioni dell’item informazione del documento del result infoset, se non è un duplicato di un membro già esistente. Allo stesso modo, qualsiasi notazione referenziata da un’entità unparsed aggiunta come si descrive in 4.5.1 Entità Unparsed, si aggiunge salvo che sia un duplicato. I duplicati non appaiono nel result infoset.

Gli item notazione con lo stesso nome, identificatore di sistema, identificatore pubblico, e dichiarazione URI base si considerano duplicati. Un’applicazione potrebbe anche essere capace di scoprire se le notazioni sono duplicati attraverso altri mezzi. Per esempio, l’URI che risulta dalla combinazione del sistema identificatore e la dichiarazione URI base è lo stesso.

È un errore fatale includere gli item notazione con lo stesso nome ma non determinati come duplicati.

4.5.3 Regolazione Proprietà referenze

Durante l’inclusione, un item informazione dell’attributo la cui proprietà tipo d’attributo sia IDREF o IDREFS ha una proprietà referenze con zero o più valori d’elemento dal source o included infoset. Questi valori devono aggiustarsi per essere corrispondenti al valore d’elemento che appaia nel result infoset. Durante questo processo, XInclude anche corregge le discordanze tra la proprietà referenze e la proprietà tipo d’attributo, che potrebbero sorgere nelle seguenti circostanze:

  • Un frammento di documento contiene un IDREF che punta verso un elemento del documento incluso ma fuori la parte che si include. In questo caso non c’è nessun elemento nel result infoset che corrisponda al valore dell’elemento nella proprietà referenze originale.

  • Un documento o un frammento di documento non è self-contained. Cioè, contiene IDREF che non si riferiscono a un elemento dentro quel documento o frammento di documento, con l’intenzione di realizzare queste referenze dopo l’inclusione. In questo caso, il valore della proprietà referenze è sconosciuto o non ha valore.

  • Il result infoset ha scontri ID, cioè, più d’un attributo con tipo d’attributo ID con lo stesso valore normalizzato. In questo caso, gli attributi con tipo d’attributo IDREF o IDREFS con lo stesso valore normalizzato potrebbero avere diversi valori per le sue proprietà referenze.

Per risolvere queste discordanze, XInclude prende la proprietà tipo d’attributo come definitiva. Nel result infoset, il valore della proprietà referenze di un item informazione dell’attributo la cui proprietà tipo d’attributo sia IDREF o IDREFS si aggiusta così:

Per ogni token nella proprietà valore normalizzato, la proprietà referenze contiene un item informazione dell’elemento con le stesse proprietà dell’item informazione dell’elemento del result infoset con un attributo che abbia tipo d’attributo ID e valore normalizzato uguale al token. L’ordine degli elementi nella proprietà referenze è uguale a quello dei token che appaiono nel valore normalizzato. Se per alcun valore token non si trova nessun elemento o si trova più d’uno, la proprietà referenze non ha valore.

4.5.4 Regolazione Namespace

La proprietà in-scope namespaces assicura che il namespace scope sia preservato attraverso l’inclusione. Comunque, dopo l’inclusione, la proprietà attributi namespace può non fornire l’elenco completo delle dichiarazioni namespace necessarie per interpretare nomi qualificati nel contenuto degli attributi o degli elementi nel risultato. Perciò non è raccomandabile che i processori XInclude espongano attributi namespace nel risultato. Se questo è inevitabile, l’implementazione potrebbe aggiungere degli item informazione dell’attributo alla proprietà attributi namespace per approssimare l’informazione trasportata da in-scope namespaces.

4.5.5 Regolazione URI Base

La proprietà URI base dell’acquired infoset non cambia con l’unione dell’infoset e rimane non cambiata dopo la fusione. Così le referenze URI relative nell’infoset incluso si risolvono nello stesso URI nonostante l’inclusione in un documento con un URI base potenzialmente diverso. Gli attributi xml:base si aggiungono al result infoset per indicare questo fatto.

Ogni item informazione dell’elemento negli item top-level inclusi che abbia un URI base diverso al suo parente include ha un item informazione dell’attributo aggiunto alla sua proprietà attributi. Quest’attributo le seguenti proprietà:

  1. Un nome namespace di http://www.w3.org/XML/1998/namespace.

  2. Un nome locale di base.

  3. Un prefisso di xml.

  4. Un valore normalizzato uguale all’URI base dell’elemento, o una referenza URI equivalente, relativa all’URI base del parente include. Dipendono dalle implementazioni le circostanze in cui un URI relativo è conveniente e come computare quell’URI relativo.

  5. Un indicatore specificato che mostri che quell’attributo è davvero specificato nello start-tag del suo elemento.

  6. Un tipo d’attributo di CDATA.

  7. Una proprietà referenze senza valore.

  8. Un elemento padrone dell’item informazione dell’elemento.

Se un item informazione dell’attributo xml:base è già presente, è sostituito dal nuovo attributo.

4.5.6 Regolazione Linguaggio

Mentre XML descrive l’attributo xml:lang com’ereditato, il Set d’Informazione XML non preserva l’eredità di questa proprietà nella composizione del documento come lo fa XInclude. Questa sezione introduce una proprietà linguaggio che registra lo scopo dell’informazione xml:lang per preservarla durante l’inclusione.

Un processore XInclude dovrebbe aumentare il source infoset e l’acquired infoset aggiungendo la proprietà linguaggio ad ogni item informazione dell’elemento. Il valore di questa proprietà è il valore normalizzato dell’attributo xml:lang che appare in quell’elemento, se ci fosse qualcuno, con xml:lang="" risultando senza valore, altrimenti è il valore della proprietà linguaggio dell’elemento parente dell’elemento se ci fosse qualcuno, altrimenti la proprietà non ha valore.

Ogni item informazione dell’elemento negli item top-level inclusi che abbia un valore di linguaggio diverso al suo parente include (prendendo in considerazione l’insensibilità di caso per [IETF RFC 3066]), o che abbia un valore se il suo parente include è un item informazione del documento, ha un item informazione dell’attributo aggiunto alla sua proprietà attributi. Quest’attributo ha le seguenti proprietà:

  1. Un nome namespace di http://www.w3.org/XML/1998/namespace.

  2. Un nome locale di lang.

  3. Un prefisso di xml.

  4. Un valore normalizzato uguale alla proprietà linguaggio dell’elemento. Se la proprietà linguaggio non ha valore, il valore normalizzato è una stringa vuota.

  5. Un indicatore specificato che mostri che il suo attributo era davvero specificato nello start-tag del suo elemento.

  6. Un tipo d’attributo di CDATA.

  7. Una proprietà referenze senza valore.

  8. Un elemento padrone dell’item informazione dell’elemento.

Se un item informazione dell’attributo xml:lang è già presente, è sostituito dal nuovo attributo.

Nota:

L’attributo xml:space non è specialmente presso in considerazione dallo XInclude.

4.5.7 Proprietà Preservate dall’Infoset

Come trasformazione d’infoset, XInclude opera sulla struttura logica dei documenti XML, non sulla sua serializzazione di testo. Tutte le proprietà di un item informazione descritte in [Set d’Informazione XML] che non siano quelle specificamente modificate da questa specifica si preservano durante l’inclusione. Anche le proprietà include history e linguaggio introdotte in questa specifica si preservano. Le proprietà d’estensione come [Schemi XML] Post Schema Validation Infoset (PSVI) si scartano per difetto. Comunque, un processore XInclude potrebbe, a opzione dell’utente, preservare queste proprietà nel resulting infoset se sono corrette secondo la specifica che descrive la semantica delle proprietà d’estensione.

Ad esempio, la proprietà PSVI validity descrive le condizioni degli antenati e discendenti. Le modificazioni degli antenati e dei discendenti durante il processamento Xinclude può fare diventare il valore di questa proprietà impreciso. Per default, XInclude spoglia questa proprietà, ma se l’utente lo vuole, la proprietà può essere ricalcolata per ottenere un valore semanticamente preciso. È oltre lo scopo di questa specifica precisare come si porta a termine questo.

5 Conformità

5.1 Conformità alla Marcatura

Un item informazione dell’elemento è conforme a questa specifica se compie i requisiti strutturali per includere elementi definiti in questa specifica. Questa specifica non impone nessuna limitazione particolare alle DTD o allo schema XML, la conformità s’applica soltanto agli elementi ed attributi.

5.2 Conformità alle Applicazioni

Un’applicazione è conforme allo XInclude se:

Il supporto del [XPointer xpointer() Scheme] non è obbligatorio per una completa conformità XInclude. Si avverte agli autori che l’uso di xpointer() e altri schemi Xpointer che non siano elemento() può non essere supportato da tutte le implementazioni con conformità XInclude.

5.3 Conformità al Set d’Informazione XML

Questa specifica è conforme al [Set d’Informazione XML]. I seguenti item informazione devono essere presenti negli input infoset per permettere un processamento corretto:

  • Item informazione del documento con proprietà discendenti e URI base..

  • Item nformazione dell’elemento con proprietà nome namespace, nome locale, discendenti, attributi, URI base e parente.

  • Item informazione dell’attributo con le proprietà nome namespace, nome locale e valore normalizzato.

Addizionalmente, il processamento XInclude può generare i seguenti tipi d’item informazione nel risultato:

  • Item informazione del carattere con proprietà character code, contenuto elemento whitespace e parente.

XInclude estende l’infoset con la proprietà include history, la quale potrebbe apparire nei seguenti tipi d’item informazione nel risultato:

  • Item informazione dell’elemento.

  • Item informazione delle istruzioni di processamento.

  • Item informazione del commento.

  • Item informazione del carattere.

XInclude estende anche l’infoset con la proprietà linguaggio, la quale potrebbe apparire negli item informazione dell’elemento nel risultato.

A Riferimenti

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (Si veda http://www.ietf.org/rfc/rfc2119.txt.)
IETF RFC 2279
RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998. (Si veda http://www.ietf.org/rfc/rfc2279.txt.)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995. (Si veda http://www.ietf.org/rfc/rfc2396.txt.)
IETF RFC 2732
RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999. (Si veda http://www.ietf.org/rfc/rfc2732.txt.)
IETF RFC 3023
RFC 3023: XML Media Types. Internet Engineering Task Force, 2001. (Si veda http://www.ietf.org/rfc/rfc3023.txt.)
Unicode
The Unicode Consortium. The Unicode Standard, Version 4.0. Reading, Mass.: Addison-Wesley, 2003, come s’aggiorni periodicamente dalla pubblicazione di nuove versioni. (Si veda http://www.unicode.org/unicode/standard/versions/ per l’ultima versione e informazione addizionale sulle versioni dello standard e dell’Unicode Character Database).
XML 1.0
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau, curatori. Extensible Markup Language (XML) 1.0 (Third Edition), World Wide Web Consortium, 2004. (Si veda http://www.w3.org/TR/2004/REC-xml-20040204/.)
XML 1.1
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, Eve Maler, François Yergeau, John Cowan, curatori. Extensible Markup Language (XML) 1.1, World Wide Web Consortium, 2004. (Si veda http://www.w3.org/TR/2004/REC-xml11-20040204/.)
XML Base
Jonathan Marsh, curatore. XML Base. World Wide Web Consortium, 2001. (Si veda http://www.w3.org/TR/2001/REC-xmlbase-20010627/.)
XML Information Set
John Cowan e Richard Tobin, curatori. XML Information Set (Second Edition). World Wide Web Consortium, 2004. (Si veda http://www.w3.org/TR/2004/REC-xml-infoset-20040204/.)
Namespaces in XML
Tim Bray, Dave Hollander, e Andrew Layman, curatori. Namespaces in XML. World Wide Web Consortium, 1999. (Si veda http://www.w3.org/TR/1999/REC-xml-names-19990114/.)
Namespaces in XML 1.1
Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin, curatori. Namespaces in XML 1.1. World Wide Web Consortium, 2004. (Si veda http://www.w3.org/TR/2004/REC-xml-names11-20040204/.)
XPointer Framework
Paul Grosso, Eve Maler, Jonathan Marsh, Norman Walsh, curatori. XPointer Framework. World Wide Web Consortium, 2003. (Si veda http://www.w3.org/TR/2003/REC-xptr-framework-20030325/.)
XPointer element() scheme
Paul Grosso, Eve Maler, Jonathan Marsh, Norman Walsh, curatori. XPointer element() Scheme. World Wide Web Consortium, 2003. (Si veda http://www.w3.org/TR/2003/REC-xptr-element-20030325/.)

B Riferimenti (Non Normativo)

IETF RFC 2616
RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1. Internet Engineering Task Force, 1999. (Si veda http://www.ietf.org/rfc/rfc2616.txt.)
IETF RFC 3066
RFC 3066: Tags for the Identification of Languages. Internet Engineering Task Force, 2001. (Si veda http://www.ietf.org/rfc/rfc3066.txt.)
XML Inclusion Proposal
Jonathan Marsh, David Orchard, curatori. XML Inclusion Proposal (XInclude). World Wide Web Consortium, 2004. (Si veda http://www.w3.org/TR/1999/NOTE-xinclude-19991123.)
XML Linking Language
Steve DeRose, Eve Maler, David Orchard, e Ben Trafford, curatori. XML Linking Language (XLink). World Wide Web Consortium, 2001. (Si veda http://www.w3.org/TR/2001/REC-xlink-20010627/.)
XPointer xpointer() Scheme
Steve DeRose, Ron Daniel, Eve Maler, curatori. XPointer xpointer() Scheme. World Wide Web Consortium, 2002. (Si veda http://www.w3.org/TR/2002/WD-xptr-xpointer-20021219/.)
XPath 1.0
James Clark, Steve DeRose, curatori. XML Path Language (XPath) Version 1.0. World Wide Web Consortium, 1999. (Si veda http://www.w3.org/TR/1999/REC-xpath-19991116.)
IRI draft
Internationalized Resource Identifiers (IRIs). (Si veda http://www.ietf.org/internet-drafts/draft-duerst-iri-11.txt.)
Character Model
Martin J. Dürst, François Yergeau, Misha Wolf, Asmus Freytag, Tex Texin. Character Model for the World Wide Web 1.0: Normalization. World Wide Web Consortium, 2001. (Si veda http://www.w3.org/TR/charmod-norm/.)
XML Schemas
Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, curatori. XML Schema Part 1: Structures. World Wide Web Consortium, 2001. (Si veda http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/.)
XSL-FO
Sharon Adler et al. Extensible Stylesheet Language (XSL). World Wide Web Consortium, 2001. (Si veda http://www.w3.org/TR/2001/REC-xsl-20011015/.)
XHTML
Steven Pemberton et al. XHTML 1.0 The Extensible HyperText Markup Language (Second Edition). World Wide Web Consortium, 2002. (Si veda http://www.w3.org/TR/2002/REC-xhtml1-20020801/.)

C Esempi (Non Normativo)

C.1 Esempio d’Inclusione Basica

Il seguente documento XML contiene un elemento xi:include che punta su un documento esterno. Si presuppone che l’URI base di questo documento sia http://www.example.org/document.xml.

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>

disclaimer.xml contiene:

<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>

L’infoset risultante di risolvere le inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer xml:base="http://www.example.org/disclaimer.xml">
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>

C.2 Esempio d’Inclusione Testuale

Il seguente documento XML include un "esempio di lavoro" in un documento.

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>

nel quale count.txt contiene:

324387

L’infoset risultante di risolvere le inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  324387 times.</p>
</document>

C.3 Esempio d’Inclusione Testuale XML

Il seguente documento XML include un "esempio di lavoro" in un documento.

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>

data.xml contiene:

<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>

L’infoset risultante di risolvere le inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;</example>
</document>

C.4 Esempio d’Inclusione di Frammento

L’esempio seguente illustra i risultati dell’inclusione di frammenti d’altro documento XML. Si presuppone che l’URI base del documento sia http://www.example.com/JoeSmithQuote.xml.

<?xml version='1.0'?>
<price-quote xmlns:xi="http://www.w3.org/2001/XInclude">
  <prepared-for>Joe Smith</prepared-for>
  <good-through>20040930</good-through>
  <xi:include href="price-list.xml" xpointer="w002-description"/>
  <volume>40</volume>
  <xi:include href="price-list.xml" xpointer="element(w002-prices/2)"/>
</price-quote>

price-list.xml fa riferimento alla DTD che dichiara gli attributi id come di tipo ID, e contiene:

<?xml version='1.0'?>
<!DOCTYPE price-list SYSTEM "price-list.dtd">
<price-list xml:lang="en-us">
  <item id="w001">
    <description id="w001-description">
      <p>Normal Widget</p>
    </description>
    <prices id="w001-prices">
      <price currency="USD" volume="1+">39.95</price>
      <price currency="USD" volume="10+">34.95</price>
      <price currency="USD" volume="100+">29.95</price>
    </prices>
  </item>
  <item id="w002">
    <description id="w002-description">
      <p>Super-sized widget with bells <i>and</i> whistles.</p>
    </description>
    <prices id="w002-prices">
      <price currency="USD" volume="1+">59.95</price>
      <price currency="USD" volume="10+">54.95</price>
      <price currency="USD" volume="100+">49.95</price>
    </prices>
  </item>
</price-list>

L’infoset risultante di risolvere le inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<price-quote xmlns:xi="http://www.w3.org/2001/XInclude">
  <prepared-for>Joe Smith</prepared-for>
  <good-through>20040930</good-through>
  <description id="w002-description" xml:lang="en-us"
               xml:base="http://www.example.com/price-list.xml">
    <p>Super-sized widget with bells <i>and</i> whistles.</p>
  </description>
  <volume>40</volume>
  <price currency="USD" volume="10+" xml:lang="en-us"
         xml:base="http://www.example.com/price-list.xml">54.95</price>
</price-quote>

C.5 Esempio d’Inclusione di Serie

L’esempio seguente illustra i risultati dell’inclusione di una serie specificata da uno XPointer. Si presuppone che l’URI base di questo documento sia http://www.example.com/document.xml.

<?xml version='1.0'?>
<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <include xmlns="http://www.w3.org/2001/XInclude"
       href="source.xml" xpointer="xpointer(string-range(chapter/p[1],'Sentence 2')/
             range-to(string-range(/chapter/p[2]/i,'3.',1,2)))"/>
  </quotation>
</document>

source.xml contiene:

<chapter>
  <p>Sentence 1.  Sentence 2.</p>
  <p><i>Sentence 3.  Sentence 4.</i>  Sentence 5.</p>
</chapter>

L’infoset risultante di risolvere le inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<document>
  <p>The relevant excerpt is:</p>
  <quotation>
    <p xml:base="http://www.example.com/source.xml">Sentence 2.</p>
  <p xml:base="http://www.example.com/source.xml"><i>Sentence 3.</i></p>
  </quotation>
</document>

C.6 Esempio di Fallback

Il seguente documento XML fa riferimento al meccanismo fallback per superare la mancanza di risorse example.txt e fallback-example.txt disponibili.

<?xml version='1.0'?>
<div>
  <xi:include href="example.txt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback><xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include></xi:fallback>
  </xi:include>
</div>

Se non sono disponibili né example.txtfallback-example.txt, l’infoset risultante della risoluzione delle inclusioni in questo documento è uguale (eccetto le proprietà include history e linguaggio) all’infoset del seguente documento:

<?xml version='1.0'?>
<div>
  <a href="mailto:bob@example.org">Report error</a>
</div>

Associating Style Sheets with XML documents
XML-Signature XPath Filter 2.0
XPointer element() Scheme
XPointer Framework
XPointer xmlns() Scheme
XML Inclusions (XInclude) Version 1.0
XML-binary Optimized Packaging
xml:id Version 1.0
XML Information Set (Second Edition)
OWL Web Ontology Language - Use Cases and Requirements
Ruby Annotation in Spanish
Ruby Annotation in Italian
SOAP Introduction
Australian Debt Consolidation Experts
medical insurance
Wedding
Escorts Incalll and Outcall in Modena, Bologna, Parma, Ferrara, Forli' ...
Intercambios de Parejas
Investing Talk
Make Your Own Website
Cheap calls to Poland
Cleaning Service
mold killer
UK Swingers Genuine Contacts Site
Free Cams
toner cartridges
Wines Articles
Hoover Vacuum Bags