次の方法で共有


リーダーからデータを読み込む

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

リーダーが既にドキュメント内のどこかのノードに配置されていて、リーダーが Load メソッドに渡された場合、 Load は現在の深さをメモリに閉じる最後のタグまで、現在のノードとそのすべての兄弟を読み取ろうとします。 試行された Load の成功は、読み込みが試行されたときにリーダーがオンになっているノードによって異なります。 Load リーダーからの XML が整形式であることを確認します。 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 リファレンス ページの「解説」セクションを参照してください。

こちらも参照ください