(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

XmlValidatingReader.SchemaType-Eigenschaft

Ruft ein Objekt vom Typ Schema ab.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)
public Object SchemaType { get; }

Eigenschaftswert

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

Die XmlValidatingReader-Klasse ist in .NET Framework 2.0 veraltet. Sie können eine Instanz eines validierenden XmlReader mithilfe der XmlReaderSettings-Klasse und der Create-Methode erstellen. Weitere Informationen finden Sie unter Validieren von XML-Daten mit "XmlReader".

Der Benutzer muss den zurückgegebenen Typ überprüfen. Ein 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
       }

Bei der Validierung eines XSD (XML Schema Definition)-Schemas entspricht der XmlSchemaType oder XmlSchemaDatatype dem aktuellen Element, das gelesen wird. Bei der DTD (Dokumenttypdefinition)-Validierung gibt diese Eigenschaft null zurück.

XmlSchemaDatatype wird zurückgegeben, wenn das aktuelle Element oder Attribut ein einfacher Typ ist, der besondere Validierungseinschränkungen wie Minimum und Maximum für einfache Typen angeben kann.

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.

HinweisHinweis

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

WarnhinweisVorsicht

Nach dem Aufruf von Close gibt SchemaType NULL zurück.

Im folgenden Beispiel werden die Typinformationen für die einzelnen Elemente im XML-Dokument angezeigt.


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

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.