Wiederherstellbare XSLT-Fehler

Im W3C-Dokument „XSL Transformations (XSLT) Version 1.0“ gibt es bestimmte Bereiche, bei denen es dem Anbieter der Implementierung freigestellt ist, wie er mit der jeweiligen Situation umgeht. Diese Bereiche werden als "freigegebene Verhaltensweisen" bezeichnet. Laut XSLT 1.0-Empfehlung, Abschnitt 7.3, "Creating Processing Instructions", liegt z. B. ein Fehler vor, wenn durch Instanziierung des Inhalts von xsl:processing-instruction außer Textknoten auch andere Knoten erstellt werden. Bei bestimmten Problemen gibt die Empfehlung zu XSLT 1.0 auch Maßnahmen für den Fall an, dass der Prozessor eine Wiederherstellung vom Fehler durchführt. Für das in Abschnitt 7.3 angeführte Problem empfiehlt das W3C, die Knoten einschließlich des Inhalts zu ignorieren, damit die Implementierung von diesem Fehler wiederherstellen kann.

Freigegebene Verhaltensweisen

Die folgenden Tabelle enthält alle freigegebenen Verhaltensweisen, die gemäß der Empfehlung zu XSLT 1.0 zugelassen sind, und beschreibt, wie diese Verhaltensweisen von der XslCompiledTransform-Klasse behandelt werden.

XSLT-Bedingung Bereich XslCompiledTransform-Verhaltensweise
Ein Textknoten entspricht sowohl xsl:strip-space als auch xsl:preserve-space. 3.4 Wiederherstellen
Ein Quellknoten entspricht mehreren Vorlagenregeln. 5.5 Wiederherstellen
Ein Namespace-URI (Uniform Resource Identifier) ist als Alias für mehrere Namespace-URIs deklariert, die alle die gleiche Importpriorität haben. 7.1.1 Wiederherstellen
Das aus einem Attributwert erstellte name-Attribut im xsl:attribute und im xsl:element ist kein QName. 7.1.2, 7.1.3 Fehler*
Zwei Attributgruppen mit derselben Importpriorität und demselben erweiterten Namen haben ein gemeinsames Attribut, und es gibt keine andere Attributgruppe, die das gemeinsame Attribut mit demselben Namen und einer höheren Priorität enthält. 7.1.4 Wiederherstellen
Hinzufügen eines Attributs zu einem Element, nachdem diesem untergeordnete Elemente hinzugefügt wurden. 7.1.3 Fehler*
Erstellen eines Attributs mit dem Namen 'xmlns'. 7.1.3 Fehler*
Hinzufügen eines Attributs zu einem Knoten, bei dem es sich nicht um ein Element handelt. 7.1.3 Fehler*
Erstellen von anderen Knoten als Textknoten während der Instanziierung des Inhalts des xsl:attribute-Attributs. 7.1.3 Fehler*
Das name-Attribut einer xsl:processing-instruction ergibt nicht gleichzeitig einen NCName und ein Verarbeitungsanweisungsziel. 7.3 Fehler*
Bei der Instanziierung des Inhalts von xsl:processing-instruction werden statt Textknoten andere Knoten erstellt. 7.3 Fehler*
Die Ergebnisse der Instanziierung des Inhalts von xsl:processing-instruction enthalten die Zeichenfolge „?>“ 7.3 Wiederherstellen
Die Ergebnisse der Instanziierung des Inhalts von xsl:processing-instruction enthalten die Zeichenfolge "--" oder enden mit "-". 7.4 Wiederherstellen
Bei den Ergebnisse der Instanziierung des Inhalts von xsl:comment werden statt Textknoten andere Knoten erstellt. 7.4 Fehler*
Von der Vorlage innerhalb eines Variablenbindungselements wird ein Attributknoten oder ein Namespace-Knoten zurückgegeben. 11.2 Fehler*
Fehler beim Abrufen der Ressource aus dem URI, der in die Dokumentfunktion übergeben wird. 12.1 Fehler
Der URI-Verweis in der Dokumentfunktion enthält einen Fragmentbezeichner, und es tritt ein Fehler bei der Verarbeitung des Fragmentbezeichners auf. 12.1 Wiederherstellen*
Es sind mehrere Attribute mit demselben Namen aber unterschiedlichen Werten vorhanden, die in der xsl:output nicht als cdata-section-Elemente mit derselben Importpriorität bezeichnet werden. 16 Wiederherstellen
Die Codierung im xsl:output-Codierungsattribut wird vom Prozessor nicht unterstützt. 16.1 Wiederherstellen
Deaktivieren des Ausgabeschutzes für einen Textknoten, der in der Ergebnisstruktur nicht für einen Textknoten verwendet wird. 16.4 Wiederherstellen*
Konvertieren eines Ergebnisstrukturfragments in eine Zahl oder eine Zeichenfolge, falls das Ergebnisstrukturfragment einen Textknoten mit aktiviertem Ausgabeschutz enthält. 16.4 Wiederherstellen*
Der Ausgabeschutz wird für ein Zeichen deaktiviert, das in der vom XSLT-Prozessor für die Ausgabe verwendeten Codierung nicht dargestellt werden kann. 16.4 Wiederherstellen*
Hinzufügen eines Namespace-Knotens zu einem Element, nachdem diesem entweder untergeordnete Elemente oder Attribute hinzugefügt worden sind. errata 25 Fehler*
Das value-Attribut einer xsl:number ist NAN (Not a Number), unendlich oder kleiner als 0,5. errata 24 Wiederherstellen
Das zweite node-set-Argument der Dokumentfunktion ist leer, und der URI-Verweis ist relativ. errata 14 Wiederherstellen

* Diese Verhaltensweise unterscheidet sich von der der XslTransform-Klasse. Weitere Informationen finden Sie unter Implementierung von freigegebenen Verhaltensweisen in der XslTransform-Klasse.

Siehe auch