XmlSchema Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
World Wide Web Konsorsiyumu (W3C) XML Şeması Bölüm 1: Yapılar ve XML Şeması Bölüm 2: Veri Türleri]'nde belirtilen 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 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 ş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ı gibi XmlSchemaException sınıfının kullanılması XmlSchema sonucunda ortaya çıkan özel durumlar, güvenilmeyen senaryolarda kullanıma sunulmaması gereken hassas bilgiler içerebilir. Örneğin, SourceUri özelliği XmlSchemaException özel duruma neden olan şema dosyasının URI yolunu döndürür. SourceUri özelliği güvenilmeyen senaryolarda kullanıma sunulmamalıdır. Bu hassas bilgilerin güvenilmeyen senaryolarda gösterilmemesi için özel durumlar düzgün şekilde işlenmelidir.
Oluşturucular
| Name | Description |
|---|---|
| XmlSchema() |
XmlSchema sınıfının yeni bir örneğini başlatır. |
Alanlar
| Name | Description |
|---|---|
| InstanceNamespace |
XML şema örneği ad alanı. Bu alan sabittir. |
| Namespace |
XML şeması ad alanı. Bu alan sabittir. |
Özellikler
| Name | Description |
|---|---|
| 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 sonrası derleme değerini alır. |
| Attributes |
Şemadaki tüm öznitelikler için şema sonrası derleme değerini alır. |
| BlockDefault |
özniteliğini |
| 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 |
Özniteliği alır |
| Groups |
Şemadaki tüm grupların şema sonrası derleme değerini alır. |
| Id |
Dize kimliğini alır veya ayarlar. |
| Includes |
Eklenen ve içeri aktarılan şemaların koleksiyonunu alır. |
| IsCompiled |
Şemanın derlenip derlenmemiş olduğunu gösterir. |
| Items |
Şemadaki şema öğelerinin koleksiyonunu alır ve öğe düzeyinde yeni öğe türleri |
| LineNumber |
Öğesinin başvurduğu |
| LinePosition |
Öğesinin başvurduğu |
| 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 sonrası derleme 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 nitelenmiş öznitelikleri alır veya ayarlar. |
| Version |
Şemanın sürümünü alır veya ayarlar. |
Yöntemler
| Name | Description |
|---|---|
| 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. Derleme sırasında anlam doğrulama denetimi gerçekleştirilir. |
| 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. Derleme sırasında anlam doğrulama denetimi 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() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit 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 bir dize döndürür. (Devralındığı yer: Object) |
| Write(Stream, XmlNamespaceManager) |
Belirtilen kullanılarak sağlanan Stream XML Şemasını XmlNamespaceManager yazar. |
| Write(Stream) |
SAĞLANAN veri akışına XML Şeması yazar. |
| Write(TextWriter, XmlNamespaceManager) |
SAĞLANAN öğesine XML Şeması TextWriteryazar. |
| Write(TextWriter) |
SAĞLANAN öğesine XML Şeması TextWriteryazar. |
| Write(XmlWriter, XmlNamespaceManager) |
SAĞLANAN öğesine XML Şeması XmlWriteryazar. |
| Write(XmlWriter) |
SAĞLANAN öğesine XML Şeması XmlWriteryazar. |