次の方法で共有


リーダーからのデータの読み込み

Load メソッドに XmlReader パラメーターを渡して XML ドキュメントを読み込むと、他の形式からデータを読み込む場合と比較して、その動作に違いがあります。 リーダーが初期状態のとき、Load メソッドは、リーダーからのコンテンツ全体を使用して、リーダー内のすべてのデータから XML ドキュメント オブジェクト モデル (DOM) を構築します。

既にリーダーがドキュメント内のあるノード上に位置している場合、リーダーが Load メソッドに渡されると、Load は現在のノードと、現在の深さを閉じる終了タグまで、その兄弟すべてをメモリに読み込もうとします。 Load はリーダーからの XML が整形式かどうかを検証するので、Load が成功するかどうかは、読み込みを試みた時点でリーダーが位置していたノードに依存します。 XML が整形式でない場合、Load は例外をスローします。 たとえば、次のノード セットは、ルート レベルの要素が 2 つ含まれ、XML が整形式ではないため、Load は例外をスローします。

  • Comment ノード、Element ノード、Element ノード、EndElement ノードの順序のノード セット

次のノード セットは、ルート レベルの要素が存在しないため、不完全な DOM が作成されます。

  • Comment ノード、ProcessingInstruction ノード、Comment ノード、EndElement ノードの順序のノード セット

この場合、例外はスローされず、データが読み込まれます。 これらのノードの最上位にルート要素を追加すると、エラーなしで保存できる整形式の XML を作成できます。

ドキュメントのルート レベルとしては無効なリーフ ノード (たとえば空白ノードや属性ノード) にリーダーが位置している場合、リーダーはルートとして使用できるノードに移動するまで読み込みを続行します。 ドキュメントの読み込みは、この位置から開始されます。

既定では、Load は、ドキュメント型定義 (DTD) またはスキーマ検証を使用して、XML が有効かどうかを検証しません。 チェックするのは、XML が整形式かどうかだけです。 検証を行うには、XmlReader クラスを使用して XmlReaderSettings を作成する必要があります。 XmlReader クラスは、DTD またはスキーマ定義言語 (XSD) のスキーマを使用して検証を強制できます。 ValidationType クラスの XmlReaderSettings プロパティによって、XmlReader インスタンスが検証を強制するかどうかが決まります。 XML データの検証の詳細については、XmlReader のリファレンス ページの「解説」を参照してください。

関連項目