INFO: Wegweiser für die Ausführung von XSLT-Transformationen in .NET-Anwendungen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 313997 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel enthält eine Roadmap zur Einführung der.NET Framework-Namespaces und Klassen, mit denen Sie programmgesteuert Extensible ausgeführt Stylesheets Language Transformation (XSLT) Transformationen in .NET-Anwendungen. Roadmap-Artikel enthalten Links zu nützlichen Informationen, einschließlich online-Dokumentation, Microsoft Knowledge Base-Artikeln und Microsoft-Whitepapers, um sich über ein Microsoft-Produkt oder Technologie vertraut zu machen.

Dieser Artikel ist keine XSLT-Lernprogramm. In diesem Artikel wird davon ausgegangen, dass Sie mit der World Wide Web Consortium (W3C) XSLT-standard und verfügen über Erfahrung mit dem Schreiben von XSLT-Stylesheets zum Transformieren von XML-Daten.

(Übersicht)

XSLT ist eine World Wide Web Consortium (W3C) zum Transformieren von XML-Daten standard. XSLT ist i. d. r. verwendet, um Stylesheets zum Transformieren von XML-Daten in anderen Formaten wie HTML, fester Länge Text, durch Kommas getrennten Text oder ein anderes XML-Format zu schreiben.

Aus der Sicht der Entwickler ist XSLT eine Programmiersprache mit eine umfassende XML-basierte Syntax, die Elemente, die implementiert die Programmierung von Konstrukten und Elemente für allgemeine Transformation Anforderungen entsprechen.

XSLT-Stylesheets verwenden häufig Abfragen XML Path Language (XPath), Knoten im XML-Quelldokument zu suchen und übernehmen die XSLT-Vorlagen, um diese Knoten zu transformieren. Die Effizienz der XPath-Abfragen in einem XSLT-Stylesheet häufig beeinflussen und Auswirkungen auf die Leistung von Transformationen, die es verwenden.

Ein Punkt auf hoher Ebene stehen ist ein XSLT-Prozessor eine Softwarekomponente, die einem angegebenen XML-Dokument eine XSLT-Transformation ausführen und die erforderliche Ausgabe generiert ein angegebenes Stylesheet angewendet wird.

Die endgültige Ausgabe, die die XSLT-Transformationen zu generieren, sind in der Regel Ergebnisdokumente, die die ursprünglichen XML-Daten in das angegebene Ziel-Format zu präsentieren.

Schreiben von Code in einer XSLT-Transformation ausgeführt.

Zeigen die folgenden Schnellstart-Lernprogramm und der Microsoft Knowledge Base-Artikel Schreiben von Code in einer .NET-Anwendung zu einer XML-Dokument eine einfache Transformation ausführen eine XSLT-Stylesheet anwenden:
307322 Gewusst wie: Anwenden eine XSL-Transformation auf ein XML-Dokument mithilfe von Visual C# .NET
300929 Gewusst wie: Anwenden eine XSL-Transformation aus einem XML-Dokument einem XML-Dokument mithilfe von Visual Basic .NET

Der System.Xml.Xsl-Namespace

Die XslTransform -Klasse in der System.Xml.Xsl -Namespace implementiert.NET Framework XSLT-Prozessor. Instanzen dieser Klasse erstellt und zum Ausführen von XSLT-Transformationen in .NET-Anwendungen verwendet. Die Implementierung des XSLT-Prozessors in der.NET Framework ist kompatibel mit Version 1.0 von der W3C-Empfehlung zu XSLT.

Der System.Xml.Xsl -Namespace implementiert auch die folgenden Klassen zur Unterstützung von XSLT-Ausnahmebehandlung und erweiterte Optionen, die zur Ausführung der XSLT-Transformationen und XPath-Abfragen beziehen:
  • XsltArgumentList. Instanzen dieser Klasse können Sie die Erweiterung Objektinstanzen und Werte für XSLT-Parameter, die XSLT-Stylesheets zu definieren und als Referenz angeben.
  • XsltCompileException. Diese Klasse wird die.NET Framework-Ausnahme generiert, wenn ein Fehler auftritt, während Sie eine XSLT-Stylesheet kompilieren. Eine XSLT-Stylesheet wird kompiliert, wenn die Load -Methode, der ein XslTransform -Objekt ausgeführt wird.
  • XsltException. Diese Klasse wird die.NET Framework-Ausnahme generiert, wenn ein Laufzeitfehler tritt auf, während Sie eine XSLT-Transformation ausgeführt werden.
  • XsltContextIXsltContextFunctionund IXsltContextVariable. Diese erweiterten Komponenten werden verwendet, um einen benutzerdefinierten XPath-Abfrage Ausführungskontext zu implementieren, wenn es notwendig ist, implementieren und benutzerdefinierte Funktionen und Variablen in XPath-Abfragen, die in .NET-Anwendungen ausgeführt werden, mithilfe der XPathNavigator -Klasse und Klassen (DOKUMENTOBJEKTMODELL) verweisen.

    Um leichter benutzerdefinierte Funktionen und Variablen in XPath-Abfrageausdrücke zu implementieren, die in einem XSLT-Stylesheet enthalten sind, können Sie die Inline-Skriptblöcke, Erweiterungsobjekte, XSLT-Variable oder Parameter.

Erweiterte XSLT-Funktionen

Dieser Abschnitt beschreibt einige erweiterte Features von XSLT.

Pipelining XSLT-Transformationen

Pipelining bezieht sich auf den Prozess der Transformation von XML-Quelldokuments mit inkrementell mindestens zwei XSLT-Stylesheets anwenden. Die Ausgabe, die in jeder Phase intermediate generiert wird als Eingabe für die nächste Phase bereitgestellt durch alle in die Endphase und generiert die entsprechende Ausgabe.

Diese Methode ist nützlich, wenn Sie die Ausgabe beibehalten müssen, die die intermediate Phasen zur weiteren Verarbeitung zu generieren, die nicht direkt in den Transformationsprozess verbunden ist.Weitere Informationen zu diesem Thema und ein Codebeispiel, das ihre Verwendung veranschaulicht, klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
320847 Gewusst wie: Pipeline XSLT-Transformationen in .NET-Anwendungen

Parametrisierte XSLT-Transformationen

Es ist ein XSLT-üblich, definieren und Parameter in Stylesheets verwenden. Parametrisierte XSLT-Stylesheets verwenden Sie das <xsl:param>-Element definiert die Parameter auf die verwiesen wird in XPath-Abfrageausdrücke selektiv zu suchen und Transformieren von Knoten in den XML-Quelldaten. Die Werte für die definierten Parameter möglich in das Stylesheet hartcodiert oder zur Laufzeit. Die letztere Vorgehensweise dynamisch Angabe Eingabeparameterwerte zum Steuern des Transformationsprozesses ist die häufigste Verwendung dieser Funktion.

In .NET Applications dient ein XsltArgumentList -Objekt für XSLT-Parameter zur Ausführungszeit Werte angeben. AddParam -Methode zum Hinzufügen von Name-Wert-Paar, das einen Parameter darstellt, der in das Stylesheet und dessen Wert auf ein XsltArgumentList -Objekt definiert ist. XsltArgumentList -Objekt wird dann als Parameter bereitgestellt werden, beim Ausführen der Transform -Methode des XslTransform -Objekts, das zum Ausführen der Transformations verwendet wird.

Die GetParam und die RemoveParam -Methoden werden verwendet, für den Zugriff auf und individuelle Parameter zu entfernen, die ein XsltArgumentList -Objekt hinzugefügt werden.</xsl:param>Weitere Informationen zum Ausführen von parametrisierten XSLT-Transformation in .NET-Anwendungen finden Sie die Artikelnummer unten klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
321704 Gewusst wie: Ausführen der parametrisierte XSL-Transformationen in .NET-Anwendungen

Inline-Skriptblöcke

Skript Inlinefunktionen sind eine der Optionen, mit denen Sie zum Implementieren von benutzerdefinierten Funktionen und sub-Prozeduren, die im XPath-Abfrageausdrücke verwiesen werden, die in einem XSLT-Stylesheet verwendet werden. Die Möglichkeit, Inline-Skriptblöcke in XSLT-Stylesheets enthalten, ist eine Erweiterung des W3C.

In der.NET Framework sind benutzerdefinierte Inlinefunktionen und Unterroutinen in Blöcken von <msxsl:script>in das XSLT-Stylesheet codiert. Eine Visual Studio Microsoft.NET Programmiersprache wie Microsoft Visual Basic .NET oder Microsoft Visual C# .NET können Sie diese Routinen implementieren.

Einer der Nachteile, die mit der Verwendung von Inline-Skriptblöcke ist, dass sie die XSLT-Stylesheets nicht portabel machen. Die Technologie, die Tags und die Semantik, die zum Implementieren von Inline-Skriptblöcke sind herstellerspezifische Erweiterungen, die die W3C XSLT-Spezifikationen nicht standardisiert werden.

Sie können nur eine XSLT-Stylesheet, die definiert und erfolgreich mithilfe von Inline-Skriptblöcke in Transformationen, die mithilfe eines XSLT-Prozessors ausgeführt werden, die ähnliche Semantik interpretieren und Integration mit der Technologie, um den Code auszuführen.

In der.NET Framework werden verwaltete Assemblys generiert und zum Ausführen des enthaltene Codes in <msxsl:script>Inline implizit geladen Skriptblöcke. Existiert ein bekanntes Problem in der.NET Framework, die verhindert, dass diese Assemblys beim Abschluss der Transformation korrekt entladen wird. Diese Anomalie kann zu einer Erhöhung der Speicherauslastung führen, wenn das betroffenen Stylesheet wiederholt zum Ausführen von XSLT-Transformationen geladen wird. Nicht freigegebene Speicher wird freigegeben, nur, wenn der Host-Prozess wiederverwendet wird. </msxsl:script></msxsl:script>Weitere Informationen zu diesem Problem in der.NET Framework klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
316775 PRB: Kann nicht entladen Assemblys, die Sie erstellen und mithilfe von XSLT-Skript laden
Zum Umgehen dieses Problems in Microsoft ASP.NET Anwendungen können Sie die betroffenen Stylesheets nur einmal während der Lebensdauer der Anwendung laden, cache die betroffenen Stylesheets (in der ASP.NET-Cache) und dann die zwischengespeicherten Versionen für Transformationen wiederverwenden, danach.

In Windows Forms und Konsolenanwendungen können Sie globale XslTransform -Objekt-Instanzen, die betroffenen Stylesheets geladen, beim Starten der Anwendung und höhere Transformationen auszuführen. Diese Problemumgehungen gelten nicht, wenn XSLT-Transformationen in statusfreien Umgebungen (z. B. mit Enterprise Services-Komponenten mittlerer Ebene) ausgeführt werden müssen.

Microsoft empfiehlt die Verwendung von XSLT-Erweiterungsobjekte zum Implementieren von benutzerdefinierter XPath-Erweiterungsfunktionen, um dieses Problem zu umgehen.

XSLT-Erweiterungsobjekte

Microsoft empfiehlt die Verwendung des Extension Objects benutzerdefinierte Unterroutinen und Funktionen, auf die verwiesen werden in XPath-Abfrageausdrücke zu implementieren, die in einem XSLT-Stylesheet verwendet werden.

Sie können.NET Framework DLLs zu implementieren und Erweiterungsobjekte verwenden, beim Ausführen von Transformationen in .NET-Anwendungen erstellen. Die benutzerdefinierte Unterroutinen und Funktionen in einer DLL implementiert sind, und eine Objektinstanz der DLL-Komponente wird mit einem XsltArgumentList -Objekt beim Ausführen des Transform -Methode, der ein XslTransform -Objekt als Parameter zur Laufzeit bereitgestellt.

Die AddExtensionObject -Methode der XsltArgumentList -Klasse wird verwendet, eine Objektinstanz Erweiterung XsltArgumentList -Objekt hinzu. Können Sie Abrufen und das Entfernen von Methoden des Objekts Erweiterung für den Zugriff auf und eine Objektinstanz Erweiterung zu entfernen, die ein XsltArgumentList -Objekt hinzugefügt wird.

Die W3C XSLT-Spezifikation geht auf das Konzept und die Verwendung des Extension-Elemente und Funktionen ohne beachten oder ein Verweis auf die Basistechnologie, die Sie verwenden müssen, deren Implementierung. Sie müssen definieren und Verwenden von standardisierten XML-Namespacepräfixe in Stylesheets verweisen auf Funktionen und Unterroutinen, die in Extension Objects implementiert werden. Kreditoren können eine Technologie auswählen, die sich am besten für ihre Plattform, um die Implementierungsaspekte die Erweiterungsobjekte zu erreichen ist.Weitere Informationen über das Konzept und die Verwendung von XSLT-Erweiterungsobjekte in der.NET Framework und Schritte zum Erstellen einer End-to-End-Anwendung, die veranschaulicht, wie Erweiterungsobjekte beim Ausführen von XSLT-Transformationen in .NET-Anwendungen, klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
321702 Gewusst wie: Verwenden Sie Erweiterungsobjekte beim Ausführen von XSL-Transformationen in .NET-Anwendungen Visual Basic

Allgemeine Richtlinien für die Verwendung der.NET Framework-Klassen zum Ausführen von XSLT-Transformationen

  • XPathDocument -Klasse ist hochgradig für XSLT und XPath-Verarbeitung optimiert. Verwenden Sie für eine optimale Leistung immer ein XPathDocument -Objekt die XML-Quelle bereitstellen, während Sie eine XSLT-Transformation ausgeführt werden.
  • Sie können zwischengespeichert und wiederverwendet XslTransform -Objekten, die XSLT-Stylesheets geladen, mit denen häufig höher Transformationen verwendet werden.
  • Der XSLT-Prozessor werden nicht automatisch Erweiterung Objektinstanzen zwischengespeichert, die in XSLT-Transformationen verwendet werden. Sie können zwischengespeichert und wiederverwendet XsltArgumentList -Objekte, die zur Erweiterung Objektinstanzen für häufig verwendete XSLT-Stylesheets angeben, wenn Sie spätere Transformationen ausführen. Dies ist die Methode, um Cache-Erweiterungsobjekte, die in XSLT-Transformationen in der.NET Framework verwendet werden.
  • Eine XSLT-Stylesheet, die Inline-Skriptblöcke implementiert sollte nur einmal geladen und zwischengespeichert. Sie sollten das zwischengespeicherte XslTransform -Objekt für späteren Transformationen wiederverwenden. Dieser praktischen Übung können Sie um das Speicher-Management-Problem zu beseitigen, das in der Microsoft Knowledge Base-Artikel Q316775 beschrieben wird, wenn Sie in einem Stylesheet Inline-Skriptfunktionen verwenden müssen.
  • Microsoft empfiehlt, dass Sie Erweiterungsobjekte verwenden, um benutzerdefinierte Funktionen, auf die verwiesen werden in XPath-Abfrageausdrücke implementieren, die in XSLT-Stylesheets verwendet werden. Implementieren Sie benutzerdefinierte XsltContextIXsltContextFunctionund IXsltContextVariable Klassen, nur wenn die Implementierung und benutzerdefinierte Erweiterungsfunktionen in XPath-Abfrageausdrücke verweisen, die mithilfe der XPathNavigator und DOM-Klassen in .NET-Anwendungen ausgeführt werden.
  • Implementieren Sie Ausnahmebehandlungscode zum Behandeln von XsltCompileExceptionXsltExceptionund die Ausnahmeklassen XmlException .NET Framework beim Schreiben von Code zum Ausführen von XSLT-Transformationen. Durch diese Ausnahmeklassen bieten Informationen zu XSLT-spezifische oder XML-spezifischen Problemen, die auftreten, wenn Sie versuchen, eine XSLT-Transformation ausführen. Darüber hinaus empfiehlt Microsoft, dass Sie Code zum Behandeln von anderen Ausnahmen für bestimmten.NET Framework implementieren und Sie die generische System.Exception -Klasse implementiert, basierend auf andere, die XSLT-bezogenen Funktionen, die im Codeblock implementiert wird, die die XSLT-Transformation ausführt.

Leistung von XSLT-Transformationen in der.NET Framework

Weitere Informationen zu den Ursachen und Lösungen für die bekannte Leistungsprobleme beim Ausführen von XSLT-Transformationen in .NET-Anwendungen, klicken Sie auf die nachstehende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
325689 INFO: Leistung von XSLT-Transformationen in der.NET Framework

Problembehandlung

Wenn Sie Probleme oder wenn Sie Fragen haben, finden Sie auf der MSDN-Newsgroups, in denen Sie Ihre Erfahrungen mit Ihren Kollegen freigeben können. Sie können auch auf der Microsoft Knowledge Base verwenden, können Sie nach Artikeln zu bestimmten Themen suchen oder wenden Sie sich an Microsoft Product Support Services.
MSDN-Newsgroups
http://msdn.Microsoft.com/Newsgroups/

Durchsuchen der Knowledge Base
http://support.Microsoft.com/search

Microsoft Product Support Services
http://support.Microsoft.com

Informationsquellen

Weitere Informationen: % 1 Klicken Sie auf die Artikelnummer % 2 unten, um die Artikel der Microsoft Knowledge Base:
313651 INFO: Wegweiser für XML in der.NET Framework

Eigenschaften

Artikel-ID: 313997 - Geändert am: Mittwoch, 24. Oktober 2012 - Version: 1.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Keywords: 
kbarttyperoadmap kbinfo kbmt KB313997 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 313997
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com