Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ruft den Typ der Common Language Runtime für den angegebenen XSD-Typ (XML Schema Definition) ab.
Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public Function ReadTypedValue As Object
'Usage
Dim instance As XmlValidatingReader
Dim returnValue As Object
returnValue = instance.ReadTypedValue
public Object ReadTypedValue ()
public:
Object^ ReadTypedValue ()
public Object ReadTypedValue ()
public function ReadTypedValue () : Object
Rückgabewert
Der Typ der Common Language Runtime für den angegebenen XSD (XML Schema Definition)-Typ.
Hinweise
Hinweis
Die XmlValidatingReader-Klasse ist in Microsoft .NET Framework, Version 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".
Wenn der Schematyp z. B. als xsd:int definiert ist, wird der Laufzeittyp int32 für das Objekt zurückgegeben. Der Typ kann mit der GetType-Methode überprüft und entsprechend umgewandelt werden. Die ReadTypedValue-Methode gibt immer einen Typ zurück, der von der Object-Klasse abgeleitet wurde. Sie gibt nie den Object-Typ zurück.
Wenn der Reader auf einem Attribut positioniert ist, gibt diese Methode das von der Laufzeit typisierte Objekt zurück, ändert jedoch nicht die Position des Readers. Wenn der Reader auf einem Element positioniert ist, liest ReadTypedValue sämtliche CDATA-Knoten, Textknoten, Leerraumknoten, Knoten mit signifikantem Leerraum und Kommentarknoten, gibt das von der Laufzeit typisierte Objekt zurück und positioniert den Reader auf dem Endtag. Sämtliche Typen ohne direkte Zuordnung, z. B. NMTOKENS, werden als Zeichenfolgen zurückgegeben.
Hinweis
Wenn ValidationType auf ValidationType.None festgelegt wurde, liefern weder Schemas noch DTDs (Dokumenttypdefinitionen) Datentypinformationen.
Warnung
Nach dem Aufruf von Close gibt ReadTypedValueNULL (Nothing in Visual Basic) zurück.
Beispiel
Im folgenden Beispiel werden die Typinformationen für die einzelnen Elemente im XML-Dokument angezeigt.
Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Schema
public class Sample
public shared sub Main()
Dim tr as XmlTextReader = new XmlTextReader("booksSchema.xml")
Dim vr as XmlValidatingReader = new XmlValidatingReader(tr)
vr.Schemas.Add(nothing, "books.xsd")
vr.ValidationType = ValidationType.Schema
AddHandler vr.ValidationEventHandler, AddressOf ValidationCallBack
while(vr.Read())
if(vr.NodeType = XmlNodeType.Element)
if (vr.SchemaType.ToString() = "System.Xml.Schema.XmlSchemaComplexType")
Dim sct as XmlSchemaComplexType = CType(vr.SchemaType,XmlSchemaComplexType)
Console.WriteLine("{0}({1})", vr.Name, sct.Name)
else
Dim value as object = vr.ReadTypedValue()
Console.WriteLine("{0}({1}):{2}", vr.Name, value.GetType().Name, value)
end if
end if
end while
end sub
private shared sub ValidationCallBack (sender as object, args as ValidationEventArgs)
Console.WriteLine("***Validation error")
Console.WriteLine("Severity:{0}", args.Severity)
Console.WriteLine("Message :{0}", args.Message)
end sub
end class
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);
}
}
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Schema;
public ref class Sample
{
private:
static void ValidationCallBack( Object^ sender, ValidationEventArgs^ args )
{
Console::WriteLine( "***Validation error" );
Console::WriteLine( "\tSeverity: {0}", args->Severity );
Console::WriteLine( "\tMessage : {0}", args->Message );
}
public:
static void main()
{
XmlTextReader^ tr = gcnew XmlTextReader( "booksSchema.xml" );
XmlValidatingReader^ vr = gcnew XmlValidatingReader( tr );
vr->Schemas->Add( nullptr, "books.xsd" );
vr->ValidationType = ValidationType::Schema;
vr->ValidationEventHandler += gcnew ValidationEventHandler( Sample::ValidationCallBack );
while ( vr->Read() )
{
if ( vr->NodeType == XmlNodeType::Element )
{
if ( dynamic_cast<XmlSchemaComplexType^>(vr->SchemaType) != nullptr )
{
XmlSchemaComplexType^ sct = dynamic_cast<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 );
}
}
}
}
};
int main()
{
Sample::main();
}
import System.*;
import System.IO.*;
import System.Xml.*;
import System.Xml.Schema.*;
public class Sample
{
public static void main(String[] args)
{
XmlTextReader tr = new XmlTextReader("booksSchema.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);
vr.get_Schemas().Add(null, "books.xsd");
vr.set_ValidationType(ValidationType.Schema);
vr.add_ValidationEventHandler(new ValidationEventHandler(
ValidationCallBack));
while (vr.Read()) {
if (vr.get_NodeType().Equals(XmlNodeType.Element)) {
if (vr.get_SchemaType() instanceof XmlSchemaComplexType) {
XmlSchemaComplexType sct = (XmlSchemaComplexType)(
vr.get_SchemaType());
Console.WriteLine("{0}({1})", vr.get_Name(), sct.get_Name());
}
else {
Object value = vr.ReadTypedValue();
Console.WriteLine("{0}({1}):{2}", vr.get_Name(),
value.GetType().get_Name(), value);
}
}
}
} //main
private static void ValidationCallBack(Object sender,
ValidationEventArgs args)
{
Console.WriteLine("***Validation error");
Console.WriteLine("\tSeverity:{0}", args.get_Severity());
Console.WriteLine("\tMessage :{0}", args.get_Message());
} //ValidationCallBack
} //Sample
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>
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
XmlValidatingReader-Klasse
XmlValidatingReader-Member
System.Xml-Namespace