XML Şemaları Okuma ve Yazma
Şema Nesne Modeli (SOM) API'si, dosyalardan veya diğer kaynaklardan XML Şema tanım dili (XSD) şemalarını okumak ve yazmak ve ad alanında World Wide Web Consortium (W3C) XML Şema Önerisi'nde System.Xml.Schema tanımlanan yapılarla eşlenen sınıflar kullanılarak bellek içinde XML şemaları oluşturmak için kullanılabilir.
XML Şemaları Okuma ve Yazma
sınıfı, XmlSchema XML şemalarını Read okumak ve yazmak için ve Write yöntemlerini sağlar. yöntemi XML Read şemasını temsil eden bir XmlSchema nesne döndürür ve XML şeması okunurken karşılaşılan şema doğrulama uyarılarını ve hatalarını işlemek için isteğe bağlı ValidationEventHandler bir parametre alır.
Write yöntemi , TextWriter ve nesnelerine StreamXML şemaları yazar ve XmlWriter isteğe bağlı XmlNamespaceManager bir nesneyi parametre olarak alabilir. bir XmlNamespaceManager XML şemasında karşılaşılan ad alanlarını işlemek için kullanılır. Sınıfı hakkında XmlNamespaceManager daha fazla bilgi için bkz . XML Belgesinde Ad Alanlarını Yönetme.
Aşağıdaki kod örneği, dosyadan ve dosyaya XML şemalarının okunmasını ve yazmasını gösterir. Kod örneği dosyayı alır example.xsd
, yöntemini kullanarak bir XmlSchema nesneye static
Read okur ve ardından dosyayı konsola ve yeni new.xsd
bir dosyaya yazar. Kod örneği, XML şeması okunurken karşılaşılan şema doğrulama uyarılarını veya hatalarını işlemek için yöntemine parametre static
Read olarak da sağlarValidationEventHandler. ValidationEventHandler belirtilmezse ()null
uyarı veya hata bildirilmez.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml;
using namespace System::Xml::Schema;
ref class XmlSchemaReadWriteExample
{
public:
static void Main()
{
try
{
XmlTextReader^ reader = gcnew XmlTextReader("example.xsd");
ValidationEventHandler^ eventHandler = gcnew ValidationEventHandler(ValidationCallback);
XmlSchema^ myschema = XmlSchema::Read(reader, eventHandler);
myschema->Write(Console::Out);
FileStream^ file = gcnew FileStream("new.xsd", FileMode::Create, FileAccess::ReadWrite);
XmlTextWriter^ xwriter = gcnew XmlTextWriter(file, gcnew UTF8Encoding());
xwriter->Formatting = Formatting::Indented;
myschema->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);
}
};
int main()
{
XmlSchemaReadWriteExample::Main();
return 0;
};
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
Örnek girdi olarak alır 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>
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin