XmlSchema Osztály

Definíció

Xml-séma memóriabeli ábrázolása a World Wide Web Consortium (W3C) XML-séma 1. részében megadottak szerint: Struktúrák és XML-séma 2. rész: Adattípusok].

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
Öröklődés
XmlSchema
Öröklődés

Példák

Az alábbi példa létrehoz egy sémadefiníciót.

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

A következő XML-fájl jön létre az előző kód példájához.


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

Megjegyzések

Important

  • Ne használjon ismeretlen vagy nem megbízható forrásokból vagy helyekről származó sémákat. Ha így tesz, azzal veszélyezteti a kód biztonságát.
  • Az XML-sémák (beleértve a beágyazott sémákat) eredendően ki vannak téve a szolgáltatásmegtagadási támadásoknak; nem fogadják el őket nem megbízható helyzetekben.
  • Az osztály (például az XmlSchemaXmlSchemaException osztály) használatából eredő kivételek olyan bizalmas információkat tartalmazhatnak, amelyeket nem megbízható helyzetekben nem szabad közzétenni. Egy tulajdonság SourceUri például a XmlSchemaException kivételt okozó sémafájl URI-elérési útját adja vissza. Nem megbízható helyzetekben a SourceUri tulajdonságot nem szabad kitenni. A kivételeket megfelelően kell kezelni, hogy ezek a bizalmas információk ne legyenek közzétéve nem megbízható helyzetekben.

Konstruktorok

Name Description
XmlSchema()

Inicializálja a XmlSchema osztály új példányát.

Mezők

Name Description
InstanceNamespace

Az XML-sémapéldány névtere. Ez a mező állandó.

Namespace

Az XML-séma névtere. Ez a mező állandó.

Tulajdonságok

Name Description
AttributeFormDefault

Lekéri vagy beállítja a séma célnévterében deklarált attribútumok űrlapját.

AttributeGroups

Lekéri a séma összes globális attribútumcsoportjának séma utáni fordítás utáni értékét.

Attributes

Lekéri a séma összes attribútumának séma utáni fordítás utáni értékét.

BlockDefault

Lekéri vagy beállítja az blockDefault attribútumot, amely beállítja az attribútum alapértelmezett értékét a block séma elemén és összetett típusain targetNamespace .

ElementFormDefault

Lekéri vagy beállítja a séma célnévterében deklarált elemek űrlapját.

Elements

Lekéri a séma összes elemének séma utáni fordítási értékét.

FinalDefault

Lekéri vagy beállítja az finalDefault attribútumot, amely beállítja az attribútum alapértelmezett értékét a final séma célnévterében lévő elemekre és összetett típusokra.

Groups

Lekéri a séma összes csoportjának séma utáni fordítás utáni értékét.

Id

Lekéri vagy beállítja a sztringazonosítót.

Includes

Lekéri a belefoglalt és importált sémák gyűjteményét.

IsCompiled

Azt jelzi, hogy a séma fordítása megtörtént-e.

Items

Lekéri a sémaelemek gyűjteményét a sémában, és az elemszinten schema új elemtípusok hozzáadására szolgál.

LineNumber

Lekéri vagy beállítja annak a fájlnak a sorszámát, amelyre az schema elem hivatkozik.

(Öröklődés forrása XmlSchemaObject)
LinePosition

Lekéri vagy beállítja a sor pozícióját abban a fájlban, amelyre az schema elem hivatkozik.

(Öröklődés forrása XmlSchemaObject)
Namespaces

Lekéri vagy beállítja a XmlSerializerNamespaces sémaobjektumhoz használni kívánt objektumot.

(Öröklődés forrása XmlSchemaObject)
Notations

Lekéri a séma összes jelölésének séma utáni fordítási értékét.

Parent

Lekéri vagy beállítja ennek XmlSchemaObjecta szülőnek a szülőját.

(Öröklődés forrása XmlSchemaObject)
SchemaTypes

Lekéri a séma összes sématípusának séma-fordítás utáni értékét.

SourceUri

Lekéri vagy beállítja a sémát betöltött fájl forráshelyét.

(Öröklődés forrása XmlSchemaObject)
TargetNamespace

Lekéri vagy beállítja a séma célnévterének egységes erőforrás-azonosítóját (URI).

UnhandledAttributes

Lekéri vagy beállítja azokat a minősített attribútumokat, amelyek nem tartoznak a séma célnévteréhez.

Version

Lekéri vagy beállítja a séma verzióját.

Metódusok

Name Description
Compile(ValidationEventHandler, XmlResolver)
Elavult.
Elavult.
Elavult.

Az XML-sémaobjektum-modellt (SOM) sémainformációkká állítja össze ellenőrzés céljából. A programozottan létrehozott SOM szintaktikai és szemantikai szerkezetének ellenőrzésére szolgál. A szemantikai ellenőrzés a fordítás során történik.

Compile(ValidationEventHandler)
Elavult.
Elavult.
Elavult.

Az XML-sémaobjektum-modellt (SOM) sémainformációkká állítja össze ellenőrzés céljából. A programozottan létrehozott SOM szintaktikai és szemantikai szerkezetének ellenőrzésére szolgál. A szemantikai ellenőrzés a fordítás során történik.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Read(Stream, ValidationEventHandler)

Beolvas egy XML-sémát a megadott streamből.

Read(TextReader, ValidationEventHandler)

Beolvas egy XML-sémát a megadott TextReaderfájlból.

Read(XmlReader, ValidationEventHandler)

Beolvas egy XML-sémát a megadott XmlReaderfájlból.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
Write(Stream, XmlNamespaceManager)

Az XML-sémát a megadott használatával írja be a megadottba StreamXmlNamespaceManager .

Write(Stream)

Az XML-sémát a megadott adatfolyamba írja.

Write(TextWriter, XmlNamespaceManager)

Az XML-sémát a megadottnak TextWriterírja.

Write(TextWriter)

Az XML-sémát a megadottnak TextWriterírja.

Write(XmlWriter, XmlNamespaceManager)

Az XML-sémát a megadottnak XmlWriterírja.

Write(XmlWriter)

Az XML-sémát a megadottnak XmlWriterírja.

A következőre érvényes:

Lásd még