XmlValidatingReader コンストラクタとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > XmlValidatingReader コンストラクタの意味・解説 

XmlValidatingReader コンストラクタ (String, XmlNodeType, XmlParserContext)

値を指定してXmlValidatingReader クラス新しインスタンス初期化します。

名前空間: System.Xml
アセンブリ: 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:
XmlValidatingReader (
    String^ xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext^ context
)
public XmlValidatingReader (
    String xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext context
)
public function XmlValidatingReader (
    xmlFragment : String, 
    fragType : XmlNodeType, 
    context : XmlParserContext
)

パラメータ

xmlFragment

解析する XML フラグメント含んでいる文字列

fragType

XML フラグメントの XmlNodeType。これは、フラグメント文字列何を含めることができるかも判断します (次の表を参照)。

context

XML フラグメント解析先の XmlParserContext。これには、使用する NameTable、エンコーディング名前空間スコープ現在の xml:lang、および xml:space スコープ含まれます。

例外例外
例外種類条件

XmlException

fragType が、次の表に示すノード型の 1 つではありません。

解説解説

このコンストラクタは、指定した文字列XMLフラグメントとして解析しますXML フラグメント要素または属性場合は、整形式 XML ドキュメントルート レベル規則バイパスできます。このコンストラクタは、ReadInnerXml から返される文字列を処理できます

fragType の有効値と、リーダーによる異なノード型の解析方法の一覧を次の表に示します

このリーダードキュメント型定義 (DTD) を使用して検証 (つまり、ValidationType を ValidationType.DTD または ValidationType.Auto に設定) する場合コンストラクタ指定した XmlParserContext必要な DocumentType 情報をすべて提供する必要があります

メモメモ

DTD使用してフラグメント検証できません。定義上は、DTD では検証のためにドキュメント全体読み込む必要があります

このリーダー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
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlValidatingReader コンストラクタ (XmlReader)

指定した XmlReader から返される内容検証する XmlValidatingReader クラス新しインスタンス初期化します。

名前空間: System.Xml
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

public XmlValidatingReader (
    XmlReader reader
)
public:
XmlValidatingReader (
    XmlReader^ reader
)
public XmlValidatingReader (
    XmlReader reader
)
public function XmlValidatingReader (
    reader : XmlReader
)

パラメータ

reader

検証中に読み取る対象XmlReader現在の実装では、XmlTextReader のみサポートします

例外例外
例外種類条件

ArgumentException

指定したリーダーXmlTextReader ではありません。

解説解説
使用例使用例

2 つドキュメント検証する例を次に示します

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>
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlValidatingReader コンストラクタ (Stream, XmlNodeType, XmlParserContext)

値を指定してXmlValidatingReader クラス新しインスタンス初期化します。

名前空間: System.Xml
アセンブリ: 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:
XmlValidatingReader (
    Stream^ xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext^ context
)
public XmlValidatingReader (
    Stream xmlFragment, 
    XmlNodeType fragType, 
    XmlParserContext context
)
public function XmlValidatingReader (
    xmlFragment : Stream, 
    fragType : XmlNodeType, 
    context : XmlParserContext
)

パラメータ

xmlFragment

解析する XML フラグメント含んでいるストリーム

fragType

XML フラグメントの XmlNodeType。これは、フラグメント何を含めることができるかを判断します (次の表を参照)。

context

XML フラグメント解析先の XmlParserContext。これには、使用する XmlNameTable、エンコーディング名前空間スコープ現在の xml:lang、および xml:space スコープ含まれます。

例外例外
例外種類条件

XmlException

fragType が、次の表に示すノード型の 1 つではありません。

解説解説

このコンストラクタは、指定した文字列XMLフラグメントとして解析しますXML フラグメント要素または属性場合は、整形式 XML ドキュメントルート レベル規則バイパスできます

fragType の有効値と、リーダーによる異なノード型の解析方法の一覧を次の表に示します

リーダーは、次の手順使用してストリームエンコーディング判断します

  1. XmlParserContext.Encoding プロパティチェックしてエンコーディング判断します

  2. Encoding プロパティnull 参照 (Visual Basic では Nothing) の場合リーダーは、ストリーム先頭バイト順のマーク確認します

  3. Encoding プロパティnull 参照 (Visual Basic では Nothing) で、バイト順のマークが見つからない場合は、リーダーは、ストリームUTF-8エンコードされることを前提とします

このリーダードキュメント型定義 (DTD) を使用して検証 (つまり、ValidationType を ValidationType.DTD または ValidationType.Auto に設定) する場合コンストラクタ指定した XmlParserContext必要な DocumentType 情報をすべて提供する必要があります

メモメモ

DTD使用してフラグメント検証できません。定義上は、DTD では検証のためにドキュメント全体読み込む必要があります

このリーダーXML-Data Reduced (XDR) または XML スキーマ定義言語 (XSD) スキーマ使用して検証する場合は、Schemas プロパティ使用して、このスキーマを含む XmlSchemaCollection を指定します (つまり、XmlParserContext で DocumentType 情報提供する要はありません)。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

XmlValidatingReader コンストラクタ

XmlValidatingReader クラス新しインスタンス初期化します。
オーバーロードの一覧オーバーロードの一覧

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

関連項目

XmlValidatingReader クラス
XmlValidatingReader メンバ
System.Xml 名前空間
XmlTextReader クラス

その他の技術情報

XmlReader による XML読み取り



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「XmlValidatingReader コンストラクタ」の関連用語

XmlValidatingReader コンストラクタのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlValidatingReader コンストラクタのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS