XmlSchema Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine speicherinterne Darstellung eines XML-Schemas, wie im World Wide Web Consortium (W3C) XML Schema Part 1: Structures and XML Schema Part 2: Datatypes angegeben.
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 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
Von Bedeutung
- Verwenden Sie keine Schemas aus unbekannten oder nicht vertrauenswürdigen Quellen oder Speicherorten. Dadurch wird die Sicherheit Ihres Codes beeinträchtigt.
- XML-Schemas (einschließlich Inlineschemas) sind inhärent anfällig für Denial-of-Service-Angriffe; nehmen Sie sie in nicht vertrauenswürdigen Szenarien nicht an.
- 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. Beispielsweise gibt die SourceUri-Eigenschaft eines XmlSchemaException 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, sodass diese vertraulichen Informationen in nicht vertrauenswürdigen Szenarien nicht verfügbar gemacht werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| XmlSchema() |
Initialisiert eine neue Instanz der XmlSchema-Klasse. |
Felder
| Name | Beschreibung |
|---|---|
| InstanceNamespace |
Der XML-Schemainstanznamespace. Dieses Feld ist konstant. |
| Namespace |
Der XML-Schemanamespace. Dieses Feld ist konstant. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AttributeFormDefault |
Dient zum Abrufen oder Festlegen des Formulars für Attribute, die im Zielnamespace des Schemas deklariert sind. |
| 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 |
Dient zum Abrufen oder Festlegen des |
| ElementFormDefault |
Dient zum Abrufen oder Festlegen des Formulars für Elemente, die im Zielnamespace des Schemas deklariert sind. |
| Elements |
Ruft den Wert nach der Schemakompilierung für alle Elemente im Schema ab. |
| FinalDefault |
Dient zum Abrufen oder Festlegen des |
| Groups |
Ruft den Wert nach der Schemakompilierung aller Gruppen im Schema ab. |
| Id |
Ruft die Zeichenfolgen-ID ab oder legt sie fest. |
| Includes |
Ruft die Auflistung der 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 neue Elementtypen auf Elementebene |
| LineNumber |
Ruft die Zeilennummer in der Datei ab, auf die sich das Element bezieht, oder legt diese |
| LinePosition |
Ruft die Zeilenposition in der Datei ab, auf die sich das Element bezieht, oder legt diese |
| Namespaces |
Dient zum Abrufen oder Festlegen der XmlSerializerNamespaces Verwendung mit diesem Schemaobjekt. (Geerbt von XmlSchemaObject) |
| Notations |
Ruft den Wert nach der Schemakompilierung für alle Notationen im Schema ab. |
| Parent |
Dient zum Abrufen oder Festlegen des übergeordneten Elements dieser XmlSchemaObject. (Geerbt von XmlSchemaObject) |
| SchemaTypes |
Ruft den Wert nach der Schemakompilierung aller Schematypen im Schema ab. |
| SourceUri |
Ruft den Quellspeicherort für die Datei ab, die das Schema geladen hat, oder legt diesen fest. (Geerbt von XmlSchemaObject) |
| TargetNamespace |
Dient zum Abrufen oder Festlegen des URI (Uniform Resource Identifier) des Schemazielnamespaces. |
| UnhandledAttributes |
Ruft die qualifizierten Attribute ab, die nicht zum Schemazielnamespace gehören, oder legt diese fest. |
| Version |
Ruft die Version des Schemas ab oder legt sie fest. |
Methoden
| Name | Beschreibung |
|---|---|
| Compile(ValidationEventHandler, XmlResolver) |
Veraltet.
Veraltet.
Veraltet.
Kompiliert das XML-Schemaobjektmodell (SOM) in Schemainformationen zur Überprüfung. Wird verwendet, um die syntaktische und semantische Struktur der programmgesteuerten SOM zu überprüfen. Während der Kompilierung wird die Überprüfung der semantischen Überprüfung durchgeführt. |
| Compile(ValidationEventHandler) |
Veraltet.
Veraltet.
Veraltet.
Kompiliert das XML-Schemaobjektmodell (SOM) in Schemainformationen zur Überprüfung. Wird verwendet, um die syntaktische und semantische Struktur der programmgesteuerten SOM zu überprüfen. Während der Kompilierung wird die Überprüfung der semantischen Überprüfung durchgeführt. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Read(Stream, ValidationEventHandler) |
Liest ein XML-Schema aus dem angegebenen Datenstrom. |
| Read(TextReader, ValidationEventHandler) |
Liest ein XML-Schema aus der angegebenen TextReader. |
| Read(XmlReader, ValidationEventHandler) |
Liest ein XML-Schema aus der angegebenen XmlReader. |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Write(Stream, XmlNamespaceManager) |
Schreibt das XML-Schema mithilfe des angegebenen Schemas in das XmlNamespaceManager angegebene Stream Schema. |
| Write(Stream) |
Schreibt das XML-Schema in den bereitgestellten Datenstrom. |
| Write(TextWriter, XmlNamespaceManager) |
Schreibt das XML-Schema in das bereitgestellte TextWriter. |
| Write(TextWriter) |
Schreibt das XML-Schema in das bereitgestellte TextWriter. |
| Write(XmlWriter, XmlNamespaceManager) |
Schreibt das XML-Schema in das bereitgestellte XmlWriter. |
| Write(XmlWriter) |
Schreibt das XML-Schema in das bereitgestellte XmlWriter. |