Elemento <xsl:import>
Importa un altro file XSLT.
<xsl:import
href = "uri-reference" />
Attributi
- href
Obbligatorio. Un riferimento URI (Uniform Resource Identifier) che identifica il file XSLT da importare.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato |
Elementi padre |
|
Elementi figlio |
(Nessun elemento figlio) |
Note
Un file XSLT è in grado di importare un altro file XSLT tramite un elemento <xsl:import>. Importare un file XSLT equivale a includerlo, ad eccezione del fatto che le definizioni e le regole del modello nel file di importazione hanno priorità rispetto a quelle nel file XSLT importato. L'elemento <xsl:import> presenta un attributo href il cui valore è un riferimento URI che identifica il foglio di stile da importare. Un URI relativo viene risolto in relazione all'URI di base dell'elemento <xsl:import>.
L'elemento <xsl:import> è consentito solo come elemento di primo livello. L'elemento figlio <xsl:import> deve precedere tutti gli altri elementi figlio di un elemento <xsl:stylesheet>, inclusi eventuali elementi figlio <xsl:include> . Se l'elemento <xsl:include> è utilizzato per includere un foglio di stile, eventuali elementi <xsl:import> nel documento incluso vengono spostati verso l'alto nel documento incluso per seguire eventuali elementi <xsl:import> esistenti.
Gli elementi <xsl:stylesheet> rilevati durante l'elaborazione di un foglio di stile che contiene elementi <xsl:import> vengono considerati come appartenenti a un albero importato. Nell'albero importato ogni elemento <xsl:stylesheet> presenta un elemento di importazione figlio per ciascun elemento <xsl:import> contenuto. Gli elementi <xsl:include> vengono risolti prima della creazione dell'albero importato. Un elemento <xsl:stylesheet> nell'albero importato è definito con una priorità di importazione più bassa rispetto a un altro elemento <xsl:stylesheet> nell'albero importato, nel caso in cui venisse visitato prima dell'elemento <xsl:stylesheet> in una diagonale postordinata dell'albero importato (ovvero, una diagonale in cui un elemento <xsl:stylesheet> viene visitato dopo il relativo elemento di importazione figlio). Ogni definizione e regola di modello presenta una priorità di importazione determinata dall'elemento <xsl:stylesheet> che la contiene.
Si consideri, ad ad esempio, che siano soddisfatte le seguenti condizioni.
I file XSLT B e C sono importati dal file XSLT A in questo ordine.
Il file XSLT D è importato dal file XSLT B.
Il file XSLT E è importato dal file XSLT C.
La priorità di importazione (in ordine crescente) è D, B, E, C, A.
Nota
Poiché gli elementi <xsl:import> devono essere visualizzati prima delle definizioni o delle regole del modello, un'implementazione che elabora i file XSLT importati nel momento in cui viene rilevato l'elemento <xsl:import> consentirà di rilevare le definizioni e le regole del modello in ordine crescente di priorità di importazione.
In generale, una definizione o regola di modello con una priorità di importazione maggiore ha la precedenza rispetto a una definizione o regola di modello con una priorità di importazione minore. Ciò viene definito in modo dettagliato per ciascun tipo di definizione e per le regole del modello.
Se un file XSLT importa se stesso direttamente o indirettamente, si verificherà un errore. Ad eccezione di questo aspetto, il caso in cui un file XSLT con un determinato URI viene importato in più risorse non è considerato in modo particolare. L'albero importato presenterà un elemento <xsl:stylesheet> separato per ogni risorsa importata.
Nota
Se si utilizza <xsl:apply-imports>, il comportamento potrebbe essere diverso rispetto a quello previsto nel caso in cui il file XSLT fosse importato solo nella risorsa con la priorità di importazione maggiore.
File XSLT (importer.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:import href="article.xsl"/>
<xsl:import href="bigfont.xsl"/>
<xsl:attribute-set name="note-style">
<xsl:attribute name="font-style">italic</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
Vedere anche il seguente argomento: