Load メソッドとXmlReaderのパラメーターを使用して XML ドキュメントを読み込む場合、他の形式からデータを読み込む動作と比較して発生する動作に違いがあります。 リーダーが初期状態の場合、 Load はリーダーからコンテンツ全体を使用し、リーダー内のすべてのデータから XML ドキュメント オブジェクト モデル (DOM) を構築します。
リーダーが既にドキュメント内のどこかのノードに配置されていて、リーダーが Load メソッドに渡された場合、 Load は現在の深さをメモリに閉じる最後のタグまで、現在のノードとそのすべての兄弟を読み取ろうとします。 試行された Load の成功は、読み込みが試行されたときにリーダーがオンになっているノードによって異なります。 Load リーダーからの XML が整形式であることを確認します。 XML が整形式でない場合、 Load は例外をスローします。 たとえば、次の一連のノードには 2 つのルート レベルの要素が含まれています。XML は整形式ではなく、 Load は例外をスローします。
- コメント ノード、その後に Element ノード、Element ノード、EndElement ノードの順に続きます。
次のノード セットでは、ルート レベルの要素がないため、不完全な DOM が作成されます。
- コメント ノードの後に ProcessingInstruction ノードが続き、コメント ノードの後に EndElement ノードが続きます。
これにより例外がスローされず、データが読み込まれます。 これらのノードの先頭にルート要素を追加し、エラーなしで保存できる整形式の XML を作成できます。
リーダーが、ドキュメントのルート レベル (空白や属性ノードなど) に対して無効なリーフ ノードに配置されている場合、リーダーはルートに使用できるノードに配置されるまで読み取りを続行します。 この時点でドキュメントの読み込みが開始されます。
既定では、 Load は、ドキュメント型定義 (DTD) またはスキーマ検証を使用して XML が有効かどうかを検証しません。 XML が整形式であるかどうかを確認するだけです。 検証を行うには、XmlReaderSettings クラスを使用してXmlReaderを作成する必要があります。 XmlReader クラスは、DTD またはスキーマ定義言語 (XSD) スキーマを使用して検証を適用できます。 XmlReaderSettings クラスの ValidationType プロパティは、XmlReader インスタンスが検証を強制するかどうかを決定します。 XML データの検証の詳細については、 XmlReader リファレンス ページの「解説」セクションを参照してください。
こちらも参照ください
.NET