XmlValidatingReader.SchemaType プロパティ
アセンブリ: System.Xml (system.xml.dll 内)

public Object SchemaType { get; }
ノード値が XML スキーマ定義言語 (XSD) 型またはユーザー定義の simpleType あるいは complexType に組み込まれているかどうかにより、XmlSchemaDatatype、XmlSchemaSimpleType、または XmlSchemaComplexType。現在のノードにスキーマ型がない場合は、null 参照 (Visual Basic では Nothing)。

![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
ユーザーは、返された型をテストする必要があります。コード例を次に示します。
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 }
XML スキーマ検証が実行される場合は、XmlSchemaType または XmlSchemaDatatype は、読み取られる現在の要素に対応します。ドキュメント型定義 (DTD) 検証が実行される場合、このプロパティは null 参照 (Visual Basic では Nothing) を返します。
現在の要素または属性が、min や max のように単純な型で特殊な検証制約を指定できる単純型の場合は、XmlSchemaDatatype が返されます。
現在の要素または属性がユーザー定義の simpleType の場合は、XmlSchemaSimpleType が返されます。
現在の要素がユーザー定義の complexType の場合は、XmlSchemaComplexType が返されます。この型は属性で返すことができません。
![]() |
---|
Close を呼び出した後は、SchemaType は Null を返します。 |

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


Weblioに収録されているすべての辞書からXmlValidatingReader.SchemaType プロパティを検索する場合は、下記のリンクをクリックしてください。

- XmlValidatingReader.SchemaType プロパティのページへのリンク