XmlValidatingReader イベント

名前 | 説明 | |
---|---|---|
![]() | ValidationEventHandler | ドキュメント型定義 (DTD)、XML-Data Reduced (XDR) スキーマ、および XML スキーマ定義言語 (XSD) スキーマ検証エラーに関する情報を受信するためのイベント ハンドラを設定します。 |

XmlValidatingReader クラス
アセンブリ: System.Xml (system.xml.dll 内)

<ObsoleteAttribute("Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings instead. http://go.microsoft.com/fwlink/?linkid=14202")> _ Public Class XmlValidatingReader Inherits XmlReader Implements IXmlLineInfo, IXmlNamespaceResolver
[ObsoleteAttribute("Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings instead. http://go.microsoft.com/fwlink/?linkid=14202")] public class XmlValidatingReader : XmlReader, IXmlLineInfo, IXmlNamespaceResolver
[ObsoleteAttribute(L"Use XmlReader created by XmlReader.Create() method using appropriate XmlReaderSettings instead. http://go.microsoft.com/fwlink/?linkid=14202")] public ref class XmlValidatingReader : public XmlReader, IXmlLineInfo, IXmlNamespaceResolver

XmlValidatingReader は、XmlReader クラスを実装し、データ検証をサポートします。XmlSchemaCollection にキャッシュされたスキーマ ファイルを使用してリーダーに検証させるには、Schemas プロパティを使用します。ValidationType プロパティは、リーダーが実行する検証のタイプを指定します。このプロパティを ValidationType.None に設定すると、非検証リーダーが作成されます。
XmlValidatingReader は、XML 解析エラー時に XmlException をスローします。例外がスローされると、リーダーの状態は予測不可能になります。たとえば、報告されたノード型が、現在のノードの実際のノード型と異なる場合があります。リーダーがエラー状態にあるかどうかを確認するには、ReadState プロパティを使用します。
![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |

System.Xml.XmlReader
System.Xml.XmlValidatingReader


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 コンストラクタ (String, XmlNodeType, XmlParserContext)
アセンブリ: System.Xml (system.xml.dll 内)

Public Sub New ( _ xmlFragment As String, _ fragType As XmlNodeType, _ context As XmlParserContext _ )
Dim xmlFragment As String Dim fragType As XmlNodeType Dim context As XmlParserContext Dim instance As New XmlValidatingReader(xmlFragment, fragType, context)
public: XmlValidatingReader ( String^ xmlFragment, XmlNodeType fragType, XmlParserContext^ context )
public function XmlValidatingReader ( xmlFragment : String, fragType : XmlNodeType, context : XmlParserContext )


![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
このコンストラクタは、指定した文字列を XML のフラグメントとして解析します。XML フラグメントが要素または属性の場合は、整形式 XML ドキュメントのルート レベルの規則をバイパスできます。このコンストラクタは、ReadInnerXml から返される文字列を処理できます。
fragType の有効値と、リーダーによる異なるノード型の解析方法の一覧を次の表に示します。
このリーダーがドキュメント型定義 (DTD) を使用して検証 (つまり、ValidationType を ValidationType.DTD または ValidationType.Auto に設定) する場合、コンストラクタで指定した XmlParserContext で必要な DocumentType 情報をすべて提供する必要があります。
このリーダーが XML-Data Reduced (XDR) または XML スキーマ定義言語 (XSD) スキーマを使用して検証する場合は、Schemas プロパティを使用して、このスキーマを含む XmlSchemaCollection を指定します (つまり、XmlParserContext で DocumentType 情報を提供する必要はありません)。

XML フラグメントを読み取る例を次に示します。XmlParserContext とその XmlNamespaceManager を使用して、一致する名前空間を処理します。
Imports System Imports System.IO Imports System.Xml Public Class Sample Public Shared Sub Main() Dim reader As XmlTextReader = Nothing Try 'Create the XML fragment to be parsed. Dim xmlFrag As String = "<book> " & _ "<title>Pride And Prejudice</title>" & _ "<bk:genre>novel</bk:genre>" & _ "</book>" 'Create the XmlNamespaceManager that is used to 'look up namespace information. Dim nt As New NameTable() Dim nsmgr As New XmlNamespaceManager(nt) nsmgr.AddNamespace("bk", "urn:sample") 'Create the XmlParserContext. Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None) 'Implement the reader. reader = New XmlTextReader(xmlFrag, XmlNodeType.Element, context) 'Parse the XML fragment. If they exist, display the 'prefix and namespace URI of each element. While reader.Read() If reader.IsStartElement() Then If reader.Prefix = String.Empty Then Console.WriteLine("<{0}>", reader.LocalName) Else Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName) Console.WriteLine(" The namespace URI is " & reader.NamespaceURI) End If End If End While Finally If Not (reader Is Nothing) Then reader.Close() End If End Try End Sub 'Main End Class 'Sample
using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlTextReader reader = null; try { //Create the XML fragment to be parsed. string xmlFrag = "<book> " + "<title>Pride And Prejudice</title>" + "<bk:genre>novel</bk:genre>" + "</book>"; //Create the XmlNamespaceManager that is used to //look up namespace information. NameTable nt = new NameTable(); XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt); nsmgr.AddNamespace("bk", "urn:sample"); //Create the XmlParserContext. XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None); //Implement the reader. reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context); //Parse the XML fragment. If they exist, display the //prefix and namespace URI of each element. while (reader.Read()) { if (reader.IsStartElement()) { if (reader.Prefix == String.Empty) Console.WriteLine("<{0}>", reader.LocalName); else { Console.Write("<{0}:{1}>", reader.Prefix, reader.LocalName); Console.WriteLine(" The namespace URI is " + reader.NamespaceURI); } } } } finally { if (reader != null) reader.Close(); } } } // End class

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 コンストラクタ (XmlReader)
アセンブリ: System.Xml (system.xml.dll 内)



![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
指定した XmlReader から返されるノードはすべて、検証を実行するこのリーダーからも返されるため、プロセスでの情報の消失がありません。基になるリーダーから返されない新しいノード (既定の属性やエンティティ参照の子など) は、このリーダーで追加できます。指定した XmlTextReader のプロパティ セットもこの検証リーダーに適用されます。たとえば、提供されたリーダーに WhitespaceHandling.None セットが含まれている場合、この検証リーダーも空白を無視します。
検証で外部ドキュメント型定義 (DTD) またはスキーマが必要な場合、XmlResolver プロパティは、外部リソースを解決する XmlResolver オブジェクトを設定します。

Imports System Imports System.IO Imports System.Xml Imports System.Xml.Schema Imports Microsoft.VisualBasic public class Sample private m_success as Boolean = true public sub New () 'Validate the document using an external XSD schema. Validation should fail. Validate("notValidXSD.xml") 'Validate the document using an inline XSD. Validation should succeed. Validate("inlineXSD.xml") end sub public shared sub Main () Dim validation as Sample = new Sample() end sub private sub Validate(filename as String) m_success = true Console.WriteLine() Console.WriteLine("******") Console.WriteLine("Validating XML file " + filename.ToString()) Dim txtreader as XmlTextReader = new XmlTextReader (filename) Dim reader as XmlValidatingReader = new XmlValidatingReader (txtreader) ' Set the validation event handler AddHandler reader.ValidationEventHandler, AddressOf ValidationCallBack ' Read XML data while (reader.Read()) end while Console.WriteLine ("Validation finished. Validation {0}", IIf(m_success, "successful!", "failed.")) 'Close the reader. reader.Close() end sub 'Display the validation error. Private sub ValidationCallBack (sender as object, args as ValidationEventArgs) m_success = false Console.WriteLine() Console.WriteLine(" Validation error: " + args.Message ) end sub end class
using System; using System.IO; using System.Xml; using System.Xml.Schema; public class Sample { private Boolean m_success = true; public Sample () { //Validate the document using an external XSD schema. Validation should fail. Validate("notValidXSD.xml"); //Validate the document using an inline XSD. Validation should succeed. Validate("inlineXSD.xml"); } public static void Main () { Sample validation = new Sample(); } private void Validate(String filename) { m_success = true; Console.WriteLine("\r\n******"); Console.WriteLine("Validating XML file " + filename.ToString()); XmlTextReader txtreader = new XmlTextReader (filename); XmlValidatingReader reader = new XmlValidatingReader (txtreader); // Set the validation event handler reader.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack); // Read XML data while (reader.Read()){} Console.WriteLine ("Validation finished. Validation {0}", (m_success==true ? "successful!" : "failed.")); //Close the reader. reader.Close(); } //Display the validation error. private void ValidationCallBack (object sender, ValidationEventArgs args) { m_success = false; Console.WriteLine("\r\n\tValidation error: " + args.Message ); } }
#using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Schema; public ref class Sample { private: static Boolean m_success = true; public: Sample() { // Validate the document using an external XSD schema. Validation should fail. Validate( "notValidXSD.xml" ); // Validate the document using an inline XSD. Validation should succeed. Validate( "inlineXSD.xml" ); } private: // Display the validation error. void ValidationCallBack( Object^ /*sender*/, ValidationEventArgs^ args ) { m_success = false; Console::WriteLine( "\r\n\tValidation error: {0}", args->Message ); } void Validate( String^ filename ) { m_success = true; Console::WriteLine( "\r\n******" ); Console::WriteLine( "Validating XML file {0}", filename ); XmlTextReader^ txtreader = gcnew XmlTextReader( filename ); XmlValidatingReader^ reader = gcnew XmlValidatingReader( txtreader ); // Set the validation event handler reader->ValidationEventHandler += gcnew ValidationEventHandler( this, &Sample::ValidationCallBack ); // Read XML data while ( reader->Read() ) {} Console::WriteLine( "Validation finished. Validation {0}", (m_success == true ? (String^)"successful!" : "failed.") ); // Close the reader. reader->Close(); } }; int main() { Sample^ validation = gcnew Sample; }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Schema.*; public class Sample { private boolean mSuccess = true; public Sample() { // Validate the document using an external XSD schema. // Validation should fail. Validate("notValidXSD.xml"); //Validate the document using an inline XSD. Validation should succeed. Validate("inlineXSD.xml"); } //Sample public static void main(String[] args) { Sample validation = new Sample(); } //main private void Validate(String fileName) { mSuccess = true; Console.WriteLine("\r\n******"); Console.WriteLine("Validating XML file " + fileName.ToString()); XmlTextReader txtReader = new XmlTextReader(fileName); XmlValidatingReader reader = new XmlValidatingReader(txtReader); // Set the validation event handler reader.add_ValidationEventHandler( new ValidationEventHandler(ValidationCallBack)); // Read XML data while (reader.Read()) { } Console.WriteLine("Validation finished. Validation {0}", (mSuccess == true) ? "successful!" : "failed."); //Close the reader. reader.Close(); } //Validate //Display the validation error. private void ValidationCallBack(Object sender, ValidationEventArgs args) { mSuccess = false; Console.WriteLine("\r\n\tValidation error: " + args.get_Message()); } //ValidationCallBack } //Sample
notValidXSD.xml
<?xml version='1.0'?> <bookstore xmlns="urn:bookstore-schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:bookstore-schema books.xsd"> <book> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> </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>
inlineXSD.xml
<store-data> <!--Inline XSD schema--> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <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="price" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="genre" type="xsd:string"/> </xsd:complexType> </xsd:schema> <!-- end of schema --> <bookstore> <book genre="novel"> <title>Pride And Prejudice</title> <price>19.95</price> </book> </bookstore> </store-data>

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 コンストラクタ (Stream, XmlNodeType, XmlParserContext)
アセンブリ: System.Xml (system.xml.dll 内)

Public Sub New ( _ xmlFragment As Stream, _ fragType As XmlNodeType, _ context As XmlParserContext _ )
Dim xmlFragment As Stream Dim fragType As XmlNodeType Dim context As XmlParserContext Dim instance As New XmlValidatingReader(xmlFragment, fragType, context)
public: XmlValidatingReader ( Stream^ xmlFragment, XmlNodeType fragType, XmlParserContext^ context )
public function XmlValidatingReader ( xmlFragment : Stream, fragType : XmlNodeType, context : XmlParserContext )


![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlValidatingReader クラスは使用されなくなりました。検証を実行する XmlReader のインスタンスは、XmlReaderSettings クラスおよび Create メソッドを使用して作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。 |
このコンストラクタは、指定した文字列を XML のフラグメントとして解析します。XML フラグメントが要素または属性の場合は、整形式 XML ドキュメントのルート レベルの規則をバイパスできます。
fragType の有効値と、リーダーによる異なるノード型の解析方法の一覧を次の表に示します。
リーダーは、次の手順を使用してストリームのエンコーディングを判断します。
-
Encoding プロパティが null 参照 (Visual Basic では Nothing) の場合、リーダーは、ストリームの先頭でバイト順のマークを確認します。
-
Encoding プロパティが null 参照 (Visual Basic では Nothing) で、バイト順のマークが見つからない場合は、リーダーは、ストリームが UTF-8 でエンコードされることを前提とします。
このリーダーがドキュメント型定義 (DTD) を使用して検証 (つまり、ValidationType を ValidationType.DTD または ValidationType.Auto に設定) する場合、コンストラクタで指定した XmlParserContext で必要な DocumentType 情報をすべて提供する必要があります。
このリーダーが XML-Data Reduced (XDR) または XML スキーマ定義言語 (XSD) スキーマを使用して検証する場合は、Schemas プロパティを使用して、このスキーマを含む XmlSchemaCollection を指定します (つまり、XmlParserContext で DocumentType 情報を提供する必要はありません)。

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 コンストラクタ

名前 | 説明 |
---|---|
XmlValidatingReader (XmlReader) | 指定した XmlReader から返される内容を検証する XmlValidatingReader クラスの新しいインスタンスを初期化します。 |
XmlValidatingReader (Stream, XmlNodeType, XmlParserContext) | 値を指定して、XmlValidatingReader クラスの新しいインスタンスを初期化します。 |
XmlValidatingReader (String, XmlNodeType, XmlParserContext) | 値を指定して、XmlValidatingReader クラスの新しいインスタンスを初期化します。 |

XmlValidatingReader プロパティ


XmlValidatingReader メソッド


名前 | 説明 | |
---|---|---|
![]() | Dispose | XmlReader によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 ( XmlReader から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.Xml.IXmlLineInfo.HasLineInfo | |
![]() | System.Xml.IXmlNamespaceResolver.GetNamespacesInScope | このメンバの説明については、IXmlNamespaceResolver.GetNamespacesInScope のトピックを参照してください。 |
![]() | System.Xml.IXmlNamespaceResolver.LookupNamespace | このメンバの説明については、IXmlNamespaceResolver.LookupNamespace のトピックを参照してください。 |
![]() | System.Xml.IXmlNamespaceResolver.LookupPrefix | このメンバの説明については、IXmlNamespaceResolver.LookupPrefix のトピックを参照してください。 |

XmlValidatingReader メンバ
ドキュメント型定義 (DTD: Document Type Definition)、XML-Data Reduced (XDR) スキーマ、および XML スキーマ定義言語 (XSD) 検証を提供するリーダーを表します。
XmlValidatingReader データ型で公開されるメンバを以下の表に示します。




名前 | 説明 | |
---|---|---|
![]() | Dispose | XmlReader によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。 (XmlReader から継承されます。) |
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | ValidationEventHandler | ドキュメント型定義 (DTD)、XML-Data Reduced (XDR) スキーマ、および XML スキーマ定義言語 (XSD) スキーマ検証エラーに関する情報を受信するためのイベント ハンドラを設定します。 |

名前 | 説明 | |
---|---|---|
![]() | System.Xml.IXmlLineInfo.HasLineInfo | |
![]() | System.Xml.IXmlNamespaceResolver.GetNamespacesInScope | このメンバの説明については、IXmlNamespaceResolver.GetNamespacesInScope のトピックを参照してください。 |
![]() | System.Xml.IXmlNamespaceResolver.LookupNamespace | このメンバの説明については、IXmlNamespaceResolver.LookupNamespace のトピックを参照してください。 |
![]() | System.Xml.IXmlNamespaceResolver.LookupPrefix | このメンバの説明については、IXmlNamespaceResolver.LookupPrefix のトピックを参照してください。 |

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

- XmlValidatingReaderのページへのリンク