型指定されたデータの読み取り
更新 : November 2007
XmlReader クラスにより、呼び出し元は XML データを読み、値を文字列でなく単純型の共通言語ランタイム (CLR) 値として返すことができます。提供されるメソッドを使用して、ユーザーは文字列でなくシステム型を使用して値を取得できます。これらの新しいメソッドにより、ユーザーは手動で値変換と解析を行うことなく、コーディング作業に最適な表現で値を取得することができます。
XML データに関連付けられたスキーマやデータ型の情報がない場合、XmlReader クラスは指定された CLR 型へのノード値の変換を試みます。たとえば、ReadContentAsBoolean メソッドを呼び出した場合、リーダーはテキストを Boolean オブジェクトに変換しようとします。
XmlReader クラスでは、W3C 勧告『XML Schema Part 2: Datatypes Second Edition』に定義された規則を使用します。
型指定されたコンテンツ
特定の CLR オブジェクトを返すには、ReadContentAsBoolean、ReadContentAsDateTime、ReadContentAsDouble、ReadContentAsLong、ReadContentAsInt、および ReadContentAsString メソッドを使用します。これらのメソッドは、リーダの現在の位置のテキスト コンテンツを読み、それを要求された戻り型に変換します。テキスト、空白、有意の空白、および CDATA セクションは連結されます。コメントと処理命令はスキップされ、エンティティ参照は自動的に解決されます。
ReadContentAs メソッドはテキスト コンテンツを読み、指定された型のオブジェクトを返すために使用されます。
ReadContentAsObject メソッドは、ValueType プロパティで指定された、最適なボックス化された CLR を返します。コンテンツが型指定されていない場合、リーダーはコンテンツを文字列として返します。
いずれかの ReadContentAs メソッドを呼んだ後、リーダーは次の Element ノード上または EndElement ノード上に位置します。
ReadContentAs メソッドが各ノードを取り扱う方法を次の表に示します。
XmlNodeType |
戻り値 |
リーダーの動作 |
---|---|---|
Text CDATA Whitespace SignificantWhitespace EntityReference EndEntity |
テキストの連結されたコンテンツ、CDATA、空白、および有意の空白のノードが指定された型に変換されます。 |
次の要素開始タグまたは要素終了タグに移動します。エンティティ参照は自動的に展開されます。 |
Attribute |
XmlConvert と同じ。属性値の ToXXX。 |
リーダは現在の位置に留まります。 |
Comment ProcessingInstruction |
処理命令 (PI) またはコメントは無視し、PI またはコメントに続く連結されたテキスト コンテンツを読みます。 |
次の要素開始タグまたは要素終了タグに移動します。エンティティ参照は自動的に展開されます。 |
EndElement |
空の文字列。 |
リーダは現在の位置に留まります。 |
Element XmlDeclaration None Document DocumentType Notation Entity DocumentFragment |
InvalidOperationException がスローされます。 |
未定義。ただし、リーダーは通常、現在の位置に留まります。 |
型指定された要素コンテンツ
XmlReader クラスには、特に型指定された要素コンテンツを読むためのメソッドが用意されています。これらのメソッドは、要素ノード型の上だけで呼び出せます。これらのメソッドは、子要素または混合コンテンツを含む要素では使用できません。呼ばれると、XmlReader オブジェクトは開始タグと要素コンテンツと読み、その後、終了要素タグを越えて移動します。処理命令とコメントは無視され、エンティティは展開されます。
ReadElementContentAsBoolean、ReadElementContentAsDateTime、ReadElementContentAsDouble、ReadElementContentAsLong、ReadElementContentAsInt、および ReadElementContentAsString メソッドは、要素コンテンツを読んで特定の CLR オブジェクトを返します。
ReadElementContentAs メソッドは要素コンテンツを読み、指定された型のオブジェクトを返すために使用されます。
ReadElementContentAsObject メソッドは、ValueType プロパティで指定された、最適なボックス化された CLR を返します。「XML データ型から CLR 型へのマッピング」のトピックでは、XmlReader クラスが最適な CLR 型を決定する方法について説明しています。コンテンツが型指定されていない場合、リーダーはコンテンツを文字列として返します。
参照
概念
方法 : スキーマ マッピングを使用して型指定されたデータを読み取る