XmlValidatingReader.ReadTypedValue メソッド
アセンブリ: System.Xml (system.xml.dll 内)

Dim instance As XmlValidatingReader Dim returnValue As Object returnValue = instance.ReadTypedValue
指定した XML スキーマ型の共通言語ランタイム型。

![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
たとえば、スキーマ型が xsd:int として定義されている場合は、オブジェクトに対して int32 ランタイム型が返されます。これは、GetType メソッドを使用してテストし、それに応じてキャストできます。ReadTypedValue メソッドは、Object クラスから派生した型を常に返します。Object 型を返すことはありません。
リーダーを属性に配置すると、このメソッドは、ランタイム型のオブジェクトを返しますが、リーダーの位置は変更しません。リーダーを要素に配置すると、ReadTypedValue は、任意の CDATA、テキスト、空白、有意な空白、およびコメント ノードを読み取り、ランタイム型のオブジェクトを返し、リーダーを終了タグに配置します。NMTOKENS など直接割り当てを持たない任意の型は、文字列として返されます。
![]() |
---|
Close が呼び出された後は、ReadTypedValue は null 参照 (Visual Basic では Nothing) を返します。 |

XML ドキュメント内の各要素の型情報を表示する例を次に示します。
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
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>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- XmlValidatingReader.ReadTypedValue メソッドのページへのリンク