Freigeben über


Auflösen von externen XSLT-Stylesheets und Dokumenten

Während einer Transformation müssen Sie u. U. mehrmals externe Ressourcen auflösen.

HinweisHinweis

Die XslTransform-Klasse ist in .NET Framework, Version 2.0 veraltet.Mithilfe der XslCompiledTransform-Klasse können Sie XSLT-Transformationen (Extensible Stylesheet Language for Transformations) vornehmen.Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und Migrieren von der XslTransform-Klasse.

Während einer Transformation müssen Sie u. U. mehrmals externe Ressourcen auflösen:

  • Während Load ausgeführt wird, um ein externes Stylesheet zu suchen.

  • Während Load ausgeführt wird, um ein beliebiges <xsl:include>-Element oder ein beliebiges <xsl:import>-Element im Stylesheet aufzulösen.

  • Während Transform ausgeführt wird, um eine beliebige document()-Funktion aufzulösen.

Verwenden der XmlResolver-Klasse

Wenn für den Zugriff auf eine Netzwerkressource eine Authentifizierung erforderlich ist, verwenden Sie die Load-Methoden, die über einen XmlResolver-Parameter verfügen, um das XmlResolver-Objekt zu übergeben, bei dem die notwendigen Anmeldeeigenschaften festgelegt sind.

Wenn Sie einen benutzerdefinierten XmlResolver verwenden möchten, oder wenn Sie abweichende Anmeldeinformationen angeben müssen, finden Sie in der nachfolgenden Tabelle die erforderliche Vorgehensweise, je nach dem für das Auflösen der externen Ressource erforderlichen Zeitpunkt.

Aufzulösender Prozess

Erforderliche Vorgehensweise

Während Load ausgeführt wird, um das Stylesheet zu suchen.

Geben Sie die Überladung der Load-Methode an, die einen XmlResolver als Parameter annimmt, wenn sich das Stylesheet in einer Ressource befindet, die Anmeldeinformationen erfordert.

Während Load ausgeführt wird, um <xsl:include> oder <xsl:import> aufzulösen.

Geben Sie die Überladung der Load-Methode an, die einen XmlResolver als Parameter annimmt. Der XmlResolver wird verwendet, um Stylesheets zu laden, auf die durch die import-Anweisung oder die include-Anweisung verwiesen wird. Wenn Sie null übergeben, werden externe Ressourcen nicht aufgelöst.

Während einer Transformation zum Auflösen einer beliebigen document()-Funktion.

Geben Sie den XmlResolver während der Transformation mit der Transform-Methode an, die ein XmlResolver-Argument annimmt.

Mit der document()-Funktion werden neben den ursprünglichen XML-Daten des Eingabestreams weitere XML-Ressourcen aus einem Stylesheet abgerufen. Da diese Funktion das Einbinden von XML-Daten ermöglicht, die sich an einer anderen Stelle befinden, wird durch einen XmlResolver mit einem für die Transform-Methode angegebenen null-Wert das Ausführen der document()-Funktion verhindert. Wenn Sie die document()-Funktion verwenden möchten, verwenden Sie zusätzlich zum entsprechenden Berechtigungssatz die Transform-Methode, die einen XmlResolver als Parameter annimmt.

Weitere Informationen zur Load-Methode und ihrer Verwendung des XmlResolver finden Sie unter XslTransform.Load(String, XmlResolver). Weitere Informationen zur XmlResolver-Klasse finden Sie unter Auflösen von Ressourcen mit dem "XmlResolver" und XmlResolver-Klasse.

Wenn die Transform-Methode aufgerufen wird, werden die Berechtigungen mit den zur Ladezeit bereitgestellten Beweisen berechnet, und dem gesamten Transformationsprozess wird dieser Berechtigungssatz zugewiesen. Bei dem Versuch, durch die document()-Funktion eine Aktion zu initiieren, die eine nicht im Berechtigungssatz enthaltene Berechtigung erfordert, wird eine Ausnahme ausgelöst.

Siehe auch

Konzepte

XSLT-Transformationen mit der XslTransform-Klasse

Implementierung des XSLT-Prozessors durch die XslTransform-Klasse

Ausgaben aus "XslTransform"

XSLT-Transformationen über unterschiedliche Speicher

"XsltArgumentList" für Stylesheetparameter und Erweiterungsobjekte

Skripterstellung für ein XSLT-Stylesheet mit <msxsl:script>

Unterstützung der msxsl:node-set()-Funktion

"XPathNavigator" in Transformationen

"XPathNodeIterator" in Transformationen

XPathDocument-Eingaben in "XslTransform"

XmlDataDocument-Eingaben in "XslTransform"

XmlDocument-Eingaben in "XslTransform"