XmlSchema Klasse

Definition

Eine speicherinterne Darstellung eines XML Schemas. Dies wird unter World Wide Web Consortium (W3C) in den Artikeln XML Schema Part 1: Structures (XML-Schema, Teil 1: Strukturen) und XML Schema Part 2: Datatypes (XML-Schema, Teil 2: Datentypen) erläutert.An in-memory representation of an XML Schema, as specified in the World Wide Web Consortium (W3C) XML Schema Part 1: Structures and XML Schema Part 2: Datatypes].

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

Beispiele

Im folgenden Beispiel wird eine Schema Definition erstellt.The following example creates a schema definition.

#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.The following XML file is generated for the preceding code example.


<?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.Do not use schemas from unknown or untrusted sources or locations. Dadurch wird die Sicherheit Ihres Codes beeinträchtigt.Doing so will compromise the security of your code.
  • XML-Schemas (einschließlich Inline Schemas) sind von Natur aus anfällig für Denial-of-Service-Angriffe. akzeptieren Sie Sie nicht in nicht vertrauenswürdigen Szenarien.XML schemas (including inline schemas) are inherently vulnerable to denial of service attacks; do not accept them in untrusted scenarios.
  • Ausnahmen, die aufgrund der 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.Exceptions raised as a result of using the XmlSchema class, such as the XmlSchemaException class, may contain sensitive information that should not be exposed in untrusted scenarios. Beispielsweise gibt die SourceUri-Eigenschaft eines XmlSchemaException den URI-Pfad der Schema Datei zurück, die die Ausnahme verursacht hat.For example, the SourceUri property of an XmlSchemaException returns the URI path to the schema file that caused the exception. Die SourceUri-Eigenschaft sollte in nicht vertrauenswürdigen Szenarios nicht verfügbar gemacht werden.The SourceUri property should not be exposed in untrusted scenarios. Ausnahmen sollten ordnungsgemäß behandelt werden, damit diese vertraulichen Informationen in nicht vertrauenswürdigen Szenarios nicht verfügbar gemacht werden.Exceptions should be properly handled so this sensitive information is not exposed in untrusted scenarios.

Konstruktoren

XmlSchema()

Initialisiert eine neue Instanz der XmlSchema-Klasse.Initializes a new instance of the XmlSchema class.

Felder

InstanceNamespace

Der Namespace der XML Schema-Instanz.The XML schema instance namespace. Dieses Feld ist konstant.This field is constant.

Namespace

Der XML Schema-Namespace.The XML schema namespace. Dieses Feld ist konstant.This field is constant.

Eigenschaften

AttributeFormDefault

Ruft die Form der Attribute ab, die im Zielnamespace des Schemas deklariert sind, oder legt dieses fest.Gets or sets the form for attributes declared in the target namespace of the schema.

AttributeGroups

Ruft den Wert nach der Schemakompilierung aller globalen Attributgruppen im Schema ab.Gets the post-schema-compilation value of all the global attribute groups in the schema.

Attributes

Ruft den Wert nach der Schemakompilierung für alle Attribute im Schema ab.Gets the post-schema-compilation value for all the attributes in the schema.

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.Gets or sets the blockDefault attribute which sets the default value of the block attribute on element and complex types in the targetNamespace of the schema.

ElementFormDefault

Ruft die Form der Elemente ab, die im Zielnamespace des Schemas deklariert sind, oder legt dieses fest.Gets or sets the form for elements declared in the target namespace of the schema.

Elements

Ruft den Wert nach der Schemakompilierung für alle Elemente im Schema ab.Gets the post-schema-compilation value for all the elements in the schema.

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.Gets or sets the finalDefault attribute which sets the default value of the final attribute on elements and complex types in the target namespace of the schema.

Groups

Ruft den Wert nach der Schemakompilierung für alle Gruppen im Schema ab.Gets the post-schema-compilation value of all the groups in the schema.

Id

Ruft die Zeichenfolgen-ID ab oder legt diese fest.Gets or sets the string ID.

Includes

Ruft die Auflistung von enthaltenen und importierten Schemas ab.Gets the collection of included and imported schemas.

IsCompiled

Gibt an, ob das Schema kompiliert wurde.Indicates if the schema has been compiled.

Items

Ruft die Auflistung von Schemaelementen im Schema ab und wird verwendet, um auf schema-Elementebene neue Elementtypen hinzuzufügen.Gets the collection of schema elements in the schema and is used to add new element types at the schema element level.

LineNumber

Ruft die Zeilennummer in der Datei ab, auf die das schema-Element verweist, oder legt diese fest.Gets or sets the line number in the file to which the schema element refers.

(Geerbt von XmlSchemaObject)
LinePosition

Ruft die Zeilenposition in der Datei ab, auf die das schema-Element verweist, oder legt diese fest.Gets or sets the line position in the file to which the schema element refers.

(Geerbt von XmlSchemaObject)
Namespaces

Ruft die mit diesem Schemaobjekt zu verwendenden XmlSerializerNamespaces ab oder legt diese fest.Gets or sets the XmlSerializerNamespaces to use with this schema object.

(Geerbt von XmlSchemaObject)
Notations

Ruft den Wert nach der Schemakompilierung für alle Notationen im Schema ab.Gets the post-schema-compilation value for all notations in the schema.

Parent

Ruft das übergeordnete Objekt dieses XmlSchemaObject ab oder legt dieses fest.Gets or sets the parent of this XmlSchemaObject.

(Geerbt von XmlSchemaObject)
SchemaTypes

Ruft den Wert nach der Schemakompilierung für alle Schematypen im Schema ab.Gets the post-schema-compilation value of all schema types in the schema.

SourceUri

Ruft die Quellposition für die Datei ab, die das Schema geladen hat, oder legt diese fest.Gets or sets the source location for the file that loaded the schema.

(Geerbt von XmlSchemaObject)
TargetNamespace

Ruft den URI (Uniform Resource Identifier) des Zielnamespaces des Schemas ab oder legt diesen fest.Gets or sets the Uniform Resource Identifier (URI) of the schema target namespace.

UnhandledAttributes

Ruft die qualifizierten Attribute ab, die nicht zum Zielnamespace des Schemas gehören, oder legt diese fest.Gets or sets the qualified attributes which do not belong to the schema target namespace.

Version

Ruft die Version des Schemas ab oder legt diese fest.Gets or sets the version of the schema.

Methoden

Compile(ValidationEventHandler)

Kompiliert das XML-Schema-Objektmodell (SOM) für die Validierung in Schemainformationen.Compiles the XML Schema Object Model (SOM) into schema information for validation. Wird zur Validierung der syntaktischen und semantischen Struktur des programmgesteuert erstellten SOM verwendet.Used to check the syntactic and semantic structure of the programmatically built SOM. Semantische Validierung wird während der Kompilierung durchgeführt.Semantic validation checking is performed during compilation.

Compile(ValidationEventHandler, XmlResolver)

Kompiliert das XML-Schema-Objektmodell (SOM) für die Validierung in Schemainformationen.Compiles the XML Schema Object Model (SOM) into schema information for validation. Wird zur Validierung der syntaktischen und semantischen Struktur des programmgesteuert erstellten SOM verwendet.Used to check the syntactic and semantic structure of the programmatically built SOM. Semantische Validierung wird während der Kompilierung durchgeführt.Semantic validation checking is performed during compilation.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
Read(Stream, ValidationEventHandler)

Liest ein XML-Schema aus dem bereitgestellten Stream.Reads an XML Schema from the supplied stream.

Read(TextReader, ValidationEventHandler)

Liest ein XML-Schema aus dem bereitgestellten TextReader.Reads an XML Schema from the supplied TextReader.

Read(XmlReader, ValidationEventHandler)

Liest ein XML-Schema aus dem bereitgestellten XmlReader.Reads an XML Schema from the supplied XmlReader.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
Write(Stream)

Schreibt das XML-Schema in den bereitgestellten Datenstream.Writes the XML Schema to the supplied data stream.

Write(Stream, XmlNamespaceManager)

Schreibt das XML-Schema unter Verwendung des angegebenen Stream in den angegebenen XmlNamespaceManager.Writes the XML Schema to the supplied Stream using the XmlNamespaceManager specified.

Write(TextWriter)

Schreibt das XML-Schema in den angegebenen TextWriter.Writes the XML Schema to the supplied TextWriter.

Write(TextWriter, XmlNamespaceManager)

Schreibt das XML-Schema in den angegebenen TextWriter.Writes the XML Schema to the supplied TextWriter.

Write(XmlWriter)

Schreibt das XML-Schema in den angegebenen XmlWriter.Writes the XML Schema to the supplied XmlWriter.

Write(XmlWriter, XmlNamespaceManager)

Schreibt das XML-Schema in den angegebenen XmlWriter.Writes the XML Schema to the supplied XmlWriter.

Gilt für:

Siehe auch