Migration depuis la version 1.1 des classes XML
Dans les versions ultérieures au .NET Framework version 1.1, de nombreuses mises à jour ont été appliquées aux classes XML. Pour tirer pleinement parti des nouvelles fonctions, vous devrez peut-être déplacer votre code existant vers les nouvelles API. Les sections de ce document décrivent les modifications apportées aux API existantes qui peuvent imposer une mise à niveau du code existant.
Microsoft .NET Framework version 3.5 inclut de nouvelles options pour le traitement des données XML. Pour en savoir plus sur ces options, voir LINQ to XML.
Création d'objets XmlReader
Depuis l'introduction du .NET Framework version 2.0, les objets XmlReader sont créés à l'aide de la méthode statique Create sur la classe XmlReader. Un objet XmlReaderSettings spécifie les fonctions devant être prises en charge par l'objet XmlReader créé.
Remarque |
---|
Même si .NET Framework intègre des implémentations concrètes de la classe XmlReader, comme les classes XmlTextReader, XmlNodeReader et XmlValidatingReader, il est recommandé de créer des instances de l'objet XmlReader à l'aide de la méthode Create.Ceci permet de tirer parti de toutes les nouvelles fonctions ajoutées à la classe XmlReader. |
Version 1.1
Le code suivant construit un objet XmlTextReader qui ignore l'espace blanc et utilise un objet XmlUrlResolver pour résoudre l'URI du nom de fichier.
' 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
Le code suivant crée un objet XmlReader avec la même configuration que dans l'exemple suivant, à l'aide de la méthode Create.
' 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);
Pour plus d'informations, consultez Création de lecteurs XML.
Validation XML
Depuis l'introduction du .NET Framework version 2.0, les classes XmlValidatingReader et XmlSchemaCollection sont marquées comme obsolètes. Vous devriez plutôt utiliser la classe XmlReaderSettings pour créer un objet XmlReader de validation. La classe XmlSchemaCollection est remplacée par la classe XmlSchemaSet.
Version 1.1
Le code suivant valide les données à l'aide des classes XmlValidatingReader et XmlSchemaCollection.
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
Le code suivant valide les données à l'aide des classes XmlReader et XmlSchemaSet.
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);
}
Pour plus d'informations, consultez Validation de données XML avec XmlReader et XmlSchemaSet pour la compilation de schémas.
Création d'objets XmlWriter
Depuis l'introduction du .NET Framework version 2.0, les objets XmlWriter sont créés à l'aide de la méthode statique Create sur la classe XmlWriter. Un objet XmlWriterSettings spécifie les fonctions devant être prises en charge par le XmlWriter créé.
Remarque |
---|
Même si .NET Framework inclut la classe XmlTextWriter, qui est une implémentation de la classe XmlWriter, il est recommandé de créer des objets XmlWriter à l'aide de la méthode Create.Ceci permet de tirer parti de toutes les nouvelles fonctions ajoutées à la classe XmlWriter. |
Version 1.1
Le code suivant crée un objet XmlTextWriter avec un encodage spécifique.
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
Le code suivant crée un objet XmlWriter avec la même configuration que dans l'exemple suivant, à l'aide de la méthode Create.
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);
Pour plus d'informations, consultez Création de writers XML.
Traitement XSLT
La classe XslCompiledTransform est le nouveau processeur XSLT et elle remplace la classe XslTransform. L'énumération XsltSettings permet d'activer des paramètres XSLT facultatifs tels que la prise en charge des scripts intégrés ou de la fonction document().
Version 1.1
Le code suivant effectue une transformation XSLT à l'aide de la classe XslTransform.
' 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
Le code suivant effectue une transformation XSLT à l'aide de la classe XslCompiledTransform.
' 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);
Pour plus d'informations, consultez Migration depuis la classe XslTransform.