Bagikan melalui


XmlSchema Kelas

Definisi

Representasi dalam memori Skema XML, seperti yang ditentukan dalam Skema XML World Wide Web Consortium (W3C) Bagian 1: Struktur dan Skema XML Bagian 2: Datatypes].

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
Warisan
XmlSchema
Warisan

Contoh

Contoh berikut membuat definisi skema.

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

File XML berikut dibuat untuk contoh kode sebelumnya.


<?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>

Keterangan

Penting

  • Jangan gunakan skema dari sumber atau lokasi yang tidak diketahui atau tidak tepercaya. Melakukannya akan membahayakan keamanan kode Anda.
  • Skema XML (termasuk skema sebaris) secara inheren rentan terhadap penolakan serangan layanan; jangan menerimanya dalam skenario yang tidak tepercaya.
  • Pengecualian yang dimunculkan sebagai akibat dari penggunaan XmlSchema kelas, seperti XmlSchemaException kelas, mungkin berisi informasi sensitif yang tidak boleh diekspos dalam skenario yang tidak tepercaya. Misalnya, SourceUri properti dari XmlSchemaException mengembalikan jalur URI ke file skema yang menyebabkan pengecualian. Properti SourceUri tidak boleh diekspos dalam skenario yang tidak tepercaya. Pengecualian harus ditangani dengan benar sehingga informasi sensitif ini tidak terekspos dalam skenario yang tidak tepercaya.

Konstruktor

Nama Deskripsi
XmlSchema()

Menginisialisasi instans baru dari kelas XmlSchema.

Bidang

Nama Deskripsi
InstanceNamespace

Namespace instans skema XML. Bidang ini konstan.

Namespace

Namespace skema XML. Bidang ini konstan.

Properti

Nama Deskripsi
AttributeFormDefault

Mendapatkan atau mengatur formulir untuk atribut yang dideklarasikan dalam namespace layanan target skema.

AttributeGroups

Mendapatkan nilai pasca-skema-kompilasi dari semua grup atribut global dalam skema.

Attributes

Mendapatkan nilai pasca-skema-kompilasi untuk semua atribut dalam skema.

BlockDefault

Mendapatkan atau mengatur blockDefault atribut, yang mengatur nilai block default atribut pada elemen dan jenis kompleks dalam targetNamespace skema.

ElementFormDefault

Mendapatkan atau mengatur formulir untuk elemen yang dideklarasikan dalam namespace layanan target skema.

Elements

Mendapatkan nilai pasca-skema-kompilasi untuk semua elemen dalam skema.

FinalDefault

Mendapatkan atau mengatur finalDefault atribut, yang menetapkan nilai final default atribut pada elemen dan jenis kompleks di namespace layanan target skema.

Groups

Mendapatkan nilai pasca-kompilasi skema dari semua grup dalam skema.

Id

Mendapatkan atau mengatur ID string.

Includes

Mendapatkan kumpulan skema yang disertakan dan diimpor.

IsCompiled

Menunjukkan apakah skema telah dikompilasi.

Items

Mendapatkan kumpulan elemen skema dalam skema dan digunakan untuk menambahkan jenis elemen baru di schema tingkat elemen.

LineNumber

Mendapatkan atau mengatur nomor baris dalam file yang schema dirujuk elemen.

(Diperoleh dari XmlSchemaObject)
LinePosition

Mendapatkan atau mengatur posisi baris dalam file yang schema dirujuk elemen.

(Diperoleh dari XmlSchemaObject)
Namespaces

Mendapatkan atau mengatur XmlSerializerNamespaces untuk digunakan dengan objek skema ini.

(Diperoleh dari XmlSchemaObject)
Notations

Mendapatkan nilai pasca-kompilasi-skema untuk semua notasi dalam skema.

Parent

Mendapatkan atau mengatur induk dari ini XmlSchemaObject.

(Diperoleh dari XmlSchemaObject)
SchemaTypes

Mendapatkan nilai pasca-kompilasi skema dari semua jenis skema dalam skema.

SourceUri

Mendapatkan atau mengatur lokasi sumber untuk file yang memuat skema.

(Diperoleh dari XmlSchemaObject)
TargetNamespace

Mendapatkan atau mengatur Pengidentifikasi Sumber Daya Seragam (URI) dari namespace target skema.

UnhandledAttributes

Mendapatkan atau mengatur atribut yang memenuhi syarat yang bukan milik namespace target skema.

Version

Mendapatkan atau mengatur versi skema.

Metode

Nama Deskripsi
Compile(ValidationEventHandler, XmlResolver)
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Mengkompilasi Xml Schema Object Model (SOM) ke dalam informasi skema untuk validasi. Digunakan untuk memeriksa struktur sintik dan semantik dari SOM yang dibangun secara terprogram. Pemeriksaan validasi semantik dilakukan selama kompilasi.

Compile(ValidationEventHandler)
Kedaluwarsa.
Kedaluwarsa.
Kedaluwarsa.

Mengkompilasi Xml Schema Object Model (SOM) ke dalam informasi skema untuk validasi. Digunakan untuk memeriksa struktur sintik dan semantik dari SOM yang dibangun secara terprogram. Pemeriksaan validasi semantik dilakukan selama kompilasi.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
Read(Stream, ValidationEventHandler)

Membaca Skema XML dari aliran yang disediakan.

Read(TextReader, ValidationEventHandler)

Membaca Skema XML dari yang disediakan TextReader.

Read(XmlReader, ValidationEventHandler)

Membaca Skema XML dari yang disediakan XmlReader.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
Write(Stream, XmlNamespaceManager)

Menulis Skema XML ke yang disediakan Stream menggunakan yang XmlNamespaceManager ditentukan.

Write(Stream)

Menulis Skema XML ke aliran data yang disediakan.

Write(TextWriter, XmlNamespaceManager)

Menulis Skema XML ke yang disediakan TextWriter.

Write(TextWriter)

Menulis Skema XML ke yang disediakan TextWriter.

Write(XmlWriter, XmlNamespaceManager)

Menulis Skema XML ke yang disediakan XmlWriter.

Write(XmlWriter)

Menulis Skema XML ke yang disediakan XmlWriter.

Berlaku untuk

Lihat juga