Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XmlValidatingReader.SchemaType-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft ein Objekt vom Typ Schema ab.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public object SchemaType { get; }

Eigenschaftswert

Type: System.Object

XmlSchemaDatatype, XmlSchemaSimpleType oder XmlSchemaComplexType, abhängig davon, ob der Knotenwert ein integrierter XSD-Typ (XML Schema Definition Language) oder ein benutzerdefinierter simpleType bzw. complexType ist. null, wenn der aktuelle Knoten über keinen Schematyp verfügt.

System_CAPS_noteHinweis

Die XmlValidatingReader -Klasse ist in veraltet .NET Framework 2.0. Sie Erstellen eines validierenden XmlReader Instanz mithilfe der XmlReaderSettings Klasse und die Create Methode. Weitere Informationen finden Sie im Abschnitt Hinweise unter der XmlReader Referenzseite.

Der Benutzer muss den zurückgegebenen Typ zu testen. Beispiel:

object obj = vreader.SchemaType;
 if (obj is XmlSchemaType)
 {
   XmlSchemaType st = (XmlSchemaType)obj;
   // use XmlSchemaType object
 }
 if (obj is XmlSchemaDatatype)
 {
   XmlSchemaDatatype sd = (XmlSchemaDatatype)obj;
   Type vt = sd.ValueType;
   // use XmlSchemaDatatype object
       }

Wenn XML-Schema-Validierung ausgeführt wird, die XmlSchemaType oder XmlSchemaDatatype entspricht dem aktuellen Element, das gelesen wird. Wenn die Dokumenttypdefinition (DTD-Validierung) ausgeführt wird, gibt diese Eigenschaft null.

XmlSchemaDatatype wird zurückgegeben, wenn das aktuelle Element oder Attribut einen einfachen Typ ist, der spezielle validierungseinschränkungen für die einfachen Typen wie min und Max angeben können.

XmlSchemaSimpleType wird zurückgegeben, wenn das aktuelle Element oder Attribut ein benutzerdefinierter SimpleType ist.

XmlSchemaComplexType wird zurückgegeben, wenn das aktuelle Element ein benutzerdefinierter ComplexType ist. Dieser Typ kann nicht von Attributen zurückgegeben werden.

System_CAPS_noteHinweis

Wenn ValidationType festgelegt wurde auf ValidationType.None, wird keine Datentypinformationen aus Schemas oder DTDs bereitgestellt.

System_CAPS_cautionAchtung

Nach dem Aufruf von Close, SchemaType Null zurück.

Das folgende Beispiel zeigt die Typinformationen für jedes Element im XML-Dokument.

using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;

public class Sample{

  public static void Main(){

  XmlTextReader tr = new XmlTextReader("booksSchema.xml");
  XmlValidatingReader vr = new XmlValidatingReader(tr);

  vr.Schemas.Add(null, "books.xsd");
  vr.ValidationType = ValidationType.Schema;
  vr.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);

  while(vr.Read()){
    if(vr.NodeType == XmlNodeType.Element){
      if(vr.SchemaType is XmlSchemaComplexType){
        XmlSchemaComplexType sct = (XmlSchemaComplexType)vr.SchemaType;
        Console.WriteLine("{0}({1})", vr.Name, sct.Name);
      }
      else{
        object value = vr.ReadTypedValue();
        Console.WriteLine("{0}({1}):{2}", vr.Name, value.GetType().Name, value);
      }
    }
  }
 }

  private static void ValidationCallBack (object sender, ValidationEventArgs args){
    Console.WriteLine("***Validation error");
    Console.WriteLine("\tSeverity:{0}", args.Severity);
    Console.WriteLine("\tMessage  :{0}", args.Message);
  }
}

Im Beispiel werden die folgenden Eingabedateien verwendet:

booksSchema.xml

<?xml version='1.0'?>
<bookstore xmlns="urn:bookstore-schema">
  <book genre="autobiography">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
</bookstore>

books.xsd

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="urn:bookstore-schema"
    elementFormDefault="qualified"
    targetNamespace="urn:bookstore-schema">

 <xsd:element name="bookstore" type="bookstoreType"/>

 <xsd:complexType name="bookstoreType">
  <xsd:sequence maxOccurs="unbounded">
   <xsd:element name="book"  type="bookType"/>
  </xsd:sequence>
 </xsd:complexType>

 <xsd:complexType name="bookType">
  <xsd:sequence>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="authorName"/>
   <xsd:element name="price"  type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="genre" type="xsd:string"/>
 </xsd:complexType>

 <xsd:complexType name="authorName">
  <xsd:sequence>
   <xsd:element name="first-name"  type="xsd:string"/>
   <xsd:element name="last-name" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>

</xsd:schema>

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: