Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’API SOM (Schema Object Model) peut être utilisée pour lire et écrire des schémas XSD (XML Schema Definition Language) à partir de fichiers ou d’autres sources et générer des schémas XML en mémoire à l’aide des classes de l’espace System.Xml.Schema de noms qui correspondent aux structures définies dans la recommandation de schéma XML W3C (World Wide Web Consortium).
Lecture et écriture de schémas XML
La XmlSchema classe fournit les méthodes Read et Write permettant de lire et d’écrire des schémas XML. La Read méthode retourne un XmlSchema objet représentant le schéma XML et prend un paramètre facultatif ValidationEventHandler pour gérer les avertissements et erreurs de validation de schéma rencontrés lors de la lecture d’un schéma XML.
La Write méthode écrit des schémas XML dans Stream, TextWriter et XmlWriter des objets et peut prendre un objet facultatif XmlNamespaceManager en tant que paramètre. Un XmlNamespaceManager est utilisé pour gérer les espaces de noms rencontrés dans un schéma XML. Pour plus d’informations sur la XmlNamespaceManager classe, consultez Gestion des espaces de noms dans un document XML.
L’exemple de code suivant illustre la lecture et l’écriture de schémas XML à partir et dans un fichier. L’exemple de code prend le example.xsd
fichier, le lit dans un XmlSchema objet à l’aide de la static
Read méthode, puis écrit le fichier dans la console et un nouveau new.xsd
fichier. L'exemple de code fournit également un ValidationEventHandler comme paramètre à la méthode static
Read pour gérer les avertissements ou erreurs de validation de schéma rencontrés lors de la lecture du schéma XML. Si l’argument ValidationEventHandler n’est pas spécifié (null
), aucun avertissement ou erreur n’est signalé.
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Schema;
class XmlSchemaReadWriteExample
{
static void Main()
{
try
{
XmlTextReader reader = new XmlTextReader("example.xsd");
XmlSchema schema = XmlSchema.Read(reader, ValidationCallback);
schema.Write(Console.Out);
FileStream file = new FileStream("new.xsd", FileMode.Create, FileAccess.ReadWrite);
XmlTextWriter xwriter = new XmlTextWriter(file, new UTF8Encoding());
xwriter.Formatting = Formatting.Indented;
schema.Write(xwriter);
}
catch(Exception e)
{
Console.WriteLine(e);
}
}
static void ValidationCallback(object sender, ValidationEventArgs args)
{
if (args.Severity == XmlSeverityType.Warning)
Console.Write("WARNING: ");
else if (args.Severity == XmlSeverityType.Error)
Console.Write("ERROR: ");
Console.WriteLine(args.Message);
}
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Schema
Class XmlSchemaReadWriteExample
Shared Sub Main()
Try
Dim reader As XmlTextReader = New XmlTextReader("example.xsd")
Dim myschema As XmlSchema = XmlSchema.Read(reader, AddressOf ValidationCallback)
myschema.Write(Console.Out)
Dim file As FileStream = New FileStream("new.xsd", FileMode.Create, FileAccess.ReadWrite)
Dim xwriter As XmlTextWriter = New XmlTextWriter(file, New UTF8Encoding())
xwriter.Formatting = Formatting.Indented
myschema.Write(xwriter)
Catch e As Exception
Console.WriteLine(e)
End Try
End Sub
Shared Sub ValidationCallback(ByVal sender As Object, ByVal args As ValidationEventArgs)
If args.Severity = XmlSeverityType.Warning Then
Console.Write("WARNING: ")
Else
If args.Severity = XmlSeverityType.Error Then
Console.Write("ERROR: ")
End If
End If
Console.WriteLine(args.Message)
End Sub
End Class
L’exemple prend l’entrée example.xsd
.
<?xml version="1.0"?>
<xs:schema id="play" targetNamespace="http://tempuri.org/play.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/play.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name='myShoeSize'>
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:decimal'>
<xs:attribute name='sizing' type='xs:string' />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Voir aussi
- Vue d’ensemble du modèle objet de schéma XML
- Génération de schémas XML
- Parcourir des schémas XML
- Modification de schémas XML
- Inclusion ou importation de schémas XML
- XmlSchemaSet pour la compilation de schémas
- Ensemble d’informations de compilation après le schéma
- Gestion des espaces de noms dans un document XML