Migrieren aus Version 1.1 der XML-Klassen
Aktualisiert: November 2007
Seit Version 1.1 von .NET Framework wurden die XML-Klassen vielfach aktualisiert. Um die gesamten Vorteile aller neuen Features nutzen zu können, müssen Sie den vorhandenen Code u. U. in die neuen APIs verschieben. In den Abschnitten in diesem Dokument werden Änderungen an den vorhandenen APIs beschrieben, die eine Aktualisierung des vorhandenen Codes erforderlich machen.
Microsoft .NET Framework 3.5 enthält neue Optionen für die Verarbeitung von XML-Daten. Weitere Informationen zu diesen Optionen finden Sie unter LINQ to XML.
Erstellung von "XmlReader"
Seit Version 2.0 von .NET Framework werden XmlReader-Objekte mit der statischen Create-Methode aus der XmlReader-Klasse erstellt. Ein XmlReaderSettings-Objekt gibt die Features an, die vom erstellten XmlReader unterstützt werden sollen.
Hinweis: |
---|
Obwohl .NET Framework konkrete Implementierungen der XmlReader-Klasse enthält (z. B. die Klassen XmlTextReader, XmlNodeReader und XmlValidatingReader), wird empfohlen, die XmlReader-Instanz mithilfe der Create-Methode zu erstellen. Dadurch können Sie die Vorteile aller neuen Features nutzen, die der XmlReader-Klasse hinzugefügt wurden. |
Version 1.1
Im folgenden Codebeispiel wird ein XmlTextReader-Objekt erstellt, das Leerzeichen ignoriert und eine XmlUrlResolver-Klasse zum Auflösen des Dateinamen-URI verwendet.
' Supply the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Create the XmlTextReader.
Dim reader As New XmlTextReader("https://serverName/data/books.xml")
reader.WhitespaceHandling = WhitespaceHandling.None
reader.XmlResolver = resolver
// Supply the credentials necessary to access the Web server.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Create the XmlTextReader.
XmlTextReader reader = new XmlTextReader("https://serverName/data/books.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
reader.XmlResolver = resolver;
Version 2.0
Im folgenden Codebeispiel wird mithilfe der Create-Methode ein XmlReader-Objekt mit derselben Konfiguration wie im vorherigen Beispiel erstellt.
' Supply the credentials necessary to access the Web server.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Create the XmlReader.
Dim settings As New XmlReaderSettings()
settings.IgnoreWhitespace = True
settings.XmlResolver = resolver
Dim reader As XmlReader = XmlReader.Create("https://serverName/data/books.xml", settings)
// Supply the credentials necessary to access the Web server.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Create the XmlReader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreWhitespace = true;
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create("https://serverName/data/books.xml", settings);
Weitere Informationen finden Sie unter Erstellen von XML-Readern.
XML-Validierung
In Version 2.0 von .NET Framework wurden die Klassen XmlValidatingReader und XmlSchemaCollection als veraltet gekennzeichnet. Stattdessen sollten Sie zum Erstellen eines validierenden XmlReader-Objekts die XmlReaderSettings-Klasse verwenden. Die XmlSchemaCollection wurde durch die XmlSchemaSet-Klasse ersetzt.
Version 1.1
Im folgenden Codebeispiel werden Daten mithilfe der XmlValidatingReader-Klasse und der XmlSchemaCollection-Klasse validiert.
Dim reader As New XmlValidatingReader(New XmlTextReader("books.xml"))
reader.ValidationType = ValidationType.Schema
reader.Schemas.Add("urn:books", "books.xsd")
AddHandler reader.ValidationEventHandler, AddressOf ValidationCallBack
While reader.Read()
End While
XmlValidatingReader reader = new XmlValidatingReader(new XmlTextReader("books.xml"));
reader.ValidationType = ValidationType.Schema;
reader.Schemas.Add("urn:books", "books.xsd");
reader.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
while (reader.Read());
Private Shared Sub ValidationCallBack(ByVal sender As Object, ByVal e As ValidationEventArgs)
Console.WriteLine("Validation Error: {0}", e.Message)
End Sub 'ValidationCallBack
private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
Version 2.0
Im folgenden Codebeispiel werden Daten mithilfe der XmlReader-Klasse und der XmlSchemaSet-Klasse validiert.
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:books", "books.xsd")
AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
While reader.Read()
End While
XmlReaderSettings settings = new XmlReaderSettings();
settings. ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:books", "books.xsd");
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
XmlReader reader = XmlReader.Create("books.xml",settings);
while (reader.Read());
Private Shared Sub ValidationCallBack1(ByVal sender As Object, ByVal e As ValidationEventArgs)
Console.WriteLine("Validation Error: {0}", e.Message)
End Sub 'ValidationCallBack1
private static void ValidationCallBack1(object sender, ValidationEventArgs e) {
Console.WriteLine("Validation Error: {0}", e.Message);
}
Weitere Informationen finden Sie unter Validieren von XML-Daten mit "XmlReader" und "XmlSchemaSet" zur Kompilierung von Schemata.
Erstellen von "XmlWriter"
Seit Version 2.0 von .NET Framework werden XmlWriter-Objekte mit der statischen Create-Methode aus der XmlWriter-Klasse erstellt. Ein XmlWriterSettings-Objekt gibt die Features an, die vom erstellten XmlWriter unterstützt werden sollen.
Hinweis: |
---|
Obwohl .NET Framework die XmlTextWriter-Klasse enthält, bei der es sich um eine Implementierung der XmlWriter-Klasse handelt, wird empfohlen, XmlWriter-Objekte mithilfe der Create-Methode zu erstellen. Dadurch können Sie die Vorteile aller neuen Features nutzen, die der XmlWriter-Klasse hinzugefügt wurden. |
Version 1.1
Im folgenden Codebeispiel wird ein XmlTextWriter-Objekt mit einer bestimmten Codierung erstellt.
Dim writer As New XmlTextWriter("books.xml", Encoding.Unicode)
writer.Formatting = Formatting.Indented
XmlTextWriter writer = new XmlTextWriter("books.xml", Encoding.Unicode);
writer.Formatting = Formatting.Indented;
Version 2.0
Im folgenden Codebeispiel wird mithilfe der Create-Methode ein XmlWriter-Objekt mit derselben Konfiguration wie im vorherigen Beispiel erstellt.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.Encoding = Encoding.Unicode
Dim writer As XmlWriter = XmlWriter.Create("books.xml", settings)
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.Encoding = Encoding.Unicode;
XmlWriter writer = XmlWriter.Create("books.xml", settings);
Weitere Informationen finden Sie unter Erstellen von XML-Writern.
XSLT-Verarbeitung
Die XslCompiledTransform-Klasse agiert als neuer XSLT-Prozessor und ersetzt die XslTransform-Klasse. Mithilfe der XsltSettings-Enumeration werden optionale XSLT-Einstellungen (z. B. für eingebettete Skripts oder die XSLT-Funktion document()) aktiviert.
Version 1.1
Im folgenden Codebeispiel wird eine XSLT-Transformation mithilfe der XslTransform-Klasse durchgeführt.
' Create the XslTransform.
Dim xslt As New XslTransform()
' Create a resolver and set the credentials to use.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Load the style sheet.
xslt.Load("https://serverName/data/xsl/sort.xsl", resolver)
' Transform the file.
Dim doc As New XPathDocument(filename)
Dim writer As New XmlTextWriter("output.xml", Nothing)
xslt.Transform(doc, Nothing, writer, Nothing)
// Create the XslTransform.
XslTransform xslt = new XslTransform();
// Create a resolver and set the credentials to use.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Load the style sheet.
xslt.Load("https://serverName/data/xsl/sort.xsl", resolver);
// Transform the file.
XPathDocument doc = new XPathDocument(filename);
XmlTextWriter writer = new XmlTextWriter("output.xml", null);
xslt.Transform(doc, null, writer, null);
Version 2.0
Im folgenden Codebeispiel wird eine XSLT-Transformation mithilfe der XslCompiledTransform-Klasse durchgeführt.
' Create the XslCompiledTransform object.
Dim xslt As New XslCompiledTransform()
' Create a resolver and set the credentials to use.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials
' Load the style sheet.
xslt.Load("https://serverName/data/xsl/sort.xsl", XsltSettings.Default, resolver)
' Transform the file.
Dim writer As XmlWriter = XmlWriter.Create("output.xml")
xslt.Transform("books.xml", writer)
// Create the XslCompiledTransform object.
XslCompiledTransform xslt = new XslCompiledTransform();
// Create a resolver and set the credentials to use.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;
// Load the style sheet.
xslt.Load("https://serverName/data/xsl/sort.xsl", XsltSettings.Default, resolver);
// Transform the file.
XmlWriter writer = XmlWriter.Create("output.xml");
xslt.Transform("books.xml", writer);
Weitere Informationen finden Sie unter Migrieren von der XslTransform-Klasse.