XmlReader XmlReader XmlReader XmlReader Class

定義

XML データへの高速で非キャッシュの前方向アクセスを提供するリーダーを表します。Represents a reader that provides fast, noncached, forward-only access to XML data.

public ref class XmlReader abstract : IDisposable
public abstract class XmlReader : IDisposable
type XmlReader = class
    interface IDisposable
Public MustInherit Class XmlReader
Implements IDisposable
継承
XmlReaderXmlReaderXmlReaderXmlReader
派生
実装

次のコード例は、非同期 API を使用して XML を解析する方法を示しています。The following example code shows how to use the asynchronous API to parse XML.

async Task TestReader(System.IO.Stream stream)
{
    XmlReaderSettings settings = new XmlReaderSettings();
    settings.Async = true;

    using (XmlReader reader = XmlReader.Create(stream, settings))
    {
        while (await reader.ReadAsync())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    Console.WriteLine("Start Element {0}", reader.Name);
                    break;
                case XmlNodeType.Text:
                    Console.WriteLine("Text Node: {0}",
                             await reader.GetValueAsync());
                    break;
                case XmlNodeType.EndElement:
                    Console.WriteLine("End Element {0}", reader.Name);
                    break;
                default:
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value);
                    break;
            }
        }
    }
}
Public Async Function TestReader(stream As System.IO.Stream) As Task
    Dim settings As New XmlReaderSettings()
    settings.Async = True

    Using reader As XmlReader = XmlReader.Create(stream, settings)
        While (Await reader.ReadAsync())
            Select Case (reader.NodeType)
                Case XmlNodeType.Element
                    Console.WriteLine("Start Element {0}", reader.Name)
                Case XmlNodeType.Text
                    Console.WriteLine("Text Node: {0}",
                             Await reader.GetValueAsync())
                Case XmlNodeType.EndElement
                    Console.WriteLine("End Element {0}", reader.Name)
                Case Else
                    Console.WriteLine("Other node {0} with value {1}",
                                    reader.NodeType, reader.Value)
            End Select
        End While
    End Using
End Function

注釈

XmlReaderドキュメントまたはストリーム内の XML データに対して、順方向専用の読み取り専用アクセスを提供します。XmlReader provides forward-only, read-only access to XML data in a document or stream. このクラスは、W3C拡張マークアップ言語 (xml) 1.0 (第4版)およびxml 1.0 (第3版)の推奨事項の名前空間に準拠しています。This class conforms to the W3C Extensible Markup Language (XML) 1.0 (fourth edition) and the Namespaces in XML 1.0 (third edition) recommendations.

XmlReaderメソッドを使用すると、XML データ内を移動し、ノードの内容を読み取ることができます。XmlReader methods let you move through XML data and read the contents of a node. クラスのプロパティは、現在のノードの値 (リーダーが配置されている場所) を反映します。プロパティReadState値は、XML リーダーの現在の状態を示します。The properties of the class reflect the value of the current node, which is where the reader is positioned.The ReadState property value indicates the current state of the XML reader. たとえばReadState.Initial 、プロパティは、 XmlReader.ReadメソッドとReadState.Closed XmlReader.Closeメソッドによってに設定されます。For example, the property is set to ReadState.Initial by the XmlReader.Read method and ReadState.Closed by the XmlReader.Close method. XmlReaderでは、DTD またはスキーマに対するデータ一致チェックと検証も提供されます。XmlReader also provides data conformance checks and validation against a DTD or schema.

XmlReaderプルモデルを使用してデータを取得します。XmlReader uses a pull model to retrieve data. このモデル:This model:

  • 自然なトップダウンの手順による洗練された状態管理を簡素化します。Simplifies state management by a natural, top-down procedural refinement.

  • では、複数の入力ストリームとレイヤーがサポートされています。Supports multiple input streams and layering.

  • 文字列が直接書き込まれるバッファーをクライアントがパーサーに渡すことができるようにします。これにより、余分な文字列コピーが必要になることを回避できます。Enables the client to give the parser a buffer into which the string is directly written, and thus avoids the necessity of an extra string copy.

  • 選択的処理をサポートします。Supports selective processing. クライアントは、項目をスキップして、アプリケーションにとって重要なものを処理できます。The client can skip items and process those that are of interest to the application. また、事前にプロパティを設定して、XML ストリームの処理方法 (正規化など) を管理することもできます。You can also set properties in advance to manage how the XML stream is processed (for example, normalization).

このセクションの内容:In this section:

XML リーダーの作成 Creating an XML reader
XML データの検証 Validating XML data
データの一致 Data conformance
ノード間の移動 Navigating through nodes
XML 要素の読み取り Reading XML elements
XML 属性の読み取り Reading XML attributes
XML コンテンツの読み取り Reading XML content
変換 (CLR 型に) Converting to CLR types
非同期プログラミング Asynchronous programming
セキュリティに関する考慮事項Security considerations

XML リーダーの作成Creating an XML reader

インスタンスXmlReaderCreate作成するには、メソッドを使用します。Use the Create method to create an XmlReader instance.

.NET Framework XmlReaderにはXmlTextReaderXmlNodeReaderクラス、クラス、クラスなど、クラスの具象的な実装が用意されていますが、特化したクラスは次のシナリオでのみ使用することをお勧めします。 XmlValidatingReaderAlthough the .NET Framework provides concrete implementations of the XmlReader class, such as the XmlTextReader, XmlNodeReader, and the XmlValidatingReader classes, we recommend that you use the specialized classes only in these scenarios:

  • XmlNodeオブジェクトから XML DOM サブツリーを読み取る場合は、 XmlNodeReaderクラスを使用します。When you want to read an XML DOM subtree from an XmlNode object, use the XmlNodeReader class. (ただし、このクラスは DTD またはスキーマの検証をサポートしていません)。(However, this class doesn't support DTD or schema validation.)

  • 要求時にエンティティを展開する必要がある場合、テキストコンテンツを正規化したくない場合、または既定の属性XmlTextReaderが返されないようにする場合は、クラスを使用します。If you must expand entities on request, you don't want your text content normalized, or you don't want default attributes returned, use the XmlTextReader class.

XML リーダーで有効にする機能のセットを指定するには、 System.Xml.XmlReaderSettingsオブジェクトをCreateメソッドに渡します。To specify the set of features you want to enable on the XML reader, pass an System.Xml.XmlReaderSettings object to the Create method. 1つSystem.Xml.XmlReaderSettingsのオブジェクトを使用して、同じ機能を持つ複数のリーダーを作成System.Xml.XmlReaderSettingsしたり、オブジェクトを変更して別の機能セットを持つ新しいリーダーを作成したりすることができます。You can use a single System.Xml.XmlReaderSettings object to create multiple readers with the same functionality, or modify the System.Xml.XmlReaderSettings object to create a new reader with a different set of features. 既存のリーダーに機能を簡単に追加することもできます。You can also easily add features to an existing reader.

オブジェクトをSystem.Xml.XmlReaderSettings使用しない場合は、既定の設定が使用されます。If you don't use a System.Xml.XmlReaderSettings object, default settings are used. 詳細にCreateついては、リファレンスページを参照してください。See the Create reference page for details.

XmlReaderXML 解析エラーに対してをスローします。 XmlExceptionXmlReader throws an XmlException on XML parse errors. 例外がスローされた後、リーダーの状態は予測できません。After an exception is thrown, the state of the reader is not predictable. たとえば、報告されたノードの種類は、現在のノードの実際のノードの種類とは異なる場合があります。For example, the reported node type may be different from the actual node type of the current node. ReadStateプロパティを使用して、リーダーがエラー状態であるかどうかを確認します。Use the ReadState property to check whether the reader is in error state.

XML データの検証Validating XML data

XML ドキュメントの構造と要素のリレーションシップ、データ型、およびコンテンツ制約を定義するには、ドキュメント型定義 (DTD) または XML スキーマ定義言語 (XSD) スキーマを使用します。To define the structure of an XML document and its element relationships, data types, and content constraints, you use a document type definition (DTD) or XML Schema definition language (XSD) schema. W3C 勧告『 xml 1.0 』で定義されているすべての構文要件を満たしている場合、XML ドキュメントは整形式と見なされます。An XML document is considered to be well formed if it meets all the syntactical requirements defined by the W3C XML 1.0 Recommendation. 整形式であり、DTD またはスキーマによって定義された制約に準拠している場合は、有効と見なされます。It's considered valid if it's well formed and also conforms to the constraints defined by its DTD or schema. ( W3C 勧告『 XML Schema Part 1:構造と W3C 勧告『 XML Schema Part 2:データ型に関する推奨事項。したがって、有効な XML ドキュメントはすべて整形式ですが、整形式の XML ドキュメントがすべて有効であるとは限りません。(See the W3C XML Schema Part 1: Structures and the W3C XML Schema Part 2: Datatypes recommendations.) Therefore, although all valid XML documents are well formed, not all well-formed XML documents are valid.

DTD、インライン XSD スキーマ、またはXmlSchemaSetオブジェクト (キャッシュ) に格納されている xsd スキーマに対してデータを検証できます。これらのシナリオについては、 Createリファレンスページを参照してください。You can validate the data against a DTD, an inline XSD Schema, or an XSD Schema stored in an XmlSchemaSet object (a cache); these scenarios are described on the Create reference page. XmlReaderでは、XML データ削減 (XDR) スキーマ検証はサポートされていません。XmlReader doesn't support XML-Data Reduced (XDR) schema validation.

XmlReaderSettingsクラスの次の設定を使用して、インスタンスがサポートしてXmlReaderいる検証の種類 (存在する場合) を指定します。You use the following settings on the XmlReaderSettings class to specify what type of validation, if any, the XmlReader instance supports.

このXmlReaderSettingsメンバーを使用するUse this XmlReaderSettings member 指定する型To specify
DtdProcessing プロパティDtdProcessing property DTD 処理を許可するかどうかを指定します。Whether to allow DTD processing. 既定では、DTD 処理は許可されません。The default is to disallow DTD processing.
ValidationType プロパティValidationType property リーダーがデータを検証する必要があるかどうか、および実行する検証の種類 (DTD またはスキーマ) を指定します。Whether the reader should validate data, and what type of validation to perform (DTD or schema). 既定では、データ検証は実行されません。The default is no data validation.
ValidationEventHandler イベントValidationEventHandler event 検証イベントに関する情報を受信するためのイベントハンドラー。An event handler for receiving information about validation events. イベント ハンドラーが提供されていない場合は、最初の検証エラーに対して XmlException がスローされます。If an event handler is not provided, an XmlException is thrown on the first validation error.
ValidationFlags プロパティValidationFlags property 列挙メンバーによる追加XmlSchemaValidationFlagsの検証オプション:Additional validation options through the XmlSchemaValidationFlags enumeration members:

- AllowXmlAttributes--スキーマで定義さxml:*れていない場合でも、インスタンスドキュメント内の XML 属性 () を許可します。- AllowXmlAttributes-- Allow XML attributes (xml:*) in instance documents even when they're not defined in the schema. これらの属性は、それらのデータ型に基づいて検証されます。The attributes are validated based on their data type. 特定のXmlSchemaValidationFlagsシナリオで使用する設定については、「参照」ページを参照してください。See the XmlSchemaValidationFlags reference page for the setting to use in specific scenarios. (既定で無効になっています。)(Disabled by default.)
- ProcessIdentityConstraints--検証中に検出xs:IDされxs:keyxs:keyrefid xs:unique制約 (、 xs:IDREF、、、) を処理します。- ProcessIdentityConstraints --Process identity constraints (xs:ID, xs:IDREF, xs:key, xs:keyref, xs:unique) encountered during validation. (既定で有効)。(Enabled by default.)
- ProcessSchemaLocation--属性xsi:schemaLocationまたはxsi:noNamespaceSchemaLocation属性によって指定されたスキーマを処理します。- ProcessSchemaLocation --Process schemas specified by the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute. (既定で有効)。(Enabled by default.)
- ProcessInlineSchema--検証中にインライン XML スキーマを処理します。- ProcessInlineSchema-- Process inline XML Schemas during validation. (既定で無効になっています。)(Disabled by default.)
- ReportValidationWarnings--検証警告が発生した場合にイベントを報告します。- ReportValidationWarnings--Report events if a validation warning occurs. 警告は通常、特定の要素または属性を検証するための DTD または XML スキーマがない場合に発行されます。A warning is typically issued when there is no DTD or XML Schema to validate a particular element or attribute against. 通知には ValidationEventHandler が使用されます。The ValidationEventHandler is used for notification. (既定で無効になっています。)(Disabled by default.)
Schemas 検証に使用する XmlSchemaSetThe XmlSchemaSet to use for validation.
XmlResolver プロパティXmlResolver property 外部XmlResolverリソースを解決およびアクセスするための。The XmlResolver for resolving and accessing external resources. これには、DTD やスキーマなどの外部エンティティやxs:include 、XML スキーマに含まれる要素やxs:import要素を含めることができます。This can include external entities such as DTD and schemas, and any xs:include or xs:import elements contained in the XML Schema. を指定XmlResolver XmlUrlResolverしない場合、では、ユーザー資格情報なしで既定値が使用されます。XmlReaderIf you don't specify an XmlResolver, the XmlReader uses a default XmlUrlResolver with no user credentials.

データの一致Data conformance

Createメソッドによって作成された XML リーダーは、既定では次のコンプライアンス要件を満たしています。XML readers that are created by the Create method meet the following compliance requirements by default:

  • 新しい行と属性値は、W3C 勧告『 XML 1.0 』に従って正規化されます。New lines and attribute value are normalized according to the W3C XML 1.0 Recommendation.

  • すべてのエンティティが自動的に展開されます。All entities are automatically expanded.

  • ドキュメント型定義で宣言されている既定の属性は、リーダーが検証しない場合でも、常に追加されます。Default attributes declared in the document type definition are always added even when the reader doesn't validate.

  • 正しい XML 名前空間 URI にマップされた XML プレフィックスの宣言は許可されています。Declaration of XML prefix mapped to the correct XML namespace URI is allowed.

  • 1つNotationTypeの属性宣言とNmTokens 1 つEnumerationの属性宣言では、表記名が異なります。The notation names in a single NotationType attribute declaration and NmTokens in a single Enumeration attribute declaration are distinct.

XmlReaderSettingsのプロパティを使用して、有効にする一致チェックの種類を指定します。Use these XmlReaderSettings properties to specify the type of conformance checks you want to enable:

このXmlReaderSettingsプロパティを使用するUse this XmlReaderSettings property 終了To 既定値Default
CheckCharacters プロパティCheckCharacters property 次のチェックを有効または無効にします。Enable or disable checks for the following:

-文字は、W3C 勧告『 XML 1.0 』の「 2.2 文字」セクションで定義されているように、有効な XML 文字の範囲内にあります。- Characters are within the range of legal XML characters, as defined by the 2.2 Characters section of the W3C XML 1.0 Recommendation.
-すべての XML 名は、W3C 勧告『 XML 1.0 』の「 2.3 Common 構文コンストラクト」セクションで定義されているとおり、有効です。- All XML names are valid, as defined by the 2.3 Common Syntactic Constructs section of the W3C XML 1.0 Recommendation.

このプロパティが (既定値true ) XmlExceptionに設定されている場合、xml ファイルに無効な文字または無効な xml 名が含まれていると、例外がスローされます (たとえば、要素名が数字で始まる場合)。When this property is set to true (default), an XmlException exception is thrown if the XML file contains illegal characters or invalid XML names (for example, an element name starts with a number).
文字と名前のチェックが有効になっています。Character and name checking is enabled.

CheckCharactersfalse に設定すると、文字エンティティ参照に対する文字のチェック機能がオフになります。Setting CheckCharacters to false turns off character checking for character entity references. リーダーがテキストデータを処理している場合、この設定に関係なく、常に XML 名が有効であることを確認します。If the reader is processing text data, it always checks that XML names are valid, regardless of this setting. 注: XML 1.0 勧告では、DTD がある場合にはドキュメント レベルの一致が必要です。Note: The XML 1.0 recommendation requires document-level conformance when a DTD is present. したがって、リーダーがをサポートConformanceLevel.Fragmentするように構成されているにもかかわらず、XML データにドキュメント型定義 (DTD) XmlExceptionが含まれている場合は、がスローされます。Therefore, if the reader is configured to support ConformanceLevel.Fragment, but the XML data contains a document type definition (DTD), an XmlException is thrown.
ConformanceLevel プロパティConformanceLevel property 適用する準拠レベルを選択します。Choose the level of conformance to enforce:

- Document- Document. 整形式の XML 1.0 ドキュメントの規則に準拠しています。Conforms to the rules for a well-formed XML 1.0 document.
- Fragment- Fragment. 外部解析エンティティとして使用できる整形式のドキュメントフラグメントの規則に準拠します。Conforms to the rules for a well-formed document fragment that can be consumed as an external parsed entity.
- Auto- Auto. リーダーによって決定されるレベルに準拠します。Conforms to the level decided by the reader.

データが準拠していない場合XmlExceptionは、例外がスローされます。If the data isn't in conformance, an XmlException exception is thrown.
Document

現在のノードは、XML リーダーが現在配置されている XML ノードです。The current node is the XML node on which the XML reader is currently positioned. すべてXmlReaderのメソッドは、このノードに対して操作をXmlReader実行し、すべてのプロパティには、現在のノードの値が反映されます。All XmlReader methods perform operations in relation to this node, and all XmlReader properties reflect the value of the current node.

次のメソッドを使用すると、ノード間を移動したり、データを解析したりすることが簡単になります。The following methods make it easy to navigate through nodes and parse data.

このXmlReaderSettingsメソッドを使用するUse this XmlReaderSettings method 終了To
Read 最初のノードを読み取り、一度に1ノードずつストリームを進めます。Read the first node, and advance through the stream one node at a time. このような呼び出しは、通常while 、ループ内で実行されます。Such calls are typically performed inside a while loop.

NodeTypeプロパティを使用して、現在のノードの型 (属性、コメント、要素など) を取得します。Use the NodeType property to get the type (for example, attribute, comment, element, and so on) of the current node.
Skip 現在のノードの子をスキップし、次のノードに移動します。Skip the children of the current node and move to the next node.
MoveToContent および MoveToContentAsyncMoveToContent and MoveToContentAsync 非コンテンツノードをスキップし、次のコンテンツノードまたはファイルの末尾に移動します。Skip non-content nodes and move to the next content node or to the end of the file.

ProcessingInstruction非コンテンツノードSignificantWhitespace Whitespaceには、 DocumentType、、 、、およびがあります。CommentNon-content nodes include ProcessingInstruction, DocumentType, Comment, Whitespace, and SignificantWhitespace.

コンテンツノードには、空白以外のテキストCDATAEntityReference 、、 EndEntityおよびが含まれます。Content nodes include non-white space text, CDATA, EntityReference , and EndEntity.
ReadSubtree 要素とそのすべての子を読み取り、にXmlReader ReadState.Initial設定された新しいインスタンスを返します。Read an element and all its children, and return a new XmlReader instance set to ReadState.Initial.

このメソッドは、XML 要素の周りに境界を作成する場合に便利です。たとえば、データを処理のために別のコンポーネントに渡し、コンポーネントがアクセスできるデータの量を制限したい場合などです。This method is useful for creating boundaries around XML elements; for example, if you want to pass data to another component for processing and you want to limit how much of your data the component can access.

テキストストリームXmlReader.Read内で一度に1ノードずつ移動し、各ノードの種類を表示する例については、リファレンスページを参照してください。See the XmlReader.Read reference page for an example of navigating through a text stream one node at a time and displaying the type of each node.

次のセクションでは、要素、属性、型指定されたデータなど、特定の種類のデータを読み取る方法について説明します。The following sections describe how you can read specific types of data, such as elements, attributes, and typed data.

XML 要素の読み取りReading XML elements

次の表に、要素を処理するためXmlReaderにクラスに用意されているメソッドとプロパティを示します。The following table lists the methods and properties that the XmlReader class provides for processing elements. XmlReader が 1 つの要素上に位置した後、Name などのノードのプロパティには要素の値が反映されます。After the XmlReader is positioned on an element, the node properties, such as Name, reflect the element values. 下に説明するメンバーに加えて、XmlReader クラスの任意の一般メソッドとプロパティも要素の処理に使用できます。In addition to the members described below, any of the general methods and properties of the XmlReader class can also be used to process elements. たとえば、ReadInnerXml メソッドを使用して要素のコンテンツを読むことができます。For example, you can use the ReadInnerXml method to read the contents of an element.

注意

開始タグ、終了タグ、および空の要素タグの定義については、W3C 勧告『 XML 1.0 』のセクション3.1 を参照してください。See section 3.1 of the W3C XML 1.0 Recommendation for definitions of start tags, end tags, and empty element tags.

このXmlReaderメンバーを使用するUse this XmlReader member 終了To
IsStartElement メソッドIsStartElement method 現在のノードが開始タグまたは空の要素タグかどうかを確認します。Check if the current node is a start tag or an empty element tag.
ReadStartElement メソッドReadStartElement method 現在のノードが要素であることを確認し、リーダーを次のノードにIsStartElement進めますRead(呼び出しの後にを続けます)。Check that the current node is an element and advance the reader to the next node (calls IsStartElement followed by Read).
ReadEndElement メソッドReadEndElement method 現在のノードが終了タグであることを確認し、リーダーを次のノードに進めます。Check that the current node is an end tag and advance the reader to the next node.
ReadElementString メソッドReadElementString method テキストのみの要素を読み取ります。Read a text-only element.
ReadToDescendant メソッドReadToDescendant method 指定された名前を持つ次の子孫 (子) 要素に XML リーダーを進めます。Advance the XML reader to the next descendant (child) element that has the specified name.
ReadToNextSibling メソッドReadToNextSibling method 指定された名前を持つ次の兄弟要素に XML リーダーを進めます。Advance the XML reader to the next sibling element that has the specified name.
IsEmptyElement プロパティIsEmptyElement property 現在の要素に終了要素タグがあるかどうかを確認します。Check if the current element has an end element tag. 次に例を示します。For example:

- <item num="123"/>(IsEmptyElementtrueです)。- <item num="123"/> (IsEmptyElement is true.)
- <item num="123"> </item>(IsEmptyElementfalseですが、要素のコンテンツは空です)。- <item num="123"> </item> (IsEmptyElement is false, although the element's content is empty.)

要素のテキストコンテンツの読み取りの例については、 ReadStringメソッドを参照してください。For an example of reading the text content of elements, see the ReadString method. 次の例では、 whileループを使用して要素を処理します。The following example processes elements by using a while loop.

while (reader.Read()) {
  if (reader.IsStartElement()) {
    if (reader.IsEmptyElement)
      Console.WriteLine("<{0}/>", reader.Name);
    else {
      Console.Write("<{0}> ", reader.Name);
      reader.Read(); // Read the start tag.
      if (reader.IsStartElement())  // Handle nested elements.
        Console.Write("\r\n<{0}>", reader.Name);
      Console.WriteLine(reader.ReadString());  //Read the text content of the element.
    }
  } 
} 
While reader.Read()
  If reader.IsStartElement() Then
    If reader.IsEmptyElement Then
      Console.WriteLine("<{0}/>", reader.Name)
    Else
      Console.Write("<{0}> ", reader.Name)
      reader.Read() ' Read the start tag.
      If reader.IsStartElement() Then ' Handle nested elements.
        Console.Write(vbCr + vbLf + "<{0}>", reader.Name)
      End If
      Console.WriteLine(reader.ReadString()) 'Read the text content of the element.
    End If
  End If
End While

XML 属性の読み取りReading XML attributes

XML 属性は、要素で最も一般的に検出されますが、XML 宣言およびドキュメント型のノードでも使用できます。XML attributes are most commonly found on elements, but they're also allowed on XML declaration and document type nodes.

要素ノードに配置されているMoveToAttribute場合、メソッドを使用して、要素の属性リストを参照できます。When positioned on an element node, the MoveToAttribute method lets you go through the attribute list of the element. を呼び出したMoveToAttribute後、 NamespaceURI、、 Prefixなどのノードプロパティには、属性が属する要素のプロパティではなく、その属性のプロパティが反映されていることに注意してください。 NameNote that after MoveToAttribute has been called, node properties such as Name, NamespaceURI, and Prefix reflect the properties of that attribute, not the properties of the element the attribute belongs to.

クラスXmlReaderには、要素の属性を読み取って処理するためのメソッドとプロパティが用意されています。The XmlReader class provides these methods and properties to read and process attributes on elements.

このXmlReaderメンバーを使用するUse this XmlReader member 終了To
HasAttributes プロパティHasAttributes property 現在のノードに属性があるかどうかを確認します。Check whether the current node has any attributes.
AttributeCount プロパティAttributeCount property 現在の要素の属性の数を取得します。Get the number of attributes on the current element.
MoveToFirstAttribute メソッドMoveToFirstAttribute method 要素の最初の属性に移動します。Move to the first attribute in an element.
MoveToNextAttribute メソッドMoveToNextAttribute method 要素の次の属性に移動します。Move to the next attribute in an element.
MoveToAttribute メソッドMoveToAttribute method 指定された属性に移動します。Move to a specified attribute.
GetAttributeメソッドまたItem[String, String]はプロパティGetAttribute method or Item[String, String] property 指定した属性の値を取得します。Get the value of a specified attribute.
IsDefault プロパティIsDefault property 現在のノードが、DTD またはスキーマで定義された既定値から生成された属性であるかどうかを確認します。Check whether the current node is an attribute that was generated from the default value defined in the DTD or schema.
MoveToElement メソッドMoveToElement method 現在の属性を所有する要素に移動します。Move to the element that owns the current attribute. 属性を移動した後に要素に戻るには、このメソッドを使用します。Use this method to return to an element after navigating through its attributes.
ReadAttributeValue メソッドReadAttributeValue method 属性値を1つText以上の、 EntityReference、またはEndEntityノードに解析します。Parse the attribute value into one or more Text, EntityReference, or EndEntity nodes.

一般の XmlReader のメソッドとプロパティもすべて属性の処理に使用できます。Any of the general XmlReader methods and properties can also be used to process attributes. たとえば、XmlReader が属性上に位置した後、Name および Value のプロパティは、その属性の値を反映します。For example, after the XmlReader is positioned on an attribute, the Name and Value properties reflect the values of the attribute. コンテンツの Read メソッドも属性の値を取得するために使用できます。You can also use any of the content Read methods to get the value of the attribute.

この例ではAttributeCount 、プロパティを使用して、要素のすべての属性を移動します。This example uses the AttributeCount property to navigate through all the attributes on an element.

// Display all attributes.
if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  for (int i = 0; i < reader.AttributeCount; i++) {
    Console.WriteLine("  {0}", reader[i]);
  }
  // Move the reader back to the element node.
  reader.MoveToElement(); 
}
' Display all attributes.
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  Dim i As Integer
  For i = 0 To (reader.AttributeCount - 1)
    Console.WriteLine("  {0}", reader(i))
  Next i
  ' Move the reader back to the element node.
  reader.MoveToElement() 
End If

この例ではMoveToNextAttributewhileループ内でメソッドを使用して、属性間を移動します。This example uses the MoveToNextAttribute method in a while loop to navigate through the attributes.

if (reader.HasAttributes) {
  Console.WriteLine("Attributes of <" + reader.Name + ">");
  while (reader.MoveToNextAttribute()) {
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value);
  }
  // Move the reader back to the element node.
  reader.MoveToElement();
}
If reader.HasAttributes Then
  Console.WriteLine("Attributes of <" + reader.Name + ">")
  While reader.MoveToNextAttribute()
    Console.WriteLine(" {0}={1}", reader.Name, reader.Value)
  End While
  ' Move the reader back to the element node.
  reader.MoveToElement()
End If

XML 宣言ノードの属性の読み取りReading attributes on XML declaration nodes

Xml リーダーが xml 宣言ノードに配置されると、プロパティValueは、バージョン、スタンドアロン、およびエンコーディング情報を1つの文字列として返します。When the XML reader is positioned on an XML declaration node, the Value property returns the version, standalone, and encoding information as a single string. XmlReaderメソッド、クラス、およびXmlValidatingReaderクラスによって作成されたオブジェクトは、バージョン、スタンドアロン、およびエンコーディング項目を属性として公開します。 XmlTextReader CreateXmlReader objects created by the Create method, the XmlTextReader class, and the XmlValidatingReader class expose the version, standalone, and encoding items as attributes.

ドキュメント型ノードの属性の読み取りReading attributes on document type nodes

XML リーダーがドキュメント型ノードに配置されている場合GetAttribute 、メソッドItem[String, String]とプロパティを使用して、システムリテラルとパブリックリテラルの値を返すことができます。When the XML reader is positioned on a document type node, the GetAttribute method and Item[String, String] property can be used to return the values for the SYSTEM and PUBLIC literals. たとえば、reader.GetAttribute("PUBLIC") は PUBLIC の値を返します。For example, calling reader.GetAttribute("PUBLIC") returns the PUBLIC value.

処理命令ノードの属性を読み取っていますReading attributes on processing instruction nodes

XmlReader が処理命令ノード上に位置しているとき、Value プロパティはテキストの内容全体を返します。When the XmlReader is positioned on a processing instruction node, the Value property returns the entire text content. 処理命令ノードの項目は属性として扱われません。Items in the processing instruction node aren't treated as attributes. メソッドGetAttributeまたはMoveToAttributeメソッドを使用して読み取ることはできません。They can't be read with the GetAttribute or MoveToAttribute method.

XML コンテンツの読み取りReading XML content

XMLReader クラスには、XML ファイルからコンテンツを読み取り、その内容を文字列値として返す、次のメンバーが含まれています。The XMLReader class includes the following members that read content from an XML file and return the content as string values. (CLR 型を返すには、次のセクションを参照してください)。(To return CLR types, see the next section.)

このXmlReaderメンバーを使用するUse this XmlReader member 終了To
Value プロパティValue property 現在のノードのテキストコンテンツを取得します。Get the text content of the current node. 返される値は、ノードの種類によって異なります。詳細にValueついては、リファレンスページを参照してください。The value returned depends on the node type; see the Value reference page for details.
ReadString メソッドReadString method 要素またはテキストノードの内容を文字列として取得します。Get the content of an element or text node as a string. このメソッドは、処理命令とコメントについて停止します。This method stops on processing instructions and comments.

このメソッドが特定のノード型を処理する方法の詳細ReadStringについては、リファレンスページを参照してください。For details on how this method handles specific node types, see the ReadString reference page.
ReadInnerXml メソッドおよび ReadInnerXmlAsync メソッドReadInnerXml and ReadInnerXmlAsync methods マークアップを含む、現在のノードのすべてのコンテンツを取得します。ただし、開始タグと終了タグは除きます。Get all the content of the current node, including the markup, but excluding start and end tags. たとえば、次のようになります。For example, for:

<node>this<child id="123"/></node>

ReadInnerXmlReadInnerXml returns:

this<child id="123"/>
ReadOuterXml メソッドおよび ReadOuterXmlAsync メソッドReadOuterXml and ReadOuterXmlAsync methods マークアップタグと開始タグや終了タグを含む、現在のノードとその子のすべてのコンテンツを取得します。Get all the content of the current node and its children, including markup and start/end tags. たとえば、次のようになります。For example, for:

<node>this<child id="123"/></node>

ReadOuterXmlReadOuterXml returns:

<node>this<child id="123"/></node>

変換 (CLR 型に)Converting to CLR types

次の表に示すようにXmlReader 、クラスのメンバーを使用すると、XML データと戻り値を文字列ではなく共通言語ランタイム (CLR) 型として読み取ることができます。You can use the members of the XmlReader class (listed in the following table) to read XML data and return values as common language runtime (CLR) types instead of strings. これらのメンバーを使用すると、文字列値を手動で解析したり変換したりすることなく、コーディングタスクに最適な表現の値を取得できます。These members enable you to get values in the representation that is most appropriate for your coding task without having to manually parse or convert string values.

  • ReadElementContentAsメソッドは、要素ノード型でのみ呼び出すことができます。The ReadElementContentAs methods can only be called on element node types. これらのメソッドは、子要素または混合コンテンツを含む要素では使用できません。These methods cannot be used on elements that contain child elements or mixed content. 呼ばれると、XmlReader オブジェクトは開始タグと要素コンテンツと読み、その後、終了要素タグを越えて移動します。When called, the XmlReader object reads the start tag, reads the element content, and then moves past the end element tag. 処理命令とコメントは無視され、エンティティは展開されます。Processing instructions and comments are ignored and entities are expanded.

  • Readcontentasメソッドは、現在のリーダーの位置でテキストコンテンツを読み取ります。また、XML データにスキーマまたはデータ型の情報が関連付けられていない場合は、テキストの内容を要求された戻り値の型に変換します。The ReadContentAs methods read the text content at the current reader position, and if the XML data doesn't have any schema or data type information associated with it, convert the text content to the requested return type. テキスト、空白、有意の空白、および CDATA セクションは連結されます。Text, white space, significant white space and CDATA sections are concatenated. コメントと処理命令はスキップされ、エンティティ参照は自動的に解決されます。Comments and processing instructions are skipped, and entity references are automatically resolved.

クラスXmlReaderは、 W3C XML スキーマパート2で定義されている規則を使用します。データ型の推奨。The XmlReader class uses the rules defined by the W3C XML Schema Part 2: Datatypes recommendation.

このXmlReaderメソッドを使用するUse this XmlReader method この CLR 型を取得するにはTo return this CLR type
ReadContentAsBoolean および ReadElementContentAsBooleanReadContentAsBoolean and ReadElementContentAsBoolean Boolean
ReadContentAsDateTime および ReadElementContentAsDateTimeReadContentAsDateTime and ReadElementContentAsDateTime DateTime
ReadContentAsDouble および ReadElementContentAsDoubleReadContentAsDouble and ReadElementContentAsDouble Double
ReadContentAsLong および ReadElementContentAsLongReadContentAsLong and ReadElementContentAsLong Int64
ReadContentAsInt および ReadElementContentAsIntReadContentAsInt and ReadElementContentAsInt Int32
ReadContentAsString および ReadElementContentAsStringReadContentAsString and ReadElementContentAsString String
ReadContentAs および ReadElementContentAsReadContentAs and ReadElementContentAs returnTypeパラメーターを使用して指定する型The type you specify with the returnType parameter
ReadContentAsObject および ReadElementContentAsObjectReadContentAsObject and ReadElementContentAsObject XmlReader.ValueTypeプロパティによって指定された最も適切な型。The most appropriate type, as specified by the XmlReader.ValueType property. マッピング情報については、「System.xml クラスの型のサポート」を参照してください。See Type Support in the System.Xml Classes for mapping information.

形式によって要素を CLR 型に簡単に変換できない場合は、スキーママッピングを使用して、正常に変換できるようにすることができます。If an element can't easily be converted to a CLR type because of its format, you can use a schema mapping to ensure a successful conversion. 次の例では、.xsd ファイルを使用しhire-dateて要素をxs:date型に変換し、 ReadElementContentAsDateTimeメソッドを使用して要素をDateTimeオブジェクトとして返します。The following example uses an .xsd file to convert the hire-date element to the xs:date type, and then uses the ReadElementContentAsDateTime method to return the element as a DateTime object.

入力 (hireDate):Input (hireDate.xml):

<employee xmlns="urn:empl-hire">
    <ID>12365</ID>
    <hire-date>2003-01-08</hire-date>
    <title>Accountant</title>
</employee>

スキーマ (hireDate):Schema (hireDate.xsd):

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:empl-hire" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="employee">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ID" type="xs:unsignedShort" />
        <xs:element name="hire-date" type="xs:date" />
        <xs:element name="title" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

コードCode:

// Create a validating XmlReader object. The schema 
// provides the necessary type information.
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd");
using (XmlReader reader = XmlReader.Create("hireDate.xml", settings)) {

  // Move to the hire-date element.
  reader.MoveToContent();
  reader.ReadToDescendant("hire-date");

  // Return the hire-date as a DateTime object.
  DateTime hireDate = reader.ReadElementContentAsDateTime();
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6));
}
' Create a validating XmlReader object. The schema 
' provides the necessary type information.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.ValidationType = ValidationType.Schema
settings.Schemas.Add("urn:empl-hire", "hireDate.xsd")
Using reader As XmlReader = XmlReader.Create("hireDate.xml", settings) 
  ' Move to the hire-date element.
  reader.MoveToContent()
  reader.ReadToDescendant("hire-date")

  ' Return the hire-date as a DateTime object.
  Dim hireDate As DateTime = reader.ReadElementContentAsDateTime()
  Console.WriteLine("Six Month Review Date: {0}", hireDate.AddMonths(6))
End Using

出力:Output:

Six Month Review Date:  7/8/2003 12:00:00 AM  

非同期プログラミングAsynchronous programming

ほとんどのメソッドXmlReaderには、メソッド名の末尾に "Async" を持つ非同期の対応するものがあります。Most of the XmlReader methods have asynchronous counterparts that have "Async" at the end of their method names. たとえば、と等価のReadContentAsObject ReadContentAsObjectAsync非同期のはになります。For example, the asynchronous equivalent of ReadContentAsObject is ReadContentAsObjectAsync.

非同期メソッドの呼び出しでは、次のメソッドを使用できます。The following methods can be used with asynchronous method calls:

次のセクションでは、対応する非同期のメソッドの非同期使用について説明します。The following sections describe asynchronous usage for methods that don't have asynchronous counterparts.

ReadStartElement メソッドReadStartElement method

public static async Task ReadStartElementAsync(this XmlReader reader, string localname, string ns)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.Element)
    {
        throw new InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType");
    }
    if ((reader.LocalName == localname) && (reader.NamespaceURI == ns))
    {
        await reader.ReadAsync();
    }
    else
    {
        throw new InvalidOperationException("localName or namespace doesn’t match");
    }
}
<Extension()>
Public Async Function ReadStartElementAsync(reader As XmlReader, localname As String, ns As String) As Task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.Element) Then
        Throw New InvalidOperationException(reader.NodeType.ToString() + " is an invalid XmlNodeType")
    End If

    If ((reader.LocalName = localname) And (reader.NamespaceURI = ns)) Then
        Await reader.ReadAsync()
    Else
        Throw New InvalidOperationException("localName or namespace doesn’t match")
    End If
End Function

ReadEndElement メソッドReadEndElement method

public static async Task ReadEndElementAsync(this XmlReader reader)
{
    if (await reader.MoveToContentAsync() != XmlNodeType.EndElement)
    {
        throw new InvalidOperationException();
    }
    await reader.ReadAsync();
}
<Extension()>
Public Async Function ReadEndElementAsync(reader As XmlReader) As task
    If (Await reader.MoveToContentAsync() <> XmlNodeType.EndElement) Then
        Throw New InvalidOperationException()
    End If
    Await reader.ReadAsync()
End Function

ReadToNextSibling メソッドReadToNextSibling method

public static async Task<bool> ReadToNextSiblingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the next sibling
    XmlNodeType nt;
    do
    {
        await reader.SkipAsync();
        if (reader.ReadState != ReadState.Interactive)
            break;
        nt = reader.NodeType;
        if (nt == XmlNodeType.Element &&
             ((object)localName == (object)reader.LocalName) &&
             ((object)namespaceURI ==(object)reader.NamespaceURI))
        {
            return true;
        }
    } while (nt != XmlNodeType.EndElement && !reader.EOF);
    
    return false;
}
<Extension()>
Public Async Function ReadToNextSiblingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the next sibling
    Dim nt As XmlNodeType
    Do

        Await reader.SkipAsync()
        If (reader.ReadState <> ReadState.Interactive) Then
            Exit Do
        End If
        nt = reader.NodeType
        If ((nt = XmlNodeType.Element) And
           ((CObj(localName) = CObj(reader.LocalName))) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    Loop While (nt <> XmlNodeType.EndElement And (Not reader.EOF))

    Return False

End Function

ReadToFollowing のメソッドReadToFollowing method

public static async Task<bool> ReadToFollowingAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find element with that name
    while (await reader.ReadAsync())
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToFollowingAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find element with that name
    While (Await reader.ReadAsync())
        If ((reader.NodeType = XmlNodeType.Element) And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

ReadToDescendant メソッドReadToDescendant method

public static async Task<bool> ReadToDescendantAsync(this XmlReader reader, string localName, string namespaceURI)
{
    if (localName == null || localName.Length == 0)
    {
        throw new ArgumentException("localName is empty or null");
    }
    if (namespaceURI == null)
    {
        throw new ArgumentNullException("namespaceURI");
    }
    // save the element or root depth
    int parentDepth = reader.Depth;
    if (reader.NodeType != XmlNodeType.Element)
    {
        // adjust the depth if we are on root node
        if (reader.ReadState == ReadState.Initial)
        {
            parentDepth--;
        }
        else
        {
            return false;
        }
    }
    else if (reader.IsEmptyElement)
    {
        return false;
    }

    // atomize local name and namespace
    localName = reader.NameTable.Add(localName);
    namespaceURI = reader.NameTable.Add(namespaceURI);

    // find the descendant
    while (await reader.ReadAsync() && reader.Depth > parentDepth)
    {
        if (reader.NodeType == XmlNodeType.Element && ((object)localName == (object)reader.LocalName) && ((object)namespaceURI == (object)reader.NamespaceURI))
        {
            return true;
        }
    }
    return false;
}
<Extension()>
Public Async Function ReadToDescendantAsync(reader As XmlReader, localName As String, namespaceURI As String) As Task(Of Boolean)
    If (localName = Nothing Or localName.Length = 0) Then
        Throw New ArgumentException("localName is empty or null")
    End If

    If (namespaceURI = Nothing) Then
        Throw New ArgumentNullException("namespaceURI")
    End If

    ' save the element or root depth
    Dim parentDepth As Integer = reader.Depth
    If (reader.NodeType <> XmlNodeType.Element) Then
        ' adjust the depth if we are on root node
        If (reader.ReadState = ReadState.Initial) Then
            parentDepth -= 1
        Else
            Return False
        End If
    ElseIf (reader.IsEmptyElement) Then
        Return False
    End If
    ' atomize local name and namespace
    localName = reader.NameTable.Add(localName)
    namespaceURI = reader.NameTable.Add(namespaceURI)

    ' find the descendant
    While (Await reader.ReadAsync() And reader.Depth > parentDepth)
        If (reader.NodeType = XmlNodeType.Element And
           (CObj(localName) = CObj(reader.LocalName)) And
           (CObj(namespaceURI) = CObj(reader.NamespaceURI))) Then
            Return True
        End If
    End While

    Return False
End Function

セキュリティの考慮事項Security considerations

XmlReaderクラスを使用する場合は、次の点を考慮してください。Consider the following when working with the XmlReader class:

  • からスローされXmlReaderた例外は、アプリに通知しないようにする必要があるパス情報を開示できます。Exceptions thrown from the XmlReader can disclose path information that you might not want bubbled up to your app. アプリは例外をキャッチして適切に処理する必要があります。Your app must catch exceptions and process them appropriately.

  • サービス拒否の問題が懸念される場合や、信頼されていないソースを扱う場合は、DTD 処理を有効にしないでください。Do not enable DTD processing if you're concerned about denial of service issues or if you're dealing with untrusted sources. メソッドによって作成されXmlReaderたオブジェクトではCreate 、DTD 処理は既定で無効になっています。DTD processing is disabled by default for XmlReader objects created by the Create method.

    DTD 処理を有効にした場合、XmlSecureResolver を使用して XmlReader でアクセス可能なリソースを制限できます。If you have DTD processing enabled, you can use the XmlSecureResolver to restrict the resources that the XmlReader can access. また、XML 処理がメモリおよび時間の制約を受けるようにアプリを設計することもできます。You can also design your app so that the XML processing is memory and time constrained. たとえば、ASP.NET アプリでタイムアウトの制限を構成できます。For example, you can configure time-out limits in your ASP.NET app.

  • XML データには、スキーマ ファイルなど、外部リソースへの参照が含まれることがあります。XML data can include references to external resources such as a schema file. 既定では、外部リソースは、ユーザー資格XmlUrlResolver情報を持たないオブジェクトを使用して解決されます。By default, external resources are resolved by using an XmlUrlResolver object with no user credentials. この点については、次のいずれかの方法でセキュリティを強化できます。You can secure this further by doing one of the following:

  • オブジェクトのProcessSchemaLocation ProcessInlineSchema および検証フラグは、既定では設定されませんXmlReaderSettingsThe ProcessInlineSchema and ProcessSchemaLocation validation flags of an XmlReaderSettings object aren't set by default. このことは、信頼できないソースからの XML データを処理する際に、スキーマ ベースの攻撃から XmlReader を保護するのに役立ちます。This helps to protect the XmlReader against schema-based attacks when it is processing XML data from an untrusted source. これらのフラグが設定されていると、XmlResolver オブジェクトの XmlReaderSettingsXmlReader のインスタンス ドキュメント中に出現したスキーマの場所を解決するために使用されます。When these flags are set, the XmlResolver of the XmlReaderSettings object is used to resolve schema locations encountered in the instance document in the XmlReader. プロパティがにnull設定されている場合、 ProcessInlineSchemaおよびProcessSchemaLocation検証フラグが設定されていても、スキーマの場所は解決されません。 XmlResolverIf the XmlResolver property is set to null, schema locations aren't resolved even if the ProcessInlineSchema and ProcessSchemaLocation validation flags are set.

    検証を実行しているときにスキーマを追加すると新しい型が追加されるため、検証しているドキュメントの検証結果を変えることができます。Schemas added during validation add new types and can change the validation outcome of the document being validated. 結果として、信頼できるソースからの外部スキーマだけが解決されるようにする必要があります。As a result, external schemas should only be resolved from trusted sources.

    ドキュメントの大部分ProcessIdentityConstraintsに対する id 制約を持つスキーマに対して、高可用性シナリオで信頼されていない大きな XML ドキュメントを検証する場合は、フラグを無効にすることをお勧めします。We recommend disabling the ProcessIdentityConstraints flag when validating untrusted, large XML documents in high availability scenarios against a schema that has identity constraints over a large part of the document. このフラグは、既定で有効になっています。This flag is enabled by default.

  • XML データには、処理に長時間を要する大量の属性、名前空間宣言、入れ子になった要素などが含まれることがあります。XML data can contain a large number of attributes, namespace declarations, nested elements and so on that require a substantial amount of time to process. に送信される入力のサイズを制限するにはXmlReader、次のようにします。To limit the size of the input that is sent to the XmlReader, you can:

  • メソッドReadValueChunkは、大量のデータストリームを処理するために使用できます。The ReadValueChunk method can be used to handle large streams of data. このメソッドは、値全体に 1 つの文字列を割り当てる代わりに、一度に少数の文字を読みます。This method reads a small number of characters at a time instead of allocating a single string for the whole value.

  • 一意のローカル名、名前空間、またはプレフィックスが多数ある XML ドキュメントを読み取ると、問題が発生する可能性があります。When reading an XML document with a large number of unique local names, namespaces, or prefixes, a problem can occur. からXmlReader派生したクラスを使用していて、各項目NameTablePrefix対してNamespaceURI 、、またはの各プロパティをLocalName呼び出すと、返された文字列がに追加されます。If you are using a class that derives from XmlReader, and you call the LocalName, Prefix, or NamespaceURI property for each item, the returned string is added to a NameTable. によって保持さNameTableれているコレクションのサイズが減少することはなく、文字列ハンドルの仮想メモリリークが発生します。The collection held by the NameTable never decreases in size, creating a virtual memory leak of the string handles. このような軽減策の1つとNameTableして、クラスから派生し、最大サイズクォータを適用します。One mitigation for this is to derive from the NameTable class and enforce a maximum size quota. (を使用NameTableしないようにする方法や、がいっぱいになっNameTableたときにを切り替える方法はありません)。(There is no way to prevent the use of a NameTable, or to switch the NameTable when it is full). もう1つの軽減策は、前述のプロパティを使用MoveToAttributeしないようIsStartElementにすることです。代わりに、可能な限りメソッドでメソッドを使用します。 NameTableこれらのメソッドは文字列を返さないため、コレクションのオーバーフィルの問題を回避できます。Another mitigation is to avoid using the properties mentioned and instead use the MoveToAttribute method with the IsStartElement method where possible; those methods don't return strings and thus avoid the problem of overfilling the NameTable collection.

  • XmlReaderSettings オブジェクトはユーザー資格情報など、重要な情報を含むことがあります。XmlReaderSettings objects can contain sensitive information such as user credentials. 信頼できないコンポーネントが XmlReaderSettings オブジェクトとそのユーザー資格情報を使用して、XmlReader オブジェクトを作成し、データを読む可能性があります。An untrusted component could use the XmlReaderSettings object and its user credentials to create XmlReader objects to read data. オブジェクトをキャッシュXmlReaderSettingsする場合、またはオブジェクトをXmlReaderSettingsあるコンポーネントから別のコンポーネントに渡す場合は注意してください。Be careful when caching XmlReaderSettings objects, or when passing the XmlReaderSettings object from one component to another.

  • 信頼できないソースからの NameTableXmlNamespaceManager、および XmlResolver オブジェクトなどのサポート コンポーネントは受け入れないようにします。Do not accept supporting components, such as NameTable, XmlNamespaceManager, and XmlResolver objects, from an untrusted source.

コンストラクター

XmlReader() XmlReader() XmlReader() XmlReader()

XmlReader クラスの新しいインスタンスを初期化します。Initializes a new instance of the XmlReader class.

プロパティ

AttributeCount AttributeCount AttributeCount AttributeCount

派生クラスでオーバーライドされると、現在のノードの属性数を取得します。When overridden in a derived class, gets the number of attributes on the current node.

BaseURI BaseURI BaseURI BaseURI

派生クラスでオーバーライドされると、現在のノードのベース URI を取得します。When overridden in a derived class, gets the base URI of the current node.

CanReadBinaryContent CanReadBinaryContent CanReadBinaryContent CanReadBinaryContent

XmlReader がバイナリ コンテンツ用の読み取りメソッドを実装するかどうかを示す値を取得します。Gets a value indicating whether the XmlReader implements the binary content read methods.

CanReadValueChunk CanReadValueChunk CanReadValueChunk CanReadValueChunk

XmlReaderReadValueChunk(Char[], Int32, Int32) メソッドを実装しているかどうかを示す値を取得します。Gets a value indicating whether the XmlReader implements the ReadValueChunk(Char[], Int32, Int32) method.

CanResolveEntity CanResolveEntity CanResolveEntity CanResolveEntity

このリーダーがエンティティを解析および解決できるかどうかを示す値を取得します。Gets a value indicating whether this reader can parse and resolve entities.

Depth Depth Depth Depth

派生クラスでオーバーライドされると、XML ドキュメント内の現在のノードの深さを取得します。When overridden in a derived class, gets the depth of the current node in the XML document.

EOF EOF EOF EOF

派生クラスでオーバーライドされると、リーダーがストリームの末尾に配置されているかどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the reader is positioned at the end of the stream.

HasAttributes HasAttributes HasAttributes HasAttributes

現在のノードに属性があるかどうかを示す値を取得します。Gets a value indicating whether the current node has any attributes.

HasValue HasValue HasValue HasValue

派生クラスでオーバーライドされると、現在のノードが Value を持つことができるかどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node can have a Value.

IsDefault IsDefault IsDefault IsDefault

派生クラスでオーバーライドされると、現在のノードが DTD またはスキーマで定義された既定値から生成された属性かどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node is an attribute that was generated from the default value defined in the DTD or schema.

IsEmptyElement IsEmptyElement IsEmptyElement IsEmptyElement

派生クラスでオーバーライドされると、現在のノードが空の要素 (<MyElement/> など) かどうかを示す値を取得します。When overridden in a derived class, gets a value indicating whether the current node is an empty element (for example, <MyElement/>).

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

派生クラスでオーバーライドされると、指定したインデックスの属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified index.

Item[String, String] Item[String, String] Item[String, String] Item[String, String]

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

Item[String] Item[String] Item[String] Item[String]

派生クラスでオーバーライドされると、指定した Name の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified Name.

LocalName LocalName LocalName LocalName

派生クラスでオーバーライドされると、現在のノードのローカル名を取得します。When overridden in a derived class, gets the local name of the current node.

Name Name Name Name

派生クラスでオーバーライドされると、現在のノードの限定名を取得します。When overridden in a derived class, gets the qualified name of the current node.

NamespaceURI NamespaceURI NamespaceURI NamespaceURI

派生クラスでオーバーライドされると、リーダーが配置されているノードの名前空間 URI (W3C の名前空間の仕様における定義に準拠) を取得します。When overridden in a derived class, gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.

NameTable NameTable NameTable NameTable

派生クラスでオーバーライドされると、この実装に関連付けられている XmlNameTable を取得します。When overridden in a derived class, gets the XmlNameTable associated with this implementation.

NodeType NodeType NodeType NodeType

派生クラスでオーバーライドされると、現在のノードの型を取得します。When overridden in a derived class, gets the type of the current node.

Prefix Prefix Prefix Prefix

派生クラスでオーバーライドされると、現在のノードに関連付けられている名前空間プリフィックスを取得します。When overridden in a derived class, gets the namespace prefix associated with the current node.

QuoteChar QuoteChar QuoteChar QuoteChar

派生クラスでオーバーライドされると、属性ノードの値を囲むために使用する引用符文字を取得します。When overridden in a derived class, gets the quotation mark character used to enclose the value of an attribute node.

ReadState ReadState ReadState ReadState

派生クラスでオーバーライドされると、リーダーの状態を取得します。When overridden in a derived class, gets the state of the reader.

SchemaInfo SchemaInfo SchemaInfo SchemaInfo

スキーマ検証の結果、現在のノードに割り当てられているスキーマ情報を取得します。Gets the schema information that has been assigned to the current node as a result of schema validation.

Settings Settings Settings Settings

この XmlReader インスタンスを作成するために使用された XmlReaderSettings オブジェクトを取得します。Gets the XmlReaderSettings object used to create this XmlReader instance.

Value Value Value Value

派生クラスでオーバーライドされると、現在のノードのテキスト値を取得します。When overridden in a derived class, gets the text value of the current node.

ValueType ValueType ValueType ValueType

現在のノードの共通言語ランタイム (CLR) 型を取得します。Gets The Common Language Runtime (CLR) type for the current node.

XmlLang XmlLang XmlLang XmlLang

派生クラスでオーバーライドされると、現在の xml:lang スコープを取得します。When overridden in a derived class, gets the current xml:lang scope.

XmlSpace XmlSpace XmlSpace XmlSpace

派生クラスでオーバーライドされると、現在の xml:space スコープを取得します。When overridden in a derived class, gets the current xml:space scope.

メソッド

Close() Close() Close() Close()

派生クラスでオーバーライドされると、ReadStateClosed に変更します。When overridden in a derived class, changes the ReadState to Closed.

Create(Stream) Create(Stream) Create(Stream) Create(Stream)

既定の設定で指定されたストリームを使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream with default settings.

Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings) Create(Stream, XmlReaderSettings)

指定されたストリームと設定で、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance with the specified stream and settings.

Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String) Create(Stream, XmlReaderSettings, String)

指定されたストリーム、ベース URI、設定を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream, base URI, and settings.

Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext) Create(Stream, XmlReaderSettings, XmlParserContext)

解析のために指定されたストリーム、設定、およびコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance using the specified stream, settings, and context information for parsing.

Create(String) Create(String) Create(String) Create(String)

指定された URI で新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance with specified URI.

Create(String, XmlReaderSettings) Create(String, XmlReaderSettings) Create(String, XmlReaderSettings) Create(String, XmlReaderSettings)

指定された URI と設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified URI and settings.

Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext) Create(String, XmlReaderSettings, XmlParserContext)

指定された URI、設定、解析するためのコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified URI, settings, and context information for parsing.

Create(TextReader) Create(TextReader) Create(TextReader) Create(TextReader)

指定されたテキスト リーダーを使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader.

Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings) Create(TextReader, XmlReaderSettings)

指定されたテキスト リーダーと設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader and settings.

Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String) Create(TextReader, XmlReaderSettings, String)

指定されたテキスト リーダー、設定、およびベース URI を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader, settings, and base URI.

Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext) Create(TextReader, XmlReaderSettings, XmlParserContext)

指定したテキスト リーダー、設定、および解析するためのコンテキスト情報を使用して、新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing.

Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings) Create(XmlReader, XmlReaderSettings)

指定された XML リーダーと設定を使用して新しい XmlReader インスタンスを作成します。Creates a new XmlReader instance by using the specified XML reader and settings.

Dispose() Dispose() Dispose() Dispose()

XmlReader クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。Releases all resources used by the current instance of the XmlReader class.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

XmlReader によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the XmlReader and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAttribute(Int32) GetAttribute(Int32) GetAttribute(Int32) GetAttribute(Int32)

派生クラスでオーバーライドされると、指定したインデックスの属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified index.

GetAttribute(String) GetAttribute(String) GetAttribute(String) GetAttribute(String)

派生クラスでオーバーライドされると、指定した Name の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified Name.

GetAttribute(String, String) GetAttribute(String, String) GetAttribute(String, String) GetAttribute(String, String)

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性の値を取得します。When overridden in a derived class, gets the value of the attribute with the specified LocalName and NamespaceURI.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetValueAsync() GetValueAsync() GetValueAsync() GetValueAsync()

現在のノードのテキスト値を非同期に取得します。Asynchronously gets the value of the current node.

IsName(String) IsName(String) IsName(String) IsName(String)

文字列引数が有効な XML 名かどうかを示す値を返します。Returns a value indicating whether the string argument is a valid XML name.

IsNameToken(String) IsNameToken(String) IsNameToken(String) IsNameToken(String)

文字列引数が有効な XML 名トークンかどうかを示す値を返します。Returns a value indicating whether or not the string argument is a valid XML name token.

IsStartElement() IsStartElement() IsStartElement() IsStartElement()

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag.

IsStartElement(String) IsStartElement(String) IsStartElement(String) IsStartElement(String)

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうか、また、見つかった要素の Name プロパティが、指定した引数と一致するかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the Name property of the element found matches the given argument.

IsStartElement(String, String) IsStartElement(String, String) IsStartElement(String, String) IsStartElement(String, String)

MoveToContent() を呼び出し、現在のコンテンツ ノードが開始タグまたは空の要素タグかどうか、また、見つかった要素の LocalName プロパティと NamespaceURI プロパティが、指定した文字列と一致するかどうかをテストします。Calls MoveToContent() and tests if the current content node is a start tag or empty element tag and if the LocalName and NamespaceURI properties of the element found match the given strings.

LookupNamespace(String) LookupNamespace(String) LookupNamespace(String) LookupNamespace(String)

派生クラスでオーバーライドされると、現在の要素のスコープの名前空間プリフィックスを解決します。When overridden in a derived class, resolves a namespace prefix in the current element's scope.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
MoveToAttribute(Int32) MoveToAttribute(Int32) MoveToAttribute(Int32) MoveToAttribute(Int32)

派生クラスでオーバーライドされると、指定したインデックスの属性に移動します。When overridden in a derived class, moves to the attribute with the specified index.

MoveToAttribute(String) MoveToAttribute(String) MoveToAttribute(String) MoveToAttribute(String)

派生クラスでオーバーライドされると、指定した Name の属性に移動します。When overridden in a derived class, moves to the attribute with the specified Name.

MoveToAttribute(String, String) MoveToAttribute(String, String) MoveToAttribute(String, String) MoveToAttribute(String, String)

派生クラスでオーバーライドされると、指定した LocalName および NamespaceURI の属性に移動します。When overridden in a derived class, moves to the attribute with the specified LocalName and NamespaceURI.

MoveToContent() MoveToContent() MoveToContent() MoveToContent()

現在のノードがコンテンツ (空白でないテキスト、CDATAElementEndElementEntityReference、または EndEntity) ノードかどうかを確認します。Checks whether the current node is a content (non-white space text, CDATA, Element, EndElement, EntityReference, or EndEntity) node. ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。If the node is not a content node, the reader skips ahead to the next content node or end of file. リーダーは、ProcessingInstructionDocumentTypeCommentWhitespace、または SignificantWhitespace の型のノードをスキップします。It skips over nodes of the following type: ProcessingInstruction, DocumentType, Comment, Whitespace, or SignificantWhitespace.

MoveToContentAsync() MoveToContentAsync() MoveToContentAsync() MoveToContentAsync()

現在のノードがコンテンツ ノードであるかどうかを非同期的に確認します。Asynchronously checks whether the current node is a content node. ノードがコンテンツ ノードでない場合、リーダーは、次のコンテンツ ノードまたはファイルの末尾までスキップします。If the node is not a content node, the reader skips ahead to the next content node or end of file.

MoveToElement() MoveToElement() MoveToElement() MoveToElement()

派生クラスでオーバーライドされると、現在の属性ノードを含む要素に移動します。When overridden in a derived class, moves to the element that contains the current attribute node.

MoveToFirstAttribute() MoveToFirstAttribute() MoveToFirstAttribute() MoveToFirstAttribute()

派生クラスでオーバーライドされると、最初の属性に移動します。When overridden in a derived class, moves to the first attribute.

MoveToNextAttribute() MoveToNextAttribute() MoveToNextAttribute() MoveToNextAttribute()

派生クラスでオーバーライドされると、次の属性に移動します。When overridden in a derived class, moves to the next attribute.

Read() Read() Read() Read()

派生クラスでオーバーライドされると、ストリームから次のノードを読み取ります。When overridden in a derived class, reads the next node from the stream.

ReadAsync() ReadAsync() ReadAsync() ReadAsync()

ストリームから次のノードを非同期に読み取ります。Asynchronously reads the next node from the stream.

ReadAttributeValue() ReadAttributeValue() ReadAttributeValue() ReadAttributeValue()

派生クラスでオーバーライドされると、属性値を解析して、1 つ以上の TextEntityReference、または EndEntity の各ノードに格納します。When overridden in a derived class, parses the attribute value into one or more Text, EntityReference, or EndEntity nodes.

ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver) ReadContentAs(Type, IXmlNamespaceResolver)

指定された型のオブジェクトとして内容を読み取ります。Reads the content as an object of the type specified.

ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver) ReadContentAsAsync(Type, IXmlNamespaceResolver)

指定された型のオブジェクトとして内容を非同期に読み取ります。Asynchronously reads the content as an object of the type specified.

ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32) ReadContentAsBase64(Byte[], Int32, Int32)

コンテンツを読み取り、Base64 でデコードされたバイナリ バイトを返します。Reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32) ReadContentAsBase64Async(Byte[], Int32, Int32)

コンテンツを非同期に読み取り、Base64 でデコードされたバイナリ バイトを返します。Asynchronously reads the content and returns the Base64 decoded binary bytes.

ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32) ReadContentAsBinHex(Byte[], Int32, Int32)

コンテンツを読み取り、BinHex でデコードされたバイナリ バイトを返します。Reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32) ReadContentAsBinHexAsync(Byte[], Int32, Int32)

コンテンツを非同期に読み取り、BinHex でデコードされたバイナリ バイトを返します。Asynchronously reads the content and returns the BinHex decoded binary bytes.

ReadContentAsBoolean() ReadContentAsBoolean() ReadContentAsBoolean() ReadContentAsBoolean()

現在の位置でテキスト コンテンツを Boolean として読み取ります。Reads the text content at the current position as a Boolean.

ReadContentAsDateTime() ReadContentAsDateTime() ReadContentAsDateTime() ReadContentAsDateTime()

現在の位置でテキスト コンテンツを DateTime オブジェクトとして読み取ります。Reads the text content at the current position as a DateTime object.

ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset() ReadContentAsDateTimeOffset()

現在の位置でテキスト コンテンツを DateTimeOffset オブジェクトとして読み取ります。Reads the text content at the current position as a DateTimeOffset object.

ReadContentAsDecimal() ReadContentAsDecimal() ReadContentAsDecimal() ReadContentAsDecimal()

現在の位置でテキスト コンテンツを Decimal オブジェクトとして読み取ります。Reads the text content at the current position as a Decimal object.

ReadContentAsDouble() ReadContentAsDouble() ReadContentAsDouble() ReadContentAsDouble()

現在の位置のテキストの内容を、倍精度浮動小数点数として読み取ります。Reads the text content at the current position as a double-precision floating-point number.

ReadContentAsFloat() ReadContentAsFloat() ReadContentAsFloat() ReadContentAsFloat()

現在の位置のテキストの内容を、単精度浮動小数点数として読み取ります。Reads the text content at the current position as a single-precision floating point number.

ReadContentAsInt() ReadContentAsInt() ReadContentAsInt() ReadContentAsInt()

現在の位置でテキストの内容を 32 ビット符号付き整数として読み取ります。Reads the text content at the current position as a 32-bit signed integer.

ReadContentAsLong() ReadContentAsLong() ReadContentAsLong() ReadContentAsLong()

現在の位置でテキストの内容を 64 ビット符号付き整数として読み取ります。Reads the text content at the current position as a 64-bit signed integer.

ReadContentAsObject() ReadContentAsObject() ReadContentAsObject() ReadContentAsObject()

現在の位置でテキスト コンテンツを Object として読み取ります。Reads the text content at the current position as an Object.

ReadContentAsObjectAsync() ReadContentAsObjectAsync() ReadContentAsObjectAsync() ReadContentAsObjectAsync()

現在の位置でテキスト コンテンツを Object として非同期に読み取ります。Asynchronously reads the text content at the current position as an Object.

ReadContentAsString() ReadContentAsString() ReadContentAsString() ReadContentAsString()

現在の位置でテキスト コンテンツを String オブジェクトとして読み取ります。Reads the text content at the current position as a String object.

ReadContentAsStringAsync() ReadContentAsStringAsync() ReadContentAsStringAsync() ReadContentAsStringAsync()

現在の位置でテキスト コンテンツを String オブジェクトとして非同期に読み取ります。Asynchronously reads the text content at the current position as a String object.

ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver) ReadElementContentAs(Type, IXmlNamespaceResolver)

要素の内容を要求された型として返します。Reads the element content as the requested type.

ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String) ReadElementContentAs(Type, IXmlNamespaceResolver, String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、要素の内容を要求された型として読み込みます。Checks that the specified local name and namespace URI matches that of the current element, then reads the element content as the requested type.

ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver) ReadElementContentAsAsync(Type, IXmlNamespaceResolver)

要素の内容を要求された型として非同期に読み取ります。Asynchronously reads the element content as the requested type.

ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32) ReadElementContentAsBase64(Byte[], Int32, Int32)

要素を読み取り、Base64 の内容をデコードします。Reads the element and decodes the Base64 content.

ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32) ReadElementContentAsBase64Async(Byte[], Int32, Int32)

要素を非同期に読み取り、Base64 の内容をデコードします。Asynchronously reads the element and decodes the Base64 content.

ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32) ReadElementContentAsBinHex(Byte[], Int32, Int32)

要素を読み取り、BinHex の内容をデコードします。Reads the element and decodes the BinHex content.

ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32) ReadElementContentAsBinHexAsync(Byte[], Int32, Int32)

要素を非同期に読み取り、BinHex の内容をデコードします。Asynchronously reads the element and decodes the BinHex content.

ReadElementContentAsBoolean() ReadElementContentAsBoolean() ReadElementContentAsBoolean() ReadElementContentAsBoolean()

現在の要素を読み取り、そのコンテンツを Boolean オブジェクトとして返します。Reads the current element and returns the contents as a Boolean object.

ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String) ReadElementContentAsBoolean(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Boolean オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Boolean object.

ReadElementContentAsDateTime() ReadElementContentAsDateTime() ReadElementContentAsDateTime() ReadElementContentAsDateTime()

現在の要素を読み取り、そのコンテンツを DateTime オブジェクトとして返します。Reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String) ReadElementContentAsDateTime(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを DateTime オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a DateTime object.

ReadElementContentAsDecimal() ReadElementContentAsDecimal() ReadElementContentAsDecimal() ReadElementContentAsDecimal()

現在の要素を読み取り、そのコンテンツを Decimal オブジェクトとして返します。Reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String) ReadElementContentAsDecimal(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Decimal オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a Decimal object.

ReadElementContentAsDouble() ReadElementContentAsDouble() ReadElementContentAsDouble() ReadElementContentAsDouble()

現在の要素を読み込み、その内容を倍精度浮動小数点数として返します。Reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String) ReadElementContentAsDouble(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を倍精度浮動小数点数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a double-precision floating-point number.

ReadElementContentAsFloat() ReadElementContentAsFloat() ReadElementContentAsFloat() ReadElementContentAsFloat()

現在の要素を読み込み、その内容を単精度浮動小数点数として返します。Reads the current element and returns the contents as single-precision floating-point number.

ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String) ReadElementContentAsFloat(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を単精度浮動小数点数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a single-precision floating-point number.

ReadElementContentAsInt() ReadElementContentAsInt() ReadElementContentAsInt() ReadElementContentAsInt()

現在の要素を読み取り、その内容を 32 ビット符号付き整数として返します。Reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String) ReadElementContentAsInt(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を 32 ビット符号付き整数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 32-bit signed integer.

ReadElementContentAsLong() ReadElementContentAsLong() ReadElementContentAsLong() ReadElementContentAsLong()

現在の要素を読み取り、その内容を 64 ビット符号付き整数として返します。Reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String) ReadElementContentAsLong(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み込んで内容を 64 ビット符号付き整数として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 64-bit signed integer.

ReadElementContentAsObject() ReadElementContentAsObject() ReadElementContentAsObject() ReadElementContentAsObject()

現在の要素を読み取り、そのコンテンツを Object として返します。Reads the current element and returns the contents as an Object.

ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String) ReadElementContentAsObject(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを Object として返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as an Object.

ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync() ReadElementContentAsObjectAsync()

現在の要素を非同期に読み取り、そのコンテンツを Object として返します。Asynchronously reads the current element and returns the contents as an Object.

ReadElementContentAsString() ReadElementContentAsString() ReadElementContentAsString() ReadElementContentAsString()

現在の要素を読み取り、そのコンテンツを String オブジェクトとして返します。Reads the current element and returns the contents as a String object.

ReadElementContentAsString(String, String) ReadElementContentAsString(String, String) ReadElementContentAsString(String, String) ReadElementContentAsString(String, String)

指定されたローカル名と名前空間 URI が現在の要素のものと一致することを確認し、現在の要素を読み取って、コンテンツを String オブジェクトとして返します。Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a String object.

ReadElementContentAsStringAsync() ReadElementContentAsStringAsync() ReadElementContentAsStringAsync() ReadElementContentAsStringAsync()

現在の要素を非同期に読み取り、そのコンテンツを String オブジェクトとして返します。Asynchronously reads the current element and returns the contents as a String object.

ReadElementString() ReadElementString() ReadElementString() ReadElementString()

テキストだけの要素を読み取ります。Reads a text-only element. ただし、ReadElementContentAsString() メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String) ReadElementString(String) ReadElementString(String) ReadElementString(String)

テキストだけの要素を読み取る前に、見つかった要素の Name プロパティが、指定した文字列と一致することを確認します。Checks that the Name property of the element found matches the given string before reading a text-only element. ただし、ReadElementContentAsString() メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString() method instead, because it provides a more straightforward way to handle this operation.

ReadElementString(String, String) ReadElementString(String, String) ReadElementString(String, String) ReadElementString(String, String)

テキストだけの要素を読み取る前に、見つかった要素の LocalName プロパティと NamespaceURI プロパティが、指定した文字列と一致することを確認します。Checks that the LocalName and NamespaceURI properties of the element found matches the given strings before reading a text-only element. ただし、ReadElementContentAsString(String, String) メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString(String, String) method instead, because it provides a more straightforward way to handle this operation.

ReadEndElement() ReadEndElement() ReadEndElement() ReadEndElement()

現在のコンテンツ ノードが終了タグで、リーダーを次のノードに進めることを確認します。Checks that the current content node is an end tag and advances the reader to the next node.

ReadInnerXml() ReadInnerXml() ReadInnerXml() ReadInnerXml()

派生クラスでオーバーライドされると、マークアップを含むすべての内容を文字列として読み取ります。When overridden in a derived class, reads all the content, including markup, as a string.

ReadInnerXmlAsync() ReadInnerXmlAsync() ReadInnerXmlAsync() ReadInnerXmlAsync()

マークアップを含むすべてのコンテンツを文字列として非同期に読み取ります。Asynchronously reads all the content, including markup, as a string.

ReadOuterXml() ReadOuterXml() ReadOuterXml() ReadOuterXml()

派生クラスでオーバーライドされると、このノードとそのすべての子を表す内容 (マークアップを含む) を読み取ります。When overridden in a derived class, reads the content, including markup, representing this node and all its children.

ReadOuterXmlAsync() ReadOuterXmlAsync() ReadOuterXmlAsync() ReadOuterXmlAsync()

このノードとその子を表すコンテンツをマークアップを含めて非同期に読み取ります。Asynchronously reads the content, including markup, representing this node and all its children.

ReadStartElement() ReadStartElement() ReadStartElement() ReadStartElement()

現在のノードが要素で、リーダーを次のノードに進めるかどうかを確認します。Checks that the current node is an element and advances the reader to the next node.

ReadStartElement(String) ReadStartElement(String) ReadStartElement(String) ReadStartElement(String)

現在のコンテンツ ノードが、指定した Name を持つ要素で、リーダーを次のノードに進めることを確認します。Checks that the current content node is an element with the given Name and advances the reader to the next node.

ReadStartElement(String, String) ReadStartElement(String, String) ReadStartElement(String, String) ReadStartElement(String, String)

現在のコンテンツ ノードが、指定した LocalNameNamespaceURI を持つ要素で、リーダーを次のノードに進めることを確認します。Checks that the current content node is an element with the given LocalName and NamespaceURI and advances the reader to the next node.

ReadString() ReadString() ReadString() ReadString()

派生クラスでオーバーライドされると、要素ノードまたはテキスト ノードの内容を文字列として読み取ります。When overridden in a derived class, reads the contents of an element or text node as a string. ただし、ReadElementContentAsString メソッドを代わりに使用するほうが、この操作を簡単に処理できるため、こちらの方法をお勧めします。However, we recommend that you use the ReadElementContentAsString method instead, because it provides a more straightforward way to handle this operation.

ReadSubtree() ReadSubtree() ReadSubtree() ReadSubtree()

現在のノードおよびそのすべての子孫ノードを読み取るために使用できる、新しい XmlReader インスタンスを返します。Returns a new XmlReader instance that can be used to read the current node, and all its descendants.

ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String) ReadToDescendant(String)

指定された修飾名を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified qualified name.

ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String) ReadToDescendant(String, String)

指定されたローカル名と名前空間 URI を使用して XmlReader を次の子孫要素に進めます。Advances the XmlReader to the next descendant element with the specified local name and namespace URI.

ReadToFollowing(String) ReadToFollowing(String) ReadToFollowing(String) ReadToFollowing(String)

指定された修飾名の要素が見つかるまで読み込みます。Reads until an element with the specified qualified name is found.

ReadToFollowing(String, String) ReadToFollowing(String, String) ReadToFollowing(String, String) ReadToFollowing(String, String)

指定されたローカル名と名前空間 URI が見つかるまで要素を読み込みます。Reads until an element with the specified local name and namespace URI is found.

ReadToNextSibling(String) ReadToNextSibling(String) ReadToNextSibling(String) ReadToNextSibling(String)

指定された修飾名を使用して XmlReader を次の兄弟要素に進めます。Advances the XmlReader to the next sibling element with the specified qualified name.

ReadToNextSibling(String, String) ReadToNextSibling(String, String) ReadToNextSibling(String, String) ReadToNextSibling(String, String)

指定されたローカル名と名前空間 URI を使用して、XmlReader を次の兄弟要素に進めます。Advances the XmlReader to the next sibling element with the specified local name and namespace URI.

ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32) ReadValueChunk(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大量のストリームを読み込みます。Reads large streams of text embedded in an XML document.

ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32) ReadValueChunkAsync(Char[], Int32, Int32)

XML ドキュメントに埋め込まれたテキストの大量のストリームを非同期に読み取ります。Asynchronously reads large streams of text embedded in an XML document.

ResolveEntity() ResolveEntity() ResolveEntity() ResolveEntity()

派生クラスでオーバーライドされると、EntityReference ノードのエンティティ参照を解決します。When overridden in a derived class, resolves the entity reference for EntityReference nodes.

Skip() Skip() Skip() Skip()

現在のノードの子をスキップします。Skips the children of the current node.

SkipAsync() SkipAsync() SkipAsync() SkipAsync()

現在のノードの子を非同期にスキップします。Asynchronously skips the children of the current node.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

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

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

このメンバーの詳細については、「Dispose()」をご覧ください。For a description of this member, see Dispose().

適用対象

こちらもご覧ください