Implementazione di comportamenti discretionary nella classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class

Nota

La classe XslTransform è obsoleta in .NET Framework 2.0.NET Framework 2.0.The XslTransform class is obsolete in the .NET Framework 2.0.NET Framework 2.0. È possibile eseguire le trasformazioni XSLT (Extensible Stylesheet Language for Transformations) usando la classe XslCompiledTransform.You can perform Extensible Stylesheet Language for Transformations (XSLT) transformations using the XslCompiledTransform class. Per altre informazioni, vedere Utilizzo della classe XslCompiledTransform e Migrazione dalla classe XslTransform.See Using the XslCompiledTransform Class and Migrating From the XslTransform Class for more information.

Sono definiti discretionary i comportamenti, elencati nella raccomandazione W3C (World Wide Web Consortium) (www.w3.org/TR/xslt) XSL Transformations (XSLT) Version 1.0 (informazioni in lingua inglese), nei quali l'implementazione sceglie una delle numerose opzioni disponibili per gestire una determinata situazione.Discretionary behaviors are described as behaviors listed in the World Wide Web Consortium (W3C) XSL Transformations (XSLT) Version 1.0 Recommendation (www.w3.org/TR/xslt), in which the implementation provider chooses one of several possible options as a way to handle a situation. Nella sezione 7.3 Creating Processing Instructions della raccomandazione W3C, 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.For example, in section 7.3 Creating Processing Instructions, the W3C Recommendation says that it is an error if instantiating the content of xsl:processing-instruction creates nodes other than text nodes. Per alcuni problemi, il W3C fornisce una linea d'azione per il caso in cui il processore tenta di risolvere l'errore.For some problems, the W3C tells what decision should be made if the processor decides to recover from the error. Per l'errore illustrato nella sezione 7.3 viene spiegato che il problema può essere risolto ignorando i nodi e il relativo contenuto.For the problem given in section 7.3, the W3C says that the implementation can recover from this error by ignoring the nodes and their content.

Pertanto, nella tabella seguente sono elencati, per ciascuno dei comportamenti discretionary consentiti dal W3C, i comportamenti discretionary relativi all'implementazione .NET Framework.NET Framework della classe XslTransform e la sezione della raccomandazione W3C XSL Transformations (XSLT) 1.0 (informazioni in lingua inglese) in cui viene trattato tale problema.Therefore, for each of the discretionary behaviors allowed by the W3C, the table below lists the discretionary behaviors implemented for the .NET Framework.NET Framework implementation of the XslTransform class, and what section in the W3C XSLT 1.0 Recommendation that this problem is discussed.

ProblemaProblem ComportamentoBehavior SezioneSection
Nodo di tipo text corrispondente sia a xsl:strip-space sia a xsl:preserve-space.A text node matches both xsl:strip-space and xsl:preserve-space. RipristinoRecover 3.43.4
Nodo di origine corrispondente a più di una regola dei modelli.A source node matches more than one template rule. RipristinoRecover 5.55.5
Un URI dello spazio dei nomi è dichiarato come alias per più URI dello spazio dei nomi, tutti con la stessa precedenza di importazione.A namespace Uniform Resource Identifier (URI) is declared to be an alias for multiple namespace URIs, all having the same import precedence. RipristinoRecover 7.1.17.1.1
L'attributo del nome in xsl:attribute e xsl:element generato da un modello del valore dell'attributo non è un nome completo valido (QName).The name attribute in xsl:attribute and xsl:element generated from an attribute value template is not a valid qualified name (QName). Generazione di eccezioneException thrown 7.1.12 e 7.1.37.1.2 and 7.1.3
Aggiunta di un attributo a un elemento dopo che al nodo dell'elemento sono già stati aggiunti nodi figlio.Adding an attribute to an element after child nodes have already been added to the element node. RipristinoRecover 7.1.37.1.3
Aggiunta di un attributo in una posizione diversa da un nodo Element.Adding an attribute to anything other than an element node. RipristinoRecover 7.1.37.1.3
L'istanza del contenuto dell'elemento xsl:attribute creata non è un nodo di tipo text.Instantiation of the content of the xsl:attribute element is not a text node. RipristinoRecover 7.1.37.1.3
Due set di attributi hanno la stessa precedenza di importazione e lo stesso nome espanso.Two attribute sets have the same import precedence and expanded name. Entrambi hanno lo stesso attributo e non sono presenti altri set di attributi contenenti l'attributo comune, con lo stesso nome e con un'importanza superiore.Both have the same attribute, and there is no other attribute set containing the common attribute with the same name with higher importance. RipristinoRecover 7.1.47.1.4
xsl:processing-instruction non restituisce un nome senza due punti (NCName), né una destinazione dell'istruzione di elaborazione.xsl:processing-instruction name attribute does not yield both a no-colon name (NCName) and a Processing Instruction target. RipristinoRecover 7.37.3
La creazione di un'istanza del contenuto xsl:processing-instruction crea nodi diversi da quelli di testo.Instantiating the content of xsl:processing-instruction creates nodes other than text nodes. RipristinoRecover 7.37.3
I risultati della creazione di un'istanza del contenuto di xsl:processing-instruction contengono la stringa "?>".Results of instantiating the content of the xsl:processing-instruction contains the string "?>". RipristinoRecover 7.37.3
I risultati della creazione di un'istanza del contenuto di xsl:comment contengono la stringa "--" o terminano con "-".Results of instantiating the content of the xsl:comment contains the string "--", or ends with "-". RipristinoRecover 7.47.4
I risultati della creazione di un'istanza del contenuto di xsl:comment creano nodi diversi da quelli di testo.Results of instantiating the content of the xsl:comment creates nodes other than text nodes. RipristinoRecover 7.47.4
Il modello all'interno di un elemento di associazione della variabile restituisce un nodo Attribute o un nodo dello spazio dei nomi.The template within a variable-binding element returns an attribute node or a namespace node. RipristinoRecover 11.211.2
Si verifica un errore durante il recupero della risorsa dall'URI passato nella funzione del documento.There is an error retrieving the resource from the URI passed into the document function. Generazione di eccezioneException thrown 12.112.1
Il riferimento all'URI nella funzione del documento contiene un identificatore di frammento e si verifica un errore nell'elaborazione di tale identificatore.The URI reference in the document function contains a fragment identifier, and there is an error processing the fragment identifier. Generazione di eccezioneException thrown 12.112.1
Esistono più attributi con lo stesso nome che non sono denominati cdata-section-elements in xls:output e tali attributi hanno la stessa precedenza di importazione.There are multiple attributes with the same name that are not named cdata-section-elements in xls:output, and these attributes have the same import precedence. RipristinoRecover 1616
Il processore non supporta il valore di codifica dei caratteri fornito nell'attributo encoding dell'elemento xsl:output.The processor does not support the character encoding value given in the encoding attribute of the xsl:output element. RipristinoRecover 16.116.1
L'attributo disable-output-escaping viene usato per un nodo di tipo text che a sua volta viene usato per creare un elemento diverso da un nodo di tipo text nell'albero risultato.disable-output-escaping is used for a text node, and that text node is used to create something other than a text node in the result tree. L'attributo disable-output-escaping viene ignoratodisable-output-escaping attribute is ignored 16.416.4
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.Converting a result tree fragment to a number or string if the result tree fragment contains a text node with output escaping enabled. IgnoratoIgnored 16.416.4
L'escape dell'output è disabilitato per i caratteri che non possono essere rappresentati nella codifica usata dal processore XSLT per l'output.Output escaping is disabled for characters that cannot be represented in the encoding that the XSLT processor is using for output. IgnoratoIgnored 16.416.4
Aggiunta di un nodo dello spazio dei nomi a un elemento dopo che a tale elemento sono stati aggiunti elementi figlio o attributi.Adding a namespace node to an element after children have been added to it or after attributes have been added to it RipristinoRecover Errata e25Errata e25
xsl:number è un valore NaN, infinito o minore di 0,5.xsl:number is NaN, infinite, or less than 0.5. RipristinoRecover Errata e24Errata e24
Il secondo set di nodi dell'argomento della funzione del documento è vuoto e il riferimento all'URI è relativo.The second argument node-set to the document function is empty and the URI reference is relative RipristinoRecover Errata e14Errata e14

Le sezioni Errata si trovano in XSL Transformations (XSLT) Version 1.0 Specification Errata, all'indirizzo http://www.w3.org/1999/11/REC-xslt-19991116-errata (informazioni in lingua inglese).Sections from the errata can be found in the World Wide Web Consortium (W3C) XSL Transformations (XSLT) Version 1.0 Specification Errata, located at www.w3.org/1999/11/REC-xslt-19991116-errata.

Comportamenti dell'implementazione definiti dall'utenteCustom-Defined Implementation Behaviors

Alcuni comportamenti sono caratteristici solo dell'implementazione della classe XslTransform.There are behaviors unique to the XslTransform class implementation. Contenuto della sezione vengono descritte l'implementazione di xsl:sort specifica del provider e le funzionalità supportate dalla classe XslTransform.This section discusses the provider-specific implementation of the xsl:sort and optional features that are supported by the XslTransform class.

xsl:sortxsl:sort

Nella raccomandazione W3C XSLT 1.0 (informazioni in lingua inglese) sono contenute alcune osservazioni relative a come eseguire un ordinamento usando le trasformazioni.When using a transformation to sort, the W3C XSLT 1.0 Recommendation makes some observations. Ad esempio:They are:

  • Due processori XSLT possono essere conformi, ma potrebbero eseguire l'ordinamento ordinare in maniera differente.Two XSLT processors may be conforming processors, but still may sort differently.

  • Non tutti i processori XSLT supportano le stesse lingue.Not all XSLT processors support the same languages.

  • In relazione alle lingue, è possibile che processori diversi eseguano l'ordinamento in modo diverso per una particolare lingua non specificata da xsl:sort..With regard to languages, different processors may vary on their sorting on a particular language not specified on the xsl:sort.

La tabella seguente mostra il comportamento di ordinamento implementato per ogni tipo di dati nell'implementazione .NET Framework di una trasformazione usando XslTransform.The following table shows the sorting behavior implemented for each data type in the .NET Framework implementation of a transformation using XslTransform.

Tipo di datiData type Modalità di ordinamentoSorting behavior
TextText I dati vengono ordinati usando il metodo String.Compare di Common Language Runtime (CLR) e le impostazioni locali specifiche della lingua.Data is sorted using the common language runtime (CLR) String.Compare method, and the cultural locale. Quando il tipo di dati risulta uguale a "text", l'ordinamento nella classe XslTransform si svolge in modo identico ai comportamenti nel confronto delle stringhe del CLR.When the data type equals "text", sorting in the XslTransform class behaves identically to the string comparison behaviors of the CLR.
NumberNumber I valori numerici vengono considerati come numeri XPath e vengono ordinati in base alle informazioni contenute nella sezione 3.5 della raccomandazione W3C XML Path Language (XPath) Version 1.0, disponibile all'indirizzo www.w3.org/TR/xpath.html#numbers (informazioni in lingua inglese).Numeric values are treated as XML Path Language (XPath) numbers and are sorted according to the details outlined in the W3C XML Path Language (XPath) Version 1.0 Recommendation, Section 3.5 (www.w3.org/TR/xpath.html#numbers).

Funzionalità opzionali supportateOptional Features Supported

Nella tabella seguente sono riportate le funzionalità la cui implementazione è facoltativa per un processore XSLT e che vengono implementate nella classe XslTransform.The following table shows the features that are optional for an XSLT processor to implement and are implemented in the XslTransform class.

FunzionalitàFeature Posizione del riferimentoReference location NoteNotes
Attributo disable-output-escaping sui tag <xsl:text...> e <xsl:value-of...>.disable-output-escaping attribute on <xsl:text...> and <xsl:value-of...> tags. Raccomandazione W3C XSLT 1.0,W3C XSLT 1.0 Recommendation,

Sezione 16.4Section 16.4
L'attributo disable-output-escaping viene ignorato quando gli elementi xsl:text o xsl:value-of sono usati in un elemento xsl:comment, xsl:processing-instruction, o xsl:attribute.The disable-output-escaping attribute is ignored when the xsl:text or xsl:value-of elements are used in an xsl:comment, xsl:processing-instruction, or xsl:attribute element.

I frammenti di albero risultato, che contengono testo e l'output di testo di cui è stato eseguito l'escape, non sono supportati.Result tree fragments that contain text and the text output that has been escaped are not supported.

L'attributo disable-output-escaping viene ignorato durante l'esecuzione di una trasformazione in un oggetto XmlReader o XmlWriter.The disable-output-escaping attribute is ignored when transforming to an XmlReader or XmlWriter object.

Vedere ancheSee Also

XslTransform
Implementazione del processore XSLT da parte della classe XslTransformXslTransform Class Implements the XSLT Processor
Trasformazioni XSLT con la classe XslTransformXSLT Transformations with the XslTransform Class
XPathNavigator nelle trasformazioniXPathNavigator in Transformations
XPathNodeIterator nelle trasformazioniXPathNodeIterator in Transformations
Input di XPathDocument in XslTransformXPathDocument Input to XslTransform
Input di XmlDataDocument in XslTransformXmlDataDocument Input to XslTransform
Input di XmlDocument in XslTransformXmlDocument Input to XslTransform