Aracılığıyla paylaş


XmlSchema Sınıf

Tanım

World Wide Web Konsorsiyumu (W3C) XML Şeması Bölüm 1: Yapılar ve XML Şeması Bölüm 2: Veri Türleri]'nde belirtildiği gibi BIR XML Şemasının bellek içi gösterimi.

public ref class XmlSchema
public ref class XmlSchema : System::Xml::Schema::XmlSchemaObject
public class XmlSchema
public class XmlSchema : System.Xml.Schema.XmlSchemaObject
type XmlSchema = class
type XmlSchema = class
    inherit XmlSchemaObject
Public Class XmlSchema
Public Class XmlSchema
Inherits XmlSchemaObject
Devralma
XmlSchema
Devralma

Örnekler

Aşağıdaki örnek bir şema tanımı oluşturur.

#using <mscorlib.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Xml;
using namespace System::Xml::Schema;

class XmlSchemaExamples
{
public:
    static void Main()
    {

        XmlSchema^ schema = gcnew XmlSchema();

        // <xs:element name="cat" type="xs:string"/>
        XmlSchemaElement^ elementCat = gcnew XmlSchemaElement();
        schema->Items->Add(elementCat);
        elementCat->Name = "cat";
        elementCat->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="dog" type="xs:string"/>
        XmlSchemaElement^ elementDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementDog);
        elementDog->Name = "dog";
        elementDog->SchemaTypeName = gcnew XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="redDog" substitutionGroup="dog" />
        XmlSchemaElement^ elementRedDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementRedDog);
        elementRedDog->Name = "redDog";
        elementRedDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");

        // <xs:element name="brownDog" substitutionGroup ="dog" />
        XmlSchemaElement^ elementBrownDog = gcnew XmlSchemaElement();
        schema->Items->Add(elementBrownDog);
        elementBrownDog->Name = "brownDog";
        elementBrownDog->SubstitutionGroup = gcnew XmlQualifiedName("dog");


        // <xs:element name="pets">
        XmlSchemaElement^ elementPets = gcnew XmlSchemaElement();
        schema->Items->Add(elementPets);
        elementPets->Name = "pets";

        // <xs:complexType>
        XmlSchemaComplexType^ complexType = gcnew XmlSchemaComplexType();
        elementPets->SchemaType = complexType;

        // <xs:choice minOccurs="0" maxOccurs="unbounded">
        XmlSchemaChoice^ choice = gcnew XmlSchemaChoice();
        complexType->Particle = choice;
        choice->MinOccurs = 0;
        choice->MaxOccursString = "unbounded";

        // <xs:element ref="cat"/>
        XmlSchemaElement^ catRef = gcnew XmlSchemaElement();
        choice->Items->Add(catRef);
        catRef->RefName = gcnew XmlQualifiedName("cat");

        // <xs:element ref="dog"/>
        XmlSchemaElement^ dogRef = gcnew XmlSchemaElement();
        choice->Items->Add(dogRef);
        dogRef->RefName = gcnew XmlQualifiedName("dog");

        XmlSchemaSet^ schemaSet = gcnew XmlSchemaSet();
        schemaSet->ValidationEventHandler += gcnew ValidationEventHandler(ValidationCallbackOne);
        schemaSet->Add(schema);
        schemaSet->Compile();

        XmlSchema^ compiledSchema;

        for each (XmlSchema^ schema1 in schemaSet->Schemas())
        {
            compiledSchema = schema1;
        }

        XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager(gcnew NameTable());
        nsmgr->AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        compiledSchema->Write(Console::Out, nsmgr);
    }

    static void ValidationCallbackOne(Object^ sender, ValidationEventArgs^ args)
    {
        Console::WriteLine(args->Message);
    }
};

int main()
{
    XmlSchemaExamples::Main();
    return 0;
};
using System;
using System.Xml;
using System.Xml.Schema;

class XMLSchemaExamples
{
    public static void Main()
    {

        XmlSchema schema = new XmlSchema();

        // <xs:element name="cat" type="xs:string"/>
        XmlSchemaElement elementCat = new XmlSchemaElement();
        schema.Items.Add(elementCat);
        elementCat.Name = "cat";
        elementCat.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="dog" type="xs:string"/>
        XmlSchemaElement elementDog = new XmlSchemaElement();
        schema.Items.Add(elementDog);
        elementDog.Name = "dog";
        elementDog.SchemaTypeName = new XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema");

        // <xs:element name="redDog" substitutionGroup="dog" />
        XmlSchemaElement elementRedDog = new XmlSchemaElement();
        schema.Items.Add(elementRedDog);
        elementRedDog.Name = "redDog";
        elementRedDog.SubstitutionGroup = new XmlQualifiedName("dog");

        // <xs:element name="brownDog" substitutionGroup ="dog" />
        XmlSchemaElement elementBrownDog = new XmlSchemaElement();
        schema.Items.Add(elementBrownDog);
        elementBrownDog.Name = "brownDog";
        elementBrownDog.SubstitutionGroup = new XmlQualifiedName("dog");

        // <xs:element name="pets">
        XmlSchemaElement elementPets = new XmlSchemaElement();
        schema.Items.Add(elementPets);
        elementPets.Name = "pets";

        // <xs:complexType>
        XmlSchemaComplexType complexType = new XmlSchemaComplexType();
        elementPets.SchemaType = complexType;

        // <xs:choice minOccurs="0" maxOccurs="unbounded">
        XmlSchemaChoice choice = new XmlSchemaChoice();
        complexType.Particle = choice;
        choice.MinOccurs = 0;
        choice.MaxOccursString = "unbounded";

        // <xs:element ref="cat"/>
        XmlSchemaElement catRef = new XmlSchemaElement();
        choice.Items.Add(catRef);
        catRef.RefName = new XmlQualifiedName("cat");

        // <xs:element ref="dog"/>
        XmlSchemaElement dogRef = new XmlSchemaElement();
        choice.Items.Add(dogRef);
        dogRef.RefName = new XmlQualifiedName("dog");

        XmlSchemaSet schemaSet = new XmlSchemaSet();
        schemaSet.ValidationEventHandler += new ValidationEventHandler(ValidationCallbackOne);
        schemaSet.Add(schema);
        schemaSet.Compile();

        XmlSchema compiledSchema = null;

        foreach (XmlSchema schema1 in schemaSet.Schemas())
        {
            compiledSchema = schema1;
        }

        XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema");
        compiledSchema.Write(Console.Out, nsmgr);
    }

    public static void ValidationCallbackOne(object sender, ValidationEventArgs args)
    {
        Console.WriteLine(args.Message);
    }
}
Option Explicit On
Option Strict On

Imports System.Xml
Imports System.Xml.Schema

Class XMLSchemaExamples
    Public Shared Sub Main()
        Dim schema As New XmlSchema()

        ' <xs:element name="cat" type="xs:string"/>
        Dim elementCat As New XmlSchemaElement()
        schema.Items.Add(elementCat)
        elementCat.Name = "cat"
        elementCat.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")

        ' <xs:element name="dog" type="xs:string"/>
        Dim elementDog As New XmlSchemaElement()
        schema.Items.Add(elementDog)
        elementDog.Name = "dog"
        elementDog.SchemaTypeName = New XmlQualifiedName("string", "http://www.w3.org/2001/XMLSchema")

        ' <xs:element name="redDog" substitutionGroup="dog" />
        Dim elementRedDog As New XmlSchemaElement()
        schema.Items.Add(elementRedDog)
        elementRedDog.Name = "redDog"
        elementRedDog.SubstitutionGroup = New XmlQualifiedName("dog")

        ' <xs:element name="brownDog" substitutionGroup ="dog" />
        Dim elementBrownDog As New XmlSchemaElement()
        schema.Items.Add(elementBrownDog)
        elementBrownDog.Name = "brownDog"
        elementBrownDog.SubstitutionGroup = New XmlQualifiedName("dog")

        ' <xs:element name="pets">
        Dim elementPets As New XmlSchemaElement()
        schema.Items.Add(elementPets)
        elementPets.Name = "pets"

        ' <xs:complexType>
        Dim complexType As New XmlSchemaComplexType()
        elementPets.SchemaType = complexType

        ' <xs:choice minOccurs="0" maxOccurs="unbounded">
        Dim choice As New XmlSchemaChoice()
        complexType.Particle = choice
        choice.MinOccurs = 0
        choice.MaxOccursString = "unbounded"

        ' <xs:element ref="cat"/>
        Dim catRef As New XmlSchemaElement()
        choice.Items.Add(catRef)
        catRef.RefName = New XmlQualifiedName("cat")

        ' <xs:element ref="dog"/>
        Dim dogRef As New XmlSchemaElement()
        choice.Items.Add(dogRef)
        dogRef.RefName = New XmlQualifiedName("dog")

        Dim schemaSet As New XmlSchemaSet()
        AddHandler schemaSet.ValidationEventHandler, AddressOf ValidationCallbackOne

        schemaSet.Add(schema)
        schemaSet.Compile()

        Dim compiledSchema As XmlSchema = Nothing

        For Each schema1 As XmlSchema In schemaSet.Schemas()
            compiledSchema = schema1
        Next

        Dim nsmgr As New XmlNamespaceManager(New NameTable())
        nsmgr.AddNamespace("xs", "http://www.w3.org/2001/XMLSchema")
        compiledSchema.Write(Console.Out, nsmgr)


    End Sub


    Public Shared Sub ValidationCallbackOne(ByVal sender As Object, ByVal args As ValidationEventArgs)
        Console.WriteLine(args.Message)
    End Sub
End Class

Yukarıdaki kod örneği için aşağıdaki XML dosyası oluşturulur.


<?xml version="1.0" encoding="IBM437"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="cat" type="xs:string"/>
    <xs:element name="dog" type="xs:string"/>
    <xs:element name="redDog" type="xs:string" substitutionGroup="dog"/>
    <xs:element name="brownDog" type="xs:string" substitutionGroup ="dog" />

    <xs:element name="pets">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="cat"/>
          <xs:element ref="dog"/>
        </xs:choice>
      </xs:complexType>
    </xs:element>
</xs:schema>

Açıklamalar

Önemli

  • Bilinmeyen veya güvenilmeyen kaynaklardan veya konumlardan gelen şemaları kullanmayın. Bunu yaptığınızda kodunuzun güvenliği tehlikeye girer.
  • XML şemaları (satır içi şemalar dahil) hizmet reddi saldırılarına karşı doğal olarak savunmasızdır; güvenilmeyen senaryolarda bunları kabul etmeyin.
  • sınıfını kullanmanın XmlSchema sonucu olarak oluşturulan özel durumlar, örneğin XmlSchemaException sınıfı, güvenilmeyen senaryolarda kullanıma sunulmaması gereken hassas bilgiler içerebilir. Örneğin, özelliği XmlSchemaException özel SourceUri duruma neden olan şema dosyasının URI yolunu döndürür. Özelliğin SourceUri güvenilmeyen senaryolarda kullanıma sunulmaması gerekir. Bu hassas bilgilerin güvenilmeyen senaryolarda kullanıma sunulmaması için özel durumlar düzgün şekilde işlenmelidir.

Oluşturucular

XmlSchema()

XmlSchema sınıfının yeni bir örneğini başlatır.

Alanlar

InstanceNamespace

XML şema örneği ad alanı. Bu alan sabittir.

Namespace

XML şeması ad alanı. Bu alan sabittir.

Özellikler

AttributeFormDefault

Şemanın hedef ad alanında bildirilen öznitelikler için formu alır veya ayarlar.

AttributeGroups

Şemadaki tüm genel öznitelik gruplarının şema derleme sonrası değerini alır.

Attributes

Şemadaki tüm öznitelikler için şema sonrası derleme değerini alır.

BlockDefault

öğesinde özniteliğin blockDefault varsayılan değerini ve şemadaki block karmaşık türleri targetNamespace ayarlayan özniteliğini alır veya ayarlar.

ElementFormDefault

Şemanın hedef ad alanında bildirilen öğeler için formu alır veya ayarlar.

Elements

Şemadaki tüm öğeler için şema sonrası derleme değerini alır.

FinalDefault

Şemanın finalDefault hedef ad alanındaki öğelerde ve karmaşık türlerde özniteliğin final varsayılan değerini ayarlayan özniteliği alır veya ayarlar.

Groups

Şemadaki tüm grupların şema derleme sonrası değerini alır.

Id

Dize kimliğini alır veya ayarlar.

Includes

Dahil edilen ve içeri aktarılan şemaların koleksiyonunu alır.

IsCompiled

Şemanın derlenip derlenmemiş olduğunu gösterir.

Items

Şemadaki şema öğeleri koleksiyonunu alır ve öğe düzeyinde yeni öğe türleri schema eklemek için kullanılır.

LineNumber

Öğenin başvurduğu schema dosyadaki satır numarasını alır veya ayarlar.

(Devralındığı yer: XmlSchemaObject)
LinePosition

Öğenin başvurduğu schema dosyadaki satır konumunu alır veya ayarlar.

(Devralındığı yer: XmlSchemaObject)
Namespaces

Bu şema nesnesiyle kullanılacak öğesini XmlSerializerNamespaces alır veya ayarlar.

(Devralındığı yer: XmlSchemaObject)
Notations

Şemadaki tüm gösterimin şema derleme sonrası değerini alır.

Parent

Bu XmlSchemaObjectöğesinin üst öğesini alır veya ayarlar.

(Devralındığı yer: XmlSchemaObject)
SchemaTypes

Şemadaki tüm şema türlerinin şema derleme sonrası değerini alır.

SourceUri

Şemayı yükleyen dosyanın kaynak konumunu alır veya ayarlar.

(Devralındığı yer: XmlSchemaObject)
TargetNamespace

Şema hedef ad alanının Tekdüzen Kaynak Tanımlayıcısını (URI) alır veya ayarlar.

UnhandledAttributes

Şema hedef ad alanına ait olmayan nitelikli öznitelikleri alır veya ayarlar.

Version

Şemanın sürümünü alır veya ayarlar.

Yöntemler

Compile(ValidationEventHandler)
Geçersiz.
Geçersiz.
Geçersiz.

XML Şema Nesne Modeli'ni (SOM) doğrulama için şema bilgilerine derler. Program aracılığıyla oluşturulan SOM'nin bozulmamış ve semantik yapısını denetlemek için kullanılır. Anlam doğrulama denetimi derleme sırasında gerçekleştirilir.

Compile(ValidationEventHandler, XmlResolver)
Geçersiz.
Geçersiz.
Geçersiz.

XML Şema Nesne Modeli'ni (SOM) doğrulama için şema bilgilerine derler. Program aracılığıyla oluşturulan SOM'nin bozulmamış ve semantik yapısını denetlemek için kullanılır. Anlam doğrulama denetimi derleme sırasında gerçekleştirilir.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
Read(Stream, ValidationEventHandler)

Sağlanan akıştan bir XML Şeması okur.

Read(TextReader, ValidationEventHandler)

Sağlanan TextReaderöğesinden bir XML Şeması okur.

Read(XmlReader, ValidationEventHandler)

Sağlanan XmlReaderöğesinden bir XML Şeması okur.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)
Write(Stream)

SAĞLANAN veri akışına XML Şeması yazar.

Write(Stream, XmlNamespaceManager)

Belirtilen kullanılarak sağlanan Stream XML Şemasını XmlNamespaceManager yazar.

Write(TextWriter)

SAĞLANAN öğesine XML Şeması TextWriteryazar.

Write(TextWriter, XmlNamespaceManager)

SAĞLANAN öğesine XML Şeması TextWriteryazar.

Write(XmlWriter)

SAĞLANAN öğesine XML Şeması XmlWriteryazar.

Write(XmlWriter, XmlNamespaceManager)

SAĞLANAN öğesine XML Şeması XmlWriteryazar.

Şunlara uygulanır

Ayrıca bkz.