Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SOM-API (Schema Object Model) kann zum Lesen und Schreiben von XML-Schemadefinitionsschemas aus Dateien oder anderen Quellen und zum Erstellen von XML-Schemas im Arbeitsspeicher mithilfe der Klassen im System.Xml.Schema Namespace verwendet werden, die den strukturen entsprechen, die in der W3C-XML-Schemaempfehlung (World Wide Web Consortium) definiert sind.
Lesen und Schreiben von XML-Schemas
Die XmlSchema Klasse stellt die Read xml-Schemas zum Lesen und Schreiben von XML-Schemas bereit Write . Die Read Methode gibt ein XmlSchema Objekt zurück, das das XML-Schema darstellt und einen optionalen ValidationEventHandler Parameter zum Behandeln von Schemaüberprüfungswarnungen und Fehlern verwendet, die beim Lesen eines XML-Schemas auftreten.
Die Write Methode schreibt XML-Schemas in StreamTextWriter und Objekte und XmlWriter kann ein optionales XmlNamespaceManager Objekt als Parameter verwenden. Es XmlNamespaceManager wird verwendet, um Namespaces zu behandeln, die in einem XML-Schema aufgetreten sind. Weitere Informationen zur XmlNamespaceManager Klasse finden Sie unter Verwalten von Namespaces in einem XML-Dokument.
Das folgende Codebeispiel veranschaulicht das Lesen und Schreiben von XML-Schemas aus und in eine Datei. Das Codebeispiel verwendet die example.xsd
Datei, liest sie mithilfe der XmlSchemastatic
Methode in ein Read Objekt und schreibt dann die Datei in die Konsole und eine neue new.xsd
Datei. Das Codebeispiel stellt außerdem einen ValidationEventHandler Parameter für die static
Read Methode bereit, um schemavalidierungswarnungen oder Fehler zu behandeln, die beim Lesen des XML-Schemas aufgetreten sind. Wenn dies ValidationEventHandler nicht angegeben ist (null
), werden keine Warnungen oder Fehler gemeldet.
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
Im Beispiel wird die example.xsd
Eingabe verwendet.
<?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>