Errori XSLT risolvibili
Nella raccomandazione W3C, XSL Transformations (XSLT) Version 1.0, sono incluse aree in cui il provider dell'implementazione può decidere come gestire una determinata situazione. Queste aree si considerano come aree di comportamento discretionary. Nella sezione 7.3 Creating Processing Instructions della raccomandazione XSLT 1.0, ad esempio, viene specificato che la creazione di nodi diversi da nodi di tipo text durante la creazione di un'istanza del contenuto di xsl:processing-instruction
costituisce un errore. Per alcuni problemi, la raccomandazione XSLT 1.0 fornisce una linea d'azione nel caso in cui il processore tenti di risolvere l'errore. Per l'errore illustrato nella sezione 7.3 viene spiegato che il problema può essere risolto ignorando i nodi e il relativo contenuto.
Comportamenti discretionary
Nella tabella seguente viene elencato ogni comportamento discretionary consentito dalla raccomandazione XSLT 1.0 e il modo in cui tali comportamenti vengono gestiti dalla classe XslCompiledTransform.
"Ripristino" indica che la classe XslCompiledTransform eseguirà la correzione dell'errore. È possibile usare l'evento XsltArgumentList.XsltMessageEncountered per segnalare tutti gli eventi dal processore XSLT.
"Errore" indica che è stata generata un'eccezione per questa condizione.
I riferimenti alle sezioni sono reperibili nei documenti W3C XSL Transformations (XSLT) Version 1.0 Recommendation e W3C XSL Transformations (XSLT) Version 1.0 Specification Errata (informazioni in lingua inglese).
Condizione XSLT | Sezione | Comportamento di XslCompiledTransform |
---|---|---|
Nodo di tipo text corrispondente sia a xsl:strip-space sia a xsl:preserve-space . |
3.4 | Recupera |
Nodo di origine corrispondente a più di una regola dei modelli. | 5.5 | Recupera |
Un URI dello spazio dei nomi è dichiarato come alias per più URI dello spazio dei nomi, tutti con la stessa precedenza di importazione. | 7.1.1 | Recupera |
L'attributo name in xsl:attribute e xsl:element generato da un valore dell'attributo non è un QName. |
7.1.2, 7.1.3 | Errore* |
Due set di attributi con la stessa precedenza di importazione e lo stesso nome espanso hanno un attributo in comune e non sono presenti altri set di attributi contenenti l'attributo comune con lo stesso nome e con un'importanza superiore. | 7.1.4 | Recupera |
Aggiunta di un attributo a un elemento dopo che ad esso sono stati aggiunti elementi figlio. | 7.1.3 | Errore* |
Creazione di un attributo denominato "xmlns". | 7.1.3 | Errore* |
Aggiunta di un attributo a un nodo diverso da un nodo di elemento. | 7.1.3 | Errore* |
Creazione di nodi diversi da nodi di tipo text durante la creazione di un'istanza del contenuto dell'attributo xsl:attribute . |
7.1.3 | Errore* |
L'attributo name di un'istruzione xsl:processing-instruction non restituisce sia un NCName che una destinazione dell'istruzione di elaborazione. |
7.3 | Errore* |
La creazione di un'istanza del contenuto xsl:processing-instruction crea nodi diversi da quelli di testo. |
7.3 | Errore* |
Il risultato della creazione di un'istanza del contenuto di xsl:processing-instruction contiene la stringa "?>" |
7.3 | Recupera |
Il risultato della creazione di un'istanza del contenuto di xsl:processing-instruction contiene la stringa "--" o termina con "-". |
7.4 | Recupera |
Il risultato della creazione di un'istanza del contenuto di xsl:comment crea nodi diversi da quelli di tipo text. |
7.4 | Errore* |
Il modello all'interno di un elemento di associazione della variabile restituisce un nodo Attribute o un nodo dello spazio dei nomi. | 11.2 | Errore* |
Si verifica un errore durante il recupero della risorsa dall'URI passato nella funzione del documento. | 12.1 | Error |
Il riferimento all'URI nella funzione del documento contiene un identificatore di frammento e si verifica un errore nell'elaborazione di tale identificatore. | 12.1 | Ripristino* |
Esistono più attributi con lo stesso nome ma con valori diversi che non sono elementi sezioni cdata denominati in xsl:output e tali attributi hanno la stessa precedenza di importazione. |
16 | Recupera |
Il processore non supporta la codifica nell'attributo di codifica xsl:output . |
16.1 | Recupera |
Disabilitazione dell'escape dell'output per un nodo di tipo text usato per scopi diversi da quelli di un nodo di tipo text nell'albero dei risultati. | 16.4 | Ripristino* |
Conversione di un frammento di albero risultato in un numero o stringa, se il frammento contiene un nodo di tipo text con l'escape dell'output abilitato. | 16.4 | Ripristino* |
L'escape dell'output è disattivato per un carattere che non può essere rappresentato nella codifica usata dal processore XSLT per l'output. | 16.4 | Ripristino* |
Aggiunta di un nodo dello spazio dei nomi a un elemento dopo che a tale elemento sono stati aggiunti elementi figlio o attributi. | errata 25 | Errore* |
L'attributo value di un xsl:number è un valore NaN, infinito o minore di 0,5. |
errata 24 | Recupera |
Il secondo set di nodi dell'argomento della funzione del documento è vuoto e il riferimento all'URI è relativo. | errata 14 | Recupera |
* Questo comportamento è diverso rispetto a quello della classe XslTransform. Per altre informazioni, vedere Implementazione di comportamenti discretionary nella classe XslTransform.