XmlNodeReader クラス

定義

XmlNode内の XML データへの高速でキャッシュされていない転送アクセスのみを提供するリーダーを表します。

public ref class XmlNodeReader : System::Xml::XmlReader
public ref class XmlNodeReader : System::Xml::XmlReader, System::Xml::IXmlNamespaceResolver
public class XmlNodeReader : System.Xml.XmlReader
public class XmlNodeReader : System.Xml.XmlReader, System.Xml.IXmlNamespaceResolver
type XmlNodeReader = class
    inherit XmlReader
type XmlNodeReader = class
    inherit XmlReader
    interface IXmlNamespaceResolver
Public Class XmlNodeReader
Inherits XmlReader
Public Class XmlNodeReader
Inherits XmlReader
Implements IXmlNamespaceResolver
継承
XmlNodeReader
実装

次の例では、XML ファイルが XML ドキュメントに読み込まれ、変更されます。 XML ドキュメントは XmlNodeReaderに渡され、 XmlReader.Create メソッドに渡されます。 検証リーダーは、ファイルを解析するときに、XML ファイルに加えられた変更を検証できます。

using System;
using System.Xml;
using System.Xml.Schema;
using System.IO;

public class Sample {

  public static void Main() {

    // Create and load the XML document.
    XmlDocument doc = new XmlDocument();
    doc.Load("booksSchema.xml");

    // Make changes to the document.
    XmlElement book = (XmlElement) doc.DocumentElement.FirstChild;
    book.SetAttribute("publisher", "Worldwide Publishing");

    // Create an XmlNodeReader using the XML document.
    XmlNodeReader nodeReader = new XmlNodeReader(doc);

    // Set the validation settings on the XmlReaderSettings object.
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.ValidationType = ValidationType.Schema;
    settings.Schemas.Add("urn:bookstore-schema", "books.xsd");
    settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);

   // Create a validating reader that wraps the XmlNodeReader object.
   XmlReader reader = XmlReader.Create(nodeReader, settings);

   // Parse the XML file.
   while (reader.Read());
  }

  // Display any validation errors.
  private static void ValidationCallBack(object sender, ValidationEventArgs e) {
    Console.WriteLine("Validation Error: {0}", e.Message);
  }
}
Imports System.Xml
Imports System.Xml.Schema
Imports System.IO

public class Sample 

  public shared sub Main() 

    ' Create and load the XML document.
    Dim doc as XmlDocument = new XmlDocument()
    doc.Load("booksSchema.xml")

    ' Make changes to the document.
    Dim book as XmlElement
    book = CType(doc.DocumentElement.FirstChild, XmlElement)
    book.SetAttribute("publisher", "Worldwide Publishing")

    ' Create an XmlNodeReader using the XML document.
    Dim nodeReader as XmlNodeReader = new XmlNodeReader(doc)

    ' Set the validation settings on the XmlReaderSettings object.
    Dim settings as XmlReaderSettings = new XmlReaderSettings()
    settings.ValidationType = ValidationType.Schema
    settings.Schemas.Add("urn:bookstore-schema", "books.xsd")
    AddHandler settings.ValidationEventHandler, AddressOf ValidationCallBack

    ' Create a validating reader that wraps the XmlNodeReader object.
    Dim reader as XmlReader = XmlReader.Create(nodeReader,settings)
    
    ' Parse the XML file.
    while (reader.Read())
    end while
  end sub

  ' Display any validation errors.
  private shared sub ValidationCallBack(sender as object, e as ValidationEventArgs)
    Console.WriteLine("Validation Error: {0}", e.Message)
  end sub

end class

次の 2 つの 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>
<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>

アウトプット:

検証エラー: 'publisher' 属性が宣言されていません。

注釈

Note

XmlNodeReaderを使用する代わりに、XmlReaderSettings クラスと Create メソッドを使用してXmlReader インスタンスを作成することをお勧めします。 これにより、XML 1.0 の推奨事項への準拠チェックとコンプライアンスを利用できます。

XmlNodeReaderには、XML DOM サブツリーを読み取る機能があります。 このクラスは、ドキュメント型定義 (DTD) またはスキーマの検証をサポートしていません。 ただし、「例」セクションに示すように、XmlNodeReader オブジェクトをラップするXmlReader オブジェクトを作成して、XmlNodeReader オブジェクトに格納されているデータを検証できます。

コンストラクター

名前 説明
XmlNodeReader(XmlNode)

指定したXmlNodeを使用して、XmlNodeReader クラスのインスタンスを作成します。

プロパティ

名前 説明
AttributeCount

現在のノードの属性の数を取得します。

BaseURI

現在のノードのベース URI を取得します。

CanReadBinaryContent

XmlNodeReaderがバイナリ コンテンツの読み取りメソッドを実装するかどうかを示す値を取得します。

CanReadValueChunk

XmlReaderReadValueChunk(Char[], Int32, Int32) メソッドを実装するかどうかを示す値を取得します。

(継承元 XmlReader)
CanResolveEntity

このリーダーがエンティティを解析して解決できるかどうかを示す値を取得します。

Depth

XML ドキュメント内の現在のノードの深さを取得します。

EOF

リーダーがストリームの末尾に配置されているかどうかを示す値を取得します。

HasAttributes

現在のノードに属性があるかどうかを示す値を取得します。

HasValue

現在のノードに Valueを含めることができるかどうかを示す値を取得します。

IsDefault

現在のノードが、ドキュメント型定義 (DTD) またはスキーマで定義された既定値から生成された属性であるかどうかを示す値を取得します。

IsEmptyElement

現在のノードが空の要素 (たとえば、 <MyElement/>) であるかどうかを示す値を取得します。

Item[Int32]

指定したインデックスを持つ属性の値を取得します。

Item[Int32]

派生クラスでオーバーライドされると、指定したインデックスを持つ属性の値を取得します。

(継承元 XmlReader)
Item[String, String]

指定したローカル名と名前空間 URI を持つ属性の値を取得します。

Item[String, String]

派生クラスでオーバーライドされると、指定した LocalNameNamespaceURIを持つ属性の値を取得します。

(継承元 XmlReader)
Item[String]

派生クラスでオーバーライドされると、指定した名前の属性の値を取得します。

Item[String]

派生クラスでオーバーライドされると、指定した Nameを持つ属性の値を取得します。

(継承元 XmlReader)
LocalName

現在のノードのローカル名を取得します。

Name

現在のノードの修飾名を取得します。

NamespaceURI

リーダーが配置されているノードの名前空間 URI (W3C 名前空間仕様で定義) を取得します。

NameTable

この実装に関連付けられている XmlNameTable を取得します。

NodeType

現在のノードの種類を取得します。

Prefix

現在のノードに関連付けられている名前空間プレフィックスを取得します。

QuoteChar

属性ノードの値を囲むために使用する引用符文字を取得します。

QuoteChar

派生クラスでオーバーライドされると、属性ノードの値を囲むために使用される引用符文字を取得します。

(継承元 XmlReader)
ReadState

リーダーの状態を取得します。

SchemaInfo

現在のノードに割り当てられているスキーマ情報を取得します。

Settings

このXmlReaderSettings インスタンスの作成に使用するXmlReader オブジェクトを取得します。

(継承元 XmlReader)
Value

現在のノードのテキスト値を取得します。

ValueType

現在のノードの共通言語ランタイム (CLR) 型を取得します。

(継承元 XmlReader)
XmlLang

現在の xml:lang スコープを取得します。

XmlSpace

現在の xml:space スコープを取得します。

メソッド

名前 説明
Close()

ReadStateClosedに変更します。

Dispose()

XmlReader クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

(継承元 XmlReader)
Dispose(Boolean)

XmlReaderによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを解放します。

(継承元 XmlReader)
Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetAttribute(Int32)

指定したインデックスを持つ属性の値を取得します。

GetAttribute(String, String)

指定したローカル名と名前空間 URI を持つ属性の値を取得します。

GetAttribute(String)

指定した名前の属性の値を取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetValueAsync()

現在のノードの値を非同期的に取得します。

(継承元 XmlReader)
IsStartElement()

MoveToContent()を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグであるかどうかをテストします。

(継承元 XmlReader)
IsStartElement(String, String)

MoveToContent()を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグであるかどうかをテストし、見つかった要素のLocalNameプロパティとNamespaceURIプロパティが指定された文字列と一致するかどうかをテストします。

(継承元 XmlReader)
IsStartElement(String)

MoveToContent()を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグであるかどうかをテストし、見つかった要素のName プロパティが指定された引数と一致するかどうかをテストします。

(継承元 XmlReader)
LookupNamespace(String)

現在の要素のスコープ内の名前空間プレフィックスを解決します。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
MoveToAttribute(Int32)

指定したインデックスを持つ属性に移動します。

MoveToAttribute(String, String)

指定したローカル名と名前空間 URI を持つ属性に移動します。

MoveToAttribute(String)

指定した名前の属性に移動します。

MoveToContent()

現在のノードがコンテンツ (空白以外のテキスト、 CDATAElementEndElementEntityReference、または EndEntity) ノードであるかどうかを確認します。 ノードがコンテンツ ノードでない場合、リーダーは次のコンテンツ ノードまたはファイルの末尾に進みます。 ProcessingInstructionDocumentTypeCommentWhitespace、またはSignificantWhitespaceのノードをスキップします。

(継承元 XmlReader)
MoveToContentAsync()

現在のノードがコンテンツ ノードであるかどうかを非同期的にチェックします。 ノードがコンテンツ ノードでない場合、リーダーは次のコンテンツ ノードまたはファイルの末尾に進みます。

(継承元 XmlReader)
MoveToElement()

現在の属性ノードを含む要素に移動します。

MoveToFirstAttribute()

最初の属性に移動します。

MoveToNextAttribute()

次の属性に移動します。

Read()

ストリームから次のノードを読み取ります。

ReadAsync()

ストリームから次のノードを非同期に読み取ります。

(継承元 XmlReader)
ReadAttributeValue()

属性値を 1 つ以上の TextEntityReference、または EndEntity ノードに解析します。

ReadContentAs(Type, IXmlNamespaceResolver)

指定した型のオブジェクトとしてコンテンツを読み取ります。

(継承元 XmlReader)
ReadContentAsAsync(Type, IXmlNamespaceResolver)

指定した型のオブジェクトとしてコンテンツを非同期的に読み取ります。

(継承元 XmlReader)
ReadContentAsBase64(Byte[], Int32, Int32)

コンテンツを読み取り、Base64 デコードされたバイナリ バイトを返します。

ReadContentAsBase64Async(Byte[], Int32, Int32)

コンテンツを非同期に読み取り、Base64 デコードされたバイナリ バイトを返します。

(継承元 XmlReader)
ReadContentAsBinHex(Byte[], Int32, Int32)

コンテンツを読み取り、BinHex デコードされたバイナリ バイトを返します。

ReadContentAsBinHexAsync(Byte[], Int32, Int32)

コンテンツを非同期的に読み取り、デコードされたバイナリ バイト BinHex 返します。

(継承元 XmlReader)
ReadContentAsBoolean()

現在の位置にあるテキスト コンテンツを Booleanとして読み取ります。

(継承元 XmlReader)
ReadContentAsDateTime()

現在の位置にあるテキスト コンテンツを DateTime オブジェクトとして読み取ります。

(継承元 XmlReader)
ReadContentAsDateTimeOffset()

現在の位置にあるテキスト コンテンツを DateTimeOffset オブジェクトとして読み取ります。

(継承元 XmlReader)
ReadContentAsDecimal()

現在の位置にあるテキスト コンテンツを Decimal オブジェクトとして読み取ります。

(継承元 XmlReader)
ReadContentAsDouble()

現在の位置にあるテキスト コンテンツを倍精度浮動小数点数として読み取ります。

(継承元 XmlReader)
ReadContentAsFloat()

現在の位置にあるテキスト コンテンツを単精度浮動小数点数として読み取ります。

(継承元 XmlReader)
ReadContentAsInt()

現在の位置にあるテキスト コンテンツを 32 ビット符号付き整数として読み取ります。

(継承元 XmlReader)
ReadContentAsLong()

現在の位置にあるテキスト コンテンツを 64 ビット符号付き整数として読み取ります。

(継承元 XmlReader)
ReadContentAsObject()

現在の位置にあるテキスト コンテンツを Objectとして読み取ります。

(継承元 XmlReader)
ReadContentAsObjectAsync()

現在の位置にあるテキスト コンテンツを Objectとして非同期的に読み取ります。

(継承元 XmlReader)
ReadContentAsString()

現在の位置にあるテキスト コンテンツを String オブジェクトとして読み取ります。

(継承元 XmlReader)
ReadContentAsStringAsync()

現在の位置にあるテキスト コンテンツを String オブジェクトとして非同期的に読み取ります。

(継承元 XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、要求された型として要素の内容を読み取ります。

(継承元 XmlReader)
ReadElementContentAs(Type, IXmlNamespaceResolver)

要求された型として要素の内容を読み取ります。

(継承元 XmlReader)
ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

要求された型として要素の内容を非同期的に読み取ります。

(継承元 XmlReader)
ReadElementContentAsBase64(Byte[], Int32, Int32)

要素を読み取り、Base64 コンテンツをデコードします。

ReadElementContentAsBase64Async(Byte[], Int32, Int32)

要素を非同期に読み取り、 Base64 コンテンツをデコードします。

(継承元 XmlReader)
ReadElementContentAsBinHex(Byte[], Int32, Int32)

要素を読み取り、BinHex コンテンツをデコードします。

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

要素を非同期に読み取り、 BinHex コンテンツをデコードします。

(継承元 XmlReader)
ReadElementContentAsBoolean()

現在の要素を読み取り、内容を Boolean オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsBoolean(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を Boolean オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsDateTime()

現在の要素を読み取り、内容を DateTime オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsDateTime(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を DateTime オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsDecimal()

現在の要素を読み取り、内容を Decimal オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsDecimal(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を Decimal オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsDouble()

現在の要素を読み取り、内容を倍精度浮動小数点数として返します。

(継承元 XmlReader)
ReadElementContentAsDouble(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を倍精度浮動小数点数として返します。

(継承元 XmlReader)
ReadElementContentAsFloat()

現在の要素を読み取り、内容を単精度浮動小数点数として返します。

(継承元 XmlReader)
ReadElementContentAsFloat(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を単精度浮動小数点数として返します。

(継承元 XmlReader)
ReadElementContentAsInt()

現在の要素を読み取り、内容を 32 ビット符号付き整数として返します。

(継承元 XmlReader)
ReadElementContentAsInt(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、内容を 32 ビット符号付き整数として返します。

(継承元 XmlReader)
ReadElementContentAsLong()

現在の要素を読み取り、内容を 64 ビット符号付き整数として返します。

(継承元 XmlReader)
ReadElementContentAsLong(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、内容を 64 ビット符号付き整数として返します。

(継承元 XmlReader)
ReadElementContentAsObject()

現在の要素を読み取り、内容を Objectとして返します。

(継承元 XmlReader)
ReadElementContentAsObject(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、内容を Objectとして返します。

(継承元 XmlReader)
ReadElementContentAsObjectAsync()

現在の要素を非同期に読み取り、内容を Objectとして返します。

(継承元 XmlReader)
ReadElementContentAsString()

現在の要素を読み取り、内容を String オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsString(String, String)

指定したローカル名と名前空間 URI が現在の要素の URI と一致することを確認し、現在の要素を読み取り、その内容を String オブジェクトとして返します。

(継承元 XmlReader)
ReadElementContentAsStringAsync()

現在の要素を非同期に読み取り、内容を String オブジェクトとして返します。

(継承元 XmlReader)
ReadElementString()

テキストのみの要素を読み取ります。 ただし、代わりに ReadElementContentAsString() メソッドを使用することをお勧めします。これは、この操作をより簡単に処理できるためです。

(継承元 XmlReader)
ReadElementString(String, String)

見つかった要素の LocalName プロパティと NamespaceURI プロパティが、テキストのみの要素を読み取る前に、指定された文字列と一致することを確認します。 ただし、代わりに ReadElementContentAsString(String, String) メソッドを使用することをお勧めします。これは、この操作をより簡単に処理できるためです。

(継承元 XmlReader)
ReadElementString(String)

見つかった要素の Name プロパティが、テキストのみの要素を読み取る前に、指定された文字列と一致することを確認します。 ただし、代わりに ReadElementContentAsString() メソッドを使用することをお勧めします。これは、この操作をより簡単に処理できるためです。

(継承元 XmlReader)
ReadEndElement()

現在のコンテンツ ノードが終了タグであることを確認し、リーダーを次のノードに進めます。

(継承元 XmlReader)
ReadInnerXml()

派生クラスでオーバーライドされると、マークアップを含むすべてのコンテンツを文字列として読み取ります。

(継承元 XmlReader)
ReadInnerXmlAsync()

マークアップを含むすべてのコンテンツを文字列として非同期的に読み取ります。

(継承元 XmlReader)
ReadOuterXml()

派生クラスでオーバーライドされると、このノードとそのすべての子を表すマークアップを含むコンテンツを読み取ります。

(継承元 XmlReader)
ReadOuterXmlAsync()

このノードとそのすべての子を表すマークアップを含むコンテンツを非同期的に読み取ります。

(継承元 XmlReader)
ReadStartElement()

現在のノードが要素であることを確認し、リーダーを次のノードに進めます。

(継承元 XmlReader)
ReadStartElement(String, String)

現在のコンテンツ ノードが特定の LocalName を持つ要素であることを確認し、 NamespaceURI し、リーダーを次のノードに進めます。

(継承元 XmlReader)
ReadStartElement(String)

現在のコンテンツ ノードが特定の Name を持つ要素であることを確認し、リーダーを次のノードに進めます。

(継承元 XmlReader)
ReadString()

要素またはテキスト ノードの内容を文字列として読み取ります。

ReadSubtree()

現在のノードとそのすべての子孫の読み取りに使用できる新しい XmlReader インスタンスを返します。

(継承元 XmlReader)
ReadToDescendant(String, String)

指定したローカル名と名前空間 URI を持つ次の子孫要素に XmlReader を進めます。

(継承元 XmlReader)
ReadToDescendant(String)

指定した修飾名を持つ次の子孫要素に XmlReader を進めます。

(継承元 XmlReader)
ReadToFollowing(String, String)

指定したローカル名と名前空間 URI を持つ要素が見つかるまで読み取ります。

(継承元 XmlReader)
ReadToFollowing(String)

指定した修飾名を持つ要素が見つかるまで読み取ります。

(継承元 XmlReader)
ReadToNextSibling(String, String)

指定したローカル名と名前空間 URI を持つ次の兄弟要素に XmlReader を進めます。

(継承元 XmlReader)
ReadToNextSibling(String)

指定した修飾名を持つ次の兄弟要素に XmlReader を進めます。

(継承元 XmlReader)
ReadValueChunk(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大きなストリームを読み取ります。

(継承元 XmlReader)
ReadValueChunkAsync(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大きなストリームを非同期的に読み取ります。

(継承元 XmlReader)
ResolveEntity()

EntityReference ノードのエンティティ参照を解決します。

Skip()

現在のノードの子をスキップします。

SkipAsync()

現在のノードの子を非同期的にスキップします。

(継承元 XmlReader)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IDisposable.Dispose()

このメンバーの説明については、 Dispose()を参照してください。

(継承元 XmlReader)
IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope)

このメンバーの説明については、 GetNamespacesInScope(XmlNamespaceScope)を参照してください。

IXmlNamespaceResolver.LookupNamespace(String)

このメンバーの説明については、 LookupNamespace(String)を参照してください。

IXmlNamespaceResolver.LookupPrefix(String)

このメンバーの説明については、 LookupPrefix(String)を参照してください。

適用対象