Interfejs API modelu obiektów schematu (SOM) może służyć do odczytywania i zapisywania schematów języka definicji schematu XML (XSD) z plików lub innych źródeł i tworzenia schematów XML w pamięci przy użyciu klas w System.Xml.Schema przestrzeni nazw mapowanych na struktury zdefiniowane w rekomendacji schematu XML World Wide Web Consortium (W3C).
Odczytywanie i zapisywanie schematów XML
Klasa XmlSchema udostępnia Read metody i Write do odczytywania i zapisywania schematów XML. Metoda Read zwraca XmlSchema obiekt reprezentujący schemat XML i przyjmuje opcjonalny ValidationEventHandler parametr do obsługi ostrzeżeń weryfikacji schematu i błędów napotkanych podczas odczytywania schematu XML.
Poniższy przykład kodu ilustruje odczytywanie i zapisywanie schematów XML z i do pliku. Przykładowy kod pobiera example.xsd plik, odczytuje go do XmlSchema obiektu przy użyciu staticRead metody , a następnie zapisuje plik w konsoli i nowym new.xsd pliku. Przykładowy kod zawiera ValidationEventHandler również jako parametr staticRead metody do obsługi wszelkich ostrzeżeń weryfikacji schematu lub błędów napotkanych podczas odczytywania schematu XML. ValidationEventHandler Jeśli parametr nie jest określony (null), nie są zgłaszane żadne ostrzeżenia ani błędy.
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
Przykład przyjmuje example.xsd jako dane wejściowe.
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.