XmlNodeReader クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 実装
例
次の例では、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を使用して、 |
プロパティ
| 名前 | 説明 |
|---|---|
| AttributeCount |
現在のノードの属性の数を取得します。 |
| BaseURI |
現在のノードのベース URI を取得します。 |
| CanReadBinaryContent |
XmlNodeReaderがバイナリ コンテンツの読み取りメソッドを実装するかどうかを示す値を取得します。 |
| CanReadValueChunk |
XmlReaderがReadValueChunk(Char[], Int32, Int32) メソッドを実装するかどうかを示す値を取得します。 (継承元 XmlReader) |
| CanResolveEntity |
このリーダーがエンティティを解析して解決できるかどうかを示す値を取得します。 |
| Depth |
XML ドキュメント内の現在のノードの深さを取得します。 |
| EOF |
リーダーがストリームの末尾に配置されているかどうかを示す値を取得します。 |
| HasAttributes |
現在のノードに属性があるかどうかを示す値を取得します。 |
| HasValue |
現在のノードに Valueを含めることができるかどうかを示す値を取得します。 |
| IsDefault |
現在のノードが、ドキュメント型定義 (DTD) またはスキーマで定義された既定値から生成された属性であるかどうかを示す値を取得します。 |
| IsEmptyElement |
現在のノードが空の要素 (たとえば、 |
| Item[Int32] |
指定したインデックスを持つ属性の値を取得します。 |
| Item[Int32] |
派生クラスでオーバーライドされると、指定したインデックスを持つ属性の値を取得します。 (継承元 XmlReader) |
| Item[String, String] |
指定したローカル名と名前空間 URI を持つ属性の値を取得します。 |
| Item[String, String] |
派生クラスでオーバーライドされると、指定した LocalName と NamespaceURIを持つ属性の値を取得します。 (継承元 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 |
現在の |
| XmlSpace |
現在の |
メソッド
| 名前 | 説明 |
|---|---|
| Close() |
ReadStateを |
| 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() |
現在のノードがコンテンツ (空白以外のテキスト、 |
| MoveToContentAsync() |
現在のノードがコンテンツ ノードであるかどうかを非同期的にチェックします。 ノードがコンテンツ ノードでない場合、リーダーは次のコンテンツ ノードまたはファイルの末尾に進みます。 (継承元 XmlReader) |
| MoveToElement() |
現在の属性ノードを含む要素に移動します。 |
| MoveToFirstAttribute() |
最初の属性に移動します。 |
| MoveToNextAttribute() |
次の属性に移動します。 |
| Read() |
ストリームから次のノードを読み取ります。 |
| ReadAsync() |
ストリームから次のノードを非同期に読み取ります。 (継承元 XmlReader) |
| ReadAttributeValue() |
属性値を 1 つ以上の |
| 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) |
コンテンツを非同期的に読み取り、デコードされたバイナリ バイト |
| ReadContentAsBoolean() |
現在の位置にあるテキスト コンテンツを |
| 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) |
要素を非同期に読み取り、 |
| ReadElementContentAsBinHex(Byte[], Int32, Int32) |
要素を読み取り、BinHex コンテンツをデコードします。 |
| ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) |
要素を非同期に読み取り、 |
| 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() |
現在のノードとそのすべての子孫の読み取りに使用できる新しい |
| ReadToDescendant(String, String) |
指定したローカル名と名前空間 URI を持つ次の子孫要素に XmlReader を進めます。 (継承元 XmlReader) |
| ReadToDescendant(String) |
指定した修飾名を持つ次の子孫要素に XmlReader を進めます。 (継承元 XmlReader) |
| ReadToFollowing(String, String) |
指定したローカル名と名前空間 URI を持つ要素が見つかるまで読み取ります。 (継承元 XmlReader) |
| ReadToFollowing(String) |
指定した修飾名を持つ要素が見つかるまで読み取ります。 (継承元 XmlReader) |
| ReadToNextSibling(String, String) |
指定したローカル名と名前空間 URI を持つ次の兄弟要素に |
| ReadToNextSibling(String) |
指定した修飾名を持つ次の兄弟要素に |
| ReadValueChunk(Char[], Int32, Int32) |
XML ドキュメントに埋め込まれたテキストの大きなストリームを読み取ります。 (継承元 XmlReader) |
| ReadValueChunkAsync(Char[], Int32, Int32) |
XML ドキュメントに埋め込まれたテキストの大きなストリームを非同期的に読み取ります。 (継承元 XmlReader) |
| ResolveEntity() |
|
| Skip() |
現在のノードの子をスキップします。 |
| SkipAsync() |
現在のノードの子を非同期的にスキップします。 (継承元 XmlReader) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IDisposable.Dispose() |
このメンバーの説明については、 Dispose()を参照してください。 (継承元 XmlReader) |
| IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope) |
このメンバーの説明については、 GetNamespacesInScope(XmlNamespaceScope)を参照してください。 |
| IXmlNamespaceResolver.LookupNamespace(String) |
このメンバーの説明については、 LookupNamespace(String)を参照してください。 |
| IXmlNamespaceResolver.LookupPrefix(String) |
このメンバーの説明については、 LookupPrefix(String)を参照してください。 |