Teilen über


XmlSchema Klasse

Definition

Eine speicherinterne Darstellung eines XML-Schemas, wie vom World Wide Web Consortium (W3C) unter XML Schema Part 1: Structures (XML-Schema Teil 1: Strukturen) und XML Schema Part 2: Datatypes (XML-Schema Teil 2: Datentypen) festgelegt.

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

Beispiele

Im folgenden Beispiel wird eine Schemadefinition erstellt.

#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

Die folgende XML-Datei wird für das vorherige Codebeispiel generiert.


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

Hinweise

Wichtig

  • Verwenden Sie keine Schemas aus unbekannten oder nicht vertrauenswürdigen Quellen oder Speicherorten. Dies beeinträchtigt die Sicherheit Ihres Codes.
  • XML-Schemas (einschließlich Inlineschemas) sind von Natur aus anfällig für Denial-of-Service-Angriffe. akzeptieren Sie diese in nicht vertrauenswürdigen Szenarien nicht.
  • Ausnahmen, die durch die Verwendung der XmlSchema -Klasse ausgelöst werden, z. B. die XmlSchemaException -Klasse, können vertrauliche Informationen enthalten, die in nicht vertrauenswürdigen Szenarien nicht verfügbar gemacht werden sollten. Die -Eigenschaft eines XmlSchemaException gibt beispielsweise SourceUri den URI-Pfad zur Schemadatei zurück, die die Ausnahme verursacht hat. Die SourceUri Eigenschaft sollte in nicht vertrauenswürdigen Szenarien nicht verfügbar gemacht werden. Ausnahmen sollten ordnungsgemäß behandelt werden, damit diese vertraulichen Informationen in nicht vertrauenswürdigen Szenarien nicht verfügbar gemacht werden.

Konstruktoren

XmlSchema()

Initialisiert eine neue Instanz der XmlSchema-Klasse.

Felder

InstanceNamespace

Der Namespace der XML Schema-Instanz. Dieses Feld ist konstant.

Namespace

Der XML Schema-Namespace. Dieses Feld ist konstant.

Eigenschaften

AttributeFormDefault

Ruft die Form der Attribute ab, die im Zielnamespace des Schemas deklariert sind, oder legt dieses fest.

AttributeGroups

Ruft den Wert nach der Schemakompilierung aller globalen Attributgruppen im Schema ab.

Attributes

Ruft den Wert nach der Schemakompilierung für alle Attribute im Schema ab.

BlockDefault

Ruft das blockDefault-Attribut ab, das den Standardwert des block-Attributs für Elementtypen und komplexe Typen im targetNamespace des Schemas festlegt, oder legt dieses fest.

ElementFormDefault

Ruft die Form der Elemente ab, die im Zielnamespace des Schemas deklariert sind, oder legt dieses fest.

Elements

Ruft den Wert nach der Schemakompilierung für alle Elemente im Schema ab.

FinalDefault

Ruft das finalDefault-Attribut ab, das den Standardwert des final-Attributs für Elemente und komplexe Typen im Zielnamespace des Schemas festlegt, oder legt dieses fest.

Groups

Ruft den Wert nach der Schemakompilierung für alle Gruppen im Schema ab.

Id

Ruft die Zeichenfolgen-ID ab oder legt diese fest.

Includes

Ruft die Auflistung von enthaltenen und importierten Schemas ab.

IsCompiled

Gibt an, ob das Schema kompiliert wurde.

Items

Ruft die Auflistung von Schemaelementen im Schema ab und wird verwendet, um auf schema-Elementebene neue Elementtypen hinzuzufügen.

LineNumber

Ruft die Zeilennummer in der Datei ab, auf die das schema-Element verweist, oder legt diese fest.

(Geerbt von XmlSchemaObject)
LinePosition

Ruft die Zeilenposition in der Datei ab, auf die das schema-Element verweist, oder legt diese fest.

(Geerbt von XmlSchemaObject)
Namespaces

Ruft die mit diesem Schemaobjekt zu verwendenden XmlSerializerNamespaces ab oder legt diese fest.

(Geerbt von XmlSchemaObject)
Notations

Ruft den Wert nach der Schemakompilierung für alle Notationen im Schema ab.

Parent

Ruft das übergeordnete Objekt dieses XmlSchemaObject ab oder legt dieses fest.

(Geerbt von XmlSchemaObject)
SchemaTypes

Ruft den Wert nach der Schemakompilierung für alle Schematypen im Schema ab.

SourceUri

Ruft die Quellposition für die Datei ab, die das Schema geladen hat, oder legt diese fest.

(Geerbt von XmlSchemaObject)
TargetNamespace

Ruft den URI (Uniform Resource Identifier) des Zielnamespaces des Schemas ab oder legt diesen fest.

UnhandledAttributes

Ruft die qualifizierten Attribute ab, die nicht zum Zielnamespace des Schemas gehören, oder legt diese fest.

Version

Ruft die Version des Schemas ab oder legt diese fest.

Methoden

Compile(ValidationEventHandler)
Veraltet.
Veraltet.
Veraltet.

Kompiliert das XML-Schema-Objektmodell (SOM) für die Validierung in Schemainformationen. Wird zur Validierung der syntaktischen und semantischen Struktur des programmgesteuert erstellten SOM verwendet. Semantische Validierung wird während der Kompilierung durchgeführt.

Compile(ValidationEventHandler, XmlResolver)
Veraltet.
Veraltet.
Veraltet.

Kompiliert das XML-Schema-Objektmodell (SOM) für die Validierung in Schemainformationen. Wird zur Validierung der syntaktischen und semantischen Struktur des programmgesteuert erstellten SOM verwendet. Semantische Validierung wird während der Kompilierung durchgeführt.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Read(Stream, ValidationEventHandler)

Liest ein XML-Schema aus dem angegebenen Stream.

Read(TextReader, ValidationEventHandler)

Liest ein XML-Schema aus dem bereitgestellten TextReader.

Read(XmlReader, ValidationEventHandler)

Liest ein XML-Schema aus dem bereitgestellten XmlReader.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
Write(Stream)

Schreibt das XML-Schema in den bereitgestellten Datenstream.

Write(Stream, XmlNamespaceManager)

Schreibt das XML-Schema unter Verwendung des angegebenen Stream in den angegebenen XmlNamespaceManager.

Write(TextWriter)

Schreibt das XML-Schema in den angegebenen TextWriter.

Write(TextWriter, XmlNamespaceManager)

Schreibt das XML-Schema in den angegebenen TextWriter.

Write(XmlWriter)

Schreibt das XML-Schema in den angegebenen XmlWriter.

Write(XmlWriter, XmlNamespaceManager)

Schreibt das XML-Schema in den angegebenen XmlWriter.

Gilt für:

Weitere Informationen